vk_rs/
vk.rs

1#![allow(non_upper_case_globals)]
2#![allow(non_snake_case)]
3#![allow(non_camel_case_types)]
4#![allow(improper_ctypes)]
5#![allow(dead_code)]
6type void = std::ffi::c_void;
7pub const LOD_CLAMP_NONE : f32 = 1000.;					
8pub const REMAINING_MIP_LEVELS : u32 = !0;				
9pub const REMAINING_ARRAY_LAYERS : u32 = !0;			
10pub const WHOLE_SIZE : u64 = !0u64;						
11pub const ATTACHMENT_UNUSED : u32 = !0;					
12pub const TRUE : u32 = 1;								
13pub const FALSE : u32 = 0;								
14pub const QUEUE_FAMILY_IGNORED : u32 = !0;				
15pub const SUBPASS_EXTERNAL : u32 = !0;					
16pub const MAX_PHYSICAL_DEVICE_NAME_SIZE : usize = 256;	
17pub const UUID_SIZE : usize = 16;							
18pub const MAX_MEMORY_TYPES : usize = 32;					
19pub const MAX_MEMORY_HEAPS : usize = 16;					
20pub const MAX_EXTENSION_NAME_SIZE : usize = 256;			
21pub const MAX_DESCRIPTION_SIZE : usize = 256;				
22pub const MAX_DEVICE_GROUP_SIZE  : usize = 32;
23pub const LUID_SIZE              : usize = 8;
24pub const QUEUE_FAMILY_EXTERNAL  : u32 = !0 - 1;
25pub const MAX_DRIVER_NAME_SIZE : usize = 256; 
26pub const MAX_DRIVER_INFO_SIZE : usize = 256; 
27pub type Flags = i32;
28pub type Bool32 = u32;
29pub type DeviceSize = u64;
30pub type SampleMask = u32;
31pub type Instance = u64;
32pub type PhysicalDevice = u64;
33pub type Device = u64;
34pub type Queue = u64;
35pub type Semaphore = u64;
36pub type CommandBuffer = u64;
37pub type Fence = u64;
38pub type DeviceMemory = u64;
39pub type Buffer = u64;
40pub type Image = u64;
41pub type Event = u64;
42pub type QueryPool = u64;
43pub type BufferView = u64;
44pub type ImageView = u64;
45pub type ShaderModule = u64;
46pub type PipelineCache = u64;
47pub type PipelineLayout = u64;
48pub type RenderPass = u64;
49pub type Pipeline = u64;
50pub type DescriptorSetLayout = u64;
51pub type Sampler = u64;
52pub type DescriptorPool = u64;
53pub type DescriptorSet = u64;
54pub type Framebuffer = u64;
55pub type CommandPool = u64;
56
57pub const fn make_version(major : u32, minor : u32, patch : u32) -> u32
58{
59	(major << 22) | (minor << 12) | patch //>>
60}
61
62pub type PipelineCacheHeaderVersion = i32;
63pub const PIPELINE_CACHE_HEADER_VERSION_ONE : i32 = 1;
64pub const PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM : i32 = 0x7FFFFFF;
65pub type VkResult = i32;
66pub const SUCCESS : i32 = 0;
67pub const NOT_READY : i32 = 1;
68pub const TIMEOUT : i32 = 2;
69pub const EVENT_SET : i32 = 3;
70pub const EVENT_RESET : i32 = 4;
71pub const INCOMPLETE : i32 = 5;
72pub const ERROR_OUT_OF_HOST_MEMORY : i32 = -1;
73pub const ERROR_OUT_OF_DEVICE_MEMORY : i32 = -2;
74pub const ERROR_INITIALIZATION_FAILED : i32 = -3;
75pub const ERROR_DEVICE_LOST : i32 = -4;
76pub const ERROR_MEMORY_MAP_FAILED : i32 = -5;
77pub const ERROR_LAYER_NOT_PRESENT : i32 = -6;
78pub const ERROR_EXTENSION_NOT_PRESENT : i32 = -7;
79pub const ERROR_FEATURE_NOT_PRESENT : i32 = -8;
80pub const ERROR_INCOMPATIBLE_DRIVER : i32 = -9;
81pub const ERROR_TOO_MANY_OBJECTS : i32 = -10;
82pub const ERROR_FORMAT_NOT_SUPPORTED : i32 = -11;
83pub const ERROR_FRAGMENTED_POOL : i32 = -12;
84pub const ERROR_UNKNOWN : i32 = -13;
85pub const ERROR_OUT_OF_POOL_MEMORY : i32 = -1000069000;
86pub const ERROR_INVALID_EXTERNAL_HANDLE : i32 = -1000072003;
87pub const ERROR_FRAGMENTATION : i32 = -1000161000;
88pub const ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS : i32 = -1000257000;
89pub const ERROR_SURFACE_LOST_KHR : i32 = -1000000000;
90pub const ERROR_NATIVE_WINDOW_IN_USE_KHR : i32 = -1000000001;
91pub const SUBOPTIMAL_KHR : i32 = 1000001003;
92pub const ERROR_OUT_OF_DATE_KHR : i32 = -1000001004;
93pub const ERROR_INCOMPATIBLE_DISPLAY_KHR : i32 = -1000003001;
94pub const ERROR_VALIDATION_FAILED_EXT : i32 = -1000011001;
95pub const ERROR_INVALID_SHADER_NV : i32 = -1000012000;
96pub const ERROR_INCOMPATIBLE_VERSION_KHR : i32 = -1000150000;
97pub const ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT : i32 = -1000158000;
98pub const ERROR_NOT_PERMITTED_EXT : i32 = -1000174001;
99pub const ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT : i32 = -1000255000;
100pub const THREAD_IDLE_KHR : i32 = 1000268000;
101pub const THREAD_DONE_KHR : i32 = 1000268001;
102pub const OPERATION_DEFERRED_KHR : i32 = 1000268002;
103pub const OPERATION_NOT_DEFERRED_KHR : i32 = 1000268003;
104pub const PIPELINE_COMPILE_REQUIRED_EXT : i32 = 1000297000;
105pub const ERROR_OUT_OF_POOL_MEMORY_KHR : i32 = ERROR_OUT_OF_POOL_MEMORY;
106pub const ERROR_INVALID_EXTERNAL_HANDLE_KHR : i32 = ERROR_INVALID_EXTERNAL_HANDLE;
107pub const ERROR_FRAGMENTATION_EXT : i32 = ERROR_FRAGMENTATION;
108pub const ERROR_INVALID_DEVICE_ADDRESS_EXT : i32 = ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
109pub const ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR : i32 = ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
110pub const ERROR_PIPELINE_COMPILE_REQUIRED_EXT : i32 = PIPELINE_COMPILE_REQUIRED_EXT;
111pub const RESULT_MAX_ENUM : i32 = 0x7FFFFFF;
112pub type StructureType = i32;
113pub const STRUCTURE_TYPE_APPLICATION_INFO : i32 = 0;
114pub const STRUCTURE_TYPE_INSTANCE_CREATE_INFO : i32 = 1;
115pub const STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO : i32 = 2;
116pub const STRUCTURE_TYPE_DEVICE_CREATE_INFO : i32 = 3;
117pub const STRUCTURE_TYPE_SUBMIT_INFO : i32 = 4;
118pub const STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO : i32 = 5;
119pub const STRUCTURE_TYPE_MAPPED_MEMORY_RANGE : i32 = 6;
120pub const STRUCTURE_TYPE_BIND_SPARSE_INFO : i32 = 7;
121pub const STRUCTURE_TYPE_FENCE_CREATE_INFO : i32 = 8;
122pub const STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO : i32 = 9;
123pub const STRUCTURE_TYPE_EVENT_CREATE_INFO : i32 = 10;
124pub const STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO : i32 = 11;
125pub const STRUCTURE_TYPE_BUFFER_CREATE_INFO : i32 = 12;
126pub const STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO : i32 = 13;
127pub const STRUCTURE_TYPE_IMAGE_CREATE_INFO : i32 = 14;
128pub const STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO : i32 = 15;
129pub const STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO : i32 = 16;
130pub const STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO : i32 = 17;
131pub const STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO : i32 = 18;
132pub const STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO : i32 = 19;
133pub const STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO : i32 = 20;
134pub const STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO : i32 = 21;
135pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO : i32 = 22;
136pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO : i32 = 23;
137pub const STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO : i32 = 24;
138pub const STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO : i32 = 25;
139pub const STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO : i32 = 26;
140pub const STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO : i32 = 27;
141pub const STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO : i32 = 28;
142pub const STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO : i32 = 29;
143pub const STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO : i32 = 30;
144pub const STRUCTURE_TYPE_SAMPLER_CREATE_INFO : i32 = 31;
145pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO : i32 = 32;
146pub const STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO : i32 = 33;
147pub const STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO : i32 = 34;
148pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET : i32 = 35;
149pub const STRUCTURE_TYPE_COPY_DESCRIPTOR_SET : i32 = 36;
150pub const STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO : i32 = 37;
151pub const STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO : i32 = 38;
152pub const STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO : i32 = 39;
153pub const STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO : i32 = 40;
154pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO : i32 = 41;
155pub const STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO : i32 = 42;
156pub const STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO : i32 = 43;
157pub const STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER : i32 = 44;
158pub const STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER : i32 = 45;
159pub const STRUCTURE_TYPE_MEMORY_BARRIER : i32 = 46;
160pub const STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO : i32 = 47;
161pub const STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO : i32 = 48;
162pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES : i32 = 1000094000;
163pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO : i32 = 1000157000;
164pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO : i32 = 1000157001;
165pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES : i32 = 1000083000;
166pub const STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS : i32 = 1000127000;
167pub const STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO : i32 = 1000127001;
168pub const STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO : i32 = 1000060000;
169pub const STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO : i32 = 1000060003;
170pub const STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO : i32 = 1000060004;
171pub const STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO : i32 = 1000060005;
172pub const STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO : i32 = 1000060006;
173pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO : i32 = 1000060013;
174pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO : i32 = 1000060014;
175pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES : i32 = 1000070000;
176pub const STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO : i32 = 1000070001;
177pub const STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 : i32 = 1000146000;
178pub const STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 : i32 = 1000146001;
179pub const STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 : i32 = 1000146002;
180pub const STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 : i32 = 1000146003;
181pub const STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 : i32 = 1000146004;
182pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 : i32 = 1000059000;
183pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 : i32 = 1000059001;
184pub const STRUCTURE_TYPE_FORMAT_PROPERTIES_2 : i32 = 1000059002;
185pub const STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 : i32 = 1000059003;
186pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 : i32 = 1000059004;
187pub const STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 : i32 = 1000059005;
188pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 : i32 = 1000059006;
189pub const STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 : i32 = 1000059007;
190pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 : i32 = 1000059008;
191pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES : i32 = 1000117000;
192pub const STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO : i32 = 1000117001;
193pub const STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO : i32 = 1000117002;
194pub const STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO : i32 = 1000117003;
195pub const STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO : i32 = 1000053000;
196pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES : i32 = 1000053001;
197pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES : i32 = 1000053002;
198pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES : i32 = 1000120000;
199pub const STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO : i32 = 1000145000;
200pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES : i32 = 1000145001;
201pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES : i32 = 1000145002;
202pub const STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 : i32 = 1000145003;
203pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO : i32 = 1000156000;
204pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO : i32 = 1000156001;
205pub const STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO : i32 = 1000156002;
206pub const STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO : i32 = 1000156003;
207pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES : i32 = 1000156004;
208pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES : i32 = 1000156005;
209pub const STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO : i32 = 1000085000;
210pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO : i32 = 1000071000;
211pub const STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES : i32 = 1000071001;
212pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO : i32 = 1000071002;
213pub const STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES : i32 = 1000071003;
214pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES : i32 = 1000071004;
215pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO : i32 = 1000072000;
216pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO : i32 = 1000072001;
217pub const STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO : i32 = 1000072002;
218pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO : i32 = 1000112000;
219pub const STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES : i32 = 1000112001;
220pub const STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO : i32 = 1000113000;
221pub const STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO : i32 = 1000077000;
222pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO : i32 = 1000076000;
223pub const STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES : i32 = 1000076001;
224pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES : i32 = 1000168000;
225pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT : i32 = 1000168001;
226pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES : i32 = 1000063000;
227pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES : i32 = 49;
228pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES : i32 = 50;
229pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES : i32 = 51;
230pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES : i32 = 52;
231pub const STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO : i32 = 1000147000;
232pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 : i32 = 1000109000;
233pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 : i32 = 1000109001;
234pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 : i32 = 1000109002;
235pub const STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 : i32 = 1000109003;
236pub const STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 : i32 = 1000109004;
237pub const STRUCTURE_TYPE_SUBPASS_BEGIN_INFO : i32 = 1000109005;
238pub const STRUCTURE_TYPE_SUBPASS_END_INFO : i32 = 1000109006;
239pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES : i32 = 1000177000;
240pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES : i32 = 1000196000;
241pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES : i32 = 1000180000;
242pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES : i32 = 1000082000;
243pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES : i32 = 1000197000;
244pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO : i32 = 1000161000;
245pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES : i32 = 1000161001;
246pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES : i32 = 1000161002;
247pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO : i32 = 1000161003;
248pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT : i32 = 1000161004;
249pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES : i32 = 1000199000;
250pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE : i32 = 1000199001;
251pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES : i32 = 1000221000;
252pub const STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO : i32 = 1000246000;
253pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES : i32 = 1000130000;
254pub const STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO : i32 = 1000130001;
255pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES : i32 = 1000211000;
256pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES : i32 = 1000108000;
257pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO : i32 = 1000108001;
258pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO : i32 = 1000108002;
259pub const STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO : i32 = 1000108003;
260pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES : i32 = 1000253000;
261pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES : i32 = 1000175000;
262pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES : i32 = 1000241000;
263pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT : i32 = 1000241001;
264pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT : i32 = 1000241002;
265pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES : i32 = 1000261000;
266pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES : i32 = 1000207000;
267pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES : i32 = 1000207001;
268pub const STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO : i32 = 1000207002;
269pub const STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO : i32 = 1000207003;
270pub const STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO : i32 = 1000207004;
271pub const STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO : i32 = 1000207005;
272pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES : i32 = 1000257000;
273pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO : i32 = 1000244001;
274pub const STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO : i32 = 1000257002;
275pub const STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO : i32 = 1000257003;
276pub const STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO : i32 = 1000257004;
277pub const STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR : i32 = 1000001000;
278pub const STRUCTURE_TYPE_PRESENT_INFO_KHR : i32 = 1000001001;
279pub const STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR : i32 = 1000060007;
280pub const STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR : i32 = 1000060008;
281pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR : i32 = 1000060009;
282pub const STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR : i32 = 1000060010;
283pub const STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR : i32 = 1000060011;
284pub const STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR : i32 = 1000060012;
285pub const STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR : i32 = 1000002000;
286pub const STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR : i32 = 1000002001;
287pub const STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR : i32 = 1000003000;
288pub const STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR : i32 = 1000004000;
289pub const STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR : i32 = 1000005000;
290pub const STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR : i32 = 1000006000;
291pub const STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR : i32 = 1000008000;
292pub const STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR : i32 = 1000009000;
293pub const STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT : i32 = 1000011000;
294pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD : i32 = 1000018000;
295pub const STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT : i32 = 1000022000;
296pub const STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT : i32 = 1000022001;
297pub const STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT : i32 = 1000022002;
298pub const STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV : i32 = 1000026000;
299pub const STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV : i32 = 1000026001;
300pub const STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV : i32 = 1000026002;
301pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT : i32 = 1000028000;
302pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT : i32 = 1000028001;
303pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT : i32 = 1000028002;
304pub const STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX : i32 = 1000030000;
305pub const STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX : i32 = 1000030001;
306pub const STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD : i32 = 1000041000;
307pub const STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP : i32 = 1000049000;
308pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV : i32 = 1000050000;
309pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV : i32 = 1000056000;
310pub const STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV : i32 = 1000056001;
311pub const STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV : i32 = 1000057000;
312pub const STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV : i32 = 1000057001;
313pub const STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV : i32 = 1000058000;
314pub const STRUCTURE_TYPE_VALIDATION_FLAGS_EXT : i32 = 1000061000;
315pub const STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN : i32 = 1000062000;
316pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT : i32 = 1000066000;
317pub const STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT : i32 = 1000067000;
318pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT : i32 = 1000067001;
319pub const STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR : i32 = 1000073000;
320pub const STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR : i32 = 1000073001;
321pub const STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR : i32 = 1000073002;
322pub const STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR : i32 = 1000073003;
323pub const STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR : i32 = 1000074000;
324pub const STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR : i32 = 1000074001;
325pub const STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR : i32 = 1000074002;
326pub const STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR : i32 = 1000075000;
327pub const STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR : i32 = 1000078000;
328pub const STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR : i32 = 1000078001;
329pub const STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR : i32 = 1000078002;
330pub const STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR : i32 = 1000078003;
331pub const STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR : i32 = 1000079000;
332pub const STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR : i32 = 1000079001;
333pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR : i32 = 1000080000;
334pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT : i32 = 1000081000;
335pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT : i32 = 1000081001;
336pub const STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT : i32 = 1000081002;
337pub const STRUCTURE_TYPE_PRESENT_REGIONS_KHR : i32 = 1000084000;
338pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV : i32 = 1000087000;
339pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT : i32 = 1000090000;
340pub const STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT : i32 = 1000091000;
341pub const STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT : i32 = 1000091001;
342pub const STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT : i32 = 1000091002;
343pub const STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT : i32 = 1000091003;
344pub const STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE : i32 = 1000092000;
345pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX : i32 = 1000097000;
346pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV : i32 = 1000098000;
347pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT : i32 = 1000099000;
348pub const STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT : i32 = 1000099001;
349pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT : i32 = 1000101000;
350pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT : i32 = 1000101001;
351pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT : i32 = 1000102000;
352pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT : i32 = 1000102001;
353pub const STRUCTURE_TYPE_HDR_METADATA_EXT : i32 = 1000105000;
354pub const STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR : i32 = 1000111000;
355pub const STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR : i32 = 1000114000;
356pub const STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR : i32 = 1000114001;
357pub const STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR : i32 = 1000114002;
358pub const STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR : i32 = 1000115000;
359pub const STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR : i32 = 1000115001;
360pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR : i32 = 1000116000;
361pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR : i32 = 1000116001;
362pub const STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR : i32 = 1000116002;
363pub const STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR : i32 = 1000116003;
364pub const STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR : i32 = 1000116004;
365pub const STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR : i32 = 1000116005;
366pub const STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR : i32 = 1000116006;
367pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR : i32 = 1000119000;
368pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR : i32 = 1000119001;
369pub const STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR : i32 = 1000119002;
370pub const STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR : i32 = 1000121000;
371pub const STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR : i32 = 1000121001;
372pub const STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR : i32 = 1000121002;
373pub const STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR : i32 = 1000121003;
374pub const STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR : i32 = 1000121004;
375pub const STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK : i32 = 1000122000;
376pub const STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK : i32 = 1000123000;
377pub const STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT : i32 = 1000128000;
378pub const STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT : i32 = 1000128001;
379pub const STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT : i32 = 1000128002;
380pub const STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT : i32 = 1000128003;
381pub const STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT : i32 = 1000128004;
382pub const STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID : i32 = 1000129000;
383pub const STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID : i32 = 1000129001;
384pub const STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID : i32 = 1000129002;
385pub const STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID : i32 = 1000129003;
386pub const STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID : i32 = 1000129004;
387pub const STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID : i32 = 1000129005;
388pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT : i32 = 1000138000;
389pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT : i32 = 1000138001;
390pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT : i32 = 1000138002;
391pub const STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT : i32 = 1000138003;
392pub const STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT : i32 = 1000143000;
393pub const STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT : i32 = 1000143001;
394pub const STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT : i32 = 1000143002;
395pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT : i32 = 1000143003;
396pub const STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT : i32 = 1000143004;
397pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT : i32 = 1000148000;
398pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT : i32 = 1000148001;
399pub const STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT : i32 = 1000148002;
400pub const STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV : i32 = 1000149000;
401pub const STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR : i32 = 1000165006;
402pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR : i32 = 1000165007;
403pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR : i32 = 1000150000;
404pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR : i32 = 1000150001;
405pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR : i32 = 1000150002;
406pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR : i32 = 1000150003;
407pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR : i32 = 1000150004;
408pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR : i32 = 1000150005;
409pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR : i32 = 1000150006;
410pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR : i32 = 1000150008;
411pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR : i32 = 1000150009;
412pub const STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR : i32 = 1000150010;
413pub const STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR : i32 = 1000150011;
414pub const STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR : i32 = 1000150012;
415pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR : i32 = 1000150013;
416pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR : i32 = 1000150014;
417pub const STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR : i32 = 1000150015;
418pub const STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR : i32 = 1000150016;
419pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR : i32 = 1000150017;
420pub const STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR : i32 = 1000150018;
421pub const STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV : i32 = 1000152000;
422pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV : i32 = 1000154000;
423pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV : i32 = 1000154001;
424pub const STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT : i32 = 1000158000;
425pub const STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT : i32 = 1000158001;
426pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT : i32 = 1000158002;
427pub const STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT : i32 = 1000158003;
428pub const STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT : i32 = 1000158004;
429pub const STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT : i32 = 1000158005;
430pub const STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT : i32 = 1000160000;
431pub const STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT : i32 = 1000160001;
432pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV : i32 = 1000164000;
433pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV : i32 = 1000164001;
434pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV : i32 = 1000164002;
435pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV : i32 = 1000164005;
436pub const STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV : i32 = 1000165000;
437pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV : i32 = 1000165001;
438pub const STRUCTURE_TYPE_GEOMETRY_NV : i32 = 1000165003;
439pub const STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV : i32 = 1000165004;
440pub const STRUCTURE_TYPE_GEOMETRY_AABB_NV : i32 = 1000165005;
441pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV : i32 = 1000165008;
442pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV : i32 = 1000165009;
443pub const STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV : i32 = 1000165011;
444pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV : i32 = 1000165012;
445pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV : i32 = 1000166000;
446pub const STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV : i32 = 1000166001;
447pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT : i32 = 1000170000;
448pub const STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT : i32 = 1000170001;
449pub const STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT : i32 = 1000174000;
450pub const STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT : i32 = 1000178000;
451pub const STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT : i32 = 1000178001;
452pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT : i32 = 1000178002;
453pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR : i32 = 1000181000;
454pub const STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD : i32 = 1000183000;
455pub const STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT : i32 = 1000184000;
456pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD : i32 = 1000185000;
457pub const STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD : i32 = 1000189000;
458pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT : i32 = 1000190000;
459pub const STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT : i32 = 1000190001;
460pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT : i32 = 1000190002;
461pub const STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP : i32 = 1000191000;
462pub const STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT : i32 = 1000192000;
463pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV : i32 = 1000201000;
464pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV : i32 = 1000202000;
465pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV : i32 = 1000202001;
466pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV : i32 = 1000203000;
467pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV : i32 = 1000204000;
468pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV : i32 = 1000205000;
469pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV : i32 = 1000205002;
470pub const STRUCTURE_TYPE_CHECKPOINT_DATA_NV : i32 = 1000206000;
471pub const STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV : i32 = 1000206001;
472pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL : i32 = 1000209000;
473pub const STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL : i32 = 1000210000;
474pub const STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL : i32 = 1000210001;
475pub const STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL : i32 = 1000210002;
476pub const STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL : i32 = 1000210003;
477pub const STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL : i32 = 1000210004;
478pub const STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL : i32 = 1000210005;
479pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT : i32 = 1000212000;
480pub const STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD : i32 = 1000213000;
481pub const STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD : i32 = 1000213001;
482pub const STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA : i32 = 1000214000;
483pub const STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT : i32 = 1000217000;
484pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT : i32 = 1000218000;
485pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT : i32 = 1000218001;
486pub const STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT : i32 = 1000218002;
487pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT : i32 = 1000225000;
488pub const STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT : i32 = 1000225001;
489pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT : i32 = 1000225002;
490pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD : i32 = 1000227000;
491pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD : i32 = 1000229000;
492pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT : i32 = 1000237000;
493pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT : i32 = 1000238000;
494pub const STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT : i32 = 1000238001;
495pub const STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR : i32 = 1000239000;
496pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV : i32 = 1000240000;
497pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT : i32 = 1000244000;
498pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT : i32 = 1000244002;
499pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT : i32 = 1000245000;
500pub const STRUCTURE_TYPE_VALIDATION_FEATURES_EXT : i32 = 1000247000;
501pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV : i32 = 1000249000;
502pub const STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV : i32 = 1000249001;
503pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV : i32 = 1000249002;
504pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV : i32 = 1000250000;
505pub const STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV : i32 = 1000250001;
506pub const STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV : i32 = 1000250002;
507pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT : i32 = 1000251000;
508pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT : i32 = 1000252000;
509pub const STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT : i32 = 1000255000;
510pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT : i32 = 1000255002;
511pub const STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT : i32 = 1000255001;
512pub const STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT : i32 = 1000256000;
513pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT : i32 = 1000259000;
514pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT : i32 = 1000259001;
515pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT : i32 = 1000259002;
516pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT : i32 = 1000265000;
517pub const STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR : i32 = 1000268000;
518pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR : i32 = 1000269000;
519pub const STRUCTURE_TYPE_PIPELINE_INFO_KHR : i32 = 1000269001;
520pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR : i32 = 1000269002;
521pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR : i32 = 1000269003;
522pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR : i32 = 1000269004;
523pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR : i32 = 1000269005;
524pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT : i32 = 1000276000;
525pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV : i32 = 1000277000;
526pub const STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV : i32 = 1000277001;
527pub const STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV : i32 = 1000277002;
528pub const STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV : i32 = 1000277003;
529pub const STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV : i32 = 1000277004;
530pub const STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV : i32 = 1000277005;
531pub const STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV : i32 = 1000277006;
532pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV : i32 = 1000277007;
533pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT : i32 = 1000281000;
534pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT : i32 = 1000281001;
535pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM : i32 = 1000282000;
536pub const STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM : i32 = 1000282001;
537pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT : i32 = 1000286000;
538pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT : i32 = 1000286001;
539pub const STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT : i32 = 1000287000;
540pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT : i32 = 1000287001;
541pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT : i32 = 1000287002;
542pub const STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR : i32 = 1000290000;
543pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT : i32 = 1000295000;
544pub const STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT : i32 = 1000295001;
545pub const STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT : i32 = 1000295002;
546pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT : i32 = 1000297000;
547pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV : i32 = 1000300000;
548pub const STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV : i32 = 1000300001;
549pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
550pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
551pub const STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT : i32 = STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
552pub const STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
553pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
554pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
555pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
556pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
557pub const STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR : i32 = STRUCTURE_TYPE_FORMAT_PROPERTIES_2;
558pub const STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR : i32 = STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
559pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
560pub const STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR : i32 = STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;
561pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
562pub const STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR : i32 = STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2;
563pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
564pub const STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR : i32 = STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO;
565pub const STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR : i32 = STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
566pub const STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR : i32 = STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
567pub const STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR : i32 = STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO;
568pub const STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR : i32 = STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO;
569pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR : i32 = STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
570pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR : i32 = STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
571pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES;
572pub const STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO;
573pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
574pub const STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES;
575pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
576pub const STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES;
577pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES;
578pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
579pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
580pub const STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR : i32 = STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO;
581pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
582pub const STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES;
583pub const STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO;
584pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
585pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
586pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
587pub const STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
588pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT : i32 = STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT;
589pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
590pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
591pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR : i32 = STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
592pub const STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR : i32 = STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO;
593pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR : i32 = STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2;
594pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR : i32 = STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2;
595pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR : i32 = STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2;
596pub const STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR : i32 = STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2;
597pub const STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR : i32 = STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2;
598pub const STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR : i32 = STRUCTURE_TYPE_SUBPASS_BEGIN_INFO;
599pub const STRUCTURE_TYPE_SUBPASS_END_INFO_KHR : i32 = STRUCTURE_TYPE_SUBPASS_END_INFO;
600pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
601pub const STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES;
602pub const STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO;
603pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
604pub const STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
605pub const STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO;
606pub const STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
607pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
608pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR;
609pub const STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR : i32 = STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS;
610pub const STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR : i32 = STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO;
611pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
612pub const STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT : i32 = STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO;
613pub const STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR : i32 = STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2;
614pub const STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR : i32 = STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2;
615pub const STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR : i32 = STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
616pub const STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR : i32 = STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
617pub const STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR : i32 = STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
618pub const STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO;
619pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
620pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR : i32 = STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO;
621pub const STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR : i32 = STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO;
622pub const STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR : i32 = STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
623pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
624pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
625pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR : i32 = STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO;
626pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR : i32 = STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO;
627pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT : i32 = STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
628pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
629pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
630pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT : i32 = STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
631pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT : i32 = STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
632pub const STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV : i32 = STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR;
633pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV : i32 = STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
634pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
635pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR : i32 = STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT;
636pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
637pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
638pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
639pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES;
640pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
641pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
642pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR : i32 = STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
643pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
644pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
645pub const STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO;
646pub const STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR : i32 = STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO;
647pub const STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR : i32 = STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO;
648pub const STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR : i32 = STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO;
649pub const STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL : i32 = STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL;
650pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
651pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
652pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
653pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR : i32 = STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
654pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR : i32 = STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
655pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
656pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT : i32 = STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
657pub const STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT : i32 = STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO;
658pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
659pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
660pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR : i32 = STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
661pub const STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR : i32 = STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
662pub const STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR : i32 = STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
663pub const STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR : i32 = STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
664pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT : i32 = STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
665pub const STRUCTURE_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
666pub type SystemAllocationScope = i32;
667pub const SYSTEM_ALLOCATION_SCOPE_COMMAND : i32 = 0;
668pub const SYSTEM_ALLOCATION_SCOPE_OBJECT : i32 = 1;
669pub const SYSTEM_ALLOCATION_SCOPE_CACHE : i32 = 2;
670pub const SYSTEM_ALLOCATION_SCOPE_DEVICE : i32 = 3;
671pub const SYSTEM_ALLOCATION_SCOPE_INSTANCE : i32 = 4;
672pub const SYSTEM_ALLOCATION_SCOPE_MAX_ENUM : i32 = 0x7FFFFFF;
673pub type InternalAllocationType = i32;
674pub const INTERNAL_ALLOCATION_TYPE_EXECUTABLE : i32 = 0;
675pub const INTERNAL_ALLOCATION_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
676pub type Format = i32;
677pub const FORMAT_UNDEFINED : i32 = 0;
678pub const FORMAT_R4G4_UNORM_PACK8 : i32 = 1;
679pub const FORMAT_R4G4B4A4_UNORM_PACK16 : i32 = 2;
680pub const FORMAT_B4G4R4A4_UNORM_PACK16 : i32 = 3;
681pub const FORMAT_R5G6B5_UNORM_PACK16 : i32 = 4;
682pub const FORMAT_B5G6R5_UNORM_PACK16 : i32 = 5;
683pub const FORMAT_R5G5B5A1_UNORM_PACK16 : i32 = 6;
684pub const FORMAT_B5G5R5A1_UNORM_PACK16 : i32 = 7;
685pub const FORMAT_A1R5G5B5_UNORM_PACK16 : i32 = 8;
686pub const FORMAT_R8_UNORM : i32 = 9;
687pub const FORMAT_R8_SNORM : i32 = 10;
688pub const FORMAT_R8_USCALED : i32 = 11;
689pub const FORMAT_R8_SSCALED : i32 = 12;
690pub const FORMAT_R8_UINT : i32 = 13;
691pub const FORMAT_R8_SINT : i32 = 14;
692pub const FORMAT_R8_SRGB : i32 = 15;
693pub const FORMAT_R8G8_UNORM : i32 = 16;
694pub const FORMAT_R8G8_SNORM : i32 = 17;
695pub const FORMAT_R8G8_USCALED : i32 = 18;
696pub const FORMAT_R8G8_SSCALED : i32 = 19;
697pub const FORMAT_R8G8_UINT : i32 = 20;
698pub const FORMAT_R8G8_SINT : i32 = 21;
699pub const FORMAT_R8G8_SRGB : i32 = 22;
700pub const FORMAT_R8G8B8_UNORM : i32 = 23;
701pub const FORMAT_R8G8B8_SNORM : i32 = 24;
702pub const FORMAT_R8G8B8_USCALED : i32 = 25;
703pub const FORMAT_R8G8B8_SSCALED : i32 = 26;
704pub const FORMAT_R8G8B8_UINT : i32 = 27;
705pub const FORMAT_R8G8B8_SINT : i32 = 28;
706pub const FORMAT_R8G8B8_SRGB : i32 = 29;
707pub const FORMAT_B8G8R8_UNORM : i32 = 30;
708pub const FORMAT_B8G8R8_SNORM : i32 = 31;
709pub const FORMAT_B8G8R8_USCALED : i32 = 32;
710pub const FORMAT_B8G8R8_SSCALED : i32 = 33;
711pub const FORMAT_B8G8R8_UINT : i32 = 34;
712pub const FORMAT_B8G8R8_SINT : i32 = 35;
713pub const FORMAT_B8G8R8_SRGB : i32 = 36;
714pub const FORMAT_R8G8B8A8_UNORM : i32 = 37;
715pub const FORMAT_R8G8B8A8_SNORM : i32 = 38;
716pub const FORMAT_R8G8B8A8_USCALED : i32 = 39;
717pub const FORMAT_R8G8B8A8_SSCALED : i32 = 40;
718pub const FORMAT_R8G8B8A8_UINT : i32 = 41;
719pub const FORMAT_R8G8B8A8_SINT : i32 = 42;
720pub const FORMAT_R8G8B8A8_SRGB : i32 = 43;
721pub const FORMAT_B8G8R8A8_UNORM : i32 = 44;
722pub const FORMAT_B8G8R8A8_SNORM : i32 = 45;
723pub const FORMAT_B8G8R8A8_USCALED : i32 = 46;
724pub const FORMAT_B8G8R8A8_SSCALED : i32 = 47;
725pub const FORMAT_B8G8R8A8_UINT : i32 = 48;
726pub const FORMAT_B8G8R8A8_SINT : i32 = 49;
727pub const FORMAT_B8G8R8A8_SRGB : i32 = 50;
728pub const FORMAT_A8B8G8R8_UNORM_PACK32 : i32 = 51;
729pub const FORMAT_A8B8G8R8_SNORM_PACK32 : i32 = 52;
730pub const FORMAT_A8B8G8R8_USCALED_PACK32 : i32 = 53;
731pub const FORMAT_A8B8G8R8_SSCALED_PACK32 : i32 = 54;
732pub const FORMAT_A8B8G8R8_UINT_PACK32 : i32 = 55;
733pub const FORMAT_A8B8G8R8_SINT_PACK32 : i32 = 56;
734pub const FORMAT_A8B8G8R8_SRGB_PACK32 : i32 = 57;
735pub const FORMAT_A2R10G10B10_UNORM_PACK32 : i32 = 58;
736pub const FORMAT_A2R10G10B10_SNORM_PACK32 : i32 = 59;
737pub const FORMAT_A2R10G10B10_USCALED_PACK32 : i32 = 60;
738pub const FORMAT_A2R10G10B10_SSCALED_PACK32 : i32 = 61;
739pub const FORMAT_A2R10G10B10_UINT_PACK32 : i32 = 62;
740pub const FORMAT_A2R10G10B10_SINT_PACK32 : i32 = 63;
741pub const FORMAT_A2B10G10R10_UNORM_PACK32 : i32 = 64;
742pub const FORMAT_A2B10G10R10_SNORM_PACK32 : i32 = 65;
743pub const FORMAT_A2B10G10R10_USCALED_PACK32 : i32 = 66;
744pub const FORMAT_A2B10G10R10_SSCALED_PACK32 : i32 = 67;
745pub const FORMAT_A2B10G10R10_UINT_PACK32 : i32 = 68;
746pub const FORMAT_A2B10G10R10_SINT_PACK32 : i32 = 69;
747pub const FORMAT_R16_UNORM : i32 = 70;
748pub const FORMAT_R16_SNORM : i32 = 71;
749pub const FORMAT_R16_USCALED : i32 = 72;
750pub const FORMAT_R16_SSCALED : i32 = 73;
751pub const FORMAT_R16_UINT : i32 = 74;
752pub const FORMAT_R16_SINT : i32 = 75;
753pub const FORMAT_R16_SFLOAT : i32 = 76;
754pub const FORMAT_R16G16_UNORM : i32 = 77;
755pub const FORMAT_R16G16_SNORM : i32 = 78;
756pub const FORMAT_R16G16_USCALED : i32 = 79;
757pub const FORMAT_R16G16_SSCALED : i32 = 80;
758pub const FORMAT_R16G16_UINT : i32 = 81;
759pub const FORMAT_R16G16_SINT : i32 = 82;
760pub const FORMAT_R16G16_SFLOAT : i32 = 83;
761pub const FORMAT_R16G16B16_UNORM : i32 = 84;
762pub const FORMAT_R16G16B16_SNORM : i32 = 85;
763pub const FORMAT_R16G16B16_USCALED : i32 = 86;
764pub const FORMAT_R16G16B16_SSCALED : i32 = 87;
765pub const FORMAT_R16G16B16_UINT : i32 = 88;
766pub const FORMAT_R16G16B16_SINT : i32 = 89;
767pub const FORMAT_R16G16B16_SFLOAT : i32 = 90;
768pub const FORMAT_R16G16B16A16_UNORM : i32 = 91;
769pub const FORMAT_R16G16B16A16_SNORM : i32 = 92;
770pub const FORMAT_R16G16B16A16_USCALED : i32 = 93;
771pub const FORMAT_R16G16B16A16_SSCALED : i32 = 94;
772pub const FORMAT_R16G16B16A16_UINT : i32 = 95;
773pub const FORMAT_R16G16B16A16_SINT : i32 = 96;
774pub const FORMAT_R16G16B16A16_SFLOAT : i32 = 97;
775pub const FORMAT_R32_UINT : i32 = 98;
776pub const FORMAT_R32_SINT : i32 = 99;
777pub const FORMAT_R32_SFLOAT : i32 = 100;
778pub const FORMAT_R32G32_UINT : i32 = 101;
779pub const FORMAT_R32G32_SINT : i32 = 102;
780pub const FORMAT_R32G32_SFLOAT : i32 = 103;
781pub const FORMAT_R32G32B32_UINT : i32 = 104;
782pub const FORMAT_R32G32B32_SINT : i32 = 105;
783pub const FORMAT_R32G32B32_SFLOAT : i32 = 106;
784pub const FORMAT_R32G32B32A32_UINT : i32 = 107;
785pub const FORMAT_R32G32B32A32_SINT : i32 = 108;
786pub const FORMAT_R32G32B32A32_SFLOAT : i32 = 109;
787pub const FORMAT_R64_UINT : i32 = 110;
788pub const FORMAT_R64_SINT : i32 = 111;
789pub const FORMAT_R64_SFLOAT : i32 = 112;
790pub const FORMAT_R64G64_UINT : i32 = 113;
791pub const FORMAT_R64G64_SINT : i32 = 114;
792pub const FORMAT_R64G64_SFLOAT : i32 = 115;
793pub const FORMAT_R64G64B64_UINT : i32 = 116;
794pub const FORMAT_R64G64B64_SINT : i32 = 117;
795pub const FORMAT_R64G64B64_SFLOAT : i32 = 118;
796pub const FORMAT_R64G64B64A64_UINT : i32 = 119;
797pub const FORMAT_R64G64B64A64_SINT : i32 = 120;
798pub const FORMAT_R64G64B64A64_SFLOAT : i32 = 121;
799pub const FORMAT_B10G11R11_UFLOAT_PACK32 : i32 = 122;
800pub const FORMAT_E5B9G9R9_UFLOAT_PACK32 : i32 = 123;
801pub const FORMAT_D16_UNORM : i32 = 124;
802pub const FORMAT_X8_D24_UNORM_PACK32 : i32 = 125;
803pub const FORMAT_D32_SFLOAT : i32 = 126;
804pub const FORMAT_S8_UINT : i32 = 127;
805pub const FORMAT_D16_UNORM_S8_UINT : i32 = 128;
806pub const FORMAT_D24_UNORM_S8_UINT : i32 = 129;
807pub const FORMAT_D32_SFLOAT_S8_UINT : i32 = 130;
808pub const FORMAT_BC1_RGB_UNORM_BLOCK : i32 = 131;
809pub const FORMAT_BC1_RGB_SRGB_BLOCK : i32 = 132;
810pub const FORMAT_BC1_RGBA_UNORM_BLOCK : i32 = 133;
811pub const FORMAT_BC1_RGBA_SRGB_BLOCK : i32 = 134;
812pub const FORMAT_BC2_UNORM_BLOCK : i32 = 135;
813pub const FORMAT_BC2_SRGB_BLOCK : i32 = 136;
814pub const FORMAT_BC3_UNORM_BLOCK : i32 = 137;
815pub const FORMAT_BC3_SRGB_BLOCK : i32 = 138;
816pub const FORMAT_BC4_UNORM_BLOCK : i32 = 139;
817pub const FORMAT_BC4_SNORM_BLOCK : i32 = 140;
818pub const FORMAT_BC5_UNORM_BLOCK : i32 = 141;
819pub const FORMAT_BC5_SNORM_BLOCK : i32 = 142;
820pub const FORMAT_BC6H_UFLOAT_BLOCK : i32 = 143;
821pub const FORMAT_BC6H_SFLOAT_BLOCK : i32 = 144;
822pub const FORMAT_BC7_UNORM_BLOCK : i32 = 145;
823pub const FORMAT_BC7_SRGB_BLOCK : i32 = 146;
824pub const FORMAT_ETC2_R8G8B8_UNORM_BLOCK : i32 = 147;
825pub const FORMAT_ETC2_R8G8B8_SRGB_BLOCK : i32 = 148;
826pub const FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK : i32 = 149;
827pub const FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK : i32 = 150;
828pub const FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK : i32 = 151;
829pub const FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK : i32 = 152;
830pub const FORMAT_EAC_R11_UNORM_BLOCK : i32 = 153;
831pub const FORMAT_EAC_R11_SNORM_BLOCK : i32 = 154;
832pub const FORMAT_EAC_R11G11_UNORM_BLOCK : i32 = 155;
833pub const FORMAT_EAC_R11G11_SNORM_BLOCK : i32 = 156;
834pub const FORMAT_ASTC_4x4_UNORM_BLOCK : i32 = 157;
835pub const FORMAT_ASTC_4x4_SRGB_BLOCK : i32 = 158;
836pub const FORMAT_ASTC_5x4_UNORM_BLOCK : i32 = 159;
837pub const FORMAT_ASTC_5x4_SRGB_BLOCK : i32 = 160;
838pub const FORMAT_ASTC_5x5_UNORM_BLOCK : i32 = 161;
839pub const FORMAT_ASTC_5x5_SRGB_BLOCK : i32 = 162;
840pub const FORMAT_ASTC_6x5_UNORM_BLOCK : i32 = 163;
841pub const FORMAT_ASTC_6x5_SRGB_BLOCK : i32 = 164;
842pub const FORMAT_ASTC_6x6_UNORM_BLOCK : i32 = 165;
843pub const FORMAT_ASTC_6x6_SRGB_BLOCK : i32 = 166;
844pub const FORMAT_ASTC_8x5_UNORM_BLOCK : i32 = 167;
845pub const FORMAT_ASTC_8x5_SRGB_BLOCK : i32 = 168;
846pub const FORMAT_ASTC_8x6_UNORM_BLOCK : i32 = 169;
847pub const FORMAT_ASTC_8x6_SRGB_BLOCK : i32 = 170;
848pub const FORMAT_ASTC_8x8_UNORM_BLOCK : i32 = 171;
849pub const FORMAT_ASTC_8x8_SRGB_BLOCK : i32 = 172;
850pub const FORMAT_ASTC_10x5_UNORM_BLOCK : i32 = 173;
851pub const FORMAT_ASTC_10x5_SRGB_BLOCK : i32 = 174;
852pub const FORMAT_ASTC_10x6_UNORM_BLOCK : i32 = 175;
853pub const FORMAT_ASTC_10x6_SRGB_BLOCK : i32 = 176;
854pub const FORMAT_ASTC_10x8_UNORM_BLOCK : i32 = 177;
855pub const FORMAT_ASTC_10x8_SRGB_BLOCK : i32 = 178;
856pub const FORMAT_ASTC_10x10_UNORM_BLOCK : i32 = 179;
857pub const FORMAT_ASTC_10x10_SRGB_BLOCK : i32 = 180;
858pub const FORMAT_ASTC_12x10_UNORM_BLOCK : i32 = 181;
859pub const FORMAT_ASTC_12x10_SRGB_BLOCK : i32 = 182;
860pub const FORMAT_ASTC_12x12_UNORM_BLOCK : i32 = 183;
861pub const FORMAT_ASTC_12x12_SRGB_BLOCK : i32 = 184;
862pub const FORMAT_G8B8G8R8_422_UNORM : i32 = 1000156000;
863pub const FORMAT_B8G8R8G8_422_UNORM : i32 = 1000156001;
864pub const FORMAT_G8_B8_R8_3PLANE_420_UNORM : i32 = 1000156002;
865pub const FORMAT_G8_B8R8_2PLANE_420_UNORM : i32 = 1000156003;
866pub const FORMAT_G8_B8_R8_3PLANE_422_UNORM : i32 = 1000156004;
867pub const FORMAT_G8_B8R8_2PLANE_422_UNORM : i32 = 1000156005;
868pub const FORMAT_G8_B8_R8_3PLANE_444_UNORM : i32 = 1000156006;
869pub const FORMAT_R10X6_UNORM_PACK16 : i32 = 1000156007;
870pub const FORMAT_R10X6G10X6_UNORM_2PACK16 : i32 = 1000156008;
871pub const FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 : i32 = 1000156009;
872pub const FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 : i32 = 1000156010;
873pub const FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 : i32 = 1000156011;
874pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 : i32 = 1000156012;
875pub const FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 : i32 = 1000156013;
876pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 : i32 = 1000156014;
877pub const FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 : i32 = 1000156015;
878pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 : i32 = 1000156016;
879pub const FORMAT_R12X4_UNORM_PACK16 : i32 = 1000156017;
880pub const FORMAT_R12X4G12X4_UNORM_2PACK16 : i32 = 1000156018;
881pub const FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 : i32 = 1000156019;
882pub const FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 : i32 = 1000156020;
883pub const FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 : i32 = 1000156021;
884pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 : i32 = 1000156022;
885pub const FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 : i32 = 1000156023;
886pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 : i32 = 1000156024;
887pub const FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 : i32 = 1000156025;
888pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 : i32 = 1000156026;
889pub const FORMAT_G16B16G16R16_422_UNORM : i32 = 1000156027;
890pub const FORMAT_B16G16R16G16_422_UNORM : i32 = 1000156028;
891pub const FORMAT_G16_B16_R16_3PLANE_420_UNORM : i32 = 1000156029;
892pub const FORMAT_G16_B16R16_2PLANE_420_UNORM : i32 = 1000156030;
893pub const FORMAT_G16_B16_R16_3PLANE_422_UNORM : i32 = 1000156031;
894pub const FORMAT_G16_B16R16_2PLANE_422_UNORM : i32 = 1000156032;
895pub const FORMAT_G16_B16_R16_3PLANE_444_UNORM : i32 = 1000156033;
896pub const FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG : i32 = 1000054000;
897pub const FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG : i32 = 1000054001;
898pub const FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG : i32 = 1000054002;
899pub const FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG : i32 = 1000054003;
900pub const FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG : i32 = 1000054004;
901pub const FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG : i32 = 1000054005;
902pub const FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG : i32 = 1000054006;
903pub const FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG : i32 = 1000054007;
904pub const FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT : i32 = 1000066000;
905pub const FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT : i32 = 1000066001;
906pub const FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT : i32 = 1000066002;
907pub const FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT : i32 = 1000066003;
908pub const FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT : i32 = 1000066004;
909pub const FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT : i32 = 1000066005;
910pub const FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT : i32 = 1000066006;
911pub const FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT : i32 = 1000066007;
912pub const FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT : i32 = 1000066008;
913pub const FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT : i32 = 1000066009;
914pub const FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT : i32 = 1000066010;
915pub const FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT : i32 = 1000066011;
916pub const FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT : i32 = 1000066012;
917pub const FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT : i32 = 1000066013;
918pub const FORMAT_G8B8G8R8_422_UNORM_KHR : i32 = FORMAT_G8B8G8R8_422_UNORM;
919pub const FORMAT_B8G8R8G8_422_UNORM_KHR : i32 = FORMAT_B8G8R8G8_422_UNORM;
920pub const FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR : i32 = FORMAT_G8_B8_R8_3PLANE_420_UNORM;
921pub const FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR : i32 = FORMAT_G8_B8R8_2PLANE_420_UNORM;
922pub const FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR : i32 = FORMAT_G8_B8_R8_3PLANE_422_UNORM;
923pub const FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR : i32 = FORMAT_G8_B8R8_2PLANE_422_UNORM;
924pub const FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR : i32 = FORMAT_G8_B8_R8_3PLANE_444_UNORM;
925pub const FORMAT_R10X6_UNORM_PACK16_KHR : i32 = FORMAT_R10X6_UNORM_PACK16;
926pub const FORMAT_R10X6G10X6_UNORM_2PACK16_KHR : i32 = FORMAT_R10X6G10X6_UNORM_2PACK16;
927pub const FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR : i32 = FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16;
928pub const FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR : i32 = FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16;
929pub const FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR : i32 = FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16;
930pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR : i32 = FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16;
931pub const FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR : i32 = FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16;
932pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR : i32 = FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16;
933pub const FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR : i32 = FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16;
934pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR : i32 = FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16;
935pub const FORMAT_R12X4_UNORM_PACK16_KHR : i32 = FORMAT_R12X4_UNORM_PACK16;
936pub const FORMAT_R12X4G12X4_UNORM_2PACK16_KHR : i32 = FORMAT_R12X4G12X4_UNORM_2PACK16;
937pub const FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR : i32 = FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16;
938pub const FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR : i32 = FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16;
939pub const FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR : i32 = FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16;
940pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR : i32 = FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16;
941pub const FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR : i32 = FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16;
942pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR : i32 = FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16;
943pub const FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR : i32 = FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16;
944pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR : i32 = FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16;
945pub const FORMAT_G16B16G16R16_422_UNORM_KHR : i32 = FORMAT_G16B16G16R16_422_UNORM;
946pub const FORMAT_B16G16R16G16_422_UNORM_KHR : i32 = FORMAT_B16G16R16G16_422_UNORM;
947pub const FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR : i32 = FORMAT_G16_B16_R16_3PLANE_420_UNORM;
948pub const FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR : i32 = FORMAT_G16_B16R16_2PLANE_420_UNORM;
949pub const FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR : i32 = FORMAT_G16_B16_R16_3PLANE_422_UNORM;
950pub const FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR : i32 = FORMAT_G16_B16R16_2PLANE_422_UNORM;
951pub const FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR : i32 = FORMAT_G16_B16_R16_3PLANE_444_UNORM;
952pub const FORMAT_MAX_ENUM : i32 = 0x7FFFFFF;
953pub type ImageType = i32;
954pub const IMAGE_TYPE_1D : i32 = 0;
955pub const IMAGE_TYPE_2D : i32 = 1;
956pub const IMAGE_TYPE_3D : i32 = 2;
957pub const IMAGE_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
958pub type ImageTiling = i32;
959pub const IMAGE_TILING_OPTIMAL : i32 = 0;
960pub const IMAGE_TILING_LINEAR : i32 = 1;
961pub const IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT : i32 = 1000158000;
962pub const IMAGE_TILING_MAX_ENUM : i32 = 0x7FFFFFF;
963pub type PhysicalDeviceType = i32;
964pub const PHYSICAL_DEVICE_TYPE_OTHER : i32 = 0;
965pub const PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU : i32 = 1;
966pub const PHYSICAL_DEVICE_TYPE_DISCRETE_GPU : i32 = 2;
967pub const PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU : i32 = 3;
968pub const PHYSICAL_DEVICE_TYPE_CPU : i32 = 4;
969pub const PHYSICAL_DEVICE_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
970pub type QueryType = i32;
971pub const QUERY_TYPE_OCCLUSION : i32 = 0;
972pub const QUERY_TYPE_PIPELINE_STATISTICS : i32 = 1;
973pub const QUERY_TYPE_TIMESTAMP : i32 = 2;
974pub const QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT : i32 = 1000028004;
975pub const QUERY_TYPE_PERFORMANCE_QUERY_KHR : i32 = 1000116000;
976pub const QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR : i32 = 1000165000;
977pub const QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR : i32 = 1000150000;
978pub const QUERY_TYPE_PERFORMANCE_QUERY_INTEL : i32 = 1000210000;
979pub const QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV : i32 = QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR;
980pub const QUERY_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
981pub type SharingMode = i32;
982pub const SHARING_MODE_EXCLUSIVE : i32 = 0;
983pub const SHARING_MODE_CONCURRENT : i32 = 1;
984pub const SHARING_MODE_MAX_ENUM : i32 = 0x7FFFFFF;
985pub type ImageLayout = i32;
986pub const IMAGE_LAYOUT_UNDEFINED : i32 = 0;
987pub const IMAGE_LAYOUT_GENERAL : i32 = 1;
988pub const IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL : i32 = 2;
989pub const IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL : i32 = 3;
990pub const IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL : i32 = 4;
991pub const IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL : i32 = 5;
992pub const IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL : i32 = 6;
993pub const IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL : i32 = 7;
994pub const IMAGE_LAYOUT_PREINITIALIZED : i32 = 8;
995pub const IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL : i32 = 1000117000;
996pub const IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL : i32 = 1000117001;
997pub const IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL : i32 = 1000241000;
998pub const IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL : i32 = 1000241001;
999pub const IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL : i32 = 1000241002;
1000pub const IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL : i32 = 1000241003;
1001pub const IMAGE_LAYOUT_PRESENT_SRC_KHR : i32 = 1000001002;
1002pub const IMAGE_LAYOUT_SHARED_PRESENT_KHR : i32 = 1000111000;
1003pub const IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV : i32 = 1000164003;
1004pub const IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT : i32 = 1000218000;
1005pub const IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR : i32 = IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL;
1006pub const IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR : i32 = IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL;
1007pub const IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR : i32 = IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL;
1008pub const IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR : i32 = IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL;
1009pub const IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR : i32 = IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL;
1010pub const IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR : i32 = IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL;
1011pub const IMAGE_LAYOUT_MAX_ENUM : i32 = 0x7FFFFFF;
1012pub type ImageViewType = i32;
1013pub const IMAGE_VIEW_TYPE_1D : i32 = 0;
1014pub const IMAGE_VIEW_TYPE_2D : i32 = 1;
1015pub const IMAGE_VIEW_TYPE_3D : i32 = 2;
1016pub const IMAGE_VIEW_TYPE_CUBE : i32 = 3;
1017pub const IMAGE_VIEW_TYPE_1D_ARRAY : i32 = 4;
1018pub const IMAGE_VIEW_TYPE_2D_ARRAY : i32 = 5;
1019pub const IMAGE_VIEW_TYPE_CUBE_ARRAY : i32 = 6;
1020pub const IMAGE_VIEW_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
1021pub type ComponentSwizzle = i32;
1022pub const COMPONENT_SWIZZLE_IDENTITY : i32 = 0;
1023pub const COMPONENT_SWIZZLE_ZERO : i32 = 1;
1024pub const COMPONENT_SWIZZLE_ONE : i32 = 2;
1025pub const COMPONENT_SWIZZLE_R : i32 = 3;
1026pub const COMPONENT_SWIZZLE_G : i32 = 4;
1027pub const COMPONENT_SWIZZLE_B : i32 = 5;
1028pub const COMPONENT_SWIZZLE_A : i32 = 6;
1029pub const COMPONENT_SWIZZLE_MAX_ENUM : i32 = 0x7FFFFFF;
1030pub type VertexInputRate = i32;
1031pub const VERTEX_INPUT_RATE_VERTEX : i32 = 0;
1032pub const VERTEX_INPUT_RATE_INSTANCE : i32 = 1;
1033pub const VERTEX_INPUT_RATE_MAX_ENUM : i32 = 0x7FFFFFF;
1034pub type PrimitiveTopology = i32;
1035pub const PRIMITIVE_TOPOLOGY_POINT_LIST : i32 = 0;
1036pub const PRIMITIVE_TOPOLOGY_LINE_LIST : i32 = 1;
1037pub const PRIMITIVE_TOPOLOGY_LINE_STRIP : i32 = 2;
1038pub const PRIMITIVE_TOPOLOGY_TRIANGLE_LIST : i32 = 3;
1039pub const PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP : i32 = 4;
1040pub const PRIMITIVE_TOPOLOGY_TRIANGLE_FAN : i32 = 5;
1041pub const PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY : i32 = 6;
1042pub const PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY : i32 = 7;
1043pub const PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY : i32 = 8;
1044pub const PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY : i32 = 9;
1045pub const PRIMITIVE_TOPOLOGY_PATCH_LIST : i32 = 10;
1046pub const PRIMITIVE_TOPOLOGY_MAX_ENUM : i32 = 0x7FFFFFF;
1047pub type PolygonMode = i32;
1048pub const POLYGON_MODE_FILL : i32 = 0;
1049pub const POLYGON_MODE_LINE : i32 = 1;
1050pub const POLYGON_MODE_POINT : i32 = 2;
1051pub const POLYGON_MODE_FILL_RECTANGLE_NV : i32 = 1000153000;
1052pub const POLYGON_MODE_MAX_ENUM : i32 = 0x7FFFFFF;
1053pub type FrontFace = i32;
1054pub const FRONT_FACE_COUNTER_CLOCKWISE : i32 = 0;
1055pub const FRONT_FACE_CLOCKWISE : i32 = 1;
1056pub const FRONT_FACE_MAX_ENUM : i32 = 0x7FFFFFF;
1057pub type CompareOp = i32;
1058pub const COMPARE_OP_NEVER : i32 = 0;
1059pub const COMPARE_OP_LESS : i32 = 1;
1060pub const COMPARE_OP_EQUAL : i32 = 2;
1061pub const COMPARE_OP_LESS_OR_EQUAL : i32 = 3;
1062pub const COMPARE_OP_GREATER : i32 = 4;
1063pub const COMPARE_OP_NOT_EQUAL : i32 = 5;
1064pub const COMPARE_OP_GREATER_OR_EQUAL : i32 = 6;
1065pub const COMPARE_OP_ALWAYS : i32 = 7;
1066pub const COMPARE_OP_MAX_ENUM : i32 = 0x7FFFFFF;
1067pub type StencilOp = i32;
1068pub const STENCIL_OP_KEEP : i32 = 0;
1069pub const STENCIL_OP_ZERO : i32 = 1;
1070pub const STENCIL_OP_REPLACE : i32 = 2;
1071pub const STENCIL_OP_INCREMENT_AND_CLAMP : i32 = 3;
1072pub const STENCIL_OP_DECREMENT_AND_CLAMP : i32 = 4;
1073pub const STENCIL_OP_INVERT : i32 = 5;
1074pub const STENCIL_OP_INCREMENT_AND_WRAP : i32 = 6;
1075pub const STENCIL_OP_DECREMENT_AND_WRAP : i32 = 7;
1076pub const STENCIL_OP_MAX_ENUM : i32 = 0x7FFFFFF;
1077pub type LogicOp = i32;
1078pub const LOGIC_OP_CLEAR : i32 = 0;
1079pub const LOGIC_OP_AND : i32 = 1;
1080pub const LOGIC_OP_AND_REVERSE : i32 = 2;
1081pub const LOGIC_OP_COPY : i32 = 3;
1082pub const LOGIC_OP_AND_INVERTED : i32 = 4;
1083pub const LOGIC_OP_NO_OP : i32 = 5;
1084pub const LOGIC_OP_XOR : i32 = 6;
1085pub const LOGIC_OP_OR : i32 = 7;
1086pub const LOGIC_OP_NOR : i32 = 8;
1087pub const LOGIC_OP_EQUIVALENT : i32 = 9;
1088pub const LOGIC_OP_INVERT : i32 = 10;
1089pub const LOGIC_OP_OR_REVERSE : i32 = 11;
1090pub const LOGIC_OP_COPY_INVERTED : i32 = 12;
1091pub const LOGIC_OP_OR_INVERTED : i32 = 13;
1092pub const LOGIC_OP_NAND : i32 = 14;
1093pub const LOGIC_OP_SET : i32 = 15;
1094pub const LOGIC_OP_MAX_ENUM : i32 = 0x7FFFFFF;
1095pub type BlendFactor = i32;
1096pub const BLEND_FACTOR_ZERO : i32 = 0;
1097pub const BLEND_FACTOR_ONE : i32 = 1;
1098pub const BLEND_FACTOR_SRC_COLOR : i32 = 2;
1099pub const BLEND_FACTOR_ONE_MINUS_SRC_COLOR : i32 = 3;
1100pub const BLEND_FACTOR_DST_COLOR : i32 = 4;
1101pub const BLEND_FACTOR_ONE_MINUS_DST_COLOR : i32 = 5;
1102pub const BLEND_FACTOR_SRC_ALPHA : i32 = 6;
1103pub const BLEND_FACTOR_ONE_MINUS_SRC_ALPHA : i32 = 7;
1104pub const BLEND_FACTOR_DST_ALPHA : i32 = 8;
1105pub const BLEND_FACTOR_ONE_MINUS_DST_ALPHA : i32 = 9;
1106pub const BLEND_FACTOR_CONSTANT_COLOR : i32 = 10;
1107pub const BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR : i32 = 11;
1108pub const BLEND_FACTOR_CONSTANT_ALPHA : i32 = 12;
1109pub const BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA : i32 = 13;
1110pub const BLEND_FACTOR_SRC_ALPHA_SATURATE : i32 = 14;
1111pub const BLEND_FACTOR_SRC1_COLOR : i32 = 15;
1112pub const BLEND_FACTOR_ONE_MINUS_SRC1_COLOR : i32 = 16;
1113pub const BLEND_FACTOR_SRC1_ALPHA : i32 = 17;
1114pub const BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA : i32 = 18;
1115pub const BLEND_FACTOR_MAX_ENUM : i32 = 0x7FFFFFF;
1116pub type BlendOp = i32;
1117pub const BLEND_OP_ADD : i32 = 0;
1118pub const BLEND_OP_SUBTRACT : i32 = 1;
1119pub const BLEND_OP_REVERSE_SUBTRACT : i32 = 2;
1120pub const BLEND_OP_MIN : i32 = 3;
1121pub const BLEND_OP_MAX : i32 = 4;
1122pub const BLEND_OP_ZERO_EXT : i32 = 1000148000;
1123pub const BLEND_OP_SRC_EXT : i32 = 1000148001;
1124pub const BLEND_OP_DST_EXT : i32 = 1000148002;
1125pub const BLEND_OP_SRC_OVER_EXT : i32 = 1000148003;
1126pub const BLEND_OP_DST_OVER_EXT : i32 = 1000148004;
1127pub const BLEND_OP_SRC_IN_EXT : i32 = 1000148005;
1128pub const BLEND_OP_DST_IN_EXT : i32 = 1000148006;
1129pub const BLEND_OP_SRC_OUT_EXT : i32 = 1000148007;
1130pub const BLEND_OP_DST_OUT_EXT : i32 = 1000148008;
1131pub const BLEND_OP_SRC_ATOP_EXT : i32 = 1000148009;
1132pub const BLEND_OP_DST_ATOP_EXT : i32 = 1000148010;
1133pub const BLEND_OP_XOR_EXT : i32 = 1000148011;
1134pub const BLEND_OP_MULTIPLY_EXT : i32 = 1000148012;
1135pub const BLEND_OP_SCREEN_EXT : i32 = 1000148013;
1136pub const BLEND_OP_OVERLAY_EXT : i32 = 1000148014;
1137pub const BLEND_OP_DARKEN_EXT : i32 = 1000148015;
1138pub const BLEND_OP_LIGHTEN_EXT : i32 = 1000148016;
1139pub const BLEND_OP_COLORDODGE_EXT : i32 = 1000148017;
1140pub const BLEND_OP_COLORBURN_EXT : i32 = 1000148018;
1141pub const BLEND_OP_HARDLIGHT_EXT : i32 = 1000148019;
1142pub const BLEND_OP_SOFTLIGHT_EXT : i32 = 1000148020;
1143pub const BLEND_OP_DIFFERENCE_EXT : i32 = 1000148021;
1144pub const BLEND_OP_EXCLUSION_EXT : i32 = 1000148022;
1145pub const BLEND_OP_INVERT_EXT : i32 = 1000148023;
1146pub const BLEND_OP_INVERT_RGB_EXT : i32 = 1000148024;
1147pub const BLEND_OP_LINEARDODGE_EXT : i32 = 1000148025;
1148pub const BLEND_OP_LINEARBURN_EXT : i32 = 1000148026;
1149pub const BLEND_OP_VIVIDLIGHT_EXT : i32 = 1000148027;
1150pub const BLEND_OP_LINEARLIGHT_EXT : i32 = 1000148028;
1151pub const BLEND_OP_PINLIGHT_EXT : i32 = 1000148029;
1152pub const BLEND_OP_HARDMIX_EXT : i32 = 1000148030;
1153pub const BLEND_OP_HSL_HUE_EXT : i32 = 1000148031;
1154pub const BLEND_OP_HSL_SATURATION_EXT : i32 = 1000148032;
1155pub const BLEND_OP_HSL_COLOR_EXT : i32 = 1000148033;
1156pub const BLEND_OP_HSL_LUMINOSITY_EXT : i32 = 1000148034;
1157pub const BLEND_OP_PLUS_EXT : i32 = 1000148035;
1158pub const BLEND_OP_PLUS_CLAMPED_EXT : i32 = 1000148036;
1159pub const BLEND_OP_PLUS_CLAMPED_ALPHA_EXT : i32 = 1000148037;
1160pub const BLEND_OP_PLUS_DARKER_EXT : i32 = 1000148038;
1161pub const BLEND_OP_MINUS_EXT : i32 = 1000148039;
1162pub const BLEND_OP_MINUS_CLAMPED_EXT : i32 = 1000148040;
1163pub const BLEND_OP_CONTRAST_EXT : i32 = 1000148041;
1164pub const BLEND_OP_INVERT_OVG_EXT : i32 = 1000148042;
1165pub const BLEND_OP_RED_EXT : i32 = 1000148043;
1166pub const BLEND_OP_GREEN_EXT : i32 = 1000148044;
1167pub const BLEND_OP_BLUE_EXT : i32 = 1000148045;
1168pub const BLEND_OP_MAX_ENUM : i32 = 0x7FFFFFF;
1169pub type DynamicState = i32;
1170pub const DYNAMIC_STATE_VIEWPORT : i32 = 0;
1171pub const DYNAMIC_STATE_SCISSOR : i32 = 1;
1172pub const DYNAMIC_STATE_LINE_WIDTH : i32 = 2;
1173pub const DYNAMIC_STATE_DEPTH_BIAS : i32 = 3;
1174pub const DYNAMIC_STATE_BLEND_CONSTANTS : i32 = 4;
1175pub const DYNAMIC_STATE_DEPTH_BOUNDS : i32 = 5;
1176pub const DYNAMIC_STATE_STENCIL_COMPARE_MASK : i32 = 6;
1177pub const DYNAMIC_STATE_STENCIL_WRITE_MASK : i32 = 7;
1178pub const DYNAMIC_STATE_STENCIL_REFERENCE : i32 = 8;
1179pub const DYNAMIC_STATE_VIEWPORT_W_SCALING_NV : i32 = 1000087000;
1180pub const DYNAMIC_STATE_DISCARD_RECTANGLE_EXT : i32 = 1000099000;
1181pub const DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT : i32 = 1000143000;
1182pub const DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV : i32 = 1000164004;
1183pub const DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV : i32 = 1000164006;
1184pub const DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV : i32 = 1000205001;
1185pub const DYNAMIC_STATE_LINE_STIPPLE_EXT : i32 = 1000259000;
1186pub const DYNAMIC_STATE_MAX_ENUM : i32 = 0x7FFFFFF;
1187pub type Filter = i32;
1188pub const FILTER_NEAREST : i32 = 0;
1189pub const FILTER_LINEAR : i32 = 1;
1190pub const FILTER_CUBIC_IMG : i32 = 1000015000;
1191pub const FILTER_CUBIC_EXT : i32 = FILTER_CUBIC_IMG;
1192pub const FILTER_MAX_ENUM : i32 = 0x7FFFFFF;
1193pub type SamplerMipmapMode = i32;
1194pub const SAMPLER_MIPMAP_MODE_NEAREST : i32 = 0;
1195pub const SAMPLER_MIPMAP_MODE_LINEAR : i32 = 1;
1196pub const SAMPLER_MIPMAP_MODE_MAX_ENUM : i32 = 0x7FFFFFF;
1197pub type SamplerAddressMode = i32;
1198pub const SAMPLER_ADDRESS_MODE_REPEAT : i32 = 0;
1199pub const SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT : i32 = 1;
1200pub const SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE : i32 = 2;
1201pub const SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER : i32 = 3;
1202pub const SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE : i32 = 4;
1203pub const SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR : i32 = SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
1204pub const SAMPLER_ADDRESS_MODE_MAX_ENUM : i32 = 0x7FFFFFF;
1205pub type BorderColor = i32;
1206pub const BORDER_COLOR_FLOAT_TRANSPARENT_BLACK : i32 = 0;
1207pub const BORDER_COLOR_INT_TRANSPARENT_BLACK : i32 = 1;
1208pub const BORDER_COLOR_FLOAT_OPAQUE_BLACK : i32 = 2;
1209pub const BORDER_COLOR_INT_OPAQUE_BLACK : i32 = 3;
1210pub const BORDER_COLOR_FLOAT_OPAQUE_WHITE : i32 = 4;
1211pub const BORDER_COLOR_INT_OPAQUE_WHITE : i32 = 5;
1212pub const BORDER_COLOR_FLOAT_CUSTOM_EXT : i32 = 1000287003;
1213pub const BORDER_COLOR_INT_CUSTOM_EXT : i32 = 1000287004;
1214pub const BORDER_COLOR_MAX_ENUM : i32 = 0x7FFFFFF;
1215pub type DescriptorType = i32;
1216pub const DESCRIPTOR_TYPE_SAMPLER : i32 = 0;
1217pub const DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER : i32 = 1;
1218pub const DESCRIPTOR_TYPE_SAMPLED_IMAGE : i32 = 2;
1219pub const DESCRIPTOR_TYPE_STORAGE_IMAGE : i32 = 3;
1220pub const DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER : i32 = 4;
1221pub const DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER : i32 = 5;
1222pub const DESCRIPTOR_TYPE_UNIFORM_BUFFER : i32 = 6;
1223pub const DESCRIPTOR_TYPE_STORAGE_BUFFER : i32 = 7;
1224pub const DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC : i32 = 8;
1225pub const DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC : i32 = 9;
1226pub const DESCRIPTOR_TYPE_INPUT_ATTACHMENT : i32 = 10;
1227pub const DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT : i32 = 1000138000;
1228pub const DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR : i32 = 1000165000;
1229pub const DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV : i32 = DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR;
1230pub const DESCRIPTOR_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
1231pub type AttachmentLoadOp = i32;
1232pub const ATTACHMENT_LOAD_OP_LOAD : i32 = 0;
1233pub const ATTACHMENT_LOAD_OP_CLEAR : i32 = 1;
1234pub const ATTACHMENT_LOAD_OP_DONT_CARE : i32 = 2;
1235pub const ATTACHMENT_LOAD_OP_MAX_ENUM : i32 = 0x7FFFFFF;
1236pub type AttachmentStoreOp = i32;
1237pub const ATTACHMENT_STORE_OP_STORE : i32 = 0;
1238pub const ATTACHMENT_STORE_OP_DONT_CARE : i32 = 1;
1239pub const ATTACHMENT_STORE_OP_NONE_QCOM : i32 = 1000301000;
1240pub const ATTACHMENT_STORE_OP_MAX_ENUM : i32 = 0x7FFFFFF;
1241pub type PipelineBindPoint = i32;
1242pub const PIPELINE_BIND_POINT_GRAPHICS : i32 = 0;
1243pub const PIPELINE_BIND_POINT_COMPUTE : i32 = 1;
1244pub const PIPELINE_BIND_POINT_RAY_TRACING_KHR : i32 = 1000165000;
1245pub const PIPELINE_BIND_POINT_RAY_TRACING_NV : i32 = PIPELINE_BIND_POINT_RAY_TRACING_KHR;
1246pub const PIPELINE_BIND_POINT_MAX_ENUM : i32 = 0x7FFFFFF;
1247pub type CommandBufferLevel = i32;
1248pub const COMMAND_BUFFER_LEVEL_PRIMARY : i32 = 0;
1249pub const COMMAND_BUFFER_LEVEL_SECONDARY : i32 = 1;
1250pub const COMMAND_BUFFER_LEVEL_MAX_ENUM : i32 = 0x7FFFFFF;
1251pub type IndexType = i32;
1252pub const INDEX_TYPE_UINT16 : i32 = 0;
1253pub const INDEX_TYPE_UINT32 : i32 = 1;
1254pub const INDEX_TYPE_NONE_KHR : i32 = 1000165000;
1255pub const INDEX_TYPE_UINT8_EXT : i32 = 1000265000;
1256pub const INDEX_TYPE_NONE_NV : i32 = INDEX_TYPE_NONE_KHR;
1257pub const INDEX_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
1258pub type SubpassContents = i32;
1259pub const SUBPASS_CONTENTS_INLINE : i32 = 0;
1260pub const SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS : i32 = 1;
1261pub const SUBPASS_CONTENTS_MAX_ENUM : i32 = 0x7FFFFFF;
1262pub type ObjectType = i32;
1263pub const OBJECT_TYPE_UNKNOWN : i32 = 0;
1264pub const OBJECT_TYPE_INSTANCE : i32 = 1;
1265pub const OBJECT_TYPE_PHYSICAL_DEVICE : i32 = 2;
1266pub const OBJECT_TYPE_DEVICE : i32 = 3;
1267pub const OBJECT_TYPE_QUEUE : i32 = 4;
1268pub const OBJECT_TYPE_SEMAPHORE : i32 = 5;
1269pub const OBJECT_TYPE_COMMAND_BUFFER : i32 = 6;
1270pub const OBJECT_TYPE_FENCE : i32 = 7;
1271pub const OBJECT_TYPE_DEVICE_MEMORY : i32 = 8;
1272pub const OBJECT_TYPE_BUFFER : i32 = 9;
1273pub const OBJECT_TYPE_IMAGE : i32 = 10;
1274pub const OBJECT_TYPE_EVENT : i32 = 11;
1275pub const OBJECT_TYPE_QUERY_POOL : i32 = 12;
1276pub const OBJECT_TYPE_BUFFER_VIEW : i32 = 13;
1277pub const OBJECT_TYPE_IMAGE_VIEW : i32 = 14;
1278pub const OBJECT_TYPE_SHADER_MODULE : i32 = 15;
1279pub const OBJECT_TYPE_PIPELINE_CACHE : i32 = 16;
1280pub const OBJECT_TYPE_PIPELINE_LAYOUT : i32 = 17;
1281pub const OBJECT_TYPE_RENDER_PASS : i32 = 18;
1282pub const OBJECT_TYPE_PIPELINE : i32 = 19;
1283pub const OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT : i32 = 20;
1284pub const OBJECT_TYPE_SAMPLER : i32 = 21;
1285pub const OBJECT_TYPE_DESCRIPTOR_POOL : i32 = 22;
1286pub const OBJECT_TYPE_DESCRIPTOR_SET : i32 = 23;
1287pub const OBJECT_TYPE_FRAMEBUFFER : i32 = 24;
1288pub const OBJECT_TYPE_COMMAND_POOL : i32 = 25;
1289pub const OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION : i32 = 1000156000;
1290pub const OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE : i32 = 1000085000;
1291pub const OBJECT_TYPE_SURFACE_KHR : i32 = 1000000000;
1292pub const OBJECT_TYPE_SWAPCHAIN_KHR : i32 = 1000001000;
1293pub const OBJECT_TYPE_DISPLAY_KHR : i32 = 1000002000;
1294pub const OBJECT_TYPE_DISPLAY_MODE_KHR : i32 = 1000002001;
1295pub const OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT : i32 = 1000011000;
1296pub const OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT : i32 = 1000128000;
1297pub const OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR : i32 = 1000165000;
1298pub const OBJECT_TYPE_VALIDATION_CACHE_EXT : i32 = 1000160000;
1299pub const OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL : i32 = 1000210000;
1300pub const OBJECT_TYPE_DEFERRED_OPERATION_KHR : i32 = 1000268000;
1301pub const OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV : i32 = 1000277000;
1302pub const OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT : i32 = 1000295000;
1303pub const OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR : i32 = OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE;
1304pub const OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR : i32 = OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION;
1305pub const OBJECT_TYPE_ACCELERATION_STRUCTURE_NV : i32 = OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR;
1306pub const OBJECT_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
1307pub type VendorId = i32;
1308pub const VENDOR_ID_VIV : i32 = 0x10001;
1309pub const VENDOR_ID_VSI : i32 = 0x10002;
1310pub const VENDOR_ID_KAZAN : i32 = 0x10003;
1311pub const VENDOR_ID_CODEPLAY : i32 = 0x10004;
1312pub const VENDOR_ID_MESA : i32 = 0x10005;
1313pub const VENDOR_ID_MAX_ENUM : i32 = 0x7FFFFFF;
1314pub type InstanceCreateFlags = i32;
1315pub type FormatFeatureFlagBits = i32;
1316pub const FORMAT_FEATURE_SAMPLED_IMAGE_BIT : i32 = 0x00000001;
1317pub const FORMAT_FEATURE_STORAGE_IMAGE_BIT : i32 = 0x00000002;
1318pub const FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT : i32 = 0x00000004;
1319pub const FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT : i32 = 0x00000008;
1320pub const FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT : i32 = 0x00000010;
1321pub const FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT : i32 = 0x00000020;
1322pub const FORMAT_FEATURE_VERTEX_BUFFER_BIT : i32 = 0x00000040;
1323pub const FORMAT_FEATURE_COLOR_ATTACHMENT_BIT : i32 = 0x00000080;
1324pub const FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT : i32 = 0x00000100;
1325pub const FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT : i32 = 0x00000200;
1326pub const FORMAT_FEATURE_BLIT_SRC_BIT : i32 = 0x00000400;
1327pub const FORMAT_FEATURE_BLIT_DST_BIT : i32 = 0x00000800;
1328pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT : i32 = 0x00001000;
1329pub const FORMAT_FEATURE_TRANSFER_SRC_BIT : i32 = 0x00004000;
1330pub const FORMAT_FEATURE_TRANSFER_DST_BIT : i32 = 0x00008000;
1331pub const FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT : i32 = 0x00020000;
1332pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT : i32 = 0x00040000;
1333pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT : i32 = 0x00080000;
1334pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT : i32 = 0x00100000;
1335pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT : i32 = 0x00200000;
1336pub const FORMAT_FEATURE_DISJOINT_BIT : i32 = 0x00400000;
1337pub const FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT : i32 = 0x00800000;
1338pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT : i32 = 0x00010000;
1339pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG : i32 = 0x00002000;
1340pub const FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR : i32 = 0x20000000;
1341pub const FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT : i32 = 0x01000000;
1342pub const FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR : i32 = FORMAT_FEATURE_TRANSFER_SRC_BIT;
1343pub const FORMAT_FEATURE_TRANSFER_DST_BIT_KHR : i32 = FORMAT_FEATURE_TRANSFER_DST_BIT;
1344pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT : i32 = FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT;
1345pub const FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR : i32 = FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT;
1346pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR : i32 = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT;
1347pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR : i32 = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT;
1348pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR : i32 = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT;
1349pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR : i32 = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT;
1350pub const FORMAT_FEATURE_DISJOINT_BIT_KHR : i32 = FORMAT_FEATURE_DISJOINT_BIT;
1351pub const FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR : i32 = FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT;
1352pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT : i32 = FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG;
1353pub const FORMAT_FEATURE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1354pub type FormatFeatureFlags = i32;
1355pub type ImageUsageFlagBits = i32;
1356pub const IMAGE_USAGE_TRANSFER_SRC_BIT : i32 = 0x00000001;
1357pub const IMAGE_USAGE_TRANSFER_DST_BIT : i32 = 0x00000002;
1358pub const IMAGE_USAGE_SAMPLED_BIT : i32 = 0x00000004;
1359pub const IMAGE_USAGE_STORAGE_BIT : i32 = 0x00000008;
1360pub const IMAGE_USAGE_COLOR_ATTACHMENT_BIT : i32 = 0x00000010;
1361pub const IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT : i32 = 0x00000020;
1362pub const IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT : i32 = 0x00000040;
1363pub const IMAGE_USAGE_INPUT_ATTACHMENT_BIT : i32 = 0x00000080;
1364pub const IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV : i32 = 0x00000100;
1365pub const IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT : i32 = 0x00000200;
1366pub const IMAGE_USAGE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1367pub type ImageUsageFlags = i32;
1368pub type ImageCreateFlagBits = i32;
1369pub const IMAGE_CREATE_SPARSE_BINDING_BIT : i32 = 0x00000001;
1370pub const IMAGE_CREATE_SPARSE_RESIDENCY_BIT : i32 = 0x00000002;
1371pub const IMAGE_CREATE_SPARSE_ALIASED_BIT : i32 = 0x00000004;
1372pub const IMAGE_CREATE_MUTABLE_FORMAT_BIT : i32 = 0x00000008;
1373pub const IMAGE_CREATE_CUBE_COMPATIBLE_BIT : i32 = 0x00000010;
1374pub const IMAGE_CREATE_ALIAS_BIT : i32 = 0x00000400;
1375pub const IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT : i32 = 0x00000040;
1376pub const IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT : i32 = 0x00000020;
1377pub const IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT : i32 = 0x00000080;
1378pub const IMAGE_CREATE_EXTENDED_USAGE_BIT : i32 = 0x00000100;
1379pub const IMAGE_CREATE_PROTECTED_BIT : i32 = 0x00000800;
1380pub const IMAGE_CREATE_DISJOINT_BIT : i32 = 0x00000200;
1381pub const IMAGE_CREATE_CORNER_SAMPLED_BIT_NV : i32 = 0x00002000;
1382pub const IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT : i32 = 0x00001000;
1383pub const IMAGE_CREATE_SUBSAMPLED_BIT_EXT : i32 = 0x00004000;
1384pub const IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR : i32 = IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT;
1385pub const IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR : i32 = IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT;
1386pub const IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR : i32 = IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT;
1387pub const IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR : i32 = IMAGE_CREATE_EXTENDED_USAGE_BIT;
1388pub const IMAGE_CREATE_DISJOINT_BIT_KHR : i32 = IMAGE_CREATE_DISJOINT_BIT;
1389pub const IMAGE_CREATE_ALIAS_BIT_KHR : i32 = IMAGE_CREATE_ALIAS_BIT;
1390pub const IMAGE_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1391pub type ImageCreateFlags = i32;
1392pub type SampleCountFlagBits = i32;
1393pub const SAMPLE_COUNT_1_BIT : i32 = 0x00000001;
1394pub const SAMPLE_COUNT_2_BIT : i32 = 0x00000002;
1395pub const SAMPLE_COUNT_4_BIT : i32 = 0x00000004;
1396pub const SAMPLE_COUNT_8_BIT : i32 = 0x00000008;
1397pub const SAMPLE_COUNT_16_BIT : i32 = 0x00000010;
1398pub const SAMPLE_COUNT_32_BIT : i32 = 0x00000020;
1399pub const SAMPLE_COUNT_64_BIT : i32 = 0x00000040;
1400pub const SAMPLE_COUNT_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1401pub type SampleCountFlags = i32;
1402pub type QueueFlagBits = i32;
1403pub const QUEUE_GRAPHICS_BIT : i32 = 0x00000001;
1404pub const QUEUE_COMPUTE_BIT : i32 = 0x00000002;
1405pub const QUEUE_TRANSFER_BIT : i32 = 0x00000004;
1406pub const QUEUE_SPARSE_BINDING_BIT : i32 = 0x00000008;
1407pub const QUEUE_PROTECTED_BIT : i32 = 0x00000010;
1408pub const QUEUE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1409pub type QueueFlags = i32;
1410pub type MemoryPropertyFlagBits = i32;
1411pub const MEMORY_PROPERTY_DEVICE_LOCAL_BIT : i32 = 0x00000001;
1412pub const MEMORY_PROPERTY_HOST_VISIBLE_BIT : i32 = 0x00000002;
1413pub const MEMORY_PROPERTY_HOST_COHERENT_BIT : i32 = 0x00000004;
1414pub const MEMORY_PROPERTY_HOST_CACHED_BIT : i32 = 0x00000008;
1415pub const MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT : i32 = 0x00000010;
1416pub const MEMORY_PROPERTY_PROTECTED_BIT : i32 = 0x00000020;
1417pub const MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD : i32 = 0x00000040;
1418pub const MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD : i32 = 0x00000080;
1419pub const MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1420pub type MemoryPropertyFlags = i32;
1421pub type MemoryHeapFlagBits = i32;
1422pub const MEMORY_HEAP_DEVICE_LOCAL_BIT : i32 = 0x00000001;
1423pub const MEMORY_HEAP_MULTI_INSTANCE_BIT : i32 = 0x00000002;
1424pub const MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR : i32 = MEMORY_HEAP_MULTI_INSTANCE_BIT;
1425pub const MEMORY_HEAP_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1426pub type MemoryHeapFlags = i32;
1427pub type DeviceCreateFlags = i32;
1428pub type DeviceQueueCreateFlagBits = i32;
1429pub const DEVICE_QUEUE_CREATE_PROTECTED_BIT : i32 = 0x00000001;
1430pub const DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1431pub type DeviceQueueCreateFlags = i32;
1432pub type PipelineStageFlagBits = i32;
1433pub const PIPELINE_STAGE_TOP_OF_PIPE_BIT : i32 = 0x00000001;
1434pub const PIPELINE_STAGE_DRAW_INDIRECT_BIT : i32 = 0x00000002;
1435pub const PIPELINE_STAGE_VERTEX_INPUT_BIT : i32 = 0x00000004;
1436pub const PIPELINE_STAGE_VERTEX_SHADER_BIT : i32 = 0x00000008;
1437pub const PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT : i32 = 0x00000010;
1438pub const PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT : i32 = 0x00000020;
1439pub const PIPELINE_STAGE_GEOMETRY_SHADER_BIT : i32 = 0x00000040;
1440pub const PIPELINE_STAGE_FRAGMENT_SHADER_BIT : i32 = 0x00000080;
1441pub const PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT : i32 = 0x00000100;
1442pub const PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT : i32 = 0x00000200;
1443pub const PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT : i32 = 0x00000400;
1444pub const PIPELINE_STAGE_COMPUTE_SHADER_BIT : i32 = 0x00000800;
1445pub const PIPELINE_STAGE_TRANSFER_BIT : i32 = 0x00001000;
1446pub const PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT : i32 = 0x00002000;
1447pub const PIPELINE_STAGE_HOST_BIT : i32 = 0x00004000;
1448pub const PIPELINE_STAGE_ALL_GRAPHICS_BIT : i32 = 0x00008000;
1449pub const PIPELINE_STAGE_ALL_COMMANDS_BIT : i32 = 0x00010000;
1450pub const PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT : i32 = 0x01000000;
1451pub const PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT : i32 = 0x00040000;
1452pub const PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR : i32 = 0x00200000;
1453pub const PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR : i32 = 0x02000000;
1454pub const PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV : i32 = 0x00400000;
1455pub const PIPELINE_STAGE_TASK_SHADER_BIT_NV : i32 = 0x00080000;
1456pub const PIPELINE_STAGE_MESH_SHADER_BIT_NV : i32 = 0x00100000;
1457pub const PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT : i32 = 0x00800000;
1458pub const PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV : i32 = 0x00020000;
1459pub const PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV : i32 = PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR;
1460pub const PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV : i32 = PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR;
1461pub const PIPELINE_STAGE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1462pub type PipelineStageFlags = i32;
1463pub type MemoryMapFlags = i32;
1464pub type ImageAspectFlagBits = i32;
1465pub const IMAGE_ASPECT_COLOR_BIT : i32 = 0x00000001;
1466pub const IMAGE_ASPECT_DEPTH_BIT : i32 = 0x00000002;
1467pub const IMAGE_ASPECT_STENCIL_BIT : i32 = 0x00000004;
1468pub const IMAGE_ASPECT_METADATA_BIT : i32 = 0x00000008;
1469pub const IMAGE_ASPECT_PLANE_0_BIT : i32 = 0x00000010;
1470pub const IMAGE_ASPECT_PLANE_1_BIT : i32 = 0x00000020;
1471pub const IMAGE_ASPECT_PLANE_2_BIT : i32 = 0x00000040;
1472pub const IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT : i32 = 0x00000080;
1473pub const IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT : i32 = 0x00000100;
1474pub const IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT : i32 = 0x00000200;
1475pub const IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT : i32 = 0x00000400;
1476pub const IMAGE_ASPECT_PLANE_0_BIT_KHR : i32 = IMAGE_ASPECT_PLANE_0_BIT;
1477pub const IMAGE_ASPECT_PLANE_1_BIT_KHR : i32 = IMAGE_ASPECT_PLANE_1_BIT;
1478pub const IMAGE_ASPECT_PLANE_2_BIT_KHR : i32 = IMAGE_ASPECT_PLANE_2_BIT;
1479pub const IMAGE_ASPECT_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1480pub type ImageAspectFlags = i32;
1481pub type SparseImageFormatFlagBits = i32;
1482pub const SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT : i32 = 0x00000001;
1483pub const SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT : i32 = 0x00000002;
1484pub const SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT : i32 = 0x00000004;
1485pub const SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1486pub type SparseImageFormatFlags = i32;
1487pub type SparseMemoryBindFlagBits = i32;
1488pub const SPARSE_MEMORY_BIND_METADATA_BIT : i32 = 0x00000001;
1489pub const SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1490pub type SparseMemoryBindFlags = i32;
1491pub type FenceCreateFlagBits = i32;
1492pub const FENCE_CREATE_SIGNALED_BIT : i32 = 0x00000001;
1493pub const FENCE_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1494pub type FenceCreateFlags = i32;
1495pub type SemaphoreCreateFlags = i32;
1496pub type EventCreateFlags = i32;
1497pub type QueryPoolCreateFlags = i32;
1498pub type QueryPipelineStatisticFlagBits = i32;
1499pub const QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT : i32 = 0x00000001;
1500pub const QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT : i32 = 0x00000002;
1501pub const QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT : i32 = 0x00000004;
1502pub const QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT : i32 = 0x00000008;
1503pub const QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT : i32 = 0x00000010;
1504pub const QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT : i32 = 0x00000020;
1505pub const QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT : i32 = 0x00000040;
1506pub const QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT : i32 = 0x00000080;
1507pub const QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT : i32 = 0x00000100;
1508pub const QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT : i32 = 0x00000200;
1509pub const QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT : i32 = 0x00000400;
1510pub const QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1511pub type QueryPipelineStatisticFlags = i32;
1512pub type QueryResultFlagBits = i32;
1513pub const QUERY_RESULT_64_BIT : i32 = 0x00000001;
1514pub const QUERY_RESULT_WAIT_BIT : i32 = 0x00000002;
1515pub const QUERY_RESULT_WITH_AVAILABILITY_BIT : i32 = 0x00000004;
1516pub const QUERY_RESULT_PARTIAL_BIT : i32 = 0x00000008;
1517pub const QUERY_RESULT_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1518pub type QueryResultFlags = i32;
1519pub type BufferCreateFlagBits = i32;
1520pub const BUFFER_CREATE_SPARSE_BINDING_BIT : i32 = 0x00000001;
1521pub const BUFFER_CREATE_SPARSE_RESIDENCY_BIT : i32 = 0x00000002;
1522pub const BUFFER_CREATE_SPARSE_ALIASED_BIT : i32 = 0x00000004;
1523pub const BUFFER_CREATE_PROTECTED_BIT : i32 = 0x00000008;
1524pub const BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT : i32 = 0x00000010;
1525pub const BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT : i32 = BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT;
1526pub const BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR : i32 = BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT;
1527pub const BUFFER_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1528pub type BufferCreateFlags = i32;
1529pub type BufferUsageFlagBits = i32;
1530pub const BUFFER_USAGE_TRANSFER_SRC_BIT : i32 = 0x00000001;
1531pub const BUFFER_USAGE_TRANSFER_DST_BIT : i32 = 0x00000002;
1532pub const BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT : i32 = 0x00000004;
1533pub const BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT : i32 = 0x00000008;
1534pub const BUFFER_USAGE_UNIFORM_BUFFER_BIT : i32 = 0x00000010;
1535pub const BUFFER_USAGE_STORAGE_BUFFER_BIT : i32 = 0x00000020;
1536pub const BUFFER_USAGE_INDEX_BUFFER_BIT : i32 = 0x00000040;
1537pub const BUFFER_USAGE_VERTEX_BUFFER_BIT : i32 = 0x00000080;
1538pub const BUFFER_USAGE_INDIRECT_BUFFER_BIT : i32 = 0x00000100;
1539pub const BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT : i32 = 0x00020000;
1540pub const BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT : i32 = 0x00000800;
1541pub const BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT : i32 = 0x00001000;
1542pub const BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT : i32 = 0x00000200;
1543pub const BUFFER_USAGE_RAY_TRACING_BIT_KHR : i32 = 0x00000400;
1544pub const BUFFER_USAGE_RAY_TRACING_BIT_NV : i32 = BUFFER_USAGE_RAY_TRACING_BIT_KHR;
1545pub const BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT : i32 = BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT;
1546pub const BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR : i32 = BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT;
1547pub const BUFFER_USAGE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1548pub type BufferUsageFlags = i32;
1549pub type BufferViewCreateFlags = i32;
1550pub type ImageViewCreateFlagBits = i32;
1551pub const IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT : i32 = 0x00000001;
1552pub const IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1553pub type ImageViewCreateFlags = i32;
1554pub type ShaderModuleCreateFlagBits = i32;
1555pub const SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1556pub type ShaderModuleCreateFlags = i32;
1557pub type PipelineCacheCreateFlagBits = i32;
1558pub const PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT : i32 = 0x00000001;
1559pub const PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1560pub type PipelineCacheCreateFlags = i32;
1561pub type PipelineCreateFlagBits = i32;
1562pub const PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT : i32 = 0x00000001;
1563pub const PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT : i32 = 0x00000002;
1564pub const PIPELINE_CREATE_DERIVATIVE_BIT : i32 = 0x00000004;
1565pub const PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT : i32 = 0x00000008;
1566pub const PIPELINE_CREATE_DISPATCH_BASE_BIT : i32 = 0x00000010;
1567pub const PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR : i32 = 0x00004000;
1568pub const PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR : i32 = 0x00008000;
1569pub const PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR : i32 = 0x00010000;
1570pub const PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR : i32 = 0x00020000;
1571pub const PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR : i32 = 0x00001000;
1572pub const PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR : i32 = 0x00002000;
1573pub const PIPELINE_CREATE_DEFER_COMPILE_BIT_NV : i32 = 0x00000020;
1574pub const PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR : i32 = 0x00000040;
1575pub const PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR : i32 = 0x00000080;
1576pub const PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV : i32 = 0x00040000;
1577pub const PIPELINE_CREATE_LIBRARY_BIT_KHR : i32 = 0x00000800;
1578pub const PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT : i32 = 0x00000100;
1579pub const PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT : i32 = 0x00000200;
1580pub const PIPELINE_CREATE_DISPATCH_BASE : i32 = PIPELINE_CREATE_DISPATCH_BASE_BIT;
1581pub const PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR : i32 = PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT;
1582pub const PIPELINE_CREATE_DISPATCH_BASE_KHR : i32 = PIPELINE_CREATE_DISPATCH_BASE;
1583pub const PIPELINE_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1584pub type PipelineCreateFlags = i32;
1585pub type PipelineShaderStageCreateFlagBits = i32;
1586pub const PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT : i32 = 0x00000001;
1587pub const PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT : i32 = 0x00000002;
1588pub const PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1589pub type PipelineShaderStageCreateFlags = i32;
1590pub type ShaderStageFlagBits = i32;
1591pub const SHADER_STAGE_VERTEX_BIT : i32 = 0x00000001;
1592pub const SHADER_STAGE_TESSELLATION_CONTROL_BIT : i32 = 0x00000002;
1593pub const SHADER_STAGE_TESSELLATION_EVALUATION_BIT : i32 = 0x00000004;
1594pub const SHADER_STAGE_GEOMETRY_BIT : i32 = 0x00000008;
1595pub const SHADER_STAGE_FRAGMENT_BIT : i32 = 0x00000010;
1596pub const SHADER_STAGE_COMPUTE_BIT : i32 = 0x00000020;
1597pub const SHADER_STAGE_ALL_GRAPHICS : i32 = 0x0000001F;
1598pub const SHADER_STAGE_ALL : i32 = 0x7FFFFFFF;
1599pub const SHADER_STAGE_RAYGEN_BIT_KHR : i32 = 0x00000100;
1600pub const SHADER_STAGE_ANY_HIT_BIT_KHR : i32 = 0x00000200;
1601pub const SHADER_STAGE_CLOSEST_HIT_BIT_KHR : i32 = 0x00000400;
1602pub const SHADER_STAGE_MISS_BIT_KHR : i32 = 0x00000800;
1603pub const SHADER_STAGE_INTERSECTION_BIT_KHR : i32 = 0x00001000;
1604pub const SHADER_STAGE_CALLABLE_BIT_KHR : i32 = 0x00002000;
1605pub const SHADER_STAGE_TASK_BIT_NV : i32 = 0x00000040;
1606pub const SHADER_STAGE_MESH_BIT_NV : i32 = 0x00000080;
1607pub const SHADER_STAGE_RAYGEN_BIT_NV : i32 = SHADER_STAGE_RAYGEN_BIT_KHR;
1608pub const SHADER_STAGE_ANY_HIT_BIT_NV : i32 = SHADER_STAGE_ANY_HIT_BIT_KHR;
1609pub const SHADER_STAGE_CLOSEST_HIT_BIT_NV : i32 = SHADER_STAGE_CLOSEST_HIT_BIT_KHR;
1610pub const SHADER_STAGE_MISS_BIT_NV : i32 = SHADER_STAGE_MISS_BIT_KHR;
1611pub const SHADER_STAGE_INTERSECTION_BIT_NV : i32 = SHADER_STAGE_INTERSECTION_BIT_KHR;
1612pub const SHADER_STAGE_CALLABLE_BIT_NV : i32 = SHADER_STAGE_CALLABLE_BIT_KHR;
1613pub const SHADER_STAGE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1614pub type PipelineVertexInputStateCreateFlags = i32;
1615pub type PipelineInputAssemblyStateCreateFlags = i32;
1616pub type PipelineTessellationStateCreateFlags = i32;
1617pub type PipelineViewportStateCreateFlags = i32;
1618pub type PipelineRasterizationStateCreateFlags = i32;
1619pub type CullModeFlagBits = i32;
1620pub const CULL_MODE_NONE : i32 = 0;
1621pub const CULL_MODE_FRONT_BIT : i32 = 0x00000001;
1622pub const CULL_MODE_BACK_BIT : i32 = 0x00000002;
1623pub const CULL_MODE_FRONT_AND_BACK : i32 = 0x00000003;
1624pub const CULL_MODE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1625pub type CullModeFlags = i32;
1626pub type PipelineMultisampleStateCreateFlags = i32;
1627pub type PipelineDepthStencilStateCreateFlags = i32;
1628pub type PipelineColorBlendStateCreateFlags = i32;
1629pub type ColorComponentFlagBits = i32;
1630pub const COLOR_COMPONENT_R_BIT : i32 = 0x00000001;
1631pub const COLOR_COMPONENT_G_BIT : i32 = 0x00000002;
1632pub const COLOR_COMPONENT_B_BIT : i32 = 0x00000004;
1633pub const COLOR_COMPONENT_A_BIT : i32 = 0x00000008;
1634pub const COLOR_COMPONENT_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1635pub type ColorComponentFlags = i32;
1636pub type PipelineDynamicStateCreateFlags = i32;
1637pub type PipelineLayoutCreateFlags = i32;
1638pub type ShaderStageFlags = i32;
1639pub type SamplerCreateFlagBits = i32;
1640pub const SAMPLER_CREATE_SUBSAMPLED_BIT_EXT : i32 = 0x00000001;
1641pub const SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT : i32 = 0x00000002;
1642pub const SAMPLER_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1643pub type SamplerCreateFlags = i32;
1644pub type DescriptorSetLayoutCreateFlagBits = i32;
1645pub const DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT : i32 = 0x00000002;
1646pub const DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR : i32 = 0x00000001;
1647pub const DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT : i32 = DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT;
1648pub const DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1649pub type DescriptorSetLayoutCreateFlags = i32;
1650pub type DescriptorPoolCreateFlagBits = i32;
1651pub const DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT : i32 = 0x00000001;
1652pub const DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT : i32 = 0x00000002;
1653pub const DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT : i32 = DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT;
1654pub const DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1655pub type DescriptorPoolCreateFlags = i32;
1656pub type DescriptorPoolResetFlags = i32;
1657pub type FramebufferCreateFlagBits = i32;
1658pub const FRAMEBUFFER_CREATE_IMAGELESS_BIT : i32 = 0x00000001;
1659pub const FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR : i32 = FRAMEBUFFER_CREATE_IMAGELESS_BIT;
1660pub const FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1661pub type FramebufferCreateFlags = i32;
1662pub type RenderPassCreateFlagBits = i32;
1663pub const RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM : i32 = 0x00000002;
1664pub const RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1665pub type RenderPassCreateFlags = i32;
1666pub type AttachmentDescriptionFlagBits = i32;
1667pub const ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT : i32 = 0x00000001;
1668pub const ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1669pub type AttachmentDescriptionFlags = i32;
1670pub type SubpassDescriptionFlagBits = i32;
1671pub const SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX : i32 = 0x00000001;
1672pub const SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX : i32 = 0x00000002;
1673pub const SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM : i32 = 0x00000004;
1674pub const SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM : i32 = 0x00000008;
1675pub const SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1676pub type SubpassDescriptionFlags = i32;
1677pub type AccessFlagBits = i32;
1678pub const ACCESS_INDIRECT_COMMAND_READ_BIT : i32 = 0x00000001;
1679pub const ACCESS_INDEX_READ_BIT : i32 = 0x00000002;
1680pub const ACCESS_VERTEX_ATTRIBUTE_READ_BIT : i32 = 0x00000004;
1681pub const ACCESS_UNIFORM_READ_BIT : i32 = 0x00000008;
1682pub const ACCESS_INPUT_ATTACHMENT_READ_BIT : i32 = 0x00000010;
1683pub const ACCESS_SHADER_READ_BIT : i32 = 0x00000020;
1684pub const ACCESS_SHADER_WRITE_BIT : i32 = 0x00000040;
1685pub const ACCESS_COLOR_ATTACHMENT_READ_BIT : i32 = 0x00000080;
1686pub const ACCESS_COLOR_ATTACHMENT_WRITE_BIT : i32 = 0x00000100;
1687pub const ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT : i32 = 0x00000200;
1688pub const ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT : i32 = 0x00000400;
1689pub const ACCESS_TRANSFER_READ_BIT : i32 = 0x00000800;
1690pub const ACCESS_TRANSFER_WRITE_BIT : i32 = 0x00001000;
1691pub const ACCESS_HOST_READ_BIT : i32 = 0x00002000;
1692pub const ACCESS_HOST_WRITE_BIT : i32 = 0x00004000;
1693pub const ACCESS_MEMORY_READ_BIT : i32 = 0x00008000;
1694pub const ACCESS_MEMORY_WRITE_BIT : i32 = 0x00010000;
1695pub const ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT : i32 = 0x02000000;
1696pub const ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT : i32 = 0x04000000;
1697pub const ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT : i32 = 0x08000000;
1698pub const ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT : i32 = 0x00100000;
1699pub const ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT : i32 = 0x00080000;
1700pub const ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR : i32 = 0x00200000;
1701pub const ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR : i32 = 0x00400000;
1702pub const ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV : i32 = 0x00800000;
1703pub const ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT : i32 = 0x01000000;
1704pub const ACCESS_COMMAND_PREPROCESS_READ_BIT_NV : i32 = 0x00020000;
1705pub const ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV : i32 = 0x00040000;
1706pub const ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV : i32 = ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR;
1707pub const ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV : i32 = ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR;
1708pub const ACCESS_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1709pub type AccessFlags = i32;
1710pub type DependencyFlagBits = i32;
1711pub const DEPENDENCY_BY_REGION_BIT : i32 = 0x00000001;
1712pub const DEPENDENCY_DEVICE_GROUP_BIT : i32 = 0x00000004;
1713pub const DEPENDENCY_VIEW_LOCAL_BIT : i32 = 0x00000002;
1714pub const DEPENDENCY_VIEW_LOCAL_BIT_KHR : i32 = DEPENDENCY_VIEW_LOCAL_BIT;
1715pub const DEPENDENCY_DEVICE_GROUP_BIT_KHR : i32 = DEPENDENCY_DEVICE_GROUP_BIT;
1716pub const DEPENDENCY_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1717pub type DependencyFlags = i32;
1718pub type CommandPoolCreateFlagBits = i32;
1719pub const COMMAND_POOL_CREATE_TRANSIENT_BIT : i32 = 0x00000001;
1720pub const COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT : i32 = 0x00000002;
1721pub const COMMAND_POOL_CREATE_PROTECTED_BIT : i32 = 0x00000004;
1722pub const COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1723pub type CommandPoolCreateFlags = i32;
1724pub type CommandPoolResetFlagBits = i32;
1725pub const COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT : i32 = 0x00000001;
1726pub const COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1727pub type CommandPoolResetFlags = i32;
1728pub type CommandBufferUsageFlagBits = i32;
1729pub const COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT : i32 = 0x00000001;
1730pub const COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT : i32 = 0x00000002;
1731pub const COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT : i32 = 0x00000004;
1732pub const COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1733pub type CommandBufferUsageFlags = i32;
1734pub type QueryControlFlagBits = i32;
1735pub const QUERY_CONTROL_PRECISE_BIT : i32 = 0x00000001;
1736pub const QUERY_CONTROL_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1737pub type QueryControlFlags = i32;
1738pub type CommandBufferResetFlagBits = i32;
1739pub const COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT : i32 = 0x00000001;
1740pub const COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1741pub type CommandBufferResetFlags = i32;
1742pub type StencilFaceFlagBits = i32;
1743pub const STENCIL_FACE_FRONT_BIT : i32 = 0x00000001;
1744pub const STENCIL_FACE_BACK_BIT : i32 = 0x00000002;
1745pub const STENCIL_FACE_FRONT_AND_BACK : i32 = 0x00000003;
1746pub const STENCIL_FRONT_AND_BACK : i32 = STENCIL_FACE_FRONT_AND_BACK;
1747pub const STENCIL_FACE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
1748pub type StencilFaceFlags = i32;
1749
1750#[repr(C)]
1751#[derive(Debug, Copy, Clone)]
1752pub struct ApplicationInfo {
1753	pub sType : StructureType,
1754	pub pNext : *const void,
1755	pub pApplicationName : *const i8,
1756	pub applicationVersion : u32,
1757	pub pEngineName : *const i8,
1758	pub engineVersion : u32,
1759	pub apiVersion : u32,
1760}
1761
1762#[repr(C)]
1763#[derive(Debug, Copy, Clone)]
1764pub struct InstanceCreateInfo {
1765	pub sType : StructureType,
1766	pub pNext : *const void,
1767	pub flags : i32,
1768	pub pApplicationInfo : *const ApplicationInfo,
1769	pub enabledLayerCount : u32,
1770	pub ppEnabledLayerNames : *const *const i8,
1771	pub enabledExtensionCount : u32,
1772	pub ppEnabledExtensionNames : *const *const i8,
1773}
1774
1775#[repr(C)]
1776#[derive(Debug, Copy, Clone)]
1777pub struct AllocationCallbacks {
1778	pub pUserData : *mut void,
1779	pub pfnAllocation : u64,
1780	pub pfnReallocation : u64,
1781	pub pfnFree : u64,
1782	pub pfnInternalAllocation : u64,
1783	pub pfnInternalFree : u64,
1784}
1785
1786#[repr(C)]
1787#[derive(Debug, Copy, Clone)]
1788pub struct PhysicalDeviceFeatures {
1789	pub robustBufferAccess : Bool32,
1790	pub fullDrawIndexUint32 : Bool32,
1791	pub imageCubeArray : Bool32,
1792	pub independentBlend : Bool32,
1793	pub geometryShader : Bool32,
1794	pub tessellationShader : Bool32,
1795	pub sampleRateShading : Bool32,
1796	pub dualSrcBlend : Bool32,
1797	pub logicOp : Bool32,
1798	pub multiDrawIndirect : Bool32,
1799	pub drawIndirectFirstInstance : Bool32,
1800	pub depthClamp : Bool32,
1801	pub depthBiasClamp : Bool32,
1802	pub fillModeNonSolid : Bool32,
1803	pub depthBounds : Bool32,
1804	pub wideLines : Bool32,
1805	pub largePoints : Bool32,
1806	pub alphaToOne : Bool32,
1807	pub multiViewport : Bool32,
1808	pub samplerAnisotropy : Bool32,
1809	pub textureCompressionETC2 : Bool32,
1810	pub textureCompressionASTC_LDR : Bool32,
1811	pub textureCompressionBC : Bool32,
1812	pub occlusionQueryPrecise : Bool32,
1813	pub pipelineStatisticsQuery : Bool32,
1814	pub vertexPipelineStoresAndAtomics : Bool32,
1815	pub fragmentStoresAndAtomics : Bool32,
1816	pub shaderTessellationAndGeometryPointSize : Bool32,
1817	pub shaderImageGatherExtended : Bool32,
1818	pub shaderStorageImageExtendedFormats : Bool32,
1819	pub shaderStorageImageMultisample : Bool32,
1820	pub shaderStorageImageReadWithoutFormat : Bool32,
1821	pub shaderStorageImageWriteWithoutFormat : Bool32,
1822	pub shaderUniformBufferArrayDynamicIndexing : Bool32,
1823	pub shaderSampledImageArrayDynamicIndexing : Bool32,
1824	pub shaderStorageBufferArrayDynamicIndexing : Bool32,
1825	pub shaderStorageImageArrayDynamicIndexing : Bool32,
1826	pub shaderClipDistance : Bool32,
1827	pub shaderCullDistance : Bool32,
1828	pub shaderFloat64 : Bool32,
1829	pub shaderInt64 : Bool32,
1830	pub shaderInt16 : Bool32,
1831	pub shaderResourceResidency : Bool32,
1832	pub shaderResourceMinLod : Bool32,
1833	pub sparseBinding : Bool32,
1834	pub sparseResidencyBuffer : Bool32,
1835	pub sparseResidencyImage2D : Bool32,
1836	pub sparseResidencyImage3D : Bool32,
1837	pub sparseResidency2Samples : Bool32,
1838	pub sparseResidency4Samples : Bool32,
1839	pub sparseResidency8Samples : Bool32,
1840	pub sparseResidency16Samples : Bool32,
1841	pub sparseResidencyAliased : Bool32,
1842	pub variableMultisampleRate : Bool32,
1843	pub inheritedQueries : Bool32,
1844}
1845
1846#[repr(C)]
1847#[derive(Debug, Copy, Clone)]
1848pub struct FormatProperties {
1849	pub linearTilingFeatures : FormatFeatureFlags,
1850	pub optimalTilingFeatures : FormatFeatureFlags,
1851	pub bufferFeatures : FormatFeatureFlags,
1852}
1853
1854#[repr(C)]
1855#[derive(Debug, Copy, Clone)]
1856pub struct Extent3D {
1857	pub width : u32,
1858	pub height : u32,
1859	pub depth : u32,
1860}
1861
1862#[repr(C)]
1863#[derive(Debug, Copy, Clone)]
1864pub struct ImageFormatProperties {
1865	pub maxExtent : Extent3D,
1866	pub maxMipLevels : u32,
1867	pub maxArrayLayers : u32,
1868	pub sampleCounts : SampleCountFlags,
1869	pub maxResourceSize : DeviceSize,
1870}
1871
1872#[repr(C)]
1873#[derive(Debug, Copy, Clone)]
1874pub struct PhysicalDeviceLimits {
1875	pub maxImageDimension1D : u32,
1876	pub maxImageDimension2D : u32,
1877	pub maxImageDimension3D : u32,
1878	pub maxImageDimensionCube : u32,
1879	pub maxImageArrayLayers : u32,
1880	pub maxTexelBufferElements : u32,
1881	pub maxUniformBufferRange : u32,
1882	pub maxStorageBufferRange : u32,
1883	pub maxPushConstantsSize : u32,
1884	pub maxMemoryAllocationCount : u32,
1885	pub maxSamplerAllocationCount : u32,
1886	pub bufferImageGranularity : DeviceSize,
1887	pub sparseAddressSpaceSize : DeviceSize,
1888	pub maxBoundDescriptorSets : u32,
1889	pub maxPerStageDescriptorSamplers : u32,
1890	pub maxPerStageDescriptorUniformBuffers : u32,
1891	pub maxPerStageDescriptorStorageBuffers : u32,
1892	pub maxPerStageDescriptorSampledImages : u32,
1893	pub maxPerStageDescriptorStorageImages : u32,
1894	pub maxPerStageDescriptorInputAttachments : u32,
1895	pub maxPerStageResources : u32,
1896	pub maxDescriptorSetSamplers : u32,
1897	pub maxDescriptorSetUniformBuffers : u32,
1898	pub maxDescriptorSetUniformBuffersDynamic : u32,
1899	pub maxDescriptorSetStorageBuffers : u32,
1900	pub maxDescriptorSetStorageBuffersDynamic : u32,
1901	pub maxDescriptorSetSampledImages : u32,
1902	pub maxDescriptorSetStorageImages : u32,
1903	pub maxDescriptorSetInputAttachments : u32,
1904	pub maxVertexInputAttributes : u32,
1905	pub maxVertexInputBindings : u32,
1906	pub maxVertexInputAttributeOffset : u32,
1907	pub maxVertexInputBindingStride : u32,
1908	pub maxVertexOutputComponents : u32,
1909	pub maxTessellationGenerationLevel : u32,
1910	pub maxTessellationPatchSize : u32,
1911	pub maxTessellationControlPerVertexInputComponents : u32,
1912	pub maxTessellationControlPerVertexOutputComponents : u32,
1913	pub maxTessellationControlPerPatchOutputComponents : u32,
1914	pub maxTessellationControlTotalOutputComponents : u32,
1915	pub maxTessellationEvaluationInputComponents : u32,
1916	pub maxTessellationEvaluationOutputComponents : u32,
1917	pub maxGeometryShaderInvocations : u32,
1918	pub maxGeometryInputComponents : u32,
1919	pub maxGeometryOutputComponents : u32,
1920	pub maxGeometryOutputVertices : u32,
1921	pub maxGeometryTotalOutputComponents : u32,
1922	pub maxFragmentInputComponents : u32,
1923	pub maxFragmentOutputAttachments : u32,
1924	pub maxFragmentDualSrcAttachments : u32,
1925	pub maxFragmentCombinedOutputResources : u32,
1926	pub maxComputeSharedMemorySize : u32,
1927	pub maxComputeWorkGroupCount : [u32;3],
1928	pub maxComputeWorkGroupInvocations : u32,
1929	pub maxComputeWorkGroupSize : [u32;3],
1930	pub subPixelPrecisionBits : u32,
1931	pub subTexelPrecisionBits : u32,
1932	pub mipmapPrecisionBits : u32,
1933	pub maxDrawIndexedIndexValue : u32,
1934	pub maxDrawIndirectCount : u32,
1935	pub maxSamplerLodBias : f32,
1936	pub maxSamplerAnisotropy : f32,
1937	pub maxViewports : u32,
1938	pub maxViewportDimensions : [u32;2],
1939	pub viewportBoundsRange : [f32;2],
1940	pub viewportSubPixelBits : u32,
1941	pub minMemoryMapAlignment : usize,
1942	pub minTexelBufferOffsetAlignment : DeviceSize,
1943	pub minUniformBufferOffsetAlignment : DeviceSize,
1944	pub minStorageBufferOffsetAlignment : DeviceSize,
1945	pub minTexelOffset : i32,
1946	pub maxTexelOffset : u32,
1947	pub minTexelGatherOffset : i32,
1948	pub maxTexelGatherOffset : u32,
1949	pub minInterpolationOffset : f32,
1950	pub maxInterpolationOffset : f32,
1951	pub subPixelInterpolationOffsetBits : u32,
1952	pub maxFramebufferWidth : u32,
1953	pub maxFramebufferHeight : u32,
1954	pub maxFramebufferLayers : u32,
1955	pub framebufferColorSampleCounts : SampleCountFlags,
1956	pub framebufferDepthSampleCounts : SampleCountFlags,
1957	pub framebufferStencilSampleCounts : SampleCountFlags,
1958	pub framebufferNoAttachmentsSampleCounts : SampleCountFlags,
1959	pub maxColorAttachments : u32,
1960	pub sampledImageColorSampleCounts : SampleCountFlags,
1961	pub sampledImageIntegerSampleCounts : SampleCountFlags,
1962	pub sampledImageDepthSampleCounts : SampleCountFlags,
1963	pub sampledImageStencilSampleCounts : SampleCountFlags,
1964	pub storageImageSampleCounts : SampleCountFlags,
1965	pub maxSampleMaskWords : u32,
1966	pub timestampComputeAndGraphics : Bool32,
1967	pub timestampPeriod : f32,
1968	pub maxClipDistances : u32,
1969	pub maxCullDistances : u32,
1970	pub maxCombinedClipAndCullDistances : u32,
1971	pub discreteQueuePriorities : u32,
1972	pub pointSizeRange : [f32;2],
1973	pub lineWidthRange : [f32;2],
1974	pub pointSizeGranularity : f32,
1975	pub lineWidthGranularity : f32,
1976	pub strictLines : Bool32,
1977	pub standardSampleLocations : Bool32,
1978	pub optimalBufferCopyOffsetAlignment : DeviceSize,
1979	pub optimalBufferCopyRowPitchAlignment : DeviceSize,
1980	pub nonCoherentAtomSize : DeviceSize,
1981}
1982
1983#[repr(C)]
1984#[derive(Debug, Copy, Clone)]
1985pub struct PhysicalDeviceSparseProperties {
1986	pub residencyStandard2DBlockShape : Bool32,
1987	pub residencyStandard2DMultisampleBlockShape : Bool32,
1988	pub residencyStandard3DBlockShape : Bool32,
1989	pub residencyAlignedMipSize : Bool32,
1990	pub residencyNonResidentStrict : Bool32,
1991}
1992
1993#[repr(C)]
1994#[derive(Copy, Clone)]
1995pub struct PhysicalDeviceProperties {
1996	pub apiVersion : u32,
1997	pub driverVersion : u32,
1998	pub vendorID : u32,
1999	pub deviceID : u32,
2000	pub deviceType : PhysicalDeviceType,
2001	pub deviceName : [i8;MAX_PHYSICAL_DEVICE_NAME_SIZE],
2002	pub pipelineCacheUUID : [u8;UUID_SIZE],
2003	pub limits : PhysicalDeviceLimits,
2004	pub sparseProperties : PhysicalDeviceSparseProperties,
2005}
2006
2007#[repr(C)]
2008#[derive(Debug, Copy, Clone)]
2009pub struct QueueFamilyProperties {
2010	pub queueFlags : QueueFlags,
2011	pub queueCount : u32,
2012	pub timestampValidBits : u32,
2013	pub minImageTransferGranularity : Extent3D,
2014}
2015
2016#[repr(C)]
2017#[derive(Debug, Copy, Clone)]
2018pub struct MemoryType {
2019	pub propertyFlags : MemoryPropertyFlags,
2020	pub heapIndex : u32,
2021}
2022
2023#[repr(C)]
2024#[derive(Debug, Copy, Clone)]
2025pub struct MemoryHeap {
2026	pub size : DeviceSize,
2027	pub flags : MemoryHeapFlags,
2028}
2029
2030#[repr(C)]
2031#[derive(Debug, Copy, Clone)]
2032pub struct PhysicalDeviceMemoryProperties {
2033	pub memoryTypeCount : u32,
2034	pub memoryTypes : [MemoryType;MAX_MEMORY_TYPES],
2035	pub memoryHeapCount : u32,
2036	pub memoryHeaps : [MemoryHeap;MAX_MEMORY_HEAPS],
2037}
2038
2039#[repr(C)]
2040#[derive(Debug, Copy, Clone)]
2041pub struct DeviceQueueCreateInfo {
2042	pub sType : StructureType,
2043	pub pNext : *const void,
2044	pub flags : DeviceQueueCreateFlags,
2045	pub queueFamilyIndex : u32,
2046	pub queueCount : u32,
2047	pub pQueuePriorities : *const f32,
2048}
2049
2050#[repr(C)]
2051#[derive(Debug, Copy, Clone)]
2052pub struct DeviceCreateInfo {
2053	pub sType : StructureType,
2054	pub pNext : *const void,
2055	pub flags : DeviceCreateFlags,
2056	pub queueCreateInfoCount : u32,
2057	pub pQueueCreateInfos : *const DeviceQueueCreateInfo,
2058	pub enabledLayerCount : u32,
2059	pub ppEnabledLayerNames : *const *const i8,
2060	pub enabledExtensionCount : u32,
2061	pub ppEnabledExtensionNames : *const *const i8,
2062	pub pEnabledFeatures : *const PhysicalDeviceFeatures,
2063}
2064
2065#[repr(C)]
2066#[derive(Copy, Clone)]
2067pub struct ExtensionProperties {
2068	pub extensionName : [i8;MAX_EXTENSION_NAME_SIZE],
2069	pub specVersion : u32,
2070}
2071
2072#[repr(C)]
2073#[derive(Copy, Clone)]
2074pub struct LayerProperties {
2075	pub layerName : [i8;MAX_EXTENSION_NAME_SIZE],
2076	pub specVersion : u32,
2077	pub implementationVersion : u32,
2078	pub description : [i8;MAX_DESCRIPTION_SIZE],
2079}
2080
2081#[repr(C)]
2082#[derive(Debug, Copy, Clone)]
2083pub struct SubmitInfo {
2084	pub sType : StructureType,
2085	pub pNext : *const void,
2086	pub waitSemaphoreCount : u32,
2087	pub pWaitSemaphores : *const Semaphore,
2088	pub pWaitDstStageMask : *const PipelineStageFlags,
2089	pub commandBufferCount : u32,
2090	pub pCommandBuffers : *const CommandBuffer,
2091	pub signalSemaphoreCount : u32,
2092	pub pSignalSemaphores : *const Semaphore,
2093}
2094
2095#[repr(C)]
2096#[derive(Debug, Copy, Clone)]
2097pub struct MemoryAllocateInfo {
2098	pub sType : StructureType,
2099	pub pNext : *const void,
2100	pub allocationSize : DeviceSize,
2101	pub memoryTypeIndex : u32,
2102}
2103
2104#[repr(C)]
2105#[derive(Debug, Copy, Clone)]
2106pub struct MappedMemoryRange {
2107	pub sType : StructureType,
2108	pub pNext : *const void,
2109	pub memory : DeviceMemory,
2110	pub offset : DeviceSize,
2111	pub size : DeviceSize,
2112}
2113
2114#[repr(C)]
2115#[derive(Debug, Copy, Clone)]
2116pub struct MemoryRequirements {
2117	pub size : DeviceSize,
2118	pub alignment : DeviceSize,
2119	pub memoryTypeBits : u32,
2120}
2121
2122#[repr(C)]
2123#[derive(Debug, Copy, Clone)]
2124pub struct SparseImageFormatProperties {
2125	pub aspectMask : ImageAspectFlags,
2126	pub imageGranularity : Extent3D,
2127	pub flags : SparseImageFormatFlags,
2128}
2129
2130#[repr(C)]
2131#[derive(Debug, Copy, Clone)]
2132pub struct SparseImageMemoryRequirements {
2133	pub formatProperties : SparseImageFormatProperties,
2134	pub imageMipTailFirstLod : u32,
2135	pub imageMipTailSize : DeviceSize,
2136	pub imageMipTailOffset : DeviceSize,
2137	pub imageMipTailStride : DeviceSize,
2138}
2139
2140#[repr(C)]
2141#[derive(Debug, Copy, Clone)]
2142pub struct SparseMemoryBind {
2143	pub resourceOffset : DeviceSize,
2144	pub size : DeviceSize,
2145	pub memory : DeviceMemory,
2146	pub memoryOffset : DeviceSize,
2147	pub flags : SparseMemoryBindFlags,
2148}
2149
2150#[repr(C)]
2151#[derive(Debug, Copy, Clone)]
2152pub struct SparseBufferMemoryBindInfo {
2153	pub buffer : Buffer,
2154	pub bindCount : u32,
2155	pub pBinds : *const SparseMemoryBind,
2156}
2157
2158#[repr(C)]
2159#[derive(Debug, Copy, Clone)]
2160pub struct SparseImageOpaqueMemoryBindInfo {
2161	pub image : Image,
2162	pub bindCount : u32,
2163	pub pBinds : *const SparseMemoryBind,
2164}
2165
2166#[repr(C)]
2167#[derive(Debug, Copy, Clone)]
2168pub struct ImageSubresource {
2169	pub aspectMask : ImageAspectFlags,
2170	pub mipLevel : u32,
2171	pub arrayLayer : u32,
2172}
2173
2174#[repr(C)]
2175#[derive(Debug, Copy, Clone)]
2176pub struct Offset3D {
2177	pub x : i32,
2178	pub y : i32,
2179	pub z : i32,
2180}
2181
2182#[repr(C)]
2183#[derive(Debug, Copy, Clone)]
2184pub struct SparseImageMemoryBind {
2185	pub subresource : ImageSubresource,
2186	pub offset : Offset3D,
2187	pub extent : Extent3D,
2188	pub memory : DeviceMemory,
2189	pub memoryOffset : DeviceSize,
2190	pub flags : SparseMemoryBindFlags,
2191}
2192
2193#[repr(C)]
2194#[derive(Debug, Copy, Clone)]
2195pub struct SparseImageMemoryBindInfo {
2196	pub image : Image,
2197	pub bindCount : u32,
2198	pub pBinds : *const SparseImageMemoryBind,
2199}
2200
2201#[repr(C)]
2202#[derive(Debug, Copy, Clone)]
2203pub struct BindSparseInfo {
2204	pub sType : StructureType,
2205	pub pNext : *const void,
2206	pub waitSemaphoreCount : u32,
2207	pub pWaitSemaphores : *const Semaphore,
2208	pub bufferBindCount : u32,
2209	pub pBufferBinds : *const SparseBufferMemoryBindInfo,
2210	pub imageOpaqueBindCount : u32,
2211	pub pImageOpaqueBinds : *const SparseImageOpaqueMemoryBindInfo,
2212	pub imageBindCount : u32,
2213	pub pImageBinds : *const SparseImageMemoryBindInfo,
2214	pub signalSemaphoreCount : u32,
2215	pub pSignalSemaphores : *const Semaphore,
2216}
2217
2218#[repr(C)]
2219#[derive(Debug, Copy, Clone)]
2220pub struct FenceCreateInfo {
2221	pub sType : StructureType,
2222	pub pNext : *const void,
2223	pub flags : FenceCreateFlags,
2224}
2225
2226#[repr(C)]
2227#[derive(Debug, Copy, Clone)]
2228pub struct SemaphoreCreateInfo {
2229	pub sType : StructureType,
2230	pub pNext : *const void,
2231	pub flags : SemaphoreCreateFlags,
2232}
2233
2234#[repr(C)]
2235#[derive(Debug, Copy, Clone)]
2236pub struct EventCreateInfo {
2237	pub sType : StructureType,
2238	pub pNext : *const void,
2239	pub flags : EventCreateFlags,
2240}
2241
2242#[repr(C)]
2243#[derive(Debug, Copy, Clone)]
2244pub struct QueryPoolCreateInfo {
2245	pub sType : StructureType,
2246	pub pNext : *const void,
2247	pub flags : QueryPoolCreateFlags,
2248	pub queryType : QueryType,
2249	pub queryCount : u32,
2250	pub pipelineStatistics : QueryPipelineStatisticFlags,
2251}
2252
2253#[repr(C)]
2254#[derive(Debug, Copy, Clone)]
2255pub struct BufferCreateInfo {
2256	pub sType : StructureType,
2257	pub pNext : *const void,
2258	pub flags : BufferCreateFlags,
2259	pub size : DeviceSize,
2260	pub usage : BufferUsageFlags,
2261	pub sharingMode : SharingMode,
2262	pub queueFamilyIndexCount : u32,
2263	pub pQueueFamilyIndices : *const u32,
2264}
2265
2266#[repr(C)]
2267#[derive(Debug, Copy, Clone)]
2268pub struct BufferViewCreateInfo {
2269	pub sType : StructureType,
2270	pub pNext : *const void,
2271	pub flags : BufferViewCreateFlags,
2272	pub buffer : Buffer,
2273	pub format : Format,
2274	pub offset : DeviceSize,
2275	pub range : DeviceSize,
2276}
2277
2278#[repr(C)]
2279#[derive(Debug, Copy, Clone)]
2280pub struct ImageCreateInfo {
2281	pub sType : StructureType,
2282	pub pNext : *const void,
2283	pub flags : ImageCreateFlags,
2284	pub imageType : ImageType,
2285	pub format : Format,
2286	pub extent : Extent3D,
2287	pub mipLevels : u32,
2288	pub arrayLayers : u32,
2289	pub samples : SampleCountFlagBits,
2290	pub tiling : ImageTiling,
2291	pub usage : ImageUsageFlags,
2292	pub sharingMode : SharingMode,
2293	pub queueFamilyIndexCount : u32,
2294	pub pQueueFamilyIndices : *const u32,
2295	pub initialLayout : ImageLayout,
2296}
2297
2298#[repr(C)]
2299#[derive(Debug, Copy, Clone)]
2300pub struct SubresourceLayout {
2301	pub offset : DeviceSize,
2302	pub size : DeviceSize,
2303	pub rowPitch : DeviceSize,
2304	pub arrayPitch : DeviceSize,
2305	pub depthPitch : DeviceSize,
2306}
2307
2308#[repr(C)]
2309#[derive(Debug, Copy, Clone)]
2310pub struct ComponentMapping {
2311	pub r : ComponentSwizzle,
2312	pub g : ComponentSwizzle,
2313	pub b : ComponentSwizzle,
2314	pub a : ComponentSwizzle,
2315}
2316
2317#[repr(C)]
2318#[derive(Debug, Copy, Clone)]
2319pub struct ImageSubresourceRange {
2320	pub aspectMask : ImageAspectFlags,
2321	pub baseMipLevel : u32,
2322	pub levelCount : u32,
2323	pub baseArrayLayer : u32,
2324	pub layerCount : u32,
2325}
2326
2327#[repr(C)]
2328#[derive(Debug, Copy, Clone)]
2329pub struct ImageViewCreateInfo {
2330	pub sType : StructureType,
2331	pub pNext : *const void,
2332	pub flags : ImageViewCreateFlags,
2333	pub image : Image,
2334	pub viewType : ImageViewType,
2335	pub format : Format,
2336	pub components : ComponentMapping,
2337	pub subresourceRange : ImageSubresourceRange,
2338}
2339
2340#[repr(C)]
2341#[derive(Debug, Copy, Clone)]
2342pub struct ShaderModuleCreateInfo {
2343	pub sType : StructureType,
2344	pub pNext : *const void,
2345	pub flags : ShaderModuleCreateFlags,
2346	pub codeSize : usize,
2347	pub pCode : *const u32,
2348}
2349
2350#[repr(C)]
2351#[derive(Debug, Copy, Clone)]
2352pub struct PipelineCacheCreateInfo {
2353	pub sType : StructureType,
2354	pub pNext : *const void,
2355	pub flags : PipelineCacheCreateFlags,
2356	pub initialDataSize : usize,
2357	pub pInitialData : *const void,
2358}
2359
2360#[repr(C)]
2361#[derive(Debug, Copy, Clone)]
2362pub struct SpecializationMapEntry {
2363	pub constantID : u32,
2364	pub offset : u32,
2365	pub size : usize,
2366}
2367
2368#[repr(C)]
2369#[derive(Debug, Copy, Clone)]
2370pub struct SpecializationInfo {
2371	pub mapEntryCount : u32,
2372	pub pMapEntries : *const SpecializationMapEntry,
2373	pub dataSize : usize,
2374	pub pData : *const void,
2375}
2376
2377#[repr(C)]
2378#[derive(Debug, Copy, Clone)]
2379pub struct PipelineShaderStageCreateInfo {
2380	pub sType : StructureType,
2381	pub pNext : *const void,
2382	pub flags : PipelineShaderStageCreateFlags,
2383	pub stage : ShaderStageFlagBits,
2384	pub module : ShaderModule,
2385	pub pName : *const i8,
2386	pub pSpecializationInfo : *const SpecializationInfo,
2387}
2388
2389#[repr(C)]
2390#[derive(Debug, Copy, Clone)]
2391pub struct VertexInputBindingDescription {
2392	pub binding : u32,
2393	pub stride : u32,
2394	pub inputRate : VertexInputRate,
2395}
2396
2397#[repr(C)]
2398#[derive(Debug, Copy, Clone)]
2399pub struct VertexInputAttributeDescription {
2400	pub location : u32,
2401	pub binding : u32,
2402	pub format : Format,
2403	pub offset : u32,
2404}
2405
2406#[repr(C)]
2407#[derive(Debug, Copy, Clone)]
2408pub struct PipelineVertexInputStateCreateInfo {
2409	pub sType : StructureType,
2410	pub pNext : *const void,
2411	pub flags : PipelineVertexInputStateCreateFlags,
2412	pub vertexBindingDescriptionCount : u32,
2413	pub pVertexBindingDescriptions : *const VertexInputBindingDescription,
2414	pub vertexAttributeDescriptionCount : u32,
2415	pub pVertexAttributeDescriptions : *const VertexInputAttributeDescription,
2416}
2417
2418#[repr(C)]
2419#[derive(Debug, Copy, Clone)]
2420pub struct PipelineInputAssemblyStateCreateInfo {
2421	pub sType : StructureType,
2422	pub pNext : *const void,
2423	pub flags : PipelineInputAssemblyStateCreateFlags,
2424	pub topology : PrimitiveTopology,
2425	pub primitiveRestartEnable : Bool32,
2426}
2427
2428#[repr(C)]
2429#[derive(Debug, Copy, Clone)]
2430pub struct PipelineTessellationStateCreateInfo {
2431	pub sType : StructureType,
2432	pub pNext : *const void,
2433	pub flags : PipelineTessellationStateCreateFlags,
2434	pub patchControlPoints : u32,
2435}
2436
2437#[repr(C)]
2438#[derive(Debug, Copy, Clone)]
2439pub struct Viewport {
2440	pub x : f32,
2441	pub y : f32,
2442	pub width : f32,
2443	pub height : f32,
2444	pub minDepth : f32,
2445	pub maxDepth : f32,
2446}
2447
2448#[repr(C)]
2449#[derive(Debug, Copy, Clone)]
2450pub struct Offset2D {
2451	pub x : i32,
2452	pub y : i32,
2453}
2454
2455#[repr(C)]
2456#[derive(Debug, Copy, Clone)]
2457pub struct Extent2D {
2458	pub width : u32,
2459	pub height : u32,
2460}
2461
2462#[repr(C)]
2463#[derive(Debug, Copy, Clone)]
2464pub struct Rect2D {
2465	pub offset : Offset2D,
2466	pub extent : Extent2D,
2467}
2468
2469#[repr(C)]
2470#[derive(Debug, Copy, Clone)]
2471pub struct PipelineViewportStateCreateInfo {
2472	pub sType : StructureType,
2473	pub pNext : *const void,
2474	pub flags : PipelineViewportStateCreateFlags,
2475	pub viewportCount : u32,
2476	pub pViewports : *const Viewport,
2477	pub scissorCount : u32,
2478	pub pScissors : *const Rect2D,
2479}
2480
2481#[repr(C)]
2482#[derive(Debug, Copy, Clone)]
2483pub struct PipelineRasterizationStateCreateInfo {
2484	pub sType : StructureType,
2485	pub pNext : *const void,
2486	pub flags : PipelineRasterizationStateCreateFlags,
2487	pub depthClampEnable : Bool32,
2488	pub rasterizerDiscardEnable : Bool32,
2489	pub polygonMode : PolygonMode,
2490	pub cullMode : CullModeFlags,
2491	pub frontFace : FrontFace,
2492	pub depthBiasEnable : Bool32,
2493	pub depthBiasConstantFactor : f32,
2494	pub depthBiasClamp : f32,
2495	pub depthBiasSlopeFactor : f32,
2496	pub lineWidth : f32,
2497}
2498
2499#[repr(C)]
2500#[derive(Debug, Copy, Clone)]
2501pub struct PipelineMultisampleStateCreateInfo {
2502	pub sType : StructureType,
2503	pub pNext : *const void,
2504	pub flags : PipelineMultisampleStateCreateFlags,
2505	pub rasterizationSamples : SampleCountFlagBits,
2506	pub sampleShadingEnable : Bool32,
2507	pub minSampleShading : f32,
2508	pub pSampleMask : *const SampleMask,
2509	pub alphaToCoverageEnable : Bool32,
2510	pub alphaToOneEnable : Bool32,
2511}
2512
2513#[repr(C)]
2514#[derive(Debug, Copy, Clone)]
2515pub struct StencilOpState {
2516	pub failOp : StencilOp,
2517	pub passOp : StencilOp,
2518	pub depthFailOp : StencilOp,
2519	pub compareOp : CompareOp,
2520	pub compareMask : u32,
2521	pub writeMask : u32,
2522	pub reference : u32,
2523}
2524
2525#[repr(C)]
2526#[derive(Debug, Copy, Clone)]
2527pub struct PipelineDepthStencilStateCreateInfo {
2528	pub sType : StructureType,
2529	pub pNext : *const void,
2530	pub flags : PipelineDepthStencilStateCreateFlags,
2531	pub depthTestEnable : Bool32,
2532	pub depthWriteEnable : Bool32,
2533	pub depthCompareOp : CompareOp,
2534	pub depthBoundsTestEnable : Bool32,
2535	pub stencilTestEnable : Bool32,
2536	pub front : StencilOpState,
2537	pub back : StencilOpState,
2538	pub minDepthBounds : f32,
2539	pub maxDepthBounds : f32,
2540}
2541
2542#[repr(C)]
2543#[derive(Debug, Copy, Clone)]
2544pub struct PipelineColorBlendAttachmentState {
2545	pub blendEnable : Bool32,
2546	pub srcColorBlendFactor : BlendFactor,
2547	pub dstColorBlendFactor : BlendFactor,
2548	pub colorBlendOp : BlendOp,
2549	pub srcAlphaBlendFactor : BlendFactor,
2550	pub dstAlphaBlendFactor : BlendFactor,
2551	pub alphaBlendOp : BlendOp,
2552	pub colorWriteMask : ColorComponentFlags,
2553}
2554
2555#[repr(C)]
2556#[derive(Debug, Copy, Clone)]
2557pub struct PipelineColorBlendStateCreateInfo {
2558	pub sType : StructureType,
2559	pub pNext : *const void,
2560	pub flags : PipelineColorBlendStateCreateFlags,
2561	pub logicOpEnable : Bool32,
2562	pub logicOp : LogicOp,
2563	pub attachmentCount : u32,
2564	pub pAttachments : *const PipelineColorBlendAttachmentState,
2565	pub blendConstants : [f32;4],
2566}
2567
2568#[repr(C)]
2569#[derive(Debug, Copy, Clone)]
2570pub struct PipelineDynamicStateCreateInfo {
2571	pub sType : StructureType,
2572	pub pNext : *const void,
2573	pub flags : PipelineDynamicStateCreateFlags,
2574	pub dynamicStateCount : u32,
2575	pub pDynamicStates : *const DynamicState,
2576}
2577
2578#[repr(C)]
2579#[derive(Debug, Copy, Clone)]
2580pub struct GraphicsPipelineCreateInfo {
2581	pub sType : StructureType,
2582	pub pNext : *const void,
2583	pub flags : PipelineCreateFlags,
2584	pub stageCount : u32,
2585	pub pStages : *const PipelineShaderStageCreateInfo,
2586	pub pVertexInputState : *const PipelineVertexInputStateCreateInfo,
2587	pub pInputAssemblyState : *const PipelineInputAssemblyStateCreateInfo,
2588	pub pTessellationState : *const PipelineTessellationStateCreateInfo,
2589	pub pViewportState : *const PipelineViewportStateCreateInfo,
2590	pub pRasterizationState : *const PipelineRasterizationStateCreateInfo,
2591	pub pMultisampleState : *const PipelineMultisampleStateCreateInfo,
2592	pub pDepthStencilState : *const PipelineDepthStencilStateCreateInfo,
2593	pub pColorBlendState : *const PipelineColorBlendStateCreateInfo,
2594	pub pDynamicState : *const PipelineDynamicStateCreateInfo,
2595	pub layout : PipelineLayout,
2596	pub renderPass : RenderPass,
2597	pub subpass : u32,
2598	pub basePipelineHandle : Pipeline,
2599	pub basePipelineIndex : i32,
2600}
2601
2602#[repr(C)]
2603#[derive(Debug, Copy, Clone)]
2604pub struct ComputePipelineCreateInfo {
2605	pub sType : StructureType,
2606	pub pNext : *const void,
2607	pub flags : PipelineCreateFlags,
2608	pub stage : PipelineShaderStageCreateInfo,
2609	pub layout : PipelineLayout,
2610	pub basePipelineHandle : Pipeline,
2611	pub basePipelineIndex : i32,
2612}
2613
2614#[repr(C)]
2615#[derive(Debug, Copy, Clone)]
2616pub struct PushConstantRange {
2617	pub stageFlags : ShaderStageFlags,
2618	pub offset : u32,
2619	pub size : u32,
2620}
2621
2622#[repr(C)]
2623#[derive(Debug, Copy, Clone)]
2624pub struct PipelineLayoutCreateInfo {
2625	pub sType : StructureType,
2626	pub pNext : *const void,
2627	pub flags : PipelineLayoutCreateFlags,
2628	pub setLayoutCount : u32,
2629	pub pSetLayouts : *const DescriptorSetLayout,
2630	pub pushConstantRangeCount : u32,
2631	pub pPushConstantRanges : *const PushConstantRange,
2632}
2633
2634#[repr(C)]
2635#[derive(Debug, Copy, Clone)]
2636pub struct SamplerCreateInfo {
2637	pub sType : StructureType,
2638	pub pNext : *const void,
2639	pub flags : SamplerCreateFlags,
2640	pub magFilter : Filter,
2641	pub minFilter : Filter,
2642	pub mipmapMode : SamplerMipmapMode,
2643	pub addressModeU : SamplerAddressMode,
2644	pub addressModeV : SamplerAddressMode,
2645	pub addressModeW : SamplerAddressMode,
2646	pub mipLodBias : f32,
2647	pub anisotropyEnable : Bool32,
2648	pub maxAnisotropy : f32,
2649	pub compareEnable : Bool32,
2650	pub compareOp : CompareOp,
2651	pub minLod : f32,
2652	pub maxLod : f32,
2653	pub borderColor : BorderColor,
2654	pub unnormalizedCoordinates : Bool32,
2655}
2656
2657#[repr(C)]
2658#[derive(Debug, Copy, Clone)]
2659pub struct DescriptorSetLayoutBinding {
2660	pub binding : u32,
2661	pub descriptorType : DescriptorType,
2662	pub descriptorCount : u32,
2663	pub stageFlags : ShaderStageFlags,
2664	pub pImmutableSamplers : *const Sampler,
2665}
2666
2667#[repr(C)]
2668#[derive(Debug, Copy, Clone)]
2669pub struct DescriptorSetLayoutCreateInfo {
2670	pub sType : StructureType,
2671	pub pNext : *const void,
2672	pub flags : DescriptorSetLayoutCreateFlags,
2673	pub bindingCount : u32,
2674	pub pBindings : *const DescriptorSetLayoutBinding,
2675}
2676
2677#[repr(C)]
2678#[derive(Debug, Copy, Clone)]
2679pub struct DescriptorPoolSize {
2680	pub r#type : DescriptorType,
2681	pub descriptorCount : u32,
2682}
2683
2684#[repr(C)]
2685#[derive(Debug, Copy, Clone)]
2686pub struct DescriptorPoolCreateInfo {
2687	pub sType : StructureType,
2688	pub pNext : *const void,
2689	pub flags : DescriptorPoolCreateFlags,
2690	pub maxSets : u32,
2691	pub poolSizeCount : u32,
2692	pub pPoolSizes : *const DescriptorPoolSize,
2693}
2694
2695#[repr(C)]
2696#[derive(Debug, Copy, Clone)]
2697pub struct DescriptorSetAllocateInfo {
2698	pub sType : StructureType,
2699	pub pNext : *const void,
2700	pub descriptorPool : DescriptorPool,
2701	pub descriptorSetCount : u32,
2702	pub pSetLayouts : *const DescriptorSetLayout,
2703}
2704
2705#[repr(C)]
2706#[derive(Debug, Copy, Clone)]
2707pub struct DescriptorImageInfo {
2708	pub sampler : Sampler,
2709	pub imageView : ImageView,
2710	pub imageLayout : ImageLayout,
2711}
2712
2713#[repr(C)]
2714#[derive(Debug, Copy, Clone)]
2715pub struct DescriptorBufferInfo {
2716	pub buffer : Buffer,
2717	pub offset : DeviceSize,
2718	pub range : DeviceSize,
2719}
2720
2721#[repr(C)]
2722#[derive(Debug, Copy, Clone)]
2723pub struct WriteDescriptorSet {
2724	pub sType : StructureType,
2725	pub pNext : *const void,
2726	pub dstSet : DescriptorSet,
2727	pub dstBinding : u32,
2728	pub dstArrayElement : u32,
2729	pub descriptorCount : u32,
2730	pub descriptorType : DescriptorType,
2731	pub pImageInfo : *const DescriptorImageInfo,
2732	pub pBufferInfo : *const DescriptorBufferInfo,
2733	pub pTexelBufferView : *const BufferView,
2734}
2735
2736#[repr(C)]
2737#[derive(Debug, Copy, Clone)]
2738pub struct CopyDescriptorSet {
2739	pub sType : StructureType,
2740	pub pNext : *const void,
2741	pub srcSet : DescriptorSet,
2742	pub srcBinding : u32,
2743	pub srcArrayElement : u32,
2744	pub dstSet : DescriptorSet,
2745	pub dstBinding : u32,
2746	pub dstArrayElement : u32,
2747	pub descriptorCount : u32,
2748}
2749
2750#[repr(C)]
2751#[derive(Debug, Copy, Clone)]
2752pub struct FramebufferCreateInfo {
2753	pub sType : StructureType,
2754	pub pNext : *const void,
2755	pub flags : FramebufferCreateFlags,
2756	pub renderPass : RenderPass,
2757	pub attachmentCount : u32,
2758	pub pAttachments : *const ImageView,
2759	pub width : u32,
2760	pub height : u32,
2761	pub layers : u32,
2762}
2763
2764#[repr(C)]
2765#[derive(Debug, Copy, Clone)]
2766pub struct AttachmentDescription {
2767	pub flags : AttachmentDescriptionFlags,
2768	pub format : Format,
2769	pub samples : SampleCountFlagBits,
2770	pub loadOp : AttachmentLoadOp,
2771	pub storeOp : AttachmentStoreOp,
2772	pub stencilLoadOp : AttachmentLoadOp,
2773	pub stencilStoreOp : AttachmentStoreOp,
2774	pub initialLayout : ImageLayout,
2775	pub finalLayout : ImageLayout,
2776}
2777
2778#[repr(C)]
2779#[derive(Debug, Copy, Clone)]
2780pub struct AttachmentReference {
2781	pub attachment : u32,
2782	pub layout : ImageLayout,
2783}
2784
2785#[repr(C)]
2786#[derive(Debug, Copy, Clone)]
2787pub struct SubpassDescription {
2788	pub flags : SubpassDescriptionFlags,
2789	pub pipelineBindPoint : PipelineBindPoint,
2790	pub inputAttachmentCount : u32,
2791	pub pInputAttachments : *const AttachmentReference,
2792	pub colorAttachmentCount : u32,
2793	pub pColorAttachments : *const AttachmentReference,
2794	pub pResolveAttachments : *const AttachmentReference,
2795	pub pDepthStencilAttachment : *const AttachmentReference,
2796	pub preserveAttachmentCount : u32,
2797	pub pPreserveAttachments : *const u32,
2798}
2799
2800#[repr(C)]
2801#[derive(Debug, Copy, Clone)]
2802pub struct SubpassDependency {
2803	pub srcSubpass : u32,
2804	pub dstSubpass : u32,
2805	pub srcStageMask : PipelineStageFlags,
2806	pub dstStageMask : PipelineStageFlags,
2807	pub srcAccessMask : AccessFlags,
2808	pub dstAccessMask : AccessFlags,
2809	pub dependencyFlags : DependencyFlags,
2810}
2811
2812#[repr(C)]
2813#[derive(Debug, Copy, Clone)]
2814pub struct RenderPassCreateInfo {
2815	pub sType : StructureType,
2816	pub pNext : *const void,
2817	pub flags : RenderPassCreateFlags,
2818	pub attachmentCount : u32,
2819	pub pAttachments : *const AttachmentDescription,
2820	pub subpassCount : u32,
2821	pub pSubpasses : *const SubpassDescription,
2822	pub dependencyCount : u32,
2823	pub pDependencies : *const SubpassDependency,
2824}
2825
2826#[repr(C)]
2827#[derive(Debug, Copy, Clone)]
2828pub struct CommandPoolCreateInfo {
2829	pub sType : StructureType,
2830	pub pNext : *const void,
2831	pub flags : CommandPoolCreateFlags,
2832	pub queueFamilyIndex : u32,
2833}
2834
2835#[repr(C)]
2836#[derive(Debug, Copy, Clone)]
2837pub struct CommandBufferAllocateInfo {
2838	pub sType : StructureType,
2839	pub pNext : *const void,
2840	pub commandPool : CommandPool,
2841	pub level : CommandBufferLevel,
2842	pub commandBufferCount : u32,
2843}
2844
2845#[repr(C)]
2846#[derive(Debug, Copy, Clone)]
2847pub struct CommandBufferInheritanceInfo {
2848	pub sType : StructureType,
2849	pub pNext : *const void,
2850	pub renderPass : RenderPass,
2851	pub subpass : u32,
2852	pub framebuffer : Framebuffer,
2853	pub occlusionQueryEnable : Bool32,
2854	pub queryFlags : QueryControlFlags,
2855	pub pipelineStatistics : QueryPipelineStatisticFlags,
2856}
2857
2858#[repr(C)]
2859#[derive(Debug, Copy, Clone)]
2860pub struct CommandBufferBeginInfo {
2861	pub sType : StructureType,
2862	pub pNext : *const void,
2863	pub flags : CommandBufferUsageFlags,
2864	pub pInheritanceInfo : *const CommandBufferInheritanceInfo,
2865}
2866
2867#[repr(C)]
2868#[derive(Debug, Copy, Clone)]
2869pub struct BufferCopy {
2870	pub srcOffset : DeviceSize,
2871	pub dstOffset : DeviceSize,
2872	pub size : DeviceSize,
2873}
2874
2875#[repr(C)]
2876#[derive(Debug, Copy, Clone)]
2877pub struct ImageSubresourceLayers {
2878	pub aspectMask : ImageAspectFlags,
2879	pub mipLevel : u32,
2880	pub baseArrayLayer : u32,
2881	pub layerCount : u32,
2882}
2883
2884#[repr(C)]
2885#[derive(Debug, Copy, Clone)]
2886pub struct ImageCopy {
2887	pub srcSubresource : ImageSubresourceLayers,
2888	pub srcOffset : Offset3D,
2889	pub dstSubresource : ImageSubresourceLayers,
2890	pub dstOffset : Offset3D,
2891	pub extent : Extent3D,
2892}
2893
2894#[repr(C)]
2895#[derive(Debug, Copy, Clone)]
2896pub struct ImageBlit {
2897	pub srcSubresource : ImageSubresourceLayers,
2898	pub srcOffsets : [Offset3D;2],
2899	pub dstSubresource : ImageSubresourceLayers,
2900	pub dstOffsets : [Offset3D;2],
2901}
2902
2903#[repr(C)]
2904#[derive(Debug, Copy, Clone)]
2905pub struct BufferImageCopy {
2906	pub bufferOffset : DeviceSize,
2907	pub bufferRowLength : u32,
2908	pub bufferImageHeight : u32,
2909	pub imageSubresource : ImageSubresourceLayers,
2910	pub imageOffset : Offset3D,
2911	pub imageExtent : Extent3D,
2912}
2913
2914#[repr(C)]
2915#[derive(Debug, Copy, Clone)]
2916pub struct ClearColorValue {
2917    pub float32 : [f32;4],
2918}
2919
2920impl Default for ClearColorValue {
2921	fn default() -> ClearColorValue {
2922		ClearColorValue {
2923			float32 : [0 as f32; 4]
2924		}
2925	}
2926}
2927
2928#[repr(C)]
2929#[derive(Debug, Copy, Clone)]
2930pub struct ClearDepthStencilValue {
2931	pub depth : f32,
2932	pub stencil : u32,
2933}
2934
2935#[repr(C)]
2936#[derive(Debug, Copy, Clone)]
2937pub struct ClearValue {
2938    pub color : [f32;4],
2939}
2940
2941impl ClearValue {
2942	pub fn depth(depth : f32, stencil : f32) -> ClearValue {
2943		ClearValue {
2944			color : [depth, stencil, 0., 0.]
2945		}
2946	}
2947}
2948
2949impl Default for ClearValue {
2950	fn default() -> ClearValue {
2951		ClearValue {
2952			color : [0 as f32; 4]
2953		}
2954	}
2955}
2956
2957#[repr(C)] 
2958#[derive(Debug, Copy, Clone)]
2959pub struct ClearAttachment {
2960	pub aspectMask : ImageAspectFlags,
2961	pub colorAttachment : u32,
2962	pub clearValue : ClearValue,
2963}
2964
2965#[repr(C)]
2966#[derive(Debug, Copy, Clone)]
2967pub struct ClearRect {
2968	pub rect : Rect2D,
2969	pub baseArrayLayer : u32,
2970	pub layerCount : u32,
2971}
2972
2973#[repr(C)]
2974#[derive(Debug, Copy, Clone)]
2975pub struct ImageResolve {
2976	pub srcSubresource : ImageSubresourceLayers,
2977	pub srcOffset : Offset3D,
2978	pub dstSubresource : ImageSubresourceLayers,
2979	pub dstOffset : Offset3D,
2980	pub extent : Extent3D,
2981}
2982
2983#[repr(C)]
2984#[derive(Debug, Copy, Clone)]
2985pub struct MemoryBarrier {
2986	pub sType : StructureType,
2987	pub pNext : *const void,
2988	pub srcAccessMask : AccessFlags,
2989	pub dstAccessMask : AccessFlags,
2990}
2991
2992#[repr(C)]
2993#[derive(Debug, Copy, Clone)]
2994pub struct BufferMemoryBarrier {
2995	pub sType : StructureType,
2996	pub pNext : *const void,
2997	pub srcAccessMask : AccessFlags,
2998	pub dstAccessMask : AccessFlags,
2999	pub srcQueueFamilyIndex : u32,
3000	pub dstQueueFamilyIndex : u32,
3001	pub buffer : Buffer,
3002	pub offset : DeviceSize,
3003	pub size : DeviceSize,
3004}
3005
3006#[repr(C)]
3007#[derive(Debug, Copy, Clone)]
3008pub struct ImageMemoryBarrier {
3009	pub sType : StructureType,
3010	pub pNext : *const void,
3011	pub srcAccessMask : AccessFlags,
3012	pub dstAccessMask : AccessFlags,
3013	pub oldLayout : ImageLayout,
3014	pub newLayout : ImageLayout,
3015	pub srcQueueFamilyIndex : u32,
3016	pub dstQueueFamilyIndex : u32,
3017	pub image : Image,
3018	pub subresourceRange : ImageSubresourceRange,
3019}
3020
3021#[repr(C)]
3022#[derive(Debug, Copy, Clone)]
3023pub struct RenderPassBeginInfo {
3024	pub sType : StructureType,
3025	pub pNext : *const void,
3026	pub renderPass : RenderPass,
3027	pub framebuffer : Framebuffer,
3028	pub renderArea : Rect2D,
3029	pub clearValueCount : u32,
3030	pub pClearValues : *const ClearValue,
3031}
3032
3033#[repr(C)]
3034#[derive(Debug, Copy, Clone)]
3035pub struct DispatchIndirectCommand {
3036	pub x : u32,
3037	pub y : u32,
3038	pub z : u32,
3039}
3040
3041#[repr(C)]
3042#[derive(Debug, Copy, Clone)]
3043pub struct DrawIndexedIndirectCommand {
3044	pub indexCount : u32,
3045	pub instanceCount : u32,
3046	pub firstIndex : u32,
3047	pub vertexOffset : i32,
3048	pub firstInstance : u32,
3049}
3050
3051#[repr(C)]
3052#[derive(Debug, Copy, Clone)]
3053pub struct DrawIndirectCommand {
3054	pub vertexCount : u32,
3055	pub instanceCount : u32,
3056	pub firstVertex : u32,
3057	pub firstInstance : u32,
3058}
3059
3060pub type SamplerYcbcrConversion = u64;
3061pub type DescriptorUpdateTemplate = u64;
3062pub type PointClippingBehavior = i32;
3063pub const POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES : i32 = 0;
3064pub const POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY : i32 = 1;
3065pub const POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR : i32 = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES;
3066pub const POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR : i32 = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY;
3067pub const POINT_CLIPPING_BEHAVIOR_MAX_ENUM : i32 = 0x7FFFFFF;
3068pub type TessellationDomainOrigin = i32;
3069pub const TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT : i32 = 0;
3070pub const TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT : i32 = 1;
3071pub const TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR : i32 = TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT;
3072pub const TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR : i32 = TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT;
3073pub const TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM : i32 = 0x7FFFFFF;
3074pub type SamplerYcbcrModelConversion = i32;
3075pub const SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY : i32 = 0;
3076pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY : i32 = 1;
3077pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 : i32 = 2;
3078pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 : i32 = 3;
3079pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 : i32 = 4;
3080pub const SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR : i32 = SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY;
3081pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR : i32 = SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY;
3082pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR : i32 = SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709;
3083pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR : i32 = SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601;
3084pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR : i32 = SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020;
3085pub const SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM : i32 = 0x7FFFFFF;
3086pub type SamplerYcbcrRange = i32;
3087pub const SAMPLER_YCBCR_RANGE_ITU_FULL : i32 = 0;
3088pub const SAMPLER_YCBCR_RANGE_ITU_NARROW : i32 = 1;
3089pub const SAMPLER_YCBCR_RANGE_ITU_FULL_KHR : i32 = SAMPLER_YCBCR_RANGE_ITU_FULL;
3090pub const SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR : i32 = SAMPLER_YCBCR_RANGE_ITU_NARROW;
3091pub const SAMPLER_YCBCR_RANGE_MAX_ENUM : i32 = 0x7FFFFFF;
3092pub type ChromaLocation = i32;
3093pub const CHROMA_LOCATION_COSITED_EVEN : i32 = 0;
3094pub const CHROMA_LOCATION_MIDPOINT : i32 = 1;
3095pub const CHROMA_LOCATION_COSITED_EVEN_KHR : i32 = CHROMA_LOCATION_COSITED_EVEN;
3096pub const CHROMA_LOCATION_MIDPOINT_KHR : i32 = CHROMA_LOCATION_MIDPOINT;
3097pub const CHROMA_LOCATION_MAX_ENUM : i32 = 0x7FFFFFF;
3098pub type DescriptorUpdateTemplateType = i32;
3099pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET : i32 = 0;
3100pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR : i32 = 1;
3101pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR : i32 = DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET;
3102pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
3103pub type SubgroupFeatureFlagBits = i32;
3104pub const SUBGROUP_FEATURE_BASIC_BIT : i32 = 0x00000001;
3105pub const SUBGROUP_FEATURE_VOTE_BIT : i32 = 0x00000002;
3106pub const SUBGROUP_FEATURE_ARITHMETIC_BIT : i32 = 0x00000004;
3107pub const SUBGROUP_FEATURE_BALLOT_BIT : i32 = 0x00000008;
3108pub const SUBGROUP_FEATURE_SHUFFLE_BIT : i32 = 0x00000010;
3109pub const SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT : i32 = 0x00000020;
3110pub const SUBGROUP_FEATURE_CLUSTERED_BIT : i32 = 0x00000040;
3111pub const SUBGROUP_FEATURE_QUAD_BIT : i32 = 0x00000080;
3112pub const SUBGROUP_FEATURE_PARTITIONED_BIT_NV : i32 = 0x00000100;
3113pub const SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3114pub type SubgroupFeatureFlags = i32;
3115pub type PeerMemoryFeatureFlagBits = i32;
3116pub const PEER_MEMORY_FEATURE_COPY_SRC_BIT : i32 = 0x00000001;
3117pub const PEER_MEMORY_FEATURE_COPY_DST_BIT : i32 = 0x00000002;
3118pub const PEER_MEMORY_FEATURE_GENERIC_SRC_BIT : i32 = 0x00000004;
3119pub const PEER_MEMORY_FEATURE_GENERIC_DST_BIT : i32 = 0x00000008;
3120pub const PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR : i32 = PEER_MEMORY_FEATURE_COPY_SRC_BIT;
3121pub const PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR : i32 = PEER_MEMORY_FEATURE_COPY_DST_BIT;
3122pub const PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR : i32 = PEER_MEMORY_FEATURE_GENERIC_SRC_BIT;
3123pub const PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR : i32 = PEER_MEMORY_FEATURE_GENERIC_DST_BIT;
3124pub const PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3125pub type PeerMemoryFeatureFlags = i32;
3126pub type MemoryAllocateFlagBits = i32;
3127pub const MEMORY_ALLOCATE_DEVICE_MASK_BIT : i32 = 0x00000001;
3128pub const MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT : i32 = 0x00000002;
3129pub const MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT : i32 = 0x00000004;
3130pub const MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR : i32 = MEMORY_ALLOCATE_DEVICE_MASK_BIT;
3131pub const MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR : i32 = MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT;
3132pub const MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR : i32 = MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT;
3133pub const MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3134pub type MemoryAllocateFlags = i32;
3135pub type CommandPoolTrimFlags = i32;
3136pub type DescriptorUpdateTemplateCreateFlags = i32;
3137pub type ExternalMemoryHandleTypeFlagBits = i32;
3138pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT : i32 = 0x00000001;
3139pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT : i32 = 0x00000002;
3140pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT : i32 = 0x00000004;
3141pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT : i32 = 0x00000008;
3142pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT : i32 = 0x00000010;
3143pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT : i32 = 0x00000020;
3144pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT : i32 = 0x00000040;
3145pub const EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT : i32 = 0x00000200;
3146pub const EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID : i32 = 0x00000400;
3147pub const EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT : i32 = 0x00000080;
3148pub const EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT : i32 = 0x00000100;
3149pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR : i32 = EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT;
3150pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR : i32 = EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT;
3151pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR : i32 = EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
3152pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR : i32 = EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT;
3153pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR : i32 = EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT;
3154pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR : i32 = EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT;
3155pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR : i32 = EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT;
3156pub const EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3157pub type ExternalMemoryHandleTypeFlags = i32;
3158pub type ExternalMemoryFeatureFlagBits = i32;
3159pub const EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT : i32 = 0x00000001;
3160pub const EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT : i32 = 0x00000002;
3161pub const EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT : i32 = 0x00000004;
3162pub const EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR : i32 = EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT;
3163pub const EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR : i32 = EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT;
3164pub const EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR : i32 = EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT;
3165pub const EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3166pub type ExternalMemoryFeatureFlags = i32;
3167pub type ExternalFenceHandleTypeFlagBits = i32;
3168pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT : i32 = 0x00000001;
3169pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT : i32 = 0x00000002;
3170pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT : i32 = 0x00000004;
3171pub const EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT : i32 = 0x00000008;
3172pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR : i32 = EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT;
3173pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR : i32 = EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT;
3174pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR : i32 = EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
3175pub const EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR : i32 = EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT;
3176pub const EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3177pub type ExternalFenceHandleTypeFlags = i32;
3178pub type ExternalFenceFeatureFlagBits = i32;
3179pub const EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT : i32 = 0x00000001;
3180pub const EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT : i32 = 0x00000002;
3181pub const EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR : i32 = EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT;
3182pub const EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR : i32 = EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT;
3183pub const EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3184pub type ExternalFenceFeatureFlags = i32;
3185pub type FenceImportFlagBits = i32;
3186pub const FENCE_IMPORT_TEMPORARY_BIT : i32 = 0x00000001;
3187pub const FENCE_IMPORT_TEMPORARY_BIT_KHR : i32 = FENCE_IMPORT_TEMPORARY_BIT;
3188pub const FENCE_IMPORT_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3189pub type FenceImportFlags = i32;
3190pub type SemaphoreImportFlagBits = i32;
3191pub const SEMAPHORE_IMPORT_TEMPORARY_BIT : i32 = 0x00000001;
3192pub const SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR : i32 = SEMAPHORE_IMPORT_TEMPORARY_BIT;
3193pub const SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3194pub type SemaphoreImportFlags = i32;
3195pub type ExternalSemaphoreHandleTypeFlagBits = i32;
3196pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT : i32 = 0x00000001;
3197pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT : i32 = 0x00000002;
3198pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT : i32 = 0x00000004;
3199pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT : i32 = 0x00000008;
3200pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT : i32 = 0x00000010;
3201pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR : i32 = EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT;
3202pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR : i32 = EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT;
3203pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR : i32 = EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
3204pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR : i32 = EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT;
3205pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR : i32 = EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT;
3206pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3207pub type ExternalSemaphoreHandleTypeFlags = i32;
3208pub type ExternalSemaphoreFeatureFlagBits = i32;
3209pub const EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT : i32 = 0x00000001;
3210pub const EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT : i32 = 0x00000002;
3211pub const EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR : i32 = EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT;
3212pub const EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR : i32 = EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT;
3213pub const EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3214pub type ExternalSemaphoreFeatureFlags = i32;
3215
3216#[repr(C)]
3217#[derive(Debug, Copy, Clone)]
3218pub struct PhysicalDeviceSubgroupProperties {
3219	pub sType : StructureType,
3220	pub pNext : *mut void,
3221	pub subgroupSize : u32,
3222	pub supportedStages : ShaderStageFlags,
3223	pub supportedOperations : SubgroupFeatureFlags,
3224	pub quadOperationsInAllStages : Bool32,
3225}
3226
3227#[repr(C)]
3228#[derive(Debug, Copy, Clone)]
3229pub struct BindBufferMemoryInfo {
3230	pub sType : StructureType,
3231	pub pNext : *const void,
3232	pub buffer : Buffer,
3233	pub memory : DeviceMemory,
3234	pub memoryOffset : DeviceSize,
3235}
3236
3237#[repr(C)]
3238#[derive(Debug, Copy, Clone)]
3239pub struct BindImageMemoryInfo {
3240	pub sType : StructureType,
3241	pub pNext : *const void,
3242	pub image : Image,
3243	pub memory : DeviceMemory,
3244	pub memoryOffset : DeviceSize,
3245}
3246
3247#[repr(C)]
3248#[derive(Debug, Copy, Clone)]
3249pub struct PhysicalDevice16BitStorageFeatures {
3250	pub sType : StructureType,
3251	pub pNext : *mut void,
3252	pub storageBuffer16BitAccess : Bool32,
3253	pub uniformAndStorageBuffer16BitAccess : Bool32,
3254	pub storagePushConstant16 : Bool32,
3255	pub storageInputOutput16 : Bool32,
3256}
3257
3258#[repr(C)]
3259#[derive(Debug, Copy, Clone)]
3260pub struct MemoryDedicatedRequirements {
3261	pub sType : StructureType,
3262	pub pNext : *mut void,
3263	pub prefersDedicatedAllocation : Bool32,
3264	pub requiresDedicatedAllocation : Bool32,
3265}
3266
3267#[repr(C)]
3268#[derive(Debug, Copy, Clone)]
3269pub struct MemoryDedicatedAllocateInfo {
3270	pub sType : StructureType,
3271	pub pNext : *const void,
3272	pub image : Image,
3273	pub buffer : Buffer,
3274}
3275
3276#[repr(C)]
3277#[derive(Debug, Copy, Clone)]
3278pub struct MemoryAllocateFlagsInfo {
3279	pub sType : StructureType,
3280	pub pNext : *const void,
3281	pub flags : MemoryAllocateFlags,
3282	pub deviceMask : u32,
3283}
3284
3285#[repr(C)]
3286#[derive(Debug, Copy, Clone)]
3287pub struct DeviceGroupRenderPassBeginInfo {
3288	pub sType : StructureType,
3289	pub pNext : *const void,
3290	pub deviceMask : u32,
3291	pub deviceRenderAreaCount : u32,
3292	pub pDeviceRenderAreas : *const Rect2D,
3293}
3294
3295#[repr(C)]
3296#[derive(Debug, Copy, Clone)]
3297pub struct DeviceGroupCommandBufferBeginInfo {
3298	pub sType : StructureType,
3299	pub pNext : *const void,
3300	pub deviceMask : u32,
3301}
3302
3303#[repr(C)]
3304#[derive(Debug, Copy, Clone)]
3305pub struct DeviceGroupSubmitInfo {
3306	pub sType : StructureType,
3307	pub pNext : *const void,
3308	pub waitSemaphoreCount : u32,
3309	pub pWaitSemaphoreDeviceIndices : *const u32,
3310	pub commandBufferCount : u32,
3311	pub pCommandBufferDeviceMasks : *const u32,
3312	pub signalSemaphoreCount : u32,
3313	pub pSignalSemaphoreDeviceIndices : *const u32,
3314}
3315
3316#[repr(C)]
3317#[derive(Debug, Copy, Clone)]
3318pub struct DeviceGroupBindSparseInfo {
3319	pub sType : StructureType,
3320	pub pNext : *const void,
3321	pub resourceDeviceIndex : u32,
3322	pub memoryDeviceIndex : u32,
3323}
3324
3325#[repr(C)]
3326#[derive(Debug, Copy, Clone)]
3327pub struct BindBufferMemoryDeviceGroupInfo {
3328	pub sType : StructureType,
3329	pub pNext : *const void,
3330	pub deviceIndexCount : u32,
3331	pub pDeviceIndices : *const u32,
3332}
3333
3334#[repr(C)]
3335#[derive(Debug, Copy, Clone)]
3336pub struct BindImageMemoryDeviceGroupInfo {
3337	pub sType : StructureType,
3338	pub pNext : *const void,
3339	pub deviceIndexCount : u32,
3340	pub pDeviceIndices : *const u32,
3341	pub splitInstanceBindRegionCount : u32,
3342	pub pSplitInstanceBindRegions : *const Rect2D,
3343}
3344
3345#[repr(C)]
3346#[derive(Debug, Copy, Clone)]
3347pub struct PhysicalDeviceGroupProperties {
3348	pub sType : StructureType,
3349	pub pNext : *mut void,
3350	pub physicalDeviceCount : u32,
3351	pub physicalDevices : [PhysicalDevice;MAX_DEVICE_GROUP_SIZE],
3352	pub subsetAllocation : Bool32,
3353}
3354
3355#[repr(C)]
3356#[derive(Debug, Copy, Clone)]
3357pub struct DeviceGroupDeviceCreateInfo {
3358	pub sType : StructureType,
3359	pub pNext : *const void,
3360	pub physicalDeviceCount : u32,
3361	pub pPhysicalDevices : *const PhysicalDevice,
3362}
3363
3364#[repr(C)]
3365#[derive(Debug, Copy, Clone)]
3366pub struct BufferMemoryRequirementsInfo2 {
3367	pub sType : StructureType,
3368	pub pNext : *const void,
3369	pub buffer : Buffer,
3370}
3371
3372#[repr(C)]
3373#[derive(Debug, Copy, Clone)]
3374pub struct ImageMemoryRequirementsInfo2 {
3375	pub sType : StructureType,
3376	pub pNext : *const void,
3377	pub image : Image,
3378}
3379
3380#[repr(C)]
3381#[derive(Debug, Copy, Clone)]
3382pub struct ImageSparseMemoryRequirementsInfo2 {
3383	pub sType : StructureType,
3384	pub pNext : *const void,
3385	pub image : Image,
3386}
3387
3388#[repr(C)]
3389#[derive(Debug, Copy, Clone)]
3390pub struct MemoryRequirements2 {
3391	pub sType : StructureType,
3392	pub pNext : *mut void,
3393	pub memoryRequirements : MemoryRequirements,
3394}
3395
3396pub type MemoryRequirements2KHR = MemoryRequirements2;
3397
3398#[repr(C)]
3399#[derive(Debug, Copy, Clone)]
3400pub struct SparseImageMemoryRequirements2 {
3401	pub sType : StructureType,
3402	pub pNext : *mut void,
3403	pub memoryRequirements : SparseImageMemoryRequirements,
3404}
3405
3406#[repr(C)]
3407#[derive(Debug, Copy, Clone)]
3408pub struct PhysicalDeviceFeatures2 {
3409	pub sType : StructureType,
3410	pub pNext : *mut void,
3411	pub features : PhysicalDeviceFeatures,
3412}
3413
3414#[repr(C)]
3415#[derive(Copy, Clone)]
3416pub struct PhysicalDeviceProperties2 {
3417	pub sType : StructureType,
3418	pub pNext : *mut void,
3419	pub properties : PhysicalDeviceProperties,
3420}
3421
3422#[repr(C)]
3423#[derive(Debug, Copy, Clone)]
3424pub struct FormatProperties2 {
3425	pub sType : StructureType,
3426	pub pNext : *mut void,
3427	pub formatProperties : FormatProperties,
3428}
3429
3430#[repr(C)]
3431#[derive(Debug, Copy, Clone)]
3432pub struct ImageFormatProperties2 {
3433	pub sType : StructureType,
3434	pub pNext : *mut void,
3435	pub imageFormatProperties : ImageFormatProperties,
3436}
3437
3438#[repr(C)]
3439#[derive(Debug, Copy, Clone)]
3440pub struct PhysicalDeviceImageFormatInfo2 {
3441	pub sType : StructureType,
3442	pub pNext : *const void,
3443	pub format : Format,
3444	pub r#type : ImageType,
3445	pub tiling : ImageTiling,
3446	pub usage : ImageUsageFlags,
3447	pub flags : ImageCreateFlags,
3448}
3449
3450#[repr(C)]
3451#[derive(Debug, Copy, Clone)]
3452pub struct QueueFamilyProperties2 {
3453	pub sType : StructureType,
3454	pub pNext : *mut void,
3455	pub queueFamilyProperties : QueueFamilyProperties,
3456}
3457
3458#[repr(C)]
3459#[derive(Debug, Copy, Clone)]
3460pub struct PhysicalDeviceMemoryProperties2 {
3461	pub sType : StructureType,
3462	pub pNext : *mut void,
3463	pub memoryProperties : PhysicalDeviceMemoryProperties,
3464}
3465
3466#[repr(C)]
3467#[derive(Debug, Copy, Clone)]
3468pub struct SparseImageFormatProperties2 {
3469	pub sType : StructureType,
3470	pub pNext : *mut void,
3471	pub properties : SparseImageFormatProperties,
3472}
3473
3474#[repr(C)]
3475#[derive(Debug, Copy, Clone)]
3476pub struct PhysicalDeviceSparseImageFormatInfo2 {
3477	pub sType : StructureType,
3478	pub pNext : *const void,
3479	pub format : Format,
3480	pub r#type : ImageType,
3481	pub samples : SampleCountFlagBits,
3482	pub usage : ImageUsageFlags,
3483	pub tiling : ImageTiling,
3484}
3485
3486#[repr(C)]
3487#[derive(Debug, Copy, Clone)]
3488pub struct PhysicalDevicePointClippingProperties {
3489	pub sType : StructureType,
3490	pub pNext : *mut void,
3491	pub pointClippingBehavior : PointClippingBehavior,
3492}
3493
3494#[repr(C)]
3495#[derive(Debug, Copy, Clone)]
3496pub struct InputAttachmentAspectReference {
3497	pub subpass : u32,
3498	pub inputAttachmentIndex : u32,
3499	pub aspectMask : ImageAspectFlags,
3500}
3501
3502#[repr(C)]
3503#[derive(Debug, Copy, Clone)]
3504pub struct RenderPassInputAttachmentAspectCreateInfo {
3505	pub sType : StructureType,
3506	pub pNext : *const void,
3507	pub aspectReferenceCount : u32,
3508	pub pAspectReferences : *const InputAttachmentAspectReference,
3509}
3510
3511#[repr(C)]
3512#[derive(Debug, Copy, Clone)]
3513pub struct ImageViewUsageCreateInfo {
3514	pub sType : StructureType,
3515	pub pNext : *const void,
3516	pub usage : ImageUsageFlags,
3517}
3518
3519#[repr(C)]
3520#[derive(Debug, Copy, Clone)]
3521pub struct PipelineTessellationDomainOriginStateCreateInfo {
3522	pub sType : StructureType,
3523	pub pNext : *const void,
3524	pub domainOrigin : TessellationDomainOrigin,
3525}
3526
3527#[repr(C)]
3528#[derive(Debug, Copy, Clone)]
3529pub struct RenderPassMultiviewCreateInfo {
3530	pub sType : StructureType,
3531	pub pNext : *const void,
3532	pub subpassCount : u32,
3533	pub pViewMasks : *const u32,
3534	pub dependencyCount : u32,
3535	pub pViewOffsets : *const i32,
3536	pub correlationMaskCount : u32,
3537	pub pCorrelationMasks : *const u32,
3538}
3539
3540#[repr(C)]
3541#[derive(Debug, Copy, Clone)]
3542pub struct PhysicalDeviceMultiviewFeatures {
3543	pub sType : StructureType,
3544	pub pNext : *mut void,
3545	pub multiview : Bool32,
3546	pub multiviewGeometryShader : Bool32,
3547	pub multiviewTessellationShader : Bool32,
3548}
3549
3550#[repr(C)]
3551#[derive(Debug, Copy, Clone)]
3552pub struct PhysicalDeviceMultiviewProperties {
3553	pub sType : StructureType,
3554	pub pNext : *mut void,
3555	pub maxMultiviewViewCount : u32,
3556	pub maxMultiviewInstanceIndex : u32,
3557}
3558
3559#[repr(C)]
3560#[derive(Debug, Copy, Clone)]
3561pub struct PhysicalDeviceVariablePointersFeatures {
3562	pub sType : StructureType,
3563	pub pNext : *mut void,
3564	pub variablePointersStorageBuffer : Bool32,
3565	pub variablePointers : Bool32,
3566}
3567
3568pub type PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
3569
3570#[repr(C)]
3571#[derive(Debug, Copy, Clone)]
3572pub struct PhysicalDeviceProtectedMemoryFeatures {
3573	pub sType : StructureType,
3574	pub pNext : *mut void,
3575	pub protectedMemory : Bool32,
3576}
3577
3578#[repr(C)]
3579#[derive(Debug, Copy, Clone)]
3580pub struct PhysicalDeviceProtectedMemoryProperties {
3581	pub sType : StructureType,
3582	pub pNext : *mut void,
3583	pub protectedNoFault : Bool32,
3584}
3585
3586#[repr(C)]
3587#[derive(Debug, Copy, Clone)]
3588pub struct DeviceQueueInfo2 {
3589	pub sType : StructureType,
3590	pub pNext : *const void,
3591	pub flags : DeviceQueueCreateFlags,
3592	pub queueFamilyIndex : u32,
3593	pub queueIndex : u32,
3594}
3595
3596#[repr(C)]
3597#[derive(Debug, Copy, Clone)]
3598pub struct ProtectedSubmitInfo {
3599	pub sType : StructureType,
3600	pub pNext : *const void,
3601	pub protectedSubmit : Bool32,
3602}
3603
3604#[repr(C)]
3605#[derive(Debug, Copy, Clone)]
3606pub struct SamplerYcbcrConversionCreateInfo {
3607	pub sType : StructureType,
3608	pub pNext : *const void,
3609	pub format : Format,
3610	pub ycbcrModel : SamplerYcbcrModelConversion,
3611	pub ycbcrRange : SamplerYcbcrRange,
3612	pub components : ComponentMapping,
3613	pub xChromaOffset : ChromaLocation,
3614	pub yChromaOffset : ChromaLocation,
3615	pub chromaFilter : Filter,
3616	pub forceExplicitReconstruction : Bool32,
3617}
3618
3619#[repr(C)]
3620#[derive(Debug, Copy, Clone)]
3621pub struct SamplerYcbcrConversionInfo {
3622	pub sType : StructureType,
3623	pub pNext : *const void,
3624	pub conversion : SamplerYcbcrConversion,
3625}
3626
3627#[repr(C)]
3628#[derive(Debug, Copy, Clone)]
3629pub struct BindImagePlaneMemoryInfo {
3630	pub sType : StructureType,
3631	pub pNext : *const void,
3632	pub planeAspect : ImageAspectFlagBits,
3633}
3634
3635#[repr(C)]
3636#[derive(Debug, Copy, Clone)]
3637pub struct ImagePlaneMemoryRequirementsInfo {
3638	pub sType : StructureType,
3639	pub pNext : *const void,
3640	pub planeAspect : ImageAspectFlagBits,
3641}
3642
3643#[repr(C)]
3644#[derive(Debug, Copy, Clone)]
3645pub struct PhysicalDeviceSamplerYcbcrConversionFeatures {
3646	pub sType : StructureType,
3647	pub pNext : *mut void,
3648	pub samplerYcbcrConversion : Bool32,
3649}
3650
3651#[repr(C)]
3652#[derive(Debug, Copy, Clone)]
3653pub struct SamplerYcbcrConversionImageFormatProperties {
3654	pub sType : StructureType,
3655	pub pNext : *mut void,
3656	pub combinedImageSamplerDescriptorCount : u32,
3657}
3658
3659#[repr(C)]
3660#[derive(Debug, Copy, Clone)]
3661pub struct DescriptorUpdateTemplateEntry {
3662	pub dstBinding : u32,
3663	pub dstArrayElement : u32,
3664	pub descriptorCount : u32,
3665	pub descriptorType : DescriptorType,
3666	pub offset : usize,
3667	pub stride : usize,
3668}
3669
3670#[repr(C)]
3671#[derive(Debug, Copy, Clone)]
3672pub struct DescriptorUpdateTemplateCreateInfo {
3673	pub sType : StructureType,
3674	pub pNext : *const void,
3675	pub flags : DescriptorUpdateTemplateCreateFlags,
3676	pub descriptorUpdateEntryCount : u32,
3677	pub pDescriptorUpdateEntries : *const DescriptorUpdateTemplateEntry,
3678	pub templateType : DescriptorUpdateTemplateType,
3679	pub descriptorSetLayout : DescriptorSetLayout,
3680	pub pipelineBindPoint : PipelineBindPoint,
3681	pub pipelineLayout : PipelineLayout,
3682	pub set : u32,
3683}
3684
3685#[repr(C)]
3686#[derive(Debug, Copy, Clone)]
3687pub struct ExternalMemoryProperties {
3688	pub externalMemoryFeatures : ExternalMemoryFeatureFlags,
3689	pub exportFromImportedHandleTypes : ExternalMemoryHandleTypeFlags,
3690	pub compatibleHandleTypes : ExternalMemoryHandleTypeFlags,
3691}
3692
3693#[repr(C)]
3694#[derive(Debug, Copy, Clone)]
3695pub struct PhysicalDeviceExternalImageFormatInfo {
3696	pub sType : StructureType,
3697	pub pNext : *const void,
3698	pub handleType : ExternalMemoryHandleTypeFlagBits,
3699}
3700
3701#[repr(C)]
3702#[derive(Debug, Copy, Clone)]
3703pub struct ExternalImageFormatProperties {
3704	pub sType : StructureType,
3705	pub pNext : *mut void,
3706	pub externalMemoryProperties : ExternalMemoryProperties,
3707}
3708
3709#[repr(C)]
3710#[derive(Debug, Copy, Clone)]
3711pub struct PhysicalDeviceExternalBufferInfo {
3712	pub sType : StructureType,
3713	pub pNext : *const void,
3714	pub flags : BufferCreateFlags,
3715	pub usage : BufferUsageFlags,
3716	pub handleType : ExternalMemoryHandleTypeFlagBits,
3717}
3718
3719#[repr(C)]
3720#[derive(Debug, Copy, Clone)]
3721pub struct ExternalBufferProperties {
3722	pub sType : StructureType,
3723	pub pNext : *mut void,
3724	pub externalMemoryProperties : ExternalMemoryProperties,
3725}
3726
3727#[repr(C)]
3728#[derive(Debug, Copy, Clone)]
3729pub struct PhysicalDeviceIDProperties {
3730	pub sType : StructureType,
3731	pub pNext : *mut void,
3732	pub deviceUUID : [u8;UUID_SIZE],
3733	pub driverUUID : [u8;UUID_SIZE],
3734	pub deviceLUID : [u8;LUID_SIZE],
3735	pub deviceNodeMask : u32,
3736	pub deviceLUIDValid : Bool32,
3737}
3738
3739#[repr(C)]
3740#[derive(Debug, Copy, Clone)]
3741pub struct ExternalMemoryImageCreateInfo {
3742	pub sType : StructureType,
3743	pub pNext : *const void,
3744	pub handleTypes : ExternalMemoryHandleTypeFlags,
3745}
3746
3747#[repr(C)]
3748#[derive(Debug, Copy, Clone)]
3749pub struct ExternalMemoryBufferCreateInfo {
3750	pub sType : StructureType,
3751	pub pNext : *const void,
3752	pub handleTypes : ExternalMemoryHandleTypeFlags,
3753}
3754
3755#[repr(C)]
3756#[derive(Debug, Copy, Clone)]
3757pub struct ExportMemoryAllocateInfo {
3758	pub sType : StructureType,
3759	pub pNext : *const void,
3760	pub handleTypes : ExternalMemoryHandleTypeFlags,
3761}
3762
3763#[repr(C)]
3764#[derive(Debug, Copy, Clone)]
3765pub struct PhysicalDeviceExternalFenceInfo {
3766	pub sType : StructureType,
3767	pub pNext : *const void,
3768	pub handleType : ExternalFenceHandleTypeFlagBits,
3769}
3770
3771#[repr(C)]
3772#[derive(Debug, Copy, Clone)]
3773pub struct ExternalFenceProperties {
3774	pub sType : StructureType,
3775	pub pNext : *mut void,
3776	pub exportFromImportedHandleTypes : ExternalFenceHandleTypeFlags,
3777	pub compatibleHandleTypes : ExternalFenceHandleTypeFlags,
3778	pub externalFenceFeatures : ExternalFenceFeatureFlags,
3779}
3780
3781#[repr(C)]
3782#[derive(Debug, Copy, Clone)]
3783pub struct ExportFenceCreateInfo {
3784	pub sType : StructureType,
3785	pub pNext : *const void,
3786	pub handleTypes : ExternalFenceHandleTypeFlags,
3787}
3788
3789#[repr(C)]
3790#[derive(Debug, Copy, Clone)]
3791pub struct ExportSemaphoreCreateInfo {
3792	pub sType : StructureType,
3793	pub pNext : *const void,
3794	pub handleTypes : ExternalSemaphoreHandleTypeFlags,
3795}
3796
3797#[repr(C)]
3798#[derive(Debug, Copy, Clone)]
3799pub struct PhysicalDeviceExternalSemaphoreInfo {
3800	pub sType : StructureType,
3801	pub pNext : *const void,
3802	pub handleType : ExternalSemaphoreHandleTypeFlagBits,
3803}
3804
3805#[repr(C)]
3806#[derive(Debug, Copy, Clone)]
3807pub struct ExternalSemaphoreProperties {
3808	pub sType : StructureType,
3809	pub pNext : *mut void,
3810	pub exportFromImportedHandleTypes : ExternalSemaphoreHandleTypeFlags,
3811	pub compatibleHandleTypes : ExternalSemaphoreHandleTypeFlags,
3812	pub externalSemaphoreFeatures : ExternalSemaphoreFeatureFlags,
3813}
3814
3815#[repr(C)]
3816#[derive(Debug, Copy, Clone)]
3817pub struct PhysicalDeviceMaintenance3Properties {
3818	pub sType : StructureType,
3819	pub pNext : *mut void,
3820	pub maxPerSetDescriptors : u32,
3821	pub maxMemoryAllocationSize : DeviceSize,
3822}
3823
3824#[repr(C)]
3825#[derive(Debug, Copy, Clone)]
3826pub struct DescriptorSetLayoutSupport {
3827	pub sType : StructureType,
3828	pub pNext : *mut void,
3829	pub supported : Bool32,
3830}
3831
3832#[repr(C)]
3833#[derive(Debug, Copy, Clone)]
3834pub struct PhysicalDeviceShaderDrawParametersFeatures {
3835	pub sType : StructureType,
3836	pub pNext : *mut void,
3837	pub shaderDrawParameters : Bool32,
3838}
3839
3840pub type PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
3841pub type DeviceAddress = u64;
3842pub type DriverId = i32;
3843pub const DRIVER_ID_AMD_PROPRIETARY : i32 = 1;
3844pub const DRIVER_ID_AMD_OPEN_SOURCE : i32 = 2;
3845pub const DRIVER_ID_MESA_RADV : i32 = 3;
3846pub const DRIVER_ID_NVIDIA_PROPRIETARY : i32 = 4;
3847pub const DRIVER_ID_INTEL_PROPRIETARY_WINDOWS : i32 = 5;
3848pub const DRIVER_ID_INTEL_OPEN_SOURCE_MESA : i32 = 6;
3849pub const DRIVER_ID_IMAGINATION_PROPRIETARY : i32 = 7;
3850pub const DRIVER_ID_QUALCOMM_PROPRIETARY : i32 = 8;
3851pub const DRIVER_ID_ARM_PROPRIETARY : i32 = 9;
3852pub const DRIVER_ID_GOOGLE_SWIFTSHADER : i32 = 10;
3853pub const DRIVER_ID_GGP_PROPRIETARY : i32 = 11;
3854pub const DRIVER_ID_BROADCOM_PROPRIETARY : i32 = 12;
3855pub const DRIVER_ID_MESA_LLVMPIPE : i32 = 13;
3856pub const DRIVER_ID_AMD_PROPRIETARY_KHR : i32 = DRIVER_ID_AMD_PROPRIETARY;
3857pub const DRIVER_ID_AMD_OPEN_SOURCE_KHR : i32 = DRIVER_ID_AMD_OPEN_SOURCE;
3858pub const DRIVER_ID_MESA_RADV_KHR : i32 = DRIVER_ID_MESA_RADV;
3859pub const DRIVER_ID_NVIDIA_PROPRIETARY_KHR : i32 = DRIVER_ID_NVIDIA_PROPRIETARY;
3860pub const DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR : i32 = DRIVER_ID_INTEL_PROPRIETARY_WINDOWS;
3861pub const DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR : i32 = DRIVER_ID_INTEL_OPEN_SOURCE_MESA;
3862pub const DRIVER_ID_IMAGINATION_PROPRIETARY_KHR : i32 = DRIVER_ID_IMAGINATION_PROPRIETARY;
3863pub const DRIVER_ID_QUALCOMM_PROPRIETARY_KHR : i32 = DRIVER_ID_QUALCOMM_PROPRIETARY;
3864pub const DRIVER_ID_ARM_PROPRIETARY_KHR : i32 = DRIVER_ID_ARM_PROPRIETARY;
3865pub const DRIVER_ID_GOOGLE_SWIFTSHADER_KHR : i32 = DRIVER_ID_GOOGLE_SWIFTSHADER;
3866pub const DRIVER_ID_GGP_PROPRIETARY_KHR : i32 = DRIVER_ID_GGP_PROPRIETARY;
3867pub const DRIVER_ID_BROADCOM_PROPRIETARY_KHR : i32 = DRIVER_ID_BROADCOM_PROPRIETARY;
3868pub const DRIVER_ID_MAX_ENUM : i32 = 0x7FFFFFF;
3869pub type ShaderFloatControlsIndependence = i32;
3870pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY : i32 = 0;
3871pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL : i32 = 1;
3872pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE : i32 = 2;
3873pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR : i32 = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY;
3874pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR : i32 = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL;
3875pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR : i32 = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE;
3876pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM : i32 = 0x7FFFFFF;
3877pub type SamplerReductionMode = i32;
3878pub const SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE : i32 = 0;
3879pub const SAMPLER_REDUCTION_MODE_MIN : i32 = 1;
3880pub const SAMPLER_REDUCTION_MODE_MAX : i32 = 2;
3881pub const SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT : i32 = SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE;
3882pub const SAMPLER_REDUCTION_MODE_MIN_EXT : i32 = SAMPLER_REDUCTION_MODE_MIN;
3883pub const SAMPLER_REDUCTION_MODE_MAX_EXT : i32 = SAMPLER_REDUCTION_MODE_MAX;
3884pub const SAMPLER_REDUCTION_MODE_MAX_ENUM : i32 = 0x7FFFFFF;
3885pub type SemaphoreType = i32;
3886pub const SEMAPHORE_TYPE_BINARY : i32 = 0;
3887pub const SEMAPHORE_TYPE_TIMELINE : i32 = 1;
3888pub const SEMAPHORE_TYPE_BINARY_KHR : i32 = SEMAPHORE_TYPE_BINARY;
3889pub const SEMAPHORE_TYPE_TIMELINE_KHR : i32 = SEMAPHORE_TYPE_TIMELINE;
3890pub const SEMAPHORE_TYPE_MAX_ENUM : i32 = 0x7FFFFFF;
3891pub type ResolveModeFlagBits = i32;
3892pub const RESOLVE_MODE_NONE : i32 = 0;
3893pub const RESOLVE_MODE_SAMPLE_ZERO_BIT : i32 = 0x00000001;
3894pub const RESOLVE_MODE_AVERAGE_BIT : i32 = 0x00000002;
3895pub const RESOLVE_MODE_MIN_BIT : i32 = 0x00000004;
3896pub const RESOLVE_MODE_MAX_BIT : i32 = 0x00000008;
3897pub const RESOLVE_MODE_NONE_KHR : i32 = RESOLVE_MODE_NONE;
3898pub const RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR : i32 = RESOLVE_MODE_SAMPLE_ZERO_BIT;
3899pub const RESOLVE_MODE_AVERAGE_BIT_KHR : i32 = RESOLVE_MODE_AVERAGE_BIT;
3900pub const RESOLVE_MODE_MIN_BIT_KHR : i32 = RESOLVE_MODE_MIN_BIT;
3901pub const RESOLVE_MODE_MAX_BIT_KHR : i32 = RESOLVE_MODE_MAX_BIT;
3902pub const RESOLVE_MODE_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3903pub type ResolveModeFlags = i32;
3904pub type DescriptorBindingFlagBits = i32;
3905pub const DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT : i32 = 0x00000001;
3906pub const DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT : i32 = 0x00000002;
3907pub const DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT : i32 = 0x00000004;
3908pub const DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT : i32 = 0x00000008;
3909pub const DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT : i32 = DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT;
3910pub const DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT : i32 = DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT;
3911pub const DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT : i32 = DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT;
3912pub const DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT : i32 = DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT;
3913pub const DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3914pub type DescriptorBindingFlags = i32;
3915pub type SemaphoreWaitFlagBits = i32;
3916pub const SEMAPHORE_WAIT_ANY_BIT : i32 = 0x00000001;
3917pub const SEMAPHORE_WAIT_ANY_BIT_KHR : i32 = SEMAPHORE_WAIT_ANY_BIT;
3918pub const SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM : i32 = 0x7FFFFFF;
3919pub type SemaphoreWaitFlags = i32;
3920
3921#[repr(C)]
3922#[derive(Debug, Copy, Clone)]
3923pub struct PhysicalDeviceVulkan11Features {
3924	pub sType : StructureType,
3925	pub pNext : *mut void,
3926	pub storageBuffer16BitAccess : Bool32,
3927	pub uniformAndStorageBuffer16BitAccess : Bool32,
3928	pub storagePushConstant16 : Bool32,
3929	pub storageInputOutput16 : Bool32,
3930	pub multiview : Bool32,
3931	pub multiviewGeometryShader : Bool32,
3932	pub multiviewTessellationShader : Bool32,
3933	pub variablePointersStorageBuffer : Bool32,
3934	pub variablePointers : Bool32,
3935	pub protectedMemory : Bool32,
3936	pub samplerYcbcrConversion : Bool32,
3937	pub shaderDrawParameters : Bool32,
3938}
3939
3940#[repr(C)]
3941#[derive(Debug, Copy, Clone)]
3942pub struct PhysicalDeviceVulkan11Properties {
3943	pub sType : StructureType,
3944	pub pNext : *mut void,
3945	pub deviceUUID : [u8;UUID_SIZE],
3946	pub driverUUID : [u8;UUID_SIZE],
3947	pub deviceLUID : [u8;LUID_SIZE],
3948	pub deviceNodeMask : u32,
3949	pub deviceLUIDValid : Bool32,
3950	pub subgroupSize : u32,
3951	pub subgroupSupportedStages : ShaderStageFlags,
3952	pub subgroupSupportedOperations : SubgroupFeatureFlags,
3953	pub subgroupQuadOperationsInAllStages : Bool32,
3954	pub pointClippingBehavior : PointClippingBehavior,
3955	pub maxMultiviewViewCount : u32,
3956	pub maxMultiviewInstanceIndex : u32,
3957	pub protectedNoFault : Bool32,
3958	pub maxPerSetDescriptors : u32,
3959	pub maxMemoryAllocationSize : DeviceSize,
3960}
3961
3962#[repr(C)]
3963#[derive(Debug, Copy, Clone)]
3964pub struct PhysicalDeviceVulkan12Features {
3965	pub sType : StructureType,
3966	pub pNext : *mut void,
3967	pub samplerMirrorClampToEdge : Bool32,
3968	pub drawIndirectCount : Bool32,
3969	pub storageBuffer8BitAccess : Bool32,
3970	pub uniformAndStorageBuffer8BitAccess : Bool32,
3971	pub storagePushConstant8 : Bool32,
3972	pub shaderBufferInt64Atomics : Bool32,
3973	pub shaderSharedInt64Atomics : Bool32,
3974	pub shaderFloat16 : Bool32,
3975	pub shaderInt8 : Bool32,
3976	pub descriptorIndexing : Bool32,
3977	pub shaderInputAttachmentArrayDynamicIndexing : Bool32,
3978	pub shaderUniformTexelBufferArrayDynamicIndexing : Bool32,
3979	pub shaderStorageTexelBufferArrayDynamicIndexing : Bool32,
3980	pub shaderUniformBufferArrayNonUniformIndexing : Bool32,
3981	pub shaderSampledImageArrayNonUniformIndexing : Bool32,
3982	pub shaderStorageBufferArrayNonUniformIndexing : Bool32,
3983	pub shaderStorageImageArrayNonUniformIndexing : Bool32,
3984	pub shaderInputAttachmentArrayNonUniformIndexing : Bool32,
3985	pub shaderUniformTexelBufferArrayNonUniformIndexing : Bool32,
3986	pub shaderStorageTexelBufferArrayNonUniformIndexing : Bool32,
3987	pub descriptorBindingUniformBufferUpdateAfterBind : Bool32,
3988	pub descriptorBindingSampledImageUpdateAfterBind : Bool32,
3989	pub descriptorBindingStorageImageUpdateAfterBind : Bool32,
3990	pub descriptorBindingStorageBufferUpdateAfterBind : Bool32,
3991	pub descriptorBindingUniformTexelBufferUpdateAfterBind : Bool32,
3992	pub descriptorBindingStorageTexelBufferUpdateAfterBind : Bool32,
3993	pub descriptorBindingUpdateUnusedWhilePending : Bool32,
3994	pub descriptorBindingPartiallyBound : Bool32,
3995	pub descriptorBindingVariableDescriptorCount : Bool32,
3996	pub runtimeDescriptorArray : Bool32,
3997	pub samplerFilterMinmax : Bool32,
3998	pub scalarBlockLayout : Bool32,
3999	pub imagelessFramebuffer : Bool32,
4000	pub uniformBufferStandardLayout : Bool32,
4001	pub shaderSubgroupExtendedTypes : Bool32,
4002	pub separateDepthStencilLayouts : Bool32,
4003	pub hostQueryReset : Bool32,
4004	pub timelineSemaphore : Bool32,
4005	pub bufferDeviceAddress : Bool32,
4006	pub bufferDeviceAddressCaptureReplay : Bool32,
4007	pub bufferDeviceAddressMultiDevice : Bool32,
4008	pub vulkanMemoryModel : Bool32,
4009	pub vulkanMemoryModelDeviceScope : Bool32,
4010	pub vulkanMemoryModelAvailabilityVisibilityChains : Bool32,
4011	pub shaderOutputViewportIndex : Bool32,
4012	pub shaderOutputLayer : Bool32,
4013	pub subgroupBroadcastDynamicId : Bool32,
4014}
4015
4016#[repr(C)]
4017#[derive(Debug, Copy, Clone)]
4018pub struct ConformanceVersion {
4019	pub major : u8,
4020	pub minor : u8,
4021	pub subminor : u8,
4022	pub patch : u8,
4023}
4024
4025#[repr(C)]
4026#[derive(Copy, Clone)]
4027pub struct PhysicalDeviceVulkan12Properties {
4028	pub sType : StructureType,
4029	pub pNext : *mut void,
4030	pub driverID : DriverId,
4031	pub driverName : [i8;MAX_DRIVER_NAME_SIZE],
4032	pub driverInfo : [i8;MAX_DRIVER_INFO_SIZE],
4033	pub conformanceVersion : ConformanceVersion,
4034	pub denormBehaviorIndependence : ShaderFloatControlsIndependence,
4035	pub roundingModeIndependence : ShaderFloatControlsIndependence,
4036	pub shaderSignedZeroInfNanPreserveFloat16 : Bool32,
4037	pub shaderSignedZeroInfNanPreserveFloat32 : Bool32,
4038	pub shaderSignedZeroInfNanPreserveFloat64 : Bool32,
4039	pub shaderDenormPreserveFloat16 : Bool32,
4040	pub shaderDenormPreserveFloat32 : Bool32,
4041	pub shaderDenormPreserveFloat64 : Bool32,
4042	pub shaderDenormFlushToZeroFloat16 : Bool32,
4043	pub shaderDenormFlushToZeroFloat32 : Bool32,
4044	pub shaderDenormFlushToZeroFloat64 : Bool32,
4045	pub shaderRoundingModeRTEFloat16 : Bool32,
4046	pub shaderRoundingModeRTEFloat32 : Bool32,
4047	pub shaderRoundingModeRTEFloat64 : Bool32,
4048	pub shaderRoundingModeRTZFloat16 : Bool32,
4049	pub shaderRoundingModeRTZFloat32 : Bool32,
4050	pub shaderRoundingModeRTZFloat64 : Bool32,
4051	pub maxUpdateAfterBindDescriptorsInAllPools : u32,
4052	pub shaderUniformBufferArrayNonUniformIndexingNative : Bool32,
4053	pub shaderSampledImageArrayNonUniformIndexingNative : Bool32,
4054	pub shaderStorageBufferArrayNonUniformIndexingNative : Bool32,
4055	pub shaderStorageImageArrayNonUniformIndexingNative : Bool32,
4056	pub shaderInputAttachmentArrayNonUniformIndexingNative : Bool32,
4057	pub robustBufferAccessUpdateAfterBind : Bool32,
4058	pub quadDivergentImplicitLod : Bool32,
4059	pub maxPerStageDescriptorUpdateAfterBindSamplers : u32,
4060	pub maxPerStageDescriptorUpdateAfterBindUniformBuffers : u32,
4061	pub maxPerStageDescriptorUpdateAfterBindStorageBuffers : u32,
4062	pub maxPerStageDescriptorUpdateAfterBindSampledImages : u32,
4063	pub maxPerStageDescriptorUpdateAfterBindStorageImages : u32,
4064	pub maxPerStageDescriptorUpdateAfterBindInputAttachments : u32,
4065	pub maxPerStageUpdateAfterBindResources : u32,
4066	pub maxDescriptorSetUpdateAfterBindSamplers : u32,
4067	pub maxDescriptorSetUpdateAfterBindUniformBuffers : u32,
4068	pub maxDescriptorSetUpdateAfterBindUniformBuffersDynamic : u32,
4069	pub maxDescriptorSetUpdateAfterBindStorageBuffers : u32,
4070	pub maxDescriptorSetUpdateAfterBindStorageBuffersDynamic : u32,
4071	pub maxDescriptorSetUpdateAfterBindSampledImages : u32,
4072	pub maxDescriptorSetUpdateAfterBindStorageImages : u32,
4073	pub maxDescriptorSetUpdateAfterBindInputAttachments : u32,
4074	pub supportedDepthResolveModes : ResolveModeFlags,
4075	pub supportedStencilResolveModes : ResolveModeFlags,
4076	pub independentResolveNone : Bool32,
4077	pub independentResolve : Bool32,
4078	pub filterMinmaxSingleComponentFormats : Bool32,
4079	pub filterMinmaxImageComponentMapping : Bool32,
4080	pub maxTimelineSemaphoreValueDifference : u64,
4081	pub framebufferIntegerColorSampleCounts : SampleCountFlags,
4082}
4083
4084#[repr(C)]
4085#[derive(Debug, Copy, Clone)]
4086pub struct ImageFormatListCreateInfo {
4087	pub sType : StructureType,
4088	pub pNext : *const void,
4089	pub viewFormatCount : u32,
4090	pub pViewFormats : *const Format,
4091}
4092
4093#[repr(C)]
4094#[derive(Debug, Copy, Clone)]
4095pub struct AttachmentDescription2 {
4096	pub sType : StructureType,
4097	pub pNext : *const void,
4098	pub flags : AttachmentDescriptionFlags,
4099	pub format : Format,
4100	pub samples : SampleCountFlagBits,
4101	pub loadOp : AttachmentLoadOp,
4102	pub storeOp : AttachmentStoreOp,
4103	pub stencilLoadOp : AttachmentLoadOp,
4104	pub stencilStoreOp : AttachmentStoreOp,
4105	pub initialLayout : ImageLayout,
4106	pub finalLayout : ImageLayout,
4107}
4108
4109#[repr(C)]
4110#[derive(Debug, Copy, Clone)]
4111pub struct AttachmentReference2 {
4112	pub sType : StructureType,
4113	pub pNext : *const void,
4114	pub attachment : u32,
4115	pub layout : ImageLayout,
4116	pub aspectMask : ImageAspectFlags,
4117}
4118
4119#[repr(C)]
4120#[derive(Debug, Copy, Clone)]
4121pub struct SubpassDescription2 {
4122	pub sType : StructureType,
4123	pub pNext : *const void,
4124	pub flags : SubpassDescriptionFlags,
4125	pub pipelineBindPoint : PipelineBindPoint,
4126	pub viewMask : u32,
4127	pub inputAttachmentCount : u32,
4128	pub pInputAttachments : *const AttachmentReference2,
4129	pub colorAttachmentCount : u32,
4130	pub pColorAttachments : *const AttachmentReference2,
4131	pub pResolveAttachments : *const AttachmentReference2,
4132	pub pDepthStencilAttachment : *const AttachmentReference2,
4133	pub preserveAttachmentCount : u32,
4134	pub pPreserveAttachments : *const u32,
4135}
4136
4137#[repr(C)]
4138#[derive(Debug, Copy, Clone)]
4139pub struct SubpassDependency2 {
4140	pub sType : StructureType,
4141	pub pNext : *const void,
4142	pub srcSubpass : u32,
4143	pub dstSubpass : u32,
4144	pub srcStageMask : PipelineStageFlags,
4145	pub dstStageMask : PipelineStageFlags,
4146	pub srcAccessMask : AccessFlags,
4147	pub dstAccessMask : AccessFlags,
4148	pub dependencyFlags : DependencyFlags,
4149	pub viewOffset : i32,
4150}
4151
4152#[repr(C)]
4153#[derive(Debug, Copy, Clone)]
4154pub struct RenderPassCreateInfo2 {
4155	pub sType : StructureType,
4156	pub pNext : *const void,
4157	pub flags : RenderPassCreateFlags,
4158	pub attachmentCount : u32,
4159	pub pAttachments : *const AttachmentDescription2,
4160	pub subpassCount : u32,
4161	pub pSubpasses : *const SubpassDescription2,
4162	pub dependencyCount : u32,
4163	pub pDependencies : *const SubpassDependency2,
4164	pub correlatedViewMaskCount : u32,
4165	pub pCorrelatedViewMasks : *const u32,
4166}
4167
4168#[repr(C)]
4169#[derive(Debug, Copy, Clone)]
4170pub struct SubpassBeginInfo {
4171	pub sType : StructureType,
4172	pub pNext : *const void,
4173	pub contents : SubpassContents,
4174}
4175
4176#[repr(C)]
4177#[derive(Debug, Copy, Clone)]
4178pub struct SubpassEndInfo {
4179	pub sType : StructureType,
4180	pub pNext : *const void,
4181}
4182
4183#[repr(C)]
4184#[derive(Debug, Copy, Clone)]
4185pub struct PhysicalDevice8BitStorageFeatures {
4186	pub sType : StructureType,
4187	pub pNext : *mut void,
4188	pub storageBuffer8BitAccess : Bool32,
4189	pub uniformAndStorageBuffer8BitAccess : Bool32,
4190	pub storagePushConstant8 : Bool32,
4191}
4192
4193#[repr(C)]
4194#[derive(Copy, Clone)]
4195pub struct PhysicalDeviceDriverProperties {
4196	pub sType : StructureType,
4197	pub pNext : *mut void,
4198	pub driverID : DriverId,
4199	pub driverName : [i8;MAX_DRIVER_NAME_SIZE],
4200	pub driverInfo : [i8;MAX_DRIVER_INFO_SIZE],
4201	pub conformanceVersion : ConformanceVersion,
4202}
4203
4204#[repr(C)]
4205#[derive(Debug, Copy, Clone)]
4206pub struct PhysicalDeviceShaderAtomicInt64Features {
4207	pub sType : StructureType,
4208	pub pNext : *mut void,
4209	pub shaderBufferInt64Atomics : Bool32,
4210	pub shaderSharedInt64Atomics : Bool32,
4211}
4212
4213#[repr(C)]
4214#[derive(Debug, Copy, Clone)]
4215pub struct PhysicalDeviceShaderFloat16Int8Features {
4216	pub sType : StructureType,
4217	pub pNext : *mut void,
4218	pub shaderFloat16 : Bool32,
4219	pub shaderInt8 : Bool32,
4220}
4221
4222#[repr(C)]
4223#[derive(Debug, Copy, Clone)]
4224pub struct PhysicalDeviceFloatControlsProperties {
4225	pub sType : StructureType,
4226	pub pNext : *mut void,
4227	pub denormBehaviorIndependence : ShaderFloatControlsIndependence,
4228	pub roundingModeIndependence : ShaderFloatControlsIndependence,
4229	pub shaderSignedZeroInfNanPreserveFloat16 : Bool32,
4230	pub shaderSignedZeroInfNanPreserveFloat32 : Bool32,
4231	pub shaderSignedZeroInfNanPreserveFloat64 : Bool32,
4232	pub shaderDenormPreserveFloat16 : Bool32,
4233	pub shaderDenormPreserveFloat32 : Bool32,
4234	pub shaderDenormPreserveFloat64 : Bool32,
4235	pub shaderDenormFlushToZeroFloat16 : Bool32,
4236	pub shaderDenormFlushToZeroFloat32 : Bool32,
4237	pub shaderDenormFlushToZeroFloat64 : Bool32,
4238	pub shaderRoundingModeRTEFloat16 : Bool32,
4239	pub shaderRoundingModeRTEFloat32 : Bool32,
4240	pub shaderRoundingModeRTEFloat64 : Bool32,
4241	pub shaderRoundingModeRTZFloat16 : Bool32,
4242	pub shaderRoundingModeRTZFloat32 : Bool32,
4243	pub shaderRoundingModeRTZFloat64 : Bool32,
4244}
4245
4246#[repr(C)]
4247#[derive(Debug, Copy, Clone)]
4248pub struct DescriptorSetLayoutBindingFlagsCreateInfo {
4249	pub sType : StructureType,
4250	pub pNext : *const void,
4251	pub bindingCount : u32,
4252	pub pBindingFlags : *const DescriptorBindingFlags,
4253}
4254
4255#[repr(C)]
4256#[derive(Debug, Copy, Clone)]
4257pub struct PhysicalDeviceDescriptorIndexingFeatures {
4258	pub sType : StructureType,
4259	pub pNext : *mut void,
4260	pub shaderInputAttachmentArrayDynamicIndexing : Bool32,
4261	pub shaderUniformTexelBufferArrayDynamicIndexing : Bool32,
4262	pub shaderStorageTexelBufferArrayDynamicIndexing : Bool32,
4263	pub shaderUniformBufferArrayNonUniformIndexing : Bool32,
4264	pub shaderSampledImageArrayNonUniformIndexing : Bool32,
4265	pub shaderStorageBufferArrayNonUniformIndexing : Bool32,
4266	pub shaderStorageImageArrayNonUniformIndexing : Bool32,
4267	pub shaderInputAttachmentArrayNonUniformIndexing : Bool32,
4268	pub shaderUniformTexelBufferArrayNonUniformIndexing : Bool32,
4269	pub shaderStorageTexelBufferArrayNonUniformIndexing : Bool32,
4270	pub descriptorBindingUniformBufferUpdateAfterBind : Bool32,
4271	pub descriptorBindingSampledImageUpdateAfterBind : Bool32,
4272	pub descriptorBindingStorageImageUpdateAfterBind : Bool32,
4273	pub descriptorBindingStorageBufferUpdateAfterBind : Bool32,
4274	pub descriptorBindingUniformTexelBufferUpdateAfterBind : Bool32,
4275	pub descriptorBindingStorageTexelBufferUpdateAfterBind : Bool32,
4276	pub descriptorBindingUpdateUnusedWhilePending : Bool32,
4277	pub descriptorBindingPartiallyBound : Bool32,
4278	pub descriptorBindingVariableDescriptorCount : Bool32,
4279	pub runtimeDescriptorArray : Bool32,
4280}
4281
4282#[repr(C)]
4283#[derive(Debug, Copy, Clone)]
4284pub struct PhysicalDeviceDescriptorIndexingProperties {
4285	pub sType : StructureType,
4286	pub pNext : *mut void,
4287	pub maxUpdateAfterBindDescriptorsInAllPools : u32,
4288	pub shaderUniformBufferArrayNonUniformIndexingNative : Bool32,
4289	pub shaderSampledImageArrayNonUniformIndexingNative : Bool32,
4290	pub shaderStorageBufferArrayNonUniformIndexingNative : Bool32,
4291	pub shaderStorageImageArrayNonUniformIndexingNative : Bool32,
4292	pub shaderInputAttachmentArrayNonUniformIndexingNative : Bool32,
4293	pub robustBufferAccessUpdateAfterBind : Bool32,
4294	pub quadDivergentImplicitLod : Bool32,
4295	pub maxPerStageDescriptorUpdateAfterBindSamplers : u32,
4296	pub maxPerStageDescriptorUpdateAfterBindUniformBuffers : u32,
4297	pub maxPerStageDescriptorUpdateAfterBindStorageBuffers : u32,
4298	pub maxPerStageDescriptorUpdateAfterBindSampledImages : u32,
4299	pub maxPerStageDescriptorUpdateAfterBindStorageImages : u32,
4300	pub maxPerStageDescriptorUpdateAfterBindInputAttachments : u32,
4301	pub maxPerStageUpdateAfterBindResources : u32,
4302	pub maxDescriptorSetUpdateAfterBindSamplers : u32,
4303	pub maxDescriptorSetUpdateAfterBindUniformBuffers : u32,
4304	pub maxDescriptorSetUpdateAfterBindUniformBuffersDynamic : u32,
4305	pub maxDescriptorSetUpdateAfterBindStorageBuffers : u32,
4306	pub maxDescriptorSetUpdateAfterBindStorageBuffersDynamic : u32,
4307	pub maxDescriptorSetUpdateAfterBindSampledImages : u32,
4308	pub maxDescriptorSetUpdateAfterBindStorageImages : u32,
4309	pub maxDescriptorSetUpdateAfterBindInputAttachments : u32,
4310}
4311
4312#[repr(C)]
4313#[derive(Debug, Copy, Clone)]
4314pub struct DescriptorSetVariableDescriptorCountAllocateInfo {
4315	pub sType : StructureType,
4316	pub pNext : *const void,
4317	pub descriptorSetCount : u32,
4318	pub pDescriptorCounts : *const u32,
4319}
4320
4321#[repr(C)]
4322#[derive(Debug, Copy, Clone)]
4323pub struct DescriptorSetVariableDescriptorCountLayoutSupport {
4324	pub sType : StructureType,
4325	pub pNext : *mut void,
4326	pub maxVariableDescriptorCount : u32,
4327}
4328
4329#[repr(C)]
4330#[derive(Debug, Copy, Clone)]
4331pub struct SubpassDescriptionDepthStencilResolve {
4332	pub sType : StructureType,
4333	pub pNext : *const void,
4334	pub depthResolveMode : ResolveModeFlagBits,
4335	pub stencilResolveMode : ResolveModeFlagBits,
4336	pub pDepthStencilResolveAttachment : *const AttachmentReference2,
4337}
4338
4339#[repr(C)]
4340#[derive(Debug, Copy, Clone)]
4341pub struct PhysicalDeviceDepthStencilResolveProperties {
4342	pub sType : StructureType,
4343	pub pNext : *mut void,
4344	pub supportedDepthResolveModes : ResolveModeFlags,
4345	pub supportedStencilResolveModes : ResolveModeFlags,
4346	pub independentResolveNone : Bool32,
4347	pub independentResolve : Bool32,
4348}
4349
4350#[repr(C)]
4351#[derive(Debug, Copy, Clone)]
4352pub struct PhysicalDeviceScalarBlockLayoutFeatures {
4353	pub sType : StructureType,
4354	pub pNext : *mut void,
4355	pub scalarBlockLayout : Bool32,
4356}
4357
4358#[repr(C)]
4359#[derive(Debug, Copy, Clone)]
4360pub struct ImageStencilUsageCreateInfo {
4361	pub sType : StructureType,
4362	pub pNext : *const void,
4363	pub stencilUsage : ImageUsageFlags,
4364}
4365
4366#[repr(C)]
4367#[derive(Debug, Copy, Clone)]
4368pub struct SamplerReductionModeCreateInfo {
4369	pub sType : StructureType,
4370	pub pNext : *const void,
4371	pub reductionMode : SamplerReductionMode,
4372}
4373
4374#[repr(C)]
4375#[derive(Debug, Copy, Clone)]
4376pub struct PhysicalDeviceSamplerFilterMinmaxProperties {
4377	pub sType : StructureType,
4378	pub pNext : *mut void,
4379	pub filterMinmaxSingleComponentFormats : Bool32,
4380	pub filterMinmaxImageComponentMapping : Bool32,
4381}
4382
4383#[repr(C)]
4384#[derive(Debug, Copy, Clone)]
4385pub struct PhysicalDeviceVulkanMemoryModelFeatures {
4386	pub sType : StructureType,
4387	pub pNext : *mut void,
4388	pub vulkanMemoryModel : Bool32,
4389	pub vulkanMemoryModelDeviceScope : Bool32,
4390	pub vulkanMemoryModelAvailabilityVisibilityChains : Bool32,
4391}
4392
4393#[repr(C)]
4394#[derive(Debug, Copy, Clone)]
4395pub struct PhysicalDeviceImagelessFramebufferFeatures {
4396	pub sType : StructureType,
4397	pub pNext : *mut void,
4398	pub imagelessFramebuffer : Bool32,
4399}
4400
4401#[repr(C)]
4402#[derive(Debug, Copy, Clone)]
4403pub struct FramebufferAttachmentImageInfo {
4404	pub sType : StructureType,
4405	pub pNext : *const void,
4406	pub flags : ImageCreateFlags,
4407	pub usage : ImageUsageFlags,
4408	pub width : u32,
4409	pub height : u32,
4410	pub layerCount : u32,
4411	pub viewFormatCount : u32,
4412	pub pViewFormats : *const Format,
4413}
4414
4415#[repr(C)]
4416#[derive(Debug, Copy, Clone)]
4417pub struct FramebufferAttachmentsCreateInfo {
4418	pub sType : StructureType,
4419	pub pNext : *const void,
4420	pub attachmentImageInfoCount : u32,
4421	pub pAttachmentImageInfos : *const FramebufferAttachmentImageInfo,
4422}
4423
4424#[repr(C)]
4425#[derive(Debug, Copy, Clone)]
4426pub struct RenderPassAttachmentBeginInfo {
4427	pub sType : StructureType,
4428	pub pNext : *const void,
4429	pub attachmentCount : u32,
4430	pub pAttachments : *const ImageView,
4431}
4432
4433#[repr(C)]
4434#[derive(Debug, Copy, Clone)]
4435pub struct PhysicalDeviceUniformBufferStandardLayoutFeatures {
4436	pub sType : StructureType,
4437	pub pNext : *mut void,
4438	pub uniformBufferStandardLayout : Bool32,
4439}
4440
4441#[repr(C)]
4442#[derive(Debug, Copy, Clone)]
4443pub struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
4444	pub sType : StructureType,
4445	pub pNext : *mut void,
4446	pub shaderSubgroupExtendedTypes : Bool32,
4447}
4448
4449#[repr(C)]
4450#[derive(Debug, Copy, Clone)]
4451pub struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
4452	pub sType : StructureType,
4453	pub pNext : *mut void,
4454	pub separateDepthStencilLayouts : Bool32,
4455}
4456
4457#[repr(C)]
4458#[derive(Debug, Copy, Clone)]
4459pub struct AttachmentReferenceStencilLayout {
4460	pub sType : StructureType,
4461	pub pNext : *mut void,
4462	pub stencilLayout : ImageLayout,
4463}
4464
4465#[repr(C)]
4466#[derive(Debug, Copy, Clone)]
4467pub struct AttachmentDescriptionStencilLayout {
4468	pub sType : StructureType,
4469	pub pNext : *mut void,
4470	pub stencilInitialLayout : ImageLayout,
4471	pub stencilFinalLayout : ImageLayout,
4472}
4473
4474#[repr(C)]
4475#[derive(Debug, Copy, Clone)]
4476pub struct PhysicalDeviceHostQueryResetFeatures {
4477	pub sType : StructureType,
4478	pub pNext : *mut void,
4479	pub hostQueryReset : Bool32,
4480}
4481
4482#[repr(C)]
4483#[derive(Debug, Copy, Clone)]
4484pub struct PhysicalDeviceTimelineSemaphoreFeatures {
4485	pub sType : StructureType,
4486	pub pNext : *mut void,
4487	pub timelineSemaphore : Bool32,
4488}
4489
4490#[repr(C)]
4491#[derive(Debug, Copy, Clone)]
4492pub struct PhysicalDeviceTimelineSemaphoreProperties {
4493	pub sType : StructureType,
4494	pub pNext : *mut void,
4495	pub maxTimelineSemaphoreValueDifference : u64,
4496}
4497
4498#[repr(C)]
4499#[derive(Debug, Copy, Clone)]
4500pub struct SemaphoreTypeCreateInfo {
4501	pub sType : StructureType,
4502	pub pNext : *const void,
4503	pub semaphoreType : SemaphoreType,
4504	pub initialValue : u64,
4505}
4506
4507#[repr(C)]
4508#[derive(Debug, Copy, Clone)]
4509pub struct TimelineSemaphoreSubmitInfo {
4510	pub sType : StructureType,
4511	pub pNext : *const void,
4512	pub waitSemaphoreValueCount : u32,
4513	pub pWaitSemaphoreValues : *const u64,
4514	pub signalSemaphoreValueCount : u32,
4515	pub pSignalSemaphoreValues : *const u64,
4516}
4517
4518#[repr(C)]
4519#[derive(Debug, Copy, Clone)]
4520pub struct SemaphoreWaitInfo {
4521	pub sType : StructureType,
4522	pub pNext : *const void,
4523	pub flags : SemaphoreWaitFlags,
4524	pub semaphoreCount : u32,
4525	pub pSemaphores : *const Semaphore,
4526	pub pValues : *const u64,
4527}
4528
4529#[repr(C)]
4530#[derive(Debug, Copy, Clone)]
4531pub struct SemaphoreSignalInfo {
4532	pub sType : StructureType,
4533	pub pNext : *const void,
4534	pub semaphore : Semaphore,
4535	pub value : u64,
4536}
4537
4538#[repr(C)]
4539#[derive(Debug, Copy, Clone)]
4540pub struct PhysicalDeviceBufferDeviceAddressFeatures {
4541	pub sType : StructureType,
4542	pub pNext : *mut void,
4543	pub bufferDeviceAddress : Bool32,
4544	pub bufferDeviceAddressCaptureReplay : Bool32,
4545	pub bufferDeviceAddressMultiDevice : Bool32,
4546}
4547
4548#[repr(C)]
4549#[derive(Debug, Copy, Clone)]
4550pub struct BufferDeviceAddressInfo {
4551	pub sType : StructureType,
4552	pub pNext : *const void,
4553	pub buffer : Buffer,
4554}
4555
4556#[repr(C)]
4557#[derive(Debug, Copy, Clone)]
4558pub struct BufferOpaqueCaptureAddressCreateInfo {
4559	pub sType : StructureType,
4560	pub pNext : *const void,
4561	pub opaqueCaptureAddress : u64,
4562}
4563
4564#[repr(C)]
4565#[derive(Debug, Copy, Clone)]
4566pub struct MemoryOpaqueCaptureAddressAllocateInfo {
4567	pub sType : StructureType,
4568	pub pNext : *const void,
4569	pub opaqueCaptureAddress : u64,
4570}
4571
4572#[repr(C)]
4573#[derive(Debug, Copy, Clone)]
4574pub struct DeviceMemoryOpaqueCaptureAddressInfo {
4575	pub sType : StructureType,
4576	pub pNext : *const void,
4577	pub memory : DeviceMemory,
4578}
4579
4580pub type SurfaceKHR = u64;
4581pub type PresentModeKHR = i32;
4582pub const PRESENT_MODE_IMMEDIATE_KHR : i32 = 0;
4583pub const PRESENT_MODE_MAILBOX_KHR : i32 = 1;
4584pub const PRESENT_MODE_FIFO_KHR : i32 = 2;
4585pub const PRESENT_MODE_FIFO_RELAXED_KHR : i32 = 3;
4586pub const PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR : i32 = 1000111000;
4587pub const PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR : i32 = 1000111001;
4588pub const PRESENT_MODE_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
4589pub type ColorSpaceKHR = i32;
4590pub const COLOR_SPACE_SRGB_NONLINEAR_KHR : i32 = 0;
4591pub const COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT : i32 = 1000104001;
4592pub const COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT : i32 = 1000104002;
4593pub const COLOR_SPACE_DISPLAY_P3_LINEAR_EXT : i32 = 1000104003;
4594pub const COLOR_SPACE_DCI_P3_NONLINEAR_EXT : i32 = 1000104004;
4595pub const COLOR_SPACE_BT709_LINEAR_EXT : i32 = 1000104005;
4596pub const COLOR_SPACE_BT709_NONLINEAR_EXT : i32 = 1000104006;
4597pub const COLOR_SPACE_BT2020_LINEAR_EXT : i32 = 1000104007;
4598pub const COLOR_SPACE_HDR10_ST2084_EXT : i32 = 1000104008;
4599pub const COLOR_SPACE_DOLBYVISION_EXT : i32 = 1000104009;
4600pub const COLOR_SPACE_HDR10_HLG_EXT : i32 = 1000104010;
4601pub const COLOR_SPACE_ADOBERGB_LINEAR_EXT : i32 = 1000104011;
4602pub const COLOR_SPACE_ADOBERGB_NONLINEAR_EXT : i32 = 1000104012;
4603pub const COLOR_SPACE_PASS_THROUGH_EXT : i32 = 1000104013;
4604pub const COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT : i32 = 1000104014;
4605pub const COLOR_SPACE_DISPLAY_NATIVE_AMD : i32 = 1000213000;
4606pub const COLORSPACE_SRGB_NONLINEAR_KHR : i32 = COLOR_SPACE_SRGB_NONLINEAR_KHR;
4607pub const COLOR_SPACE_DCI_P3_LINEAR_EXT : i32 = COLOR_SPACE_DISPLAY_P3_LINEAR_EXT;
4608pub const COLOR_SPACE_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
4609pub type SurfaceTransformFlagBitsKHR = i32;
4610pub const SURFACE_TRANSFORM_IDENTITY_BIT_KHR : i32 = 0x00000001;
4611pub const SURFACE_TRANSFORM_ROTATE_90_BIT_KHR : i32 = 0x00000002;
4612pub const SURFACE_TRANSFORM_ROTATE_180_BIT_KHR : i32 = 0x00000004;
4613pub const SURFACE_TRANSFORM_ROTATE_270_BIT_KHR : i32 = 0x00000008;
4614pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR : i32 = 0x00000010;
4615pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR : i32 = 0x00000020;
4616pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR : i32 = 0x00000040;
4617pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR : i32 = 0x00000080;
4618pub const SURFACE_TRANSFORM_INHERIT_BIT_KHR : i32 = 0x00000100;
4619pub const SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
4620pub type CompositeAlphaFlagBitsKHR = i32;
4621pub const COMPOSITE_ALPHA_OPAQUE_BIT_KHR : i32 = 0x00000001;
4622pub const COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR : i32 = 0x00000002;
4623pub const COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR : i32 = 0x00000004;
4624pub const COMPOSITE_ALPHA_INHERIT_BIT_KHR : i32 = 0x00000008;
4625pub const COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
4626pub type SurfaceTransformFlagsKHR = u32;
4627pub type CompositeAlphaFlagsKHR = u32;
4628
4629#[repr(C)]
4630#[derive(Debug, Copy, Clone)]
4631pub struct SurfaceCapabilitiesKHR {
4632	pub minImageCount : u32,
4633	pub maxImageCount : u32,
4634	pub currentExtent : Extent2D,
4635	pub minImageExtent : Extent2D,
4636	pub maxImageExtent : Extent2D,
4637	pub maxImageArrayLayers : u32,
4638	pub supportedTransforms : SurfaceTransformFlagsKHR,
4639	pub currentTransform : SurfaceTransformFlagBitsKHR,
4640	pub supportedCompositeAlpha : CompositeAlphaFlagsKHR,
4641	pub supportedUsageFlags : ImageUsageFlags,
4642}
4643
4644#[repr(C)]
4645#[derive(Debug, Copy, Clone)]
4646pub struct SurfaceFormatKHR {
4647	pub format : Format,
4648	pub colorSpace : ColorSpaceKHR,
4649}
4650
4651pub type SwapchainKHR = u64;
4652pub type SwapchainCreateFlagBitsKHR = i32;
4653pub const SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR : i32 = 0x00000001;
4654pub const SWAPCHAIN_CREATE_PROTECTED_BIT_KHR : i32 = 0x00000002;
4655pub const SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR : i32 = 0x00000004;
4656pub const SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
4657pub type SwapchainCreateFlagsKHR = u32;
4658pub type DeviceGroupPresentModeFlagBitsKHR = i32;
4659pub const DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR : i32 = 0x00000001;
4660pub const DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR : i32 = 0x00000002;
4661pub const DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR : i32 = 0x00000004;
4662pub const DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR : i32 = 0x00000008;
4663pub const DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
4664pub type DeviceGroupPresentModeFlagsKHR = u32;
4665
4666#[repr(C)]
4667#[derive(Debug, Copy, Clone)]
4668pub struct SwapchainCreateInfoKHR {
4669	pub sType : StructureType,
4670	pub pNext : *const void,
4671	pub flags : SwapchainCreateFlagsKHR,
4672	pub surface : SurfaceKHR,
4673	pub minImageCount : u32,
4674	pub imageFormat : Format,
4675	pub imageColorSpace : ColorSpaceKHR,
4676	pub imageExtent : Extent2D,
4677	pub imageArrayLayers : u32,
4678	pub imageUsage : ImageUsageFlags,
4679	pub imageSharingMode : SharingMode,
4680	pub queueFamilyIndexCount : u32,
4681	pub pQueueFamilyIndices : *const u32,
4682	pub preTransform : SurfaceTransformFlagBitsKHR,
4683	pub compositeAlpha : CompositeAlphaFlagBitsKHR,
4684	pub presentMode : PresentModeKHR,
4685	pub clipped : Bool32,
4686	pub oldSwapchain : SwapchainKHR,
4687}
4688
4689#[repr(C)]
4690#[derive(Debug, Copy, Clone)]
4691pub struct PresentInfoKHR {
4692	pub sType : StructureType,
4693	pub pNext : *const void,
4694	pub waitSemaphoreCount : u32,
4695	pub pWaitSemaphores : *const Semaphore,
4696	pub swapchainCount : u32,
4697	pub pSwapchains : *const SwapchainKHR,
4698	pub pImageIndices : *const i32,
4699	pub pResults : *mut VkResult,
4700}
4701
4702#[repr(C)]
4703#[derive(Debug, Copy, Clone)]
4704pub struct ImageSwapchainCreateInfoKHR {
4705	pub sType : StructureType,
4706	pub pNext : *const void,
4707	pub swapchain : SwapchainKHR,
4708}
4709
4710#[repr(C)]
4711#[derive(Debug, Copy, Clone)]
4712pub struct BindImageMemorySwapchainInfoKHR {
4713	pub sType : StructureType,
4714	pub pNext : *const void,
4715	pub swapchain : SwapchainKHR,
4716	pub imageIndex : u32,
4717}
4718
4719#[repr(C)]
4720#[derive(Debug, Copy, Clone)]
4721pub struct AcquireNextImageInfoKHR {
4722	pub sType : StructureType,
4723	pub pNext : *const void,
4724	pub swapchain : SwapchainKHR,
4725	pub timeout : u64,
4726	pub semaphore : Semaphore,
4727	pub fence : Fence,
4728	pub deviceMask : u32,
4729}
4730
4731#[repr(C)]
4732#[derive(Debug, Copy, Clone)]
4733pub struct DeviceGroupPresentCapabilitiesKHR {
4734	pub sType : StructureType,
4735	pub pNext : *const void,
4736	pub presentMask : [u32;MAX_DEVICE_GROUP_SIZE],
4737	pub modes : DeviceGroupPresentModeFlagsKHR,
4738}
4739
4740#[repr(C)]
4741#[derive(Debug, Copy, Clone)]
4742pub struct DeviceGroupPresentInfoKHR {
4743	pub sType : StructureType,
4744	pub pNext : *const void,
4745	pub swapchainCount : u32,
4746	pub pDeviceMasks : *const u32,
4747	pub mode : DeviceGroupPresentModeFlagBitsKHR,
4748}
4749
4750#[repr(C)]
4751#[derive(Debug, Copy, Clone)]
4752pub struct DeviceGroupSwapchainCreateInfoKHR {
4753	pub sType : StructureType,
4754	pub pNext : *const void,
4755	pub modes : DeviceGroupPresentModeFlagsKHR,
4756}
4757
4758pub type DisplayKHR = u64;
4759pub type DisplayModeKHR = u64;
4760pub type DisplayPlaneAlphaFlagBitsKHR = i32;
4761pub const DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR : i32 = 0x00000001;
4762pub const DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR : i32 = 0x00000002;
4763pub const DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR : i32 = 0x00000004;
4764pub const DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR : i32 = 0x00000008;
4765pub const DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
4766pub type DisplayPlaneAlphaFlagsKHR = u32;
4767pub type DisplayModeCreateFlagsKHR = u32;
4768pub type DisplaySurfaceCreateFlagsKHR = u32;
4769
4770#[repr(C)]
4771#[derive(Debug, Copy, Clone)]
4772pub struct DisplayPropertiesKHR {
4773	pub display : DisplayKHR,
4774	pub displayName : *const i8,
4775	pub physicalDimensions : Extent2D,
4776	pub physicalResolution : Extent2D,
4777	pub supportedTransforms : SurfaceTransformFlagsKHR,
4778	pub planeReorderPossible : Bool32,
4779	pub persistentContent : Bool32,
4780}
4781
4782#[repr(C)]
4783#[derive(Debug, Copy, Clone)]
4784pub struct DisplayModeParametersKHR {
4785	pub visibleRegion : Extent2D,
4786	pub refreshRate : u32,
4787}
4788
4789#[repr(C)]
4790#[derive(Debug, Copy, Clone)]
4791pub struct DisplayModePropertiesKHR {
4792	pub displayMode : DisplayModeKHR,
4793	pub parameters : DisplayModeParametersKHR,
4794}
4795
4796#[repr(C)]
4797#[derive(Debug, Copy, Clone)]
4798pub struct DisplayModeCreateInfoKHR {
4799	pub sType : StructureType,
4800	pub pNext : *const void,
4801	pub flags : DisplayModeCreateFlagsKHR,
4802	pub parameters : DisplayModeParametersKHR,
4803}
4804
4805#[repr(C)]
4806#[derive(Debug, Copy, Clone)]
4807pub struct DisplayPlaneCapabilitiesKHR {
4808	pub supportedAlpha : DisplayPlaneAlphaFlagsKHR,
4809	pub minSrcPosition : Offset2D,
4810	pub maxSrcPosition : Offset2D,
4811	pub minSrcExtent : Extent2D,
4812	pub maxSrcExtent : Extent2D,
4813	pub minDstPosition : Offset2D,
4814	pub maxDstPosition : Offset2D,
4815	pub minDstExtent : Extent2D,
4816	pub maxDstExtent : Extent2D,
4817}
4818
4819#[repr(C)]
4820#[derive(Debug, Copy, Clone)]
4821pub struct DisplayPlanePropertiesKHR {
4822	pub currentDisplay : DisplayKHR,
4823	pub currentStackIndex : u32,
4824}
4825
4826#[repr(C)]
4827#[derive(Debug, Copy, Clone)]
4828pub struct DisplaySurfaceCreateInfoKHR {
4829	pub sType : StructureType,
4830	pub pNext : *const void,
4831	pub flags : DisplaySurfaceCreateFlagsKHR,
4832	pub displayMode : DisplayModeKHR,
4833	pub planeIndex : u32,
4834	pub planeStackIndex : u32,
4835	pub transform : SurfaceTransformFlagBitsKHR,
4836	pub globalAlpha : f32,
4837	pub alphaMode : DisplayPlaneAlphaFlagBitsKHR,
4838	pub imageExtent : Extent2D,
4839}
4840
4841#[repr(C)]
4842#[derive(Debug, Copy, Clone)]
4843pub struct DisplayPresentInfoKHR {
4844	pub sType : StructureType,
4845	pub pNext : *const void,
4846	pub srcRect : Rect2D,
4847	pub dstRect : Rect2D,
4848	pub persistent : Bool32,
4849}
4850
4851pub type RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
4852pub type PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
4853pub type PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
4854pub type PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
4855pub type PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
4856pub type FormatProperties2KHR = FormatProperties2;
4857pub type ImageFormatProperties2KHR = ImageFormatProperties2;
4858pub type PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
4859pub type QueueFamilyProperties2KHR = QueueFamilyProperties2;
4860pub type PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
4861pub type SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
4862pub type PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
4863pub type PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
4864pub type PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
4865pub type MemoryAllocateFlagsKHR = MemoryAllocateFlags;
4866pub type MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
4867pub type MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
4868pub type DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
4869pub type DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
4870pub type DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
4871pub type DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
4872pub type BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
4873pub type BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
4874pub type CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
4875pub type PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
4876pub type DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
4877pub type ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
4878pub type ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
4879pub type ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
4880pub type ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
4881pub type ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
4882pub type PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
4883pub type ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
4884pub type PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
4885pub type ExternalBufferPropertiesKHR = ExternalBufferProperties;
4886pub type PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
4887pub type ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
4888pub type ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
4889pub type ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
4890
4891#[repr(C)]
4892#[derive(Debug, Copy, Clone)]
4893pub struct ImportMemoryFdInfoKHR {
4894	pub sType : StructureType,
4895	pub pNext : *const void,
4896	pub handleType : ExternalMemoryHandleTypeFlagBits,
4897	pub fd : i32,
4898}
4899
4900#[repr(C)]
4901#[derive(Debug, Copy, Clone)]
4902pub struct MemoryFdPropertiesKHR {
4903	pub sType : StructureType,
4904	pub pNext : *mut void,
4905	pub memoryTypeBits : u32,
4906}
4907
4908#[repr(C)]
4909#[derive(Debug, Copy, Clone)]
4910pub struct MemoryGetFdInfoKHR {
4911	pub sType : StructureType,
4912	pub pNext : *const void,
4913	pub memory : DeviceMemory,
4914	pub handleType : ExternalMemoryHandleTypeFlagBits,
4915}
4916
4917pub type ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
4918pub type ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
4919pub type ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
4920pub type ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
4921pub type PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
4922pub type ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
4923pub type SemaphoreImportFlagsKHR = SemaphoreImportFlags;
4924pub type SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
4925pub type ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
4926
4927#[repr(C)]
4928#[derive(Debug, Copy, Clone)]
4929pub struct ImportSemaphoreFdInfoKHR {
4930	pub sType : StructureType,
4931	pub pNext : *const void,
4932	pub semaphore : Semaphore,
4933	pub flags : SemaphoreImportFlags,
4934	pub handleType : ExternalSemaphoreHandleTypeFlagBits,
4935	pub fd : i32,
4936}
4937
4938#[repr(C)]
4939#[derive(Debug, Copy, Clone)]
4940pub struct SemaphoreGetFdInfoKHR {
4941	pub sType : StructureType,
4942	pub pNext : *const void,
4943	pub semaphore : Semaphore,
4944	pub handleType : ExternalSemaphoreHandleTypeFlagBits,
4945}
4946
4947#[repr(C)]
4948#[derive(Debug, Copy, Clone)]
4949pub struct PhysicalDevicePushDescriptorPropertiesKHR {
4950	pub sType : StructureType,
4951	pub pNext : *mut void,
4952	pub maxPushDescriptors : u32,
4953}
4954
4955pub type PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
4956pub type PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
4957pub type PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
4958
4959#[repr(C)]
4960#[derive(Debug, Copy, Clone)]
4961pub struct RectLayerKHR {
4962	pub offset : Offset2D,
4963	pub extent : Extent2D,
4964	pub layer : u32,
4965}
4966
4967#[repr(C)]
4968#[derive(Debug, Copy, Clone)]
4969pub struct PresentRegionKHR {
4970	pub rectangleCount : u32,
4971	pub pRectangles : *const RectLayerKHR,
4972}
4973
4974#[repr(C)]
4975#[derive(Debug, Copy, Clone)]
4976pub struct PresentRegionsKHR {
4977	pub sType : StructureType,
4978	pub pNext : *const void,
4979	pub swapchainCount : u32,
4980	pub pRegions : *const PresentRegionKHR,
4981}
4982
4983pub type DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
4984pub type DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
4985pub type DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
4986pub type DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
4987pub type DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
4988pub type PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
4989pub type FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
4990pub type FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
4991pub type RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
4992pub type RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
4993pub type AttachmentDescription2KHR = AttachmentDescription2;
4994pub type AttachmentReference2KHR = AttachmentReference2;
4995pub type SubpassDescription2KHR = SubpassDescription2;
4996pub type SubpassDependency2KHR = SubpassDependency2;
4997pub type SubpassBeginInfoKHR = SubpassBeginInfo;
4998pub type SubpassEndInfoKHR = SubpassEndInfo;
4999
5000#[repr(C)]
5001#[derive(Debug, Copy, Clone)]
5002pub struct SharedPresentSurfaceCapabilitiesKHR {
5003	pub sType : StructureType,
5004	pub pNext : *mut void,
5005	pub sharedPresentSupportedUsageFlags : ImageUsageFlags,
5006}
5007
5008pub type ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
5009pub type ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
5010pub type ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
5011pub type ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
5012pub type PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
5013pub type ExternalFencePropertiesKHR = ExternalFenceProperties;
5014pub type FenceImportFlagsKHR = FenceImportFlags;
5015pub type FenceImportFlagBitsKHR = FenceImportFlagBits;
5016pub type ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
5017
5018#[repr(C)]
5019#[derive(Debug, Copy, Clone)]
5020pub struct ImportFenceFdInfoKHR {
5021	pub sType : StructureType,
5022	pub pNext : *const void,
5023	pub fence : Fence,
5024	pub flags : FenceImportFlags,
5025	pub handleType : ExternalFenceHandleTypeFlagBits,
5026	pub fd : i32,
5027}
5028
5029#[repr(C)]
5030#[derive(Debug, Copy, Clone)]
5031pub struct FenceGetFdInfoKHR {
5032	pub sType : StructureType,
5033	pub pNext : *const void,
5034	pub fence : Fence,
5035	pub handleType : ExternalFenceHandleTypeFlagBits,
5036}
5037
5038pub type PerformanceCounterUnitKHR = i32;
5039pub const PERFORMANCE_COUNTER_UNIT_GENERIC_KHR : i32 = 0;
5040pub const PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR : i32 = 1;
5041pub const PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR : i32 = 2;
5042pub const PERFORMANCE_COUNTER_UNIT_BYTES_KHR : i32 = 3;
5043pub const PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR : i32 = 4;
5044pub const PERFORMANCE_COUNTER_UNIT_KELVIN_KHR : i32 = 5;
5045pub const PERFORMANCE_COUNTER_UNIT_WATTS_KHR : i32 = 6;
5046pub const PERFORMANCE_COUNTER_UNIT_VOLTS_KHR : i32 = 7;
5047pub const PERFORMANCE_COUNTER_UNIT_AMPS_KHR : i32 = 8;
5048pub const PERFORMANCE_COUNTER_UNIT_HERTZ_KHR : i32 = 9;
5049pub const PERFORMANCE_COUNTER_UNIT_CYCLES_KHR : i32 = 10;
5050pub const PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
5051pub type PerformanceCounterScopeKHR = i32;
5052pub const PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR : i32 = 0;
5053pub const PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR : i32 = 1;
5054pub const PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR : i32 = 2;
5055pub const QUERY_SCOPE_COMMAND_BUFFER_KHR : i32 = PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR;
5056pub const QUERY_SCOPE_RENDER_PASS_KHR : i32 = PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR;
5057pub const QUERY_SCOPE_COMMAND_KHR : i32 = PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR;
5058pub const PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
5059pub type PerformanceCounterStorageKHR = i32;
5060pub const PERFORMANCE_COUNTER_STORAGE_INT32_KHR : i32 = 0;
5061pub const PERFORMANCE_COUNTER_STORAGE_INT64_KHR : i32 = 1;
5062pub const PERFORMANCE_COUNTER_STORAGE_UINT32_KHR : i32 = 2;
5063pub const PERFORMANCE_COUNTER_STORAGE_UINT64_KHR : i32 = 3;
5064pub const PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR : i32 = 4;
5065pub const PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR : i32 = 5;
5066pub const PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
5067pub type PerformanceCounterDescriptionFlagBitsKHR = i32;
5068pub const PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR : i32 = 0x00000001;
5069pub const PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR : i32 = 0x00000002;
5070pub const PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
5071pub type PerformanceCounterDescriptionFlagsKHR = u32;
5072pub type AcquireProfilingLockFlagBitsKHR = i32;
5073pub const ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
5074pub type AcquireProfilingLockFlagsKHR = u32;
5075
5076#[repr(C)]
5077#[derive(Debug, Copy, Clone)]
5078pub struct PhysicalDevicePerformanceQueryFeaturesKHR {
5079	pub sType : StructureType,
5080	pub pNext : *mut void,
5081	pub performanceCounterQueryPools : Bool32,
5082	pub performanceCounterMultipleQueryPools : Bool32,
5083}
5084
5085#[repr(C)]
5086#[derive(Debug, Copy, Clone)]
5087pub struct PhysicalDevicePerformanceQueryPropertiesKHR {
5088	pub sType : StructureType,
5089	pub pNext : *mut void,
5090	pub allowCommandBufferQueryCopies : Bool32,
5091}
5092
5093#[repr(C)]
5094#[derive(Debug, Copy, Clone)]
5095pub struct PerformanceCounterKHR {
5096	pub sType : StructureType,
5097	pub pNext : *const void,
5098	pub unit : PerformanceCounterUnitKHR,
5099	pub scope : PerformanceCounterScopeKHR,
5100	pub storage : PerformanceCounterStorageKHR,
5101	pub uuid : [u8;UUID_SIZE],
5102}
5103
5104#[repr(C)]
5105#[derive(Copy, Clone)]
5106pub struct PerformanceCounterDescriptionKHR {
5107	pub sType : StructureType,
5108	pub pNext : *const void,
5109	pub flags : PerformanceCounterDescriptionFlagsKHR,
5110	pub name : [i8;MAX_DESCRIPTION_SIZE],
5111	pub category : [i8;MAX_DESCRIPTION_SIZE],
5112	pub description : [i8;MAX_DESCRIPTION_SIZE],
5113}
5114
5115#[repr(C)]
5116#[derive(Debug, Copy, Clone)]
5117pub struct QueryPoolPerformanceCreateInfoKHR {
5118	pub sType : StructureType,
5119	pub pNext : *const void,
5120	pub queueFamilyIndex : u32,
5121	pub counterIndexCount : u32,
5122	pub pCounterIndices : *const u32,
5123}
5124
5125#[repr(C)]
5126#[derive(Debug, Copy, Clone)]
5127pub struct AcquireProfilingLockInfoKHR {
5128	pub sType : StructureType,
5129	pub pNext : *const void,
5130	pub flags : AcquireProfilingLockFlagsKHR,
5131	pub timeout : u64,
5132}
5133
5134#[repr(C)]
5135#[derive(Debug, Copy, Clone)]
5136pub struct PerformanceQuerySubmitInfoKHR {
5137	pub sType : StructureType,
5138	pub pNext : *const void,
5139	pub counterPassIndex : u32,
5140}
5141
5142pub type PointClippingBehaviorKHR = PointClippingBehavior;
5143pub type TessellationDomainOriginKHR = TessellationDomainOrigin;
5144pub type PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
5145pub type RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
5146pub type InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
5147pub type ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
5148pub type PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo;
5149
5150#[repr(C)]
5151#[derive(Debug, Copy, Clone)]
5152pub struct PhysicalDeviceSurfaceInfo2KHR {
5153	pub sType : StructureType,
5154	pub pNext : *const void,
5155	pub surface : SurfaceKHR,
5156}
5157
5158#[repr(C)]
5159#[derive(Debug, Copy, Clone)]
5160pub struct SurfaceCapabilities2KHR {
5161	pub sType : StructureType,
5162	pub pNext : *mut void,
5163	pub surfaceCapabilities : SurfaceCapabilitiesKHR,
5164}
5165
5166#[repr(C)]
5167#[derive(Debug, Copy, Clone)]
5168pub struct SurfaceFormat2KHR {
5169	pub sType : StructureType,
5170	pub pNext : *mut void,
5171	pub surfaceFormat : SurfaceFormatKHR,
5172}
5173
5174pub type PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
5175pub type PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
5176
5177#[repr(C)]
5178#[derive(Debug, Copy, Clone)]
5179pub struct DisplayProperties2KHR {
5180	pub sType : StructureType,
5181	pub pNext : *mut void,
5182	pub displayProperties : DisplayPropertiesKHR,
5183}
5184
5185#[repr(C)]
5186#[derive(Debug, Copy, Clone)]
5187pub struct DisplayPlaneProperties2KHR {
5188	pub sType : StructureType,
5189	pub pNext : *mut void,
5190	pub displayPlaneProperties : DisplayPlanePropertiesKHR,
5191}
5192
5193#[repr(C)]
5194#[derive(Debug, Copy, Clone)]
5195pub struct DisplayModeProperties2KHR {
5196	pub sType : StructureType,
5197	pub pNext : *mut void,
5198	pub displayModeProperties : DisplayModePropertiesKHR,
5199}
5200
5201#[repr(C)]
5202#[derive(Debug, Copy, Clone)]
5203pub struct DisplayPlaneInfo2KHR {
5204	pub sType : StructureType,
5205	pub pNext : *const void,
5206	pub mode : DisplayModeKHR,
5207	pub planeIndex : u32,
5208}
5209
5210#[repr(C)]
5211#[derive(Debug, Copy, Clone)]
5212pub struct DisplayPlaneCapabilities2KHR {
5213	pub sType : StructureType,
5214	pub pNext : *mut void,
5215	pub capabilities : DisplayPlaneCapabilitiesKHR,
5216}
5217
5218pub type MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
5219pub type MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
5220pub type BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
5221pub type ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
5222pub type ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
5223pub type SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
5224pub type ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
5225pub type SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
5226pub type SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
5227pub type SamplerYcbcrRangeKHR = SamplerYcbcrRange;
5228pub type ChromaLocationKHR = ChromaLocation;
5229pub type SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
5230pub type SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
5231pub type BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
5232pub type ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
5233pub type PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures;
5234pub type SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties;
5235pub type BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
5236pub type BindImageMemoryInfoKHR = BindImageMemoryInfo;
5237pub type PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
5238pub type DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
5239pub type PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
5240pub type PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
5241pub type PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
5242
5243#[repr(C)]
5244#[derive(Debug, Copy, Clone)]
5245pub struct PhysicalDeviceShaderClockFeaturesKHR {
5246	pub sType : StructureType,
5247	pub pNext : *mut void,
5248	pub shaderSubgroupClock : Bool32,
5249	pub shaderDeviceClock : Bool32,
5250}
5251
5252pub type DriverIdKHR = DriverId;
5253pub type ConformanceVersionKHR = ConformanceVersion;
5254pub type PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
5255pub type ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
5256pub type PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
5257pub type ResolveModeFlagBitsKHR = ResolveModeFlagBits;
5258pub type ResolveModeFlagsKHR = ResolveModeFlags;
5259pub type SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
5260pub type PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties;
5261pub type SemaphoreTypeKHR = SemaphoreType;
5262pub type SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
5263pub type SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
5264pub type PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
5265pub type PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
5266pub type SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
5267pub type TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
5268pub type SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
5269pub type SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
5270pub type PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
5271
5272#[repr(C)]
5273#[derive(Debug, Copy, Clone)]
5274pub struct SurfaceProtectedCapabilitiesKHR {
5275	pub sType : StructureType,
5276	pub pNext : *const void,
5277	pub supportsProtected : Bool32,
5278}
5279
5280pub type PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
5281pub type AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
5282pub type AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
5283pub type PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures;
5284pub type PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
5285pub type BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
5286pub type BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
5287pub type MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
5288pub type DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
5289pub type PipelineExecutableStatisticFormatKHR = i32;
5290pub const PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR : i32 = 0;
5291pub const PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR : i32 = 1;
5292pub const PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR : i32 = 2;
5293pub const PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR : i32 = 3;
5294pub const PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
5295
5296#[repr(C)]
5297#[derive(Debug, Copy, Clone)]
5298pub struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
5299	pub sType : StructureType,
5300	pub pNext : *mut void,
5301	pub pipelineExecutableInfo : Bool32,
5302}
5303
5304#[repr(C)]
5305#[derive(Debug, Copy, Clone)]
5306pub struct PipelineInfoKHR {
5307	pub sType : StructureType,
5308	pub pNext : *const void,
5309	pub pipeline : Pipeline,
5310}
5311
5312#[repr(C)]
5313#[derive(Copy, Clone)]
5314pub struct PipelineExecutablePropertiesKHR {
5315	pub sType : StructureType,
5316	pub pNext : *mut void,
5317	pub stages : ShaderStageFlags,
5318	pub name : [i8;MAX_DESCRIPTION_SIZE],
5319	pub description : [i8;MAX_DESCRIPTION_SIZE],
5320	pub subgroupSize : u32,
5321}
5322
5323#[repr(C)]
5324#[derive(Debug, Copy, Clone)]
5325pub struct PipelineExecutableInfoKHR {
5326	pub sType : StructureType,
5327	pub pNext : *const void,
5328	pub pipeline : Pipeline,
5329	pub executableIndex : u32,
5330}
5331
5332#[repr(C)]
5333#[derive(Copy, Clone)]
5334pub struct PipelineExecutableInternalRepresentationKHR {
5335	pub sType : StructureType,
5336	pub pNext : *mut void,
5337	pub name : [i8;MAX_DESCRIPTION_SIZE],
5338	pub description : [i8;MAX_DESCRIPTION_SIZE],
5339	pub isText : Bool32,
5340	pub dataSize : usize,
5341	pub pData : *mut void,
5342}
5343
5344pub type DebugReportCallbackEXT = u64;
5345pub type DebugReportObjectTypeEXT = i32;
5346pub const DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT : i32 = 0;
5347pub const DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT : i32 = 1;
5348pub const DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT : i32 = 2;
5349pub const DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT : i32 = 3;
5350pub const DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT : i32 = 4;
5351pub const DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT : i32 = 5;
5352pub const DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT : i32 = 6;
5353pub const DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT : i32 = 7;
5354pub const DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT : i32 = 8;
5355pub const DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT : i32 = 9;
5356pub const DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT : i32 = 10;
5357pub const DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT : i32 = 11;
5358pub const DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT : i32 = 12;
5359pub const DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT : i32 = 13;
5360pub const DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT : i32 = 14;
5361pub const DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT : i32 = 15;
5362pub const DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT : i32 = 16;
5363pub const DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT : i32 = 17;
5364pub const DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT : i32 = 18;
5365pub const DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT : i32 = 19;
5366pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT : i32 = 20;
5367pub const DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT : i32 = 21;
5368pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT : i32 = 22;
5369pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT : i32 = 23;
5370pub const DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT : i32 = 24;
5371pub const DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT : i32 = 25;
5372pub const DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT : i32 = 26;
5373pub const DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT : i32 = 27;
5374pub const DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT : i32 = 28;
5375pub const DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT : i32 = 29;
5376pub const DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT : i32 = 30;
5377pub const DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT : i32 = 33;
5378pub const DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT : i32 = 1000156000;
5379pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT : i32 = 1000085000;
5380pub const DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT : i32 = 1000165000;
5381pub const DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT : i32 = DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT;
5382pub const DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT : i32 = DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT;
5383pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT : i32 = DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT;
5384pub const DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT : i32 = DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT;
5385pub const DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT : i32 = DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT;
5386pub const DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5387pub type DebugReportFlagBitsEXT = i32;
5388pub const DEBUG_REPORT_INFORMATION_BIT_EXT : i32 = 0x00000001;
5389pub const DEBUG_REPORT_WARNING_BIT_EXT : i32 = 0x00000002;
5390pub const DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT : i32 = 0x00000004;
5391pub const DEBUG_REPORT_ERROR_BIT_EXT : i32 = 0x00000008;
5392pub const DEBUG_REPORT_DEBUG_BIT_EXT : i32 = 0x00000010;
5393pub const DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5394pub type DebugReportFlagsEXT = u32;
5395
5396#[repr(C)]
5397#[derive(Debug, Copy, Clone)]
5398pub struct DebugReportCallbackCreateInfoEXT {
5399	pub sType : StructureType,
5400	pub pNext : *const void,
5401	pub flags : DebugReportFlagsEXT,
5402	pub pfnCallback : u64,
5403	pub pUserData : *mut void,
5404}
5405
5406pub type RasterizationOrderAMD = i32;
5407pub const RASTERIZATION_ORDER_STRICT_AMD : i32 = 0;
5408pub const RASTERIZATION_ORDER_RELAXED_AMD : i32 = 1;
5409pub const RASTERIZATION_ORDER_MAX_ENUM_AMD : i32 = 0x7FFFFFF;
5410
5411#[repr(C)]
5412#[derive(Debug, Copy, Clone)]
5413pub struct PipelineRasterizationStateRasterizationOrderAMD {
5414	pub sType : StructureType,
5415	pub pNext : *const void,
5416	pub rasterizationOrder : RasterizationOrderAMD,
5417}
5418
5419#[repr(C)]
5420#[derive(Debug, Copy, Clone)]
5421pub struct DebugMarkerObjectNameInfoEXT {
5422	pub sType : StructureType,
5423	pub pNext : *const void,
5424	pub objectType : DebugReportObjectTypeEXT,
5425	pub object : u64,
5426	pub pObjectName : *const i8,
5427}
5428
5429#[repr(C)]
5430#[derive(Debug, Copy, Clone)]
5431pub struct DebugMarkerObjectTagInfoEXT {
5432	pub sType : StructureType,
5433	pub pNext : *const void,
5434	pub objectType : DebugReportObjectTypeEXT,
5435	pub object : u64,
5436	pub tagName : u64,
5437	pub tagSize : usize,
5438	pub pTag : *const void,
5439}
5440
5441#[repr(C)]
5442#[derive(Debug, Copy, Clone)]
5443pub struct DebugMarkerMarkerInfoEXT {
5444	pub sType : StructureType,
5445	pub pNext : *const void,
5446	pub pMarkerName : *const i8,
5447	pub color : [f32;4],
5448}
5449
5450#[repr(C)]
5451#[derive(Debug, Copy, Clone)]
5452pub struct DedicatedAllocationImageCreateInfoNV {
5453	pub sType : StructureType,
5454	pub pNext : *const void,
5455	pub dedicatedAllocation : Bool32,
5456}
5457
5458#[repr(C)]
5459#[derive(Debug, Copy, Clone)]
5460pub struct DedicatedAllocationBufferCreateInfoNV {
5461	pub sType : StructureType,
5462	pub pNext : *const void,
5463	pub dedicatedAllocation : Bool32,
5464}
5465
5466#[repr(C)]
5467#[derive(Debug, Copy, Clone)]
5468pub struct DedicatedAllocationMemoryAllocateInfoNV {
5469	pub sType : StructureType,
5470	pub pNext : *const void,
5471	pub image : Image,
5472	pub buffer : Buffer,
5473}
5474
5475pub type PipelineRasterizationStateStreamCreateFlagsEXT = u32;
5476
5477#[repr(C)]
5478#[derive(Debug, Copy, Clone)]
5479pub struct PhysicalDeviceTransformFeedbackFeaturesEXT {
5480	pub sType : StructureType,
5481	pub pNext : *mut void,
5482	pub transformFeedback : Bool32,
5483	pub geometryStreams : Bool32,
5484}
5485
5486#[repr(C)]
5487#[derive(Debug, Copy, Clone)]
5488pub struct PhysicalDeviceTransformFeedbackPropertiesEXT {
5489	pub sType : StructureType,
5490	pub pNext : *mut void,
5491	pub maxTransformFeedbackStreams : u32,
5492	pub maxTransformFeedbackBuffers : u32,
5493	pub maxTransformFeedbackBufferSize : DeviceSize,
5494	pub maxTransformFeedbackStreamDataSize : u32,
5495	pub maxTransformFeedbackBufferDataSize : u32,
5496	pub maxTransformFeedbackBufferDataStride : u32,
5497	pub transformFeedbackQueries : Bool32,
5498	pub transformFeedbackStreamsLinesTriangles : Bool32,
5499	pub transformFeedbackRasterizationStreamSelect : Bool32,
5500	pub transformFeedbackDraw : Bool32,
5501}
5502
5503#[repr(C)]
5504#[derive(Debug, Copy, Clone)]
5505pub struct PipelineRasterizationStateStreamCreateInfoEXT {
5506	pub sType : StructureType,
5507	pub pNext : *const void,
5508	pub flags : PipelineRasterizationStateStreamCreateFlagsEXT,
5509	pub rasterizationStream : u32,
5510}
5511
5512#[repr(C)]
5513#[derive(Debug, Copy, Clone)]
5514pub struct ImageViewHandleInfoNVX {
5515	pub sType : StructureType,
5516	pub pNext : *const void,
5517	pub imageView : ImageView,
5518	pub descriptorType : DescriptorType,
5519	pub sampler : Sampler,
5520}
5521
5522#[repr(C)]
5523#[derive(Debug, Copy, Clone)]
5524pub struct ImageViewAddressPropertiesNVX {
5525	pub sType : StructureType,
5526	pub pNext : *mut void,
5527	pub deviceAddress : DeviceAddress,
5528	pub size : DeviceSize,
5529}
5530
5531#[repr(C)]
5532#[derive(Debug, Copy, Clone)]
5533pub struct TextureLODGatherFormatPropertiesAMD {
5534	pub sType : StructureType,
5535	pub pNext : *mut void,
5536	pub supportsTextureGatherLODBiasAMD : Bool32,
5537}
5538
5539pub type ShaderInfoTypeAMD = i32;
5540pub const SHADER_INFO_TYPE_STATISTICS_AMD : i32 = 0;
5541pub const SHADER_INFO_TYPE_BINARY_AMD : i32 = 1;
5542pub const SHADER_INFO_TYPE_DISASSEMBLY_AMD : i32 = 2;
5543pub const SHADER_INFO_TYPE_MAX_ENUM_AMD : i32 = 0x7FFFFFF;
5544
5545#[repr(C)]
5546#[derive(Debug, Copy, Clone)]
5547pub struct ShaderResourceUsageAMD {
5548	pub numUsedVgprs : u32,
5549	pub numUsedSgprs : u32,
5550	pub ldsSizePerLocalWorkGroup : u32,
5551	pub ldsUsageSizeInBytes : usize,
5552	pub scratchMemUsageInBytes : usize,
5553}
5554
5555#[repr(C)]
5556#[derive(Debug, Copy, Clone)]
5557pub struct ShaderStatisticsInfoAMD {
5558	pub shaderStageMask : ShaderStageFlags,
5559	pub resourceUsage : ShaderResourceUsageAMD,
5560	pub numPhysicalVgprs : u32,
5561	pub numPhysicalSgprs : u32,
5562	pub numAvailableVgprs : u32,
5563	pub numAvailableSgprs : u32,
5564	pub computeWorkGroupSize : [u32;3],
5565}
5566
5567#[repr(C)]
5568#[derive(Debug, Copy, Clone)]
5569pub struct PhysicalDeviceCornerSampledImageFeaturesNV {
5570	pub sType : StructureType,
5571	pub pNext : *mut void,
5572	pub cornerSampledImage : Bool32,
5573}
5574
5575pub type ExternalMemoryHandleTypeFlagBitsNV = i32;
5576pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV : i32 = 0x00000001;
5577pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV : i32 = 0x00000002;
5578pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV : i32 = 0x00000004;
5579pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV : i32 = 0x00000008;
5580pub const EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV : i32 = 0x7FFFFFF;
5581pub type ExternalMemoryHandleTypeFlagsNV = u32;
5582pub type ExternalMemoryFeatureFlagBitsNV = i32;
5583pub const EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV : i32 = 0x00000001;
5584pub const EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV : i32 = 0x00000002;
5585pub const EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV : i32 = 0x00000004;
5586pub const EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV : i32 = 0x7FFFFFF;
5587pub type ExternalMemoryFeatureFlagsNV = u32;
5588
5589#[repr(C)]
5590#[derive(Debug, Copy, Clone)]
5591pub struct ExternalImageFormatPropertiesNV {
5592	pub imageFormatProperties : ImageFormatProperties,
5593	pub externalMemoryFeatures : ExternalMemoryFeatureFlagsNV,
5594	pub exportFromImportedHandleTypes : ExternalMemoryHandleTypeFlagsNV,
5595	pub compatibleHandleTypes : ExternalMemoryHandleTypeFlagsNV,
5596}
5597
5598#[repr(C)]
5599#[derive(Debug, Copy, Clone)]
5600pub struct ExternalMemoryImageCreateInfoNV {
5601	pub sType : StructureType,
5602	pub pNext : *const void,
5603	pub handleTypes : ExternalMemoryHandleTypeFlagsNV,
5604}
5605
5606#[repr(C)]
5607#[derive(Debug, Copy, Clone)]
5608pub struct ExportMemoryAllocateInfoNV {
5609	pub sType : StructureType,
5610	pub pNext : *const void,
5611	pub handleTypes : ExternalMemoryHandleTypeFlagsNV,
5612}
5613
5614pub type ValidationCheckEXT = i32;
5615pub const VALIDATION_CHECK_ALL_EXT : i32 = 0;
5616pub const VALIDATION_CHECK_SHADERS_EXT : i32 = 1;
5617pub const VALIDATION_CHECK_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5618
5619#[repr(C)]
5620#[derive(Debug, Copy, Clone)]
5621pub struct ValidationFlagsEXT {
5622	pub sType : StructureType,
5623	pub pNext : *const void,
5624	pub disabledValidationCheckCount : u32,
5625	pub pDisabledValidationChecks : *const ValidationCheckEXT,
5626}
5627
5628#[repr(C)]
5629#[derive(Debug, Copy, Clone)]
5630pub struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT {
5631	pub sType : StructureType,
5632	pub pNext : *mut void,
5633	pub textureCompressionASTC_HDR : Bool32,
5634}
5635
5636#[repr(C)]
5637#[derive(Debug, Copy, Clone)]
5638pub struct ImageViewASTCDecodeModeEXT {
5639	pub sType : StructureType,
5640	pub pNext : *const void,
5641	pub decodeMode : Format,
5642}
5643
5644#[repr(C)]
5645#[derive(Debug, Copy, Clone)]
5646pub struct PhysicalDeviceASTCDecodeFeaturesEXT {
5647	pub sType : StructureType,
5648	pub pNext : *mut void,
5649	pub decodeModeSharedExponent : Bool32,
5650}
5651
5652pub type ConditionalRenderingFlagBitsEXT = i32;
5653pub const CONDITIONAL_RENDERING_INVERTED_BIT_EXT : i32 = 0x00000001;
5654pub const CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5655pub type ConditionalRenderingFlagsEXT = u32;
5656
5657#[repr(C)]
5658#[derive(Debug, Copy, Clone)]
5659pub struct ConditionalRenderingBeginInfoEXT {
5660	pub sType : StructureType,
5661	pub pNext : *const void,
5662	pub buffer : Buffer,
5663	pub offset : DeviceSize,
5664	pub flags : ConditionalRenderingFlagsEXT,
5665}
5666
5667#[repr(C)]
5668#[derive(Debug, Copy, Clone)]
5669pub struct PhysicalDeviceConditionalRenderingFeaturesEXT {
5670	pub sType : StructureType,
5671	pub pNext : *mut void,
5672	pub conditionalRendering : Bool32,
5673	pub inheritedConditionalRendering : Bool32,
5674}
5675
5676#[repr(C)]
5677#[derive(Debug, Copy, Clone)]
5678pub struct CommandBufferInheritanceConditionalRenderingInfoEXT {
5679	pub sType : StructureType,
5680	pub pNext : *const void,
5681	pub conditionalRenderingEnable : Bool32,
5682}
5683
5684#[repr(C)]
5685#[derive(Debug, Copy, Clone)]
5686pub struct ViewportWScalingNV {
5687	pub xcoeff : f32,
5688	pub ycoeff : f32,
5689}
5690
5691#[repr(C)]
5692#[derive(Debug, Copy, Clone)]
5693pub struct PipelineViewportWScalingStateCreateInfoNV {
5694	pub sType : StructureType,
5695	pub pNext : *const void,
5696	pub viewportWScalingEnable : Bool32,
5697	pub viewportCount : u32,
5698	pub pViewportWScalings : *const ViewportWScalingNV,
5699}
5700
5701pub type SurfaceCounterFlagBitsEXT = i32;
5702pub const SURFACE_COUNTER_VBLANK_EXT : i32 = 0x00000001;
5703pub const SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5704pub type SurfaceCounterFlagsEXT = u32;
5705
5706#[repr(C)]
5707#[derive(Debug, Copy, Clone)]
5708pub struct SurfaceCapabilities2EXT {
5709	pub sType : StructureType,
5710	pub pNext : *mut void,
5711	pub minImageCount : u32,
5712	pub maxImageCount : u32,
5713	pub currentExtent : Extent2D,
5714	pub minImageExtent : Extent2D,
5715	pub maxImageExtent : Extent2D,
5716	pub maxImageArrayLayers : u32,
5717	pub supportedTransforms : SurfaceTransformFlagsKHR,
5718	pub currentTransform : SurfaceTransformFlagBitsKHR,
5719	pub supportedCompositeAlpha : CompositeAlphaFlagsKHR,
5720	pub supportedUsageFlags : ImageUsageFlags,
5721	pub supportedSurfaceCounters : SurfaceCounterFlagsEXT,
5722}
5723
5724pub type DisplayPowerStateEXT = i32;
5725pub const DISPLAY_POWER_STATE_OFF_EXT : i32 = 0;
5726pub const DISPLAY_POWER_STATE_SUSPEND_EXT : i32 = 1;
5727pub const DISPLAY_POWER_STATE_ON_EXT : i32 = 2;
5728pub const DISPLAY_POWER_STATE_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5729pub type DeviceEventTypeEXT = i32;
5730pub const DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT : i32 = 0;
5731pub const DEVICE_EVENT_TYPE_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5732pub type DisplayEventTypeEXT = i32;
5733pub const DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT : i32 = 0;
5734pub const DISPLAY_EVENT_TYPE_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5735
5736#[repr(C)]
5737#[derive(Debug, Copy, Clone)]
5738pub struct DisplayPowerInfoEXT {
5739	pub sType : StructureType,
5740	pub pNext : *const void,
5741	pub powerState : DisplayPowerStateEXT,
5742}
5743
5744#[repr(C)]
5745#[derive(Debug, Copy, Clone)]
5746pub struct DeviceEventInfoEXT {
5747	pub sType : StructureType,
5748	pub pNext : *const void,
5749	pub deviceEvent : DeviceEventTypeEXT,
5750}
5751
5752#[repr(C)]
5753#[derive(Debug, Copy, Clone)]
5754pub struct DisplayEventInfoEXT {
5755	pub sType : StructureType,
5756	pub pNext : *const void,
5757	pub displayEvent : DisplayEventTypeEXT,
5758}
5759
5760#[repr(C)]
5761#[derive(Debug, Copy, Clone)]
5762pub struct SwapchainCounterCreateInfoEXT {
5763	pub sType : StructureType,
5764	pub pNext : *const void,
5765	pub surfaceCounters : SurfaceCounterFlagsEXT,
5766}
5767
5768#[repr(C)]
5769#[derive(Debug, Copy, Clone)]
5770pub struct RefreshCycleDurationGOOGLE {
5771	pub refreshDuration : u64,
5772}
5773
5774#[repr(C)]
5775#[derive(Debug, Copy, Clone)]
5776pub struct PastPresentationTimingGOOGLE {
5777	pub presentID : u32,
5778	pub desiredPresentTime : u64,
5779	pub actualPresentTime : u64,
5780	pub earliestPresentTime : u64,
5781	pub presentMargin : u64,
5782}
5783
5784#[repr(C)]
5785#[derive(Debug, Copy, Clone)]
5786pub struct PresentTimeGOOGLE {
5787	pub presentID : u32,
5788	pub desiredPresentTime : u64,
5789}
5790
5791#[repr(C)]
5792#[derive(Debug, Copy, Clone)]
5793pub struct PresentTimesInfoGOOGLE {
5794	pub sType : StructureType,
5795	pub pNext : *const void,
5796	pub swapchainCount : u32,
5797	pub pTimes : *const PresentTimeGOOGLE,
5798}
5799
5800#[repr(C)]
5801#[derive(Debug, Copy, Clone)]
5802pub struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
5803	pub sType : StructureType,
5804	pub pNext : *mut void,
5805	pub perViewPositionAllComponents : Bool32,
5806}
5807
5808pub type ViewportCoordinateSwizzleNV = i32;
5809pub const VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV : i32 = 0;
5810pub const VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV : i32 = 1;
5811pub const VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV : i32 = 2;
5812pub const VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV : i32 = 3;
5813pub const VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV : i32 = 4;
5814pub const VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV : i32 = 5;
5815pub const VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV : i32 = 6;
5816pub const VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV : i32 = 7;
5817pub const VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV : i32 = 0x7FFFFFF;
5818pub type PipelineViewportSwizzleStateCreateFlagsNV = u32;
5819
5820#[repr(C)]
5821#[derive(Debug, Copy, Clone)]
5822pub struct ViewportSwizzleNV {
5823	pub x : ViewportCoordinateSwizzleNV,
5824	pub y : ViewportCoordinateSwizzleNV,
5825	pub z : ViewportCoordinateSwizzleNV,
5826	pub w : ViewportCoordinateSwizzleNV,
5827}
5828
5829#[repr(C)]
5830#[derive(Debug, Copy, Clone)]
5831pub struct PipelineViewportSwizzleStateCreateInfoNV {
5832	pub sType : StructureType,
5833	pub pNext : *const void,
5834	pub flags : PipelineViewportSwizzleStateCreateFlagsNV,
5835	pub viewportCount : u32,
5836	pub pViewportSwizzles : *const ViewportSwizzleNV,
5837}
5838
5839pub type DiscardRectangleModeEXT = i32;
5840pub const DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT : i32 = 0;
5841pub const DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT : i32 = 1;
5842pub const DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5843pub type PipelineDiscardRectangleStateCreateFlagsEXT = u32;
5844
5845#[repr(C)]
5846#[derive(Debug, Copy, Clone)]
5847pub struct PhysicalDeviceDiscardRectanglePropertiesEXT {
5848	pub sType : StructureType,
5849	pub pNext : *mut void,
5850	pub maxDiscardRectangles : u32,
5851}
5852
5853#[repr(C)]
5854#[derive(Debug, Copy, Clone)]
5855pub struct PipelineDiscardRectangleStateCreateInfoEXT {
5856	pub sType : StructureType,
5857	pub pNext : *const void,
5858	pub flags : PipelineDiscardRectangleStateCreateFlagsEXT,
5859	pub discardRectangleMode : DiscardRectangleModeEXT,
5860	pub discardRectangleCount : u32,
5861	pub pDiscardRectangles : *const Rect2D,
5862}
5863
5864pub type ConservativeRasterizationModeEXT = i32;
5865pub const CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT : i32 = 0;
5866pub const CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT : i32 = 1;
5867pub const CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT : i32 = 2;
5868pub const CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5869pub type PipelineRasterizationConservativeStateCreateFlagsEXT = u32;
5870
5871#[repr(C)]
5872#[derive(Debug, Copy, Clone)]
5873pub struct PhysicalDeviceConservativeRasterizationPropertiesEXT {
5874	pub sType : StructureType,
5875	pub pNext : *mut void,
5876	pub primitiveOverestimationSize : f32,
5877	pub maxExtraPrimitiveOverestimationSize : f32,
5878	pub extraPrimitiveOverestimationSizeGranularity : f32,
5879	pub primitiveUnderestimation : Bool32,
5880	pub conservativePointAndLineRasterization : Bool32,
5881	pub degenerateTrianglesRasterized : Bool32,
5882	pub degenerateLinesRasterized : Bool32,
5883	pub fullyCoveredFragmentShaderInputVariable : Bool32,
5884	pub conservativeRasterizationPostDepthCoverage : Bool32,
5885}
5886
5887#[repr(C)]
5888#[derive(Debug, Copy, Clone)]
5889pub struct PipelineRasterizationConservativeStateCreateInfoEXT {
5890	pub sType : StructureType,
5891	pub pNext : *const void,
5892	pub flags : PipelineRasterizationConservativeStateCreateFlagsEXT,
5893	pub conservativeRasterizationMode : ConservativeRasterizationModeEXT,
5894	pub extraPrimitiveOverestimationSize : f32,
5895}
5896
5897pub type PipelineRasterizationDepthClipStateCreateFlagsEXT = u32;
5898
5899#[repr(C)]
5900#[derive(Debug, Copy, Clone)]
5901pub struct PhysicalDeviceDepthClipEnableFeaturesEXT {
5902	pub sType : StructureType,
5903	pub pNext : *mut void,
5904	pub depthClipEnable : Bool32,
5905}
5906
5907#[repr(C)]
5908#[derive(Debug, Copy, Clone)]
5909pub struct PipelineRasterizationDepthClipStateCreateInfoEXT {
5910	pub sType : StructureType,
5911	pub pNext : *const void,
5912	pub flags : PipelineRasterizationDepthClipStateCreateFlagsEXT,
5913	pub depthClipEnable : Bool32,
5914}
5915
5916#[repr(C)]
5917#[derive(Debug, Copy, Clone)]
5918pub struct XYColorEXT {
5919	pub x : f32,
5920	pub y : f32,
5921}
5922
5923#[repr(C)]
5924#[derive(Debug, Copy, Clone)]
5925pub struct HdrMetadataEXT {
5926	pub sType : StructureType,
5927	pub pNext : *const void,
5928	pub displayPrimaryRed : XYColorEXT,
5929	pub displayPrimaryGreen : XYColorEXT,
5930	pub displayPrimaryBlue : XYColorEXT,
5931	pub whitePoint : XYColorEXT,
5932	pub maxLuminance : f32,
5933	pub minLuminance : f32,
5934	pub maxContentLightLevel : f32,
5935	pub maxFrameAverageLightLevel : f32,
5936}
5937
5938pub type DebugUtilsMessengerEXT = u64;
5939pub type DebugUtilsMessengerCallbackDataFlagsEXT = u32;
5940pub type DebugUtilsMessageSeverityFlagBitsEXT = i32;
5941pub const DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT : i32 = 0x00000001;
5942pub const DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT : i32 = 0x00000010;
5943pub const DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT : i32 = 0x00000100;
5944pub const DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT : i32 = 0x00001000;
5945pub const DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5946pub type DebugUtilsMessageTypeFlagBitsEXT = i32;
5947pub const DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT : i32 = 0x00000001;
5948pub const DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT : i32 = 0x00000002;
5949pub const DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT : i32 = 0x00000004;
5950pub const DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
5951pub type DebugUtilsMessageTypeFlagsEXT = u32;
5952pub type DebugUtilsMessengerCreateFlagsEXT = u32;
5953pub type DebugUtilsMessageSeverityFlagsEXT = u32;
5954
5955#[repr(C)]
5956#[derive(Debug, Copy, Clone)]
5957pub struct DebugUtilsLabelEXT {
5958	pub sType : StructureType,
5959	pub pNext : *const void,
5960	pub pLabelName : *const i8,
5961	pub color : [f32;4],
5962}
5963
5964#[repr(C)]
5965#[derive(Debug, Copy, Clone)]
5966pub struct DebugUtilsObjectNameInfoEXT {
5967	pub sType : StructureType,
5968	pub pNext : *const void,
5969	pub objectType : ObjectType,
5970	pub objectHandle : u64,
5971	pub pObjectName : *const i8,
5972}
5973
5974#[repr(C)]
5975#[derive(Debug, Copy, Clone)]
5976pub struct DebugUtilsMessengerCallbackDataEXT {
5977	pub sType : StructureType,
5978	pub pNext : *const void,
5979	pub flags : DebugUtilsMessengerCallbackDataFlagsEXT,
5980	pub pMessageIdName : *const i8,
5981	pub messageIdNumber : i32,
5982	pub pMessage : *const i8,
5983	pub queueLabelCount : u32,
5984	pub pQueueLabels : *const DebugUtilsLabelEXT,
5985	pub cmdBufLabelCount : u32,
5986	pub pCmdBufLabels : *const DebugUtilsLabelEXT,
5987	pub objectCount : u32,
5988	pub pObjects : *const DebugUtilsObjectNameInfoEXT,
5989}
5990
5991#[repr(C)]
5992#[derive(Debug, Copy, Clone)]
5993pub struct DebugUtilsObjectTagInfoEXT {
5994	pub sType : StructureType,
5995	pub pNext : *const void,
5996	pub objectType : ObjectType,
5997	pub objectHandle : u64,
5998	pub tagName : u64,
5999	pub tagSize : usize,
6000	pub pTag : *const void,
6001}
6002
6003#[repr(C)]
6004#[derive(Debug, Copy, Clone)]
6005pub struct DebugUtilsMessengerCreateInfoEXT {
6006	pub sType : StructureType,
6007	pub pNext : *const void,
6008	pub flags : DebugUtilsMessengerCreateFlagsEXT,
6009	pub messageSeverity : DebugUtilsMessageSeverityFlagsEXT,
6010	pub messageType : DebugUtilsMessageTypeFlagsEXT,
6011	pub pfnUserCallback : u64,
6012	pub pUserData : *mut void,
6013}
6014
6015pub type SamplerReductionModeEXT = SamplerReductionMode;
6016pub type SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
6017pub type PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties;
6018
6019#[repr(C)]
6020#[derive(Debug, Copy, Clone)]
6021pub struct PhysicalDeviceInlineUniformBlockFeaturesEXT {
6022	pub sType : StructureType,
6023	pub pNext : *mut void,
6024	pub inlineUniformBlock : Bool32,
6025	pub descriptorBindingInlineUniformBlockUpdateAfterBind : Bool32,
6026}
6027
6028#[repr(C)]
6029#[derive(Debug, Copy, Clone)]
6030pub struct PhysicalDeviceInlineUniformBlockPropertiesEXT {
6031	pub sType : StructureType,
6032	pub pNext : *mut void,
6033	pub maxInlineUniformBlockSize : u32,
6034	pub maxPerStageDescriptorInlineUniformBlocks : u32,
6035	pub maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks : u32,
6036	pub maxDescriptorSetInlineUniformBlocks : u32,
6037	pub maxDescriptorSetUpdateAfterBindInlineUniformBlocks : u32,
6038}
6039
6040#[repr(C)]
6041#[derive(Debug, Copy, Clone)]
6042pub struct WriteDescriptorSetInlineUniformBlockEXT {
6043	pub sType : StructureType,
6044	pub pNext : *const void,
6045	pub dataSize : u32,
6046	pub pData : *const void,
6047}
6048
6049#[repr(C)]
6050#[derive(Debug, Copy, Clone)]
6051pub struct DescriptorPoolInlineUniformBlockCreateInfoEXT {
6052	pub sType : StructureType,
6053	pub pNext : *const void,
6054	pub maxInlineUniformBlockBindings : u32,
6055}
6056
6057#[repr(C)]
6058#[derive(Debug, Copy, Clone)]
6059pub struct SampleLocationEXT {
6060	pub x : f32,
6061	pub y : f32,
6062}
6063
6064#[repr(C)]
6065#[derive(Debug, Copy, Clone)]
6066pub struct SampleLocationsInfoEXT {
6067	pub sType : StructureType,
6068	pub pNext : *const void,
6069	pub sampleLocationsPerPixel : SampleCountFlagBits,
6070	pub sampleLocationGridSize : Extent2D,
6071	pub sampleLocationsCount : u32,
6072	pub pSampleLocations : *const SampleLocationEXT,
6073}
6074
6075#[repr(C)]
6076#[derive(Debug, Copy, Clone)]
6077pub struct AttachmentSampleLocationsEXT {
6078	pub attachmentIndex : u32,
6079	pub sampleLocationsInfo : SampleLocationsInfoEXT,
6080}
6081
6082#[repr(C)]
6083#[derive(Debug, Copy, Clone)]
6084pub struct SubpassSampleLocationsEXT {
6085	pub subpassIndex : u32,
6086	pub sampleLocationsInfo : SampleLocationsInfoEXT,
6087}
6088
6089#[repr(C)]
6090#[derive(Debug, Copy, Clone)]
6091pub struct RenderPassSampleLocationsBeginInfoEXT {
6092	pub sType : StructureType,
6093	pub pNext : *const void,
6094	pub attachmentInitialSampleLocationsCount : u32,
6095	pub pAttachmentInitialSampleLocations : *const AttachmentSampleLocationsEXT,
6096	pub postSubpassSampleLocationsCount : u32,
6097	pub pPostSubpassSampleLocations : *const SubpassSampleLocationsEXT,
6098}
6099
6100#[repr(C)]
6101#[derive(Debug, Copy, Clone)]
6102pub struct PipelineSampleLocationsStateCreateInfoEXT {
6103	pub sType : StructureType,
6104	pub pNext : *const void,
6105	pub sampleLocationsEnable : Bool32,
6106	pub sampleLocationsInfo : SampleLocationsInfoEXT,
6107}
6108
6109#[repr(C)]
6110#[derive(Debug, Copy, Clone)]
6111pub struct PhysicalDeviceSampleLocationsPropertiesEXT {
6112	pub sType : StructureType,
6113	pub pNext : *mut void,
6114	pub sampleLocationSampleCounts : SampleCountFlags,
6115	pub maxSampleLocationGridSize : Extent2D,
6116	pub sampleLocationCoordinateRange : [f32;2],
6117	pub sampleLocationSubPixelBits : u32,
6118	pub variableSampleLocations : Bool32,
6119}
6120
6121#[repr(C)]
6122#[derive(Debug, Copy, Clone)]
6123pub struct MultisamplePropertiesEXT {
6124	pub sType : StructureType,
6125	pub pNext : *mut void,
6126	pub maxSampleLocationGridSize : Extent2D,
6127}
6128
6129pub type BlendOverlapEXT = i32;
6130pub const BLEND_OVERLAP_UNCORRELATED_EXT : i32 = 0;
6131pub const BLEND_OVERLAP_DISJOINT_EXT : i32 = 1;
6132pub const BLEND_OVERLAP_CONJOINT_EXT : i32 = 2;
6133pub const BLEND_OVERLAP_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
6134
6135#[repr(C)]
6136#[derive(Debug, Copy, Clone)]
6137pub struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6138	pub sType : StructureType,
6139	pub pNext : *mut void,
6140	pub advancedBlendCoherentOperations : Bool32,
6141}
6142
6143#[repr(C)]
6144#[derive(Debug, Copy, Clone)]
6145pub struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6146	pub sType : StructureType,
6147	pub pNext : *mut void,
6148	pub advancedBlendMaxColorAttachments : u32,
6149	pub advancedBlendIndependentBlend : Bool32,
6150	pub advancedBlendNonPremultipliedSrcColor : Bool32,
6151	pub advancedBlendNonPremultipliedDstColor : Bool32,
6152	pub advancedBlendCorrelatedOverlap : Bool32,
6153	pub advancedBlendAllOperations : Bool32,
6154}
6155
6156#[repr(C)]
6157#[derive(Debug, Copy, Clone)]
6158pub struct PipelineColorBlendAdvancedStateCreateInfoEXT {
6159	pub sType : StructureType,
6160	pub pNext : *const void,
6161	pub srcPremultiplied : Bool32,
6162	pub dstPremultiplied : Bool32,
6163	pub blendOverlap : BlendOverlapEXT,
6164}
6165
6166pub type PipelineCoverageToColorStateCreateFlagsNV = u32;
6167
6168#[repr(C)]
6169#[derive(Debug, Copy, Clone)]
6170pub struct PipelineCoverageToColorStateCreateInfoNV {
6171	pub sType : StructureType,
6172	pub pNext : *const void,
6173	pub flags : PipelineCoverageToColorStateCreateFlagsNV,
6174	pub coverageToColorEnable : Bool32,
6175	pub coverageToColorLocation : u32,
6176}
6177
6178pub type CoverageModulationModeNV = i32;
6179pub const COVERAGE_MODULATION_MODE_NONE_NV : i32 = 0;
6180pub const COVERAGE_MODULATION_MODE_RGB_NV : i32 = 1;
6181pub const COVERAGE_MODULATION_MODE_ALPHA_NV : i32 = 2;
6182pub const COVERAGE_MODULATION_MODE_RGBA_NV : i32 = 3;
6183pub const COVERAGE_MODULATION_MODE_MAX_ENUM_NV : i32 = 0x7FFFFFF;
6184pub type PipelineCoverageModulationStateCreateFlagsNV = u32;
6185
6186#[repr(C)]
6187#[derive(Debug, Copy, Clone)]
6188pub struct PipelineCoverageModulationStateCreateInfoNV {
6189	pub sType : StructureType,
6190	pub pNext : *const void,
6191	pub flags : PipelineCoverageModulationStateCreateFlagsNV,
6192	pub coverageModulationMode : CoverageModulationModeNV,
6193	pub coverageModulationTableEnable : Bool32,
6194	pub coverageModulationTableCount : u32,
6195	pub pCoverageModulationTable : *const f32,
6196}
6197
6198#[repr(C)]
6199#[derive(Debug, Copy, Clone)]
6200pub struct PhysicalDeviceShaderSMBuiltinsPropertiesNV {
6201	pub sType : StructureType,
6202	pub pNext : *mut void,
6203	pub shaderSMCount : u32,
6204	pub shaderWarpsPerSM : u32,
6205}
6206
6207#[repr(C)]
6208#[derive(Debug, Copy, Clone)]
6209pub struct PhysicalDeviceShaderSMBuiltinsFeaturesNV {
6210	pub sType : StructureType,
6211	pub pNext : *mut void,
6212	pub shaderSMBuiltins : Bool32,
6213}
6214
6215#[repr(C)]
6216#[derive(Debug, Copy, Clone)]
6217pub struct DrmFormatModifierPropertiesEXT {
6218	pub drmFormatModifier : u64,
6219	pub drmFormatModifierPlaneCount : u32,
6220	pub drmFormatModifierTilingFeatures : FormatFeatureFlags,
6221}
6222
6223#[repr(C)]
6224#[derive(Debug, Copy, Clone)]
6225pub struct DrmFormatModifierPropertiesListEXT {
6226	pub sType : StructureType,
6227	pub pNext : *mut void,
6228	pub drmFormatModifierCount : u32,
6229	pub pDrmFormatModifierProperties : *mut DrmFormatModifierPropertiesEXT,
6230}
6231
6232#[repr(C)]
6233#[derive(Debug, Copy, Clone)]
6234pub struct PhysicalDeviceImageDrmFormatModifierInfoEXT {
6235	pub sType : StructureType,
6236	pub pNext : *const void,
6237	pub drmFormatModifier : u64,
6238	pub sharingMode : SharingMode,
6239	pub queueFamilyIndexCount : u32,
6240	pub pQueueFamilyIndices : *const u32,
6241}
6242
6243#[repr(C)]
6244#[derive(Debug, Copy, Clone)]
6245pub struct ImageDrmFormatModifierListCreateInfoEXT {
6246	pub sType : StructureType,
6247	pub pNext : *const void,
6248	pub drmFormatModifierCount : u32,
6249	pub pDrmFormatModifiers : *const u64,
6250}
6251
6252#[repr(C)]
6253#[derive(Debug, Copy, Clone)]
6254pub struct ImageDrmFormatModifierExplicitCreateInfoEXT {
6255	pub sType : StructureType,
6256	pub pNext : *const void,
6257	pub drmFormatModifier : u64,
6258	pub drmFormatModifierPlaneCount : u32,
6259	pub pPlaneLayouts : *const SubresourceLayout,
6260}
6261
6262#[repr(C)]
6263#[derive(Debug, Copy, Clone)]
6264pub struct ImageDrmFormatModifierPropertiesEXT {
6265	pub sType : StructureType,
6266	pub pNext : *mut void,
6267	pub drmFormatModifier : u64,
6268}
6269
6270pub type ValidationCacheEXT = u64;
6271pub type ValidationCacheHeaderVersionEXT = i32;
6272pub const VALIDATION_CACHE_HEADER_VERSION_ONE_EXT : i32 = 1;
6273pub const VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
6274pub type ValidationCacheCreateFlagsEXT = u32;
6275
6276#[repr(C)]
6277#[derive(Debug, Copy, Clone)]
6278pub struct ValidationCacheCreateInfoEXT {
6279	pub sType : StructureType,
6280	pub pNext : *const void,
6281	pub flags : ValidationCacheCreateFlagsEXT,
6282	pub initialDataSize : usize,
6283	pub pInitialData : *const void,
6284}
6285
6286#[repr(C)]
6287#[derive(Debug, Copy, Clone)]
6288pub struct ShaderModuleValidationCacheCreateInfoEXT {
6289	pub sType : StructureType,
6290	pub pNext : *const void,
6291	pub validationCache : ValidationCacheEXT,
6292}
6293
6294pub type DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
6295pub type DescriptorBindingFlagsEXT = DescriptorBindingFlags;
6296pub type DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
6297pub type PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
6298pub type PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
6299pub type DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo;
6300pub type DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport;
6301pub type ShadingRatePaletteEntryNV = i32;
6302pub const SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV : i32 = 0;
6303pub const SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV : i32 = 1;
6304pub const SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV : i32 = 2;
6305pub const SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV : i32 = 3;
6306pub const SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV : i32 = 4;
6307pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV : i32 = 5;
6308pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV : i32 = 6;
6309pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV : i32 = 7;
6310pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV : i32 = 8;
6311pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV : i32 = 9;
6312pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV : i32 = 10;
6313pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV : i32 = 11;
6314pub const SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV : i32 = 0x7FFFFFF;
6315pub type CoarseSampleOrderTypeNV = i32;
6316pub const COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV : i32 = 0;
6317pub const COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV : i32 = 1;
6318pub const COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV : i32 = 2;
6319pub const COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV : i32 = 3;
6320pub const COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV : i32 = 0x7FFFFFF;
6321
6322#[repr(C)]
6323#[derive(Debug, Copy, Clone)]
6324pub struct ShadingRatePaletteNV {
6325	pub shadingRatePaletteEntryCount : u32,
6326	pub pShadingRatePaletteEntries : *const ShadingRatePaletteEntryNV,
6327}
6328
6329#[repr(C)]
6330#[derive(Debug, Copy, Clone)]
6331pub struct PipelineViewportShadingRateImageStateCreateInfoNV {
6332	pub sType : StructureType,
6333	pub pNext : *const void,
6334	pub shadingRateImageEnable : Bool32,
6335	pub viewportCount : u32,
6336	pub pShadingRatePalettes : *const ShadingRatePaletteNV,
6337}
6338
6339#[repr(C)]
6340#[derive(Debug, Copy, Clone)]
6341pub struct PhysicalDeviceShadingRateImageFeaturesNV {
6342	pub sType : StructureType,
6343	pub pNext : *mut void,
6344	pub shadingRateImage : Bool32,
6345	pub shadingRateCoarseSampleOrder : Bool32,
6346}
6347
6348#[repr(C)]
6349#[derive(Debug, Copy, Clone)]
6350pub struct PhysicalDeviceShadingRateImagePropertiesNV {
6351	pub sType : StructureType,
6352	pub pNext : *mut void,
6353	pub shadingRateTexelSize : Extent2D,
6354	pub shadingRatePaletteSize : u32,
6355	pub shadingRateMaxCoarseSamples : u32,
6356}
6357
6358#[repr(C)]
6359#[derive(Debug, Copy, Clone)]
6360pub struct CoarseSampleLocationNV {
6361	pub pixelX : u32,
6362	pub pixelY : u32,
6363	pub sample : u32,
6364}
6365
6366#[repr(C)]
6367#[derive(Debug, Copy, Clone)]
6368pub struct CoarseSampleOrderCustomNV {
6369	pub shadingRate : ShadingRatePaletteEntryNV,
6370	pub sampleCount : u32,
6371	pub sampleLocationCount : u32,
6372	pub pSampleLocations : *const CoarseSampleLocationNV,
6373}
6374
6375#[repr(C)]
6376#[derive(Debug, Copy, Clone)]
6377pub struct PipelineViewportCoarseSampleOrderStateCreateInfoNV {
6378	pub sType : StructureType,
6379	pub pNext : *const void,
6380	pub sampleOrderType : CoarseSampleOrderTypeNV,
6381	pub customSampleOrderCount : u32,
6382	pub pCustomSampleOrders : *const CoarseSampleOrderCustomNV,
6383}
6384
6385pub type AccelerationStructureKHR = u64;
6386pub type AccelerationStructureNV = AccelerationStructureKHR;
6387pub type RayTracingShaderGroupTypeKHR = i32;
6388pub const RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR : i32 = 0;
6389pub const RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR : i32 = 1;
6390pub const RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR : i32 = 2;
6391pub const RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV : i32 = RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR;
6392pub const RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV : i32 = RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR;
6393pub const RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV : i32 = RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR;
6394pub const RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
6395pub type RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
6396pub type GeometryTypeKHR = i32;
6397pub const GEOMETRY_TYPE_TRIANGLES_KHR : i32 = 0;
6398pub const GEOMETRY_TYPE_AABBS_KHR : i32 = 1;
6399pub const GEOMETRY_TYPE_INSTANCES_KHR : i32 = 1000150000;
6400pub const GEOMETRY_TYPE_TRIANGLES_NV : i32 = GEOMETRY_TYPE_TRIANGLES_KHR;
6401pub const GEOMETRY_TYPE_AABBS_NV : i32 = GEOMETRY_TYPE_AABBS_KHR;
6402pub const GEOMETRY_TYPE_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
6403pub type GeometryTypeNV = GeometryTypeKHR;
6404pub type AccelerationStructureTypeKHR = i32;
6405pub const ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR : i32 = 0;
6406pub const ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR : i32 = 1;
6407pub const ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV : i32 = ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR;
6408pub const ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV : i32 = ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR;
6409pub const ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
6410pub type AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
6411pub type CopyAccelerationStructureModeKHR = i32;
6412pub const COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR : i32 = 0;
6413pub const COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR : i32 = 1;
6414pub const COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR : i32 = 2;
6415pub const COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR : i32 = 3;
6416pub const COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV : i32 = COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR;
6417pub const COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV : i32 = COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR;
6418pub const COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
6419pub type CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
6420pub type AccelerationStructureMemoryRequirementsTypeKHR = i32;
6421pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR : i32 = 0;
6422pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR : i32 = 1;
6423pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR : i32 = 2;
6424pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV : i32 = ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR;
6425pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV : i32 = ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR;
6426pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV : i32 = ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR;
6427pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
6428pub type AccelerationStructureMemoryRequirementsTypeNV = AccelerationStructureMemoryRequirementsTypeKHR;
6429pub type GeometryFlagBitsKHR = i32;
6430pub const GEOMETRY_OPAQUE_BIT_KHR : i32 = 0x00000001;
6431pub const GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR : i32 = 0x00000002;
6432pub const GEOMETRY_OPAQUE_BIT_NV : i32 = GEOMETRY_OPAQUE_BIT_KHR;
6433pub const GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV : i32 = GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR;
6434pub const GEOMETRY_FLAG_BITS_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
6435pub type GeometryFlagsKHR = u32;
6436pub type GeometryFlagsNV = GeometryFlagsKHR;
6437pub type GeometryFlagBitsNV = GeometryFlagBitsKHR;
6438pub type GeometryInstanceFlagBitsKHR = i32;
6439pub const GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR : i32 = 0x00000001;
6440pub const GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR : i32 = 0x00000002;
6441pub const GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR : i32 = 0x00000004;
6442pub const GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR : i32 = 0x00000008;
6443pub const GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV : i32 = GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR;
6444pub const GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV : i32 = GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR;
6445pub const GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV : i32 = GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR;
6446pub const GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV : i32 = GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR;
6447pub const GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
6448pub type GeometryInstanceFlagsKHR = u32;
6449pub type GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
6450pub type GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
6451pub type BuildAccelerationStructureFlagBitsKHR = i32;
6452pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR : i32 = 0x00000001;
6453pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR : i32 = 0x00000002;
6454pub const BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR : i32 = 0x00000004;
6455pub const BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR : i32 = 0x00000008;
6456pub const BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR : i32 = 0x00000010;
6457pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV : i32 = BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR;
6458pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV : i32 = BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR;
6459pub const BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV : i32 = BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR;
6460pub const BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV : i32 = BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR;
6461pub const BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV : i32 = BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR;
6462pub const BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR : i32 = 0x7FFFFFF;
6463pub type BuildAccelerationStructureFlagsKHR = u32;
6464pub type BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
6465pub type BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
6466
6467#[repr(C)]
6468#[derive(Debug, Copy, Clone)]
6469pub struct RayTracingShaderGroupCreateInfoNV {
6470	pub sType : StructureType,
6471	pub pNext : *const void,
6472	pub r#type : RayTracingShaderGroupTypeKHR,
6473	pub generalShader : u32,
6474	pub closestHitShader : u32,
6475	pub anyHitShader : u32,
6476	pub intersectionShader : u32,
6477}
6478
6479#[repr(C)]
6480#[derive(Debug, Copy, Clone)]
6481pub struct RayTracingPipelineCreateInfoNV {
6482	pub sType : StructureType,
6483	pub pNext : *const void,
6484	pub flags : PipelineCreateFlags,
6485	pub stageCount : u32,
6486	pub pStages : *const PipelineShaderStageCreateInfo,
6487	pub groupCount : u32,
6488	pub pGroups : *const RayTracingShaderGroupCreateInfoNV,
6489	pub maxRecursionDepth : u32,
6490	pub layout : PipelineLayout,
6491	pub basePipelineHandle : Pipeline,
6492	pub basePipelineIndex : i32,
6493}
6494
6495#[repr(C)]
6496#[derive(Debug, Copy, Clone)]
6497pub struct GeometryTrianglesNV {
6498	pub sType : StructureType,
6499	pub pNext : *const void,
6500	pub vertexData : Buffer,
6501	pub vertexOffset : DeviceSize,
6502	pub vertexCount : u32,
6503	pub vertexStride : DeviceSize,
6504	pub vertexFormat : Format,
6505	pub indexData : Buffer,
6506	pub indexOffset : DeviceSize,
6507	pub indexCount : u32,
6508	pub indexType : IndexType,
6509	pub transformData : Buffer,
6510	pub transformOffset : DeviceSize,
6511}
6512
6513#[repr(C)]
6514#[derive(Debug, Copy, Clone)]
6515pub struct GeometryAABBNV {
6516	pub sType : StructureType,
6517	pub pNext : *const void,
6518	pub aabbData : Buffer,
6519	pub numAABBs : u32,
6520	pub stride : u32,
6521	pub offset : DeviceSize,
6522}
6523
6524#[repr(C)]
6525#[derive(Debug, Copy, Clone)]
6526pub struct GeometryDataNV {
6527	pub triangles : GeometryTrianglesNV,
6528	pub aabbs : GeometryAABBNV,
6529}
6530
6531#[repr(C)]
6532#[derive(Debug, Copy, Clone)]
6533pub struct GeometryNV {
6534	pub sType : StructureType,
6535	pub pNext : *const void,
6536	pub geometryType : GeometryTypeKHR,
6537	pub geometry : GeometryDataNV,
6538	pub flags : GeometryFlagsKHR,
6539}
6540
6541#[repr(C)]
6542#[derive(Debug, Copy, Clone)]
6543pub struct AccelerationStructureInfoNV {
6544	pub sType : StructureType,
6545	pub pNext : *const void,
6546	pub r#type : AccelerationStructureTypeNV,
6547	pub flags : BuildAccelerationStructureFlagsNV,
6548	pub instanceCount : u32,
6549	pub geometryCount : u32,
6550	pub pGeometries : *const GeometryNV,
6551}
6552
6553#[repr(C)]
6554#[derive(Debug, Copy, Clone)]
6555pub struct AccelerationStructureCreateInfoNV {
6556	pub sType : StructureType,
6557	pub pNext : *const void,
6558	pub compactedSize : DeviceSize,
6559	pub info : AccelerationStructureInfoNV,
6560}
6561
6562#[repr(C)]
6563#[derive(Debug, Copy, Clone)]
6564pub struct BindAccelerationStructureMemoryInfoKHR {
6565	pub sType : StructureType,
6566	pub pNext : *const void,
6567	pub accelerationStructure : AccelerationStructureKHR,
6568	pub memory : DeviceMemory,
6569	pub memoryOffset : DeviceSize,
6570	pub deviceIndexCount : u32,
6571	pub pDeviceIndices : *const u32,
6572}
6573
6574pub type BindAccelerationStructureMemoryInfoNV = BindAccelerationStructureMemoryInfoKHR;
6575
6576#[repr(C)]
6577#[derive(Debug, Copy, Clone)]
6578pub struct WriteDescriptorSetAccelerationStructureKHR {
6579	pub sType : StructureType,
6580	pub pNext : *const void,
6581	pub accelerationStructureCount : u32,
6582	pub pAccelerationStructures : *const AccelerationStructureKHR,
6583}
6584
6585pub type WriteDescriptorSetAccelerationStructureNV = WriteDescriptorSetAccelerationStructureKHR;
6586
6587#[repr(C)]
6588#[derive(Debug, Copy, Clone)]
6589pub struct AccelerationStructureMemoryRequirementsInfoNV {
6590	pub sType : StructureType,
6591	pub pNext : *const void,
6592	pub r#type : AccelerationStructureMemoryRequirementsTypeNV,
6593	pub accelerationStructure : AccelerationStructureNV,
6594}
6595
6596#[repr(C)]
6597#[derive(Debug, Copy, Clone)]
6598pub struct PhysicalDeviceRayTracingPropertiesNV {
6599	pub sType : StructureType,
6600	pub pNext : *mut void,
6601	pub shaderGroupHandleSize : u32,
6602	pub maxRecursionDepth : u32,
6603	pub maxShaderGroupStride : u32,
6604	pub shaderGroupBaseAlignment : u32,
6605	pub maxGeometryCount : u64,
6606	pub maxInstanceCount : u64,
6607	pub maxTriangleCount : u64,
6608	pub maxDescriptorSetAccelerationStructures : u32,
6609}
6610
6611#[repr(C)]
6612#[derive(Debug, Copy, Clone)]
6613pub struct TransformMatrixKHR {
6614	pub matrix : [f32;12],
6615}
6616
6617pub type TransformMatrixNV = TransformMatrixKHR;
6618
6619#[repr(C)]
6620#[derive(Debug, Copy, Clone)]
6621pub struct AabbPositionsKHR {
6622	pub minX : f32,
6623	pub minY : f32,
6624	pub minZ : f32,
6625	pub maxX : f32,
6626	pub maxY : f32,
6627	pub maxZ : f32,
6628}
6629
6630pub type AabbPositionsNV = AabbPositionsKHR;
6631
6632#[repr(C)]
6633#[derive(Debug, Copy, Clone)]
6634pub struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
6635	pub sType : StructureType,
6636	pub pNext : *mut void,
6637	pub representativeFragmentTest : Bool32,
6638}
6639
6640#[repr(C)]
6641#[derive(Debug, Copy, Clone)]
6642pub struct PipelineRepresentativeFragmentTestStateCreateInfoNV {
6643	pub sType : StructureType,
6644	pub pNext : *const void,
6645	pub representativeFragmentTestEnable : Bool32,
6646}
6647
6648#[repr(C)]
6649#[derive(Debug, Copy, Clone)]
6650pub struct PhysicalDeviceImageViewImageFormatInfoEXT {
6651	pub sType : StructureType,
6652	pub pNext : *mut void,
6653	pub imageViewType : ImageViewType,
6654}
6655
6656#[repr(C)]
6657#[derive(Debug, Copy, Clone)]
6658pub struct FilterCubicImageViewImageFormatPropertiesEXT {
6659	pub sType : StructureType,
6660	pub pNext : *mut void,
6661	pub filterCubic : Bool32,
6662	pub filterCubicMinmax : Bool32,
6663}
6664
6665pub type QueueGlobalPriorityEXT = i32;
6666pub const QUEUE_GLOBAL_PRIORITY_LOW_EXT : i32 = 128;
6667pub const QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT : i32 = 256;
6668pub const QUEUE_GLOBAL_PRIORITY_HIGH_EXT : i32 = 512;
6669pub const QUEUE_GLOBAL_PRIORITY_REALTIME_EXT : i32 = 1024;
6670pub const QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
6671
6672#[repr(C)]
6673#[derive(Debug, Copy, Clone)]
6674pub struct DeviceQueueGlobalPriorityCreateInfoEXT {
6675	pub sType : StructureType,
6676	pub pNext : *const void,
6677	pub globalPriority : QueueGlobalPriorityEXT,
6678}
6679
6680#[repr(C)]
6681#[derive(Debug, Copy, Clone)]
6682pub struct ImportMemoryHostPointerInfoEXT {
6683	pub sType : StructureType,
6684	pub pNext : *const void,
6685	pub handleType : ExternalMemoryHandleTypeFlagBits,
6686	pub pHostPointer : *mut void,
6687}
6688
6689#[repr(C)]
6690#[derive(Debug, Copy, Clone)]
6691pub struct MemoryHostPointerPropertiesEXT {
6692	pub sType : StructureType,
6693	pub pNext : *mut void,
6694	pub memoryTypeBits : u32,
6695}
6696
6697#[repr(C)]
6698#[derive(Debug, Copy, Clone)]
6699pub struct PhysicalDeviceExternalMemoryHostPropertiesEXT {
6700	pub sType : StructureType,
6701	pub pNext : *mut void,
6702	pub minImportedHostPointerAlignment : DeviceSize,
6703}
6704
6705pub type PipelineCompilerControlFlagBitsAMD = i32;
6706pub const PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD : i32 = 0x7FFFFFF;
6707pub type PipelineCompilerControlFlagsAMD = u32;
6708
6709#[repr(C)]
6710#[derive(Debug, Copy, Clone)]
6711pub struct PipelineCompilerControlCreateInfoAMD {
6712	pub sType : StructureType,
6713	pub pNext : *const void,
6714	pub compilerControlFlags : PipelineCompilerControlFlagsAMD,
6715}
6716
6717pub type TimeDomainEXT = i32;
6718pub const TIME_DOMAIN_DEVICE_EXT : i32 = 0;
6719pub const TIME_DOMAIN_CLOCK_MONOTONIC_EXT : i32 = 1;
6720pub const TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT : i32 = 2;
6721pub const TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT : i32 = 3;
6722pub const TIME_DOMAIN_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
6723
6724#[repr(C)]
6725#[derive(Debug, Copy, Clone)]
6726pub struct CalibratedTimestampInfoEXT {
6727	pub sType : StructureType,
6728	pub pNext : *const void,
6729	pub timeDomain : TimeDomainEXT,
6730}
6731
6732#[repr(C)]
6733#[derive(Debug, Copy, Clone)]
6734pub struct PhysicalDeviceShaderCorePropertiesAMD {
6735	pub sType : StructureType,
6736	pub pNext : *mut void,
6737	pub shaderEngineCount : u32,
6738	pub shaderArraysPerEngineCount : u32,
6739	pub computeUnitsPerShaderArray : u32,
6740	pub simdPerComputeUnit : u32,
6741	pub wavefrontsPerSimd : u32,
6742	pub wavefrontSize : u32,
6743	pub sgprsPerSimd : u32,
6744	pub minSgprAllocation : u32,
6745	pub maxSgprAllocation : u32,
6746	pub sgprAllocationGranularity : u32,
6747	pub vgprsPerSimd : u32,
6748	pub minVgprAllocation : u32,
6749	pub maxVgprAllocation : u32,
6750	pub vgprAllocationGranularity : u32,
6751}
6752
6753pub type MemoryOverallocationBehaviorAMD = i32;
6754pub const MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD : i32 = 0;
6755pub const MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD : i32 = 1;
6756pub const MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD : i32 = 2;
6757pub const MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD : i32 = 0x7FFFFFF;
6758
6759#[repr(C)]
6760#[derive(Debug, Copy, Clone)]
6761pub struct DeviceMemoryOverallocationCreateInfoAMD {
6762	pub sType : StructureType,
6763	pub pNext : *const void,
6764	pub overallocationBehavior : MemoryOverallocationBehaviorAMD,
6765}
6766
6767#[repr(C)]
6768#[derive(Debug, Copy, Clone)]
6769pub struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
6770	pub sType : StructureType,
6771	pub pNext : *mut void,
6772	pub maxVertexAttribDivisor : u32,
6773}
6774
6775#[repr(C)]
6776#[derive(Debug, Copy, Clone)]
6777pub struct VertexInputBindingDivisorDescriptionEXT {
6778	pub binding : u32,
6779	pub divisor : u32,
6780}
6781
6782#[repr(C)]
6783#[derive(Debug, Copy, Clone)]
6784pub struct PipelineVertexInputDivisorStateCreateInfoEXT {
6785	pub sType : StructureType,
6786	pub pNext : *const void,
6787	pub vertexBindingDivisorCount : u32,
6788	pub pVertexBindingDivisors : *const VertexInputBindingDivisorDescriptionEXT,
6789}
6790
6791#[repr(C)]
6792#[derive(Debug, Copy, Clone)]
6793pub struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT {
6794	pub sType : StructureType,
6795	pub pNext : *mut void,
6796	pub vertexAttributeInstanceRateDivisor : Bool32,
6797	pub vertexAttributeInstanceRateZeroDivisor : Bool32,
6798}
6799
6800pub type PipelineCreationFeedbackFlagBitsEXT = i32;
6801pub const PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT : i32 = 0x00000001;
6802pub const PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT : i32 = 0x00000002;
6803pub const PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT : i32 = 0x00000004;
6804pub const PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
6805pub type PipelineCreationFeedbackFlagsEXT = u32;
6806
6807#[repr(C)]
6808#[derive(Debug, Copy, Clone)]
6809pub struct PipelineCreationFeedbackEXT {
6810	pub flags : PipelineCreationFeedbackFlagsEXT,
6811	pub duration : u64,
6812}
6813
6814#[repr(C)]
6815#[derive(Debug, Copy, Clone)]
6816pub struct PipelineCreationFeedbackCreateInfoEXT {
6817	pub sType : StructureType,
6818	pub pNext : *const void,
6819	pub pPipelineCreationFeedback : *mut PipelineCreationFeedbackEXT,
6820	pub pipelineStageCreationFeedbackCount : u32,
6821	pub pPipelineStageCreationFeedbacks : *mut PipelineCreationFeedbackEXT,
6822}
6823
6824#[repr(C)]
6825#[derive(Debug, Copy, Clone)]
6826pub struct PhysicalDeviceComputeShaderDerivativesFeaturesNV {
6827	pub sType : StructureType,
6828	pub pNext : *mut void,
6829	pub computeDerivativeGroupQuads : Bool32,
6830	pub computeDerivativeGroupLinear : Bool32,
6831}
6832
6833#[repr(C)]
6834#[derive(Debug, Copy, Clone)]
6835pub struct PhysicalDeviceMeshShaderFeaturesNV {
6836	pub sType : StructureType,
6837	pub pNext : *mut void,
6838	pub taskShader : Bool32,
6839	pub meshShader : Bool32,
6840}
6841
6842#[repr(C)]
6843#[derive(Debug, Copy, Clone)]
6844pub struct PhysicalDeviceMeshShaderPropertiesNV {
6845	pub sType : StructureType,
6846	pub pNext : *mut void,
6847	pub maxDrawMeshTasksCount : u32,
6848	pub maxTaskWorkGroupInvocations : u32,
6849	pub maxTaskWorkGroupSize : [u32;3],
6850	pub maxTaskTotalMemorySize : u32,
6851	pub maxTaskOutputCount : u32,
6852	pub maxMeshWorkGroupInvocations : u32,
6853	pub maxMeshWorkGroupSize : [u32;3],
6854	pub maxMeshTotalMemorySize : u32,
6855	pub maxMeshOutputVertices : u32,
6856	pub maxMeshOutputPrimitives : u32,
6857	pub maxMeshMultiviewViewCount : u32,
6858	pub meshOutputPerVertexGranularity : u32,
6859	pub meshOutputPerPrimitiveGranularity : u32,
6860}
6861
6862#[repr(C)]
6863#[derive(Debug, Copy, Clone)]
6864pub struct DrawMeshTasksIndirectCommandNV {
6865	pub taskCount : u32,
6866	pub firstTask : u32,
6867}
6868
6869#[repr(C)]
6870#[derive(Debug, Copy, Clone)]
6871pub struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV {
6872	pub sType : StructureType,
6873	pub pNext : *mut void,
6874	pub fragmentShaderBarycentric : Bool32,
6875}
6876
6877#[repr(C)]
6878#[derive(Debug, Copy, Clone)]
6879pub struct PhysicalDeviceShaderImageFootprintFeaturesNV {
6880	pub sType : StructureType,
6881	pub pNext : *mut void,
6882	pub imageFootprint : Bool32,
6883}
6884
6885#[repr(C)]
6886#[derive(Debug, Copy, Clone)]
6887pub struct PipelineViewportExclusiveScissorStateCreateInfoNV {
6888	pub sType : StructureType,
6889	pub pNext : *const void,
6890	pub exclusiveScissorCount : u32,
6891	pub pExclusiveScissors : *const Rect2D,
6892}
6893
6894#[repr(C)]
6895#[derive(Debug, Copy, Clone)]
6896pub struct PhysicalDeviceExclusiveScissorFeaturesNV {
6897	pub sType : StructureType,
6898	pub pNext : *mut void,
6899	pub exclusiveScissor : Bool32,
6900}
6901
6902#[repr(C)]
6903#[derive(Debug, Copy, Clone)]
6904pub struct QueueFamilyCheckpointPropertiesNV {
6905	pub sType : StructureType,
6906	pub pNext : *mut void,
6907	pub checkpointExecutionStageMask : PipelineStageFlags,
6908}
6909
6910#[repr(C)]
6911#[derive(Debug, Copy, Clone)]
6912pub struct CheckpointDataNV {
6913	pub sType : StructureType,
6914	pub pNext : *mut void,
6915	pub stage : PipelineStageFlagBits,
6916	pub pCheckpointMarker : *mut void,
6917}
6918
6919#[repr(C)]
6920#[derive(Debug, Copy, Clone)]
6921pub struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
6922	pub sType : StructureType,
6923	pub pNext : *mut void,
6924	pub shaderIntegerFunctions2 : Bool32,
6925}
6926
6927pub type PerformanceConfigurationINTEL = u64;
6928pub type PerformanceConfigurationTypeINTEL = i32;
6929pub const PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL : i32 = 0;
6930pub const PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL : i32 = 0x7FFFFFF;
6931pub type QueryPoolSamplingModeINTEL = i32;
6932pub const QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL : i32 = 0;
6933pub const QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL : i32 = 0x7FFFFFF;
6934pub type PerformanceOverrideTypeINTEL = i32;
6935pub const PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL : i32 = 0;
6936pub const PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL : i32 = 1;
6937pub const PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL : i32 = 0x7FFFFFF;
6938pub type PerformanceParameterTypeINTEL = i32;
6939pub const PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL : i32 = 0;
6940pub const PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL : i32 = 1;
6941pub const PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL : i32 = 0x7FFFFFF;
6942pub type PerformanceValueTypeINTEL = i32;
6943pub const PERFORMANCE_VALUE_TYPE_UINT32_INTEL : i32 = 0;
6944pub const PERFORMANCE_VALUE_TYPE_UINT64_INTEL : i32 = 1;
6945pub const PERFORMANCE_VALUE_TYPE_FLOAT_INTEL : i32 = 2;
6946pub const PERFORMANCE_VALUE_TYPE_BOOL_INTEL : i32 = 3;
6947pub const PERFORMANCE_VALUE_TYPE_STRING_INTEL : i32 = 4;
6948pub const PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL : i32 = 0x7FFFFFF;
6949
6950union PerformanceValueDataINTEL {
6951    value32	: u32,
6952    value64 : u64,
6953    valueFloat : f32,
6954    valueBool : i32,
6955    valueString	: *const i8,
6956}
6957
6958#[repr(C)]
6959#[derive(Debug, Copy, Clone)]
6960pub struct InitializePerformanceApiInfoINTEL {
6961	pub sType : StructureType,
6962	pub pNext : *const void,
6963	pub pUserData : *mut void,
6964}
6965
6966#[repr(C)]
6967#[derive(Debug, Copy, Clone)]
6968pub struct QueryPoolPerformanceQueryCreateInfoINTEL {
6969	pub sType : StructureType,
6970	pub pNext : *const void,
6971	pub performanceCountersSampling : QueryPoolSamplingModeINTEL,
6972}
6973
6974pub type QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
6975
6976#[repr(C)]
6977#[derive(Debug, Copy, Clone)]
6978pub struct PerformanceMarkerInfoINTEL {
6979	pub sType : StructureType,
6980	pub pNext : *const void,
6981	pub marker : u64,
6982}
6983
6984#[repr(C)]
6985#[derive(Debug, Copy, Clone)]
6986pub struct PerformanceStreamMarkerInfoINTEL {
6987	pub sType : StructureType,
6988	pub pNext : *const void,
6989	pub marker : u32,
6990}
6991
6992#[repr(C)]
6993#[derive(Debug, Copy, Clone)]
6994pub struct PerformanceOverrideInfoINTEL {
6995	pub sType : StructureType,
6996	pub pNext : *const void,
6997	pub r#type : PerformanceOverrideTypeINTEL,
6998	pub enable : Bool32,
6999	pub parameter : u64,
7000}
7001
7002#[repr(C)]
7003#[derive(Debug, Copy, Clone)]
7004pub struct PerformanceConfigurationAcquireInfoINTEL {
7005	pub sType : StructureType,
7006	pub pNext : *const void,
7007	pub r#type : PerformanceConfigurationTypeINTEL,
7008}
7009
7010#[repr(C)]
7011#[derive(Debug, Copy, Clone)]
7012pub struct PhysicalDevicePCIBusInfoPropertiesEXT {
7013	pub sType : StructureType,
7014	pub pNext : *mut void,
7015	pub pciDomain : u32,
7016	pub pciBus : u32,
7017	pub pciDevice : u32,
7018	pub pciFunction : u32,
7019}
7020
7021#[repr(C)]
7022#[derive(Debug, Copy, Clone)]
7023pub struct DisplayNativeHdrSurfaceCapabilitiesAMD {
7024	pub sType : StructureType,
7025	pub pNext : *mut void,
7026	pub localDimmingSupport : Bool32,
7027}
7028
7029#[repr(C)]
7030#[derive(Debug, Copy, Clone)]
7031pub struct SwapchainDisplayNativeHdrCreateInfoAMD {
7032	pub sType : StructureType,
7033	pub pNext : *const void,
7034	pub localDimmingEnable : Bool32,
7035}
7036
7037#[repr(C)]
7038#[derive(Debug, Copy, Clone)]
7039pub struct PhysicalDeviceFragmentDensityMapFeaturesEXT {
7040	pub sType : StructureType,
7041	pub pNext : *mut void,
7042	pub fragmentDensityMap : Bool32,
7043	pub fragmentDensityMapDynamic : Bool32,
7044	pub fragmentDensityMapNonSubsampledImages : Bool32,
7045}
7046
7047#[repr(C)]
7048#[derive(Debug, Copy, Clone)]
7049pub struct PhysicalDeviceFragmentDensityMapPropertiesEXT {
7050	pub sType : StructureType,
7051	pub pNext : *mut void,
7052	pub minFragmentDensityTexelSize : Extent2D,
7053	pub maxFragmentDensityTexelSize : Extent2D,
7054	pub fragmentDensityInvocations : Bool32,
7055}
7056
7057#[repr(C)]
7058#[derive(Debug, Copy, Clone)]
7059pub struct RenderPassFragmentDensityMapCreateInfoEXT {
7060	pub sType : StructureType,
7061	pub pNext : *const void,
7062	pub fragmentDensityMapAttachment : AttachmentReference,
7063}
7064
7065pub type PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
7066
7067#[repr(C)]
7068#[derive(Debug, Copy, Clone)]
7069pub struct PhysicalDeviceSubgroupSizeControlFeaturesEXT {
7070	pub sType : StructureType,
7071	pub pNext : *mut void,
7072	pub subgroupSizeControl : Bool32,
7073	pub computeFullSubgroups : Bool32,
7074}
7075
7076#[repr(C)]
7077#[derive(Debug, Copy, Clone)]
7078pub struct PhysicalDeviceSubgroupSizeControlPropertiesEXT {
7079	pub sType : StructureType,
7080	pub pNext : *mut void,
7081	pub minSubgroupSize : u32,
7082	pub maxSubgroupSize : u32,
7083	pub maxComputeWorkgroupSubgroups : u32,
7084	pub requiredSubgroupSizeStages : ShaderStageFlags,
7085}
7086
7087#[repr(C)]
7088#[derive(Debug, Copy, Clone)]
7089pub struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT {
7090	pub sType : StructureType,
7091	pub pNext : *mut void,
7092	pub requiredSubgroupSize : u32,
7093}
7094
7095pub type ShaderCorePropertiesFlagBitsAMD = i32;
7096pub const SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD : i32 = 0x7FFFFFF;
7097pub type ShaderCorePropertiesFlagsAMD = u32;
7098
7099#[repr(C)]
7100#[derive(Debug, Copy, Clone)]
7101pub struct PhysicalDeviceShaderCoreProperties2AMD {
7102	pub sType : StructureType,
7103	pub pNext : *mut void,
7104	pub shaderCoreFeatures : ShaderCorePropertiesFlagsAMD,
7105	pub activeComputeUnitCount : u32,
7106}
7107
7108#[repr(C)]
7109#[derive(Debug, Copy, Clone)]
7110pub struct PhysicalDeviceCoherentMemoryFeaturesAMD {
7111	pub sType : StructureType,
7112	pub pNext : *mut void,
7113	pub deviceCoherentMemory : Bool32,
7114}
7115
7116#[repr(C)]
7117#[derive(Debug, Copy, Clone)]
7118pub struct PhysicalDeviceMemoryBudgetPropertiesEXT {
7119	pub sType : StructureType,
7120	pub pNext : *mut void,
7121	pub heapBudget : [DeviceSize;MAX_MEMORY_HEAPS],
7122	pub heapUsage : [DeviceSize;MAX_MEMORY_HEAPS],
7123}
7124
7125#[repr(C)]
7126#[derive(Debug, Copy, Clone)]
7127pub struct PhysicalDeviceMemoryPriorityFeaturesEXT {
7128	pub sType : StructureType,
7129	pub pNext : *mut void,
7130	pub memoryPriority : Bool32,
7131}
7132
7133#[repr(C)]
7134#[derive(Debug, Copy, Clone)]
7135pub struct MemoryPriorityAllocateInfoEXT {
7136	pub sType : StructureType,
7137	pub pNext : *const void,
7138	pub priority : f32,
7139}
7140
7141#[repr(C)]
7142#[derive(Debug, Copy, Clone)]
7143pub struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
7144	pub sType : StructureType,
7145	pub pNext : *mut void,
7146	pub dedicatedAllocationImageAliasing : Bool32,
7147}
7148
7149#[repr(C)]
7150#[derive(Debug, Copy, Clone)]
7151pub struct PhysicalDeviceBufferDeviceAddressFeaturesEXT {
7152	pub sType : StructureType,
7153	pub pNext : *mut void,
7154	pub bufferDeviceAddress : Bool32,
7155	pub bufferDeviceAddressCaptureReplay : Bool32,
7156	pub bufferDeviceAddressMultiDevice : Bool32,
7157}
7158
7159pub type PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
7160pub type BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
7161
7162#[repr(C)]
7163#[derive(Debug, Copy, Clone)]
7164pub struct BufferDeviceAddressCreateInfoEXT {
7165	pub sType : StructureType,
7166	pub pNext : *const void,
7167	pub deviceAddress : DeviceAddress,
7168}
7169
7170pub type ToolPurposeFlagBitsEXT = i32;
7171pub const TOOL_PURPOSE_VALIDATION_BIT_EXT : i32 = 0x00000001;
7172pub const TOOL_PURPOSE_PROFILING_BIT_EXT : i32 = 0x00000002;
7173pub const TOOL_PURPOSE_TRACING_BIT_EXT : i32 = 0x00000004;
7174pub const TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT : i32 = 0x00000008;
7175pub const TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT : i32 = 0x00000010;
7176pub const TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT : i32 = 0x00000020;
7177pub const TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT : i32 = 0x00000040;
7178pub const TOOL_PURPOSE_FLAG_BITS_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
7179pub type ToolPurposeFlagsEXT = u32;
7180
7181#[repr(C)]
7182#[derive(Copy, Clone)]
7183pub struct PhysicalDeviceToolPropertiesEXT {
7184	pub sType : StructureType,
7185	pub pNext : *mut void,
7186	pub name : [i8;MAX_EXTENSION_NAME_SIZE],
7187	pub version : [i8;MAX_EXTENSION_NAME_SIZE],
7188	pub purposes : ToolPurposeFlagsEXT,
7189	pub description : [i8;MAX_DESCRIPTION_SIZE],
7190	pub layer : [i8;MAX_EXTENSION_NAME_SIZE],
7191}
7192
7193pub type ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
7194pub type ValidationFeatureEnableEXT = i32;
7195pub const VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT : i32 = 0;
7196pub const VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT : i32 = 1;
7197pub const VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT : i32 = 2;
7198pub const VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT : i32 = 3;
7199pub const VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
7200pub type ValidationFeatureDisableEXT = i32;
7201pub const VALIDATION_FEATURE_DISABLE_ALL_EXT : i32 = 0;
7202pub const VALIDATION_FEATURE_DISABLE_SHADERS_EXT : i32 = 1;
7203pub const VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT : i32 = 2;
7204pub const VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT : i32 = 3;
7205pub const VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT : i32 = 4;
7206pub const VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT : i32 = 5;
7207pub const VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT : i32 = 6;
7208pub const VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
7209
7210#[repr(C)]
7211#[derive(Debug, Copy, Clone)]
7212pub struct ValidationFeaturesEXT {
7213	pub sType : StructureType,
7214	pub pNext : *const void,
7215	pub enabledValidationFeatureCount : u32,
7216	pub pEnabledValidationFeatures : *const ValidationFeatureEnableEXT,
7217	pub disabledValidationFeatureCount : u32,
7218	pub pDisabledValidationFeatures : *const ValidationFeatureDisableEXT,
7219}
7220
7221pub type ComponentTypeNV = i32;
7222pub const COMPONENT_TYPE_FLOAT16_NV : i32 = 0;
7223pub const COMPONENT_TYPE_FLOAT32_NV : i32 = 1;
7224pub const COMPONENT_TYPE_FLOAT64_NV : i32 = 2;
7225pub const COMPONENT_TYPE_SINT8_NV : i32 = 3;
7226pub const COMPONENT_TYPE_SINT16_NV : i32 = 4;
7227pub const COMPONENT_TYPE_SINT32_NV : i32 = 5;
7228pub const COMPONENT_TYPE_SINT64_NV : i32 = 6;
7229pub const COMPONENT_TYPE_UINT8_NV : i32 = 7;
7230pub const COMPONENT_TYPE_UINT16_NV : i32 = 8;
7231pub const COMPONENT_TYPE_UINT32_NV : i32 = 9;
7232pub const COMPONENT_TYPE_UINT64_NV : i32 = 10;
7233pub const COMPONENT_TYPE_MAX_ENUM_NV : i32 = 0x7FFFFFF;
7234pub type ScopeNV = i32;
7235pub const SCOPE_DEVICE_NV : i32 = 1;
7236pub const SCOPE_WORKGROUP_NV : i32 = 2;
7237pub const SCOPE_SUBGROUP_NV : i32 = 3;
7238pub const SCOPE_QUEUE_FAMILY_NV : i32 = 5;
7239pub const SCOPE_MAX_ENUM_NV : i32 = 0x7FFFFFF;
7240
7241#[repr(C)]
7242#[derive(Debug, Copy, Clone)]
7243pub struct CooperativeMatrixPropertiesNV {
7244	pub sType : StructureType,
7245	pub pNext : *mut void,
7246	pub MSize : u32,
7247	pub NSize : u32,
7248	pub KSize : u32,
7249	pub AType : ComponentTypeNV,
7250	pub BType : ComponentTypeNV,
7251	pub CType : ComponentTypeNV,
7252	pub DType : ComponentTypeNV,
7253	pub scope : ScopeNV,
7254}
7255
7256#[repr(C)]
7257#[derive(Debug, Copy, Clone)]
7258pub struct PhysicalDeviceCooperativeMatrixFeaturesNV {
7259	pub sType : StructureType,
7260	pub pNext : *mut void,
7261	pub cooperativeMatrix : Bool32,
7262	pub cooperativeMatrixRobustBufferAccess : Bool32,
7263}
7264
7265#[repr(C)]
7266#[derive(Debug, Copy, Clone)]
7267pub struct PhysicalDeviceCooperativeMatrixPropertiesNV {
7268	pub sType : StructureType,
7269	pub pNext : *mut void,
7270	pub cooperativeMatrixSupportedStages : ShaderStageFlags,
7271}
7272
7273pub type CoverageReductionModeNV = i32;
7274pub const COVERAGE_REDUCTION_MODE_MERGE_NV : i32 = 0;
7275pub const COVERAGE_REDUCTION_MODE_TRUNCATE_NV : i32 = 1;
7276pub const COVERAGE_REDUCTION_MODE_MAX_ENUM_NV : i32 = 0x7FFFFFF;
7277pub type PipelineCoverageReductionStateCreateFlagsNV = u32;
7278
7279#[repr(C)]
7280#[derive(Debug, Copy, Clone)]
7281pub struct PhysicalDeviceCoverageReductionModeFeaturesNV {
7282	pub sType : StructureType,
7283	pub pNext : *mut void,
7284	pub coverageReductionMode : Bool32,
7285}
7286
7287#[repr(C)]
7288#[derive(Debug, Copy, Clone)]
7289pub struct PipelineCoverageReductionStateCreateInfoNV {
7290	pub sType : StructureType,
7291	pub pNext : *const void,
7292	pub flags : PipelineCoverageReductionStateCreateFlagsNV,
7293	pub coverageReductionMode : CoverageReductionModeNV,
7294}
7295
7296#[repr(C)]
7297#[derive(Debug, Copy, Clone)]
7298pub struct FramebufferMixedSamplesCombinationNV {
7299	pub sType : StructureType,
7300	pub pNext : *mut void,
7301	pub coverageReductionMode : CoverageReductionModeNV,
7302	pub rasterizationSamples : SampleCountFlagBits,
7303	pub depthStencilSamples : SampleCountFlags,
7304	pub colorSamples : SampleCountFlags,
7305}
7306
7307#[repr(C)]
7308#[derive(Debug, Copy, Clone)]
7309pub struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
7310	pub sType : StructureType,
7311	pub pNext : *mut void,
7312	pub fragmentShaderSampleInterlock : Bool32,
7313	pub fragmentShaderPixelInterlock : Bool32,
7314	pub fragmentShaderShadingRateInterlock : Bool32,
7315}
7316
7317#[repr(C)]
7318#[derive(Debug, Copy, Clone)]
7319pub struct PhysicalDeviceYcbcrImageArraysFeaturesEXT {
7320	pub sType : StructureType,
7321	pub pNext : *mut void,
7322	pub ycbcrImageArrays : Bool32,
7323}
7324
7325pub type HeadlessSurfaceCreateFlagsEXT = u32;
7326
7327#[repr(C)]
7328#[derive(Debug, Copy, Clone)]
7329pub struct HeadlessSurfaceCreateInfoEXT {
7330	pub sType : StructureType,
7331	pub pNext : *const void,
7332	pub flags : HeadlessSurfaceCreateFlagsEXT,
7333}
7334
7335pub type LineRasterizationModeEXT = i32;
7336pub const LINE_RASTERIZATION_MODE_DEFAULT_EXT : i32 = 0;
7337pub const LINE_RASTERIZATION_MODE_RECTANGULAR_EXT : i32 = 1;
7338pub const LINE_RASTERIZATION_MODE_BRESENHAM_EXT : i32 = 2;
7339pub const LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT : i32 = 3;
7340pub const LINE_RASTERIZATION_MODE_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
7341
7342#[repr(C)]
7343#[derive(Debug, Copy, Clone)]
7344pub struct PhysicalDeviceLineRasterizationFeaturesEXT {
7345	pub sType : StructureType,
7346	pub pNext : *mut void,
7347	pub rectangularLines : Bool32,
7348	pub bresenhamLines : Bool32,
7349	pub smoothLines : Bool32,
7350	pub stippledRectangularLines : Bool32,
7351	pub stippledBresenhamLines : Bool32,
7352	pub stippledSmoothLines : Bool32,
7353}
7354
7355#[repr(C)]
7356#[derive(Debug, Copy, Clone)]
7357pub struct PhysicalDeviceLineRasterizationPropertiesEXT {
7358	pub sType : StructureType,
7359	pub pNext : *mut void,
7360	pub lineSubPixelPrecisionBits : u32,
7361}
7362
7363#[repr(C)]
7364#[derive(Debug, Copy, Clone)]
7365pub struct PipelineRasterizationLineStateCreateInfoEXT {
7366	pub sType : StructureType,
7367	pub pNext : *const void,
7368	pub lineRasterizationMode : LineRasterizationModeEXT,
7369	pub stippledLineEnable : Bool32,
7370	pub lineStippleFactor : u32,
7371	pub lineStipplePattern : u16,
7372}
7373
7374pub type PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
7375
7376#[repr(C)]
7377#[derive(Debug, Copy, Clone)]
7378pub struct PhysicalDeviceIndexTypeUint8FeaturesEXT {
7379	pub sType : StructureType,
7380	pub pNext : *mut void,
7381	pub indexTypeUint8 : Bool32,
7382}
7383
7384#[repr(C)]
7385#[derive(Debug, Copy, Clone)]
7386pub struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT {
7387	pub sType : StructureType,
7388	pub pNext : *mut void,
7389	pub shaderDemoteToHelperInvocation : Bool32,
7390}
7391
7392pub type IndirectCommandsLayoutNV = u64;
7393pub type IndirectCommandsTokenTypeNV = i32;
7394pub const INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV : i32 = 0;
7395pub const INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV : i32 = 1;
7396pub const INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV : i32 = 2;
7397pub const INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV : i32 = 3;
7398pub const INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV : i32 = 4;
7399pub const INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV : i32 = 5;
7400pub const INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV : i32 = 6;
7401pub const INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV : i32 = 7;
7402pub const INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV : i32 = 0x7FFFFFF;
7403pub type IndirectStateFlagBitsNV = i32;
7404pub const INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV : i32 = 0x00000001;
7405pub const INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV : i32 = 0x7FFFFFF;
7406pub type IndirectStateFlagsNV = u32;
7407pub type IndirectCommandsLayoutUsageFlagBitsNV = i32;
7408pub const INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV : i32 = 0x00000001;
7409pub const INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV : i32 = 0x00000002;
7410pub const INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV : i32 = 0x00000004;
7411pub const INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV : i32 = 0x7FFFFFF;
7412pub type IndirectCommandsLayoutUsageFlagsNV = u32;
7413
7414#[repr(C)]
7415#[derive(Debug, Copy, Clone)]
7416pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
7417	pub sType : StructureType,
7418	pub pNext : *mut void,
7419	pub maxGraphicsShaderGroupCount : u32,
7420	pub maxIndirectSequenceCount : u32,
7421	pub maxIndirectCommandsTokenCount : u32,
7422	pub maxIndirectCommandsStreamCount : u32,
7423	pub maxIndirectCommandsTokenOffset : u32,
7424	pub maxIndirectCommandsStreamStride : u32,
7425	pub minSequencesCountBufferOffsetAlignment : u32,
7426	pub minSequencesIndexBufferOffsetAlignment : u32,
7427	pub minIndirectCommandsBufferOffsetAlignment : u32,
7428}
7429
7430#[repr(C)]
7431#[derive(Debug, Copy, Clone)]
7432pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
7433	pub sType : StructureType,
7434	pub pNext : *mut void,
7435	pub deviceGeneratedCommands : Bool32,
7436}
7437
7438#[repr(C)]
7439#[derive(Debug, Copy, Clone)]
7440pub struct GraphicsShaderGroupCreateInfoNV {
7441	pub sType : StructureType,
7442	pub pNext : *const void,
7443	pub stageCount : u32,
7444	pub pStages : *const PipelineShaderStageCreateInfo,
7445	pub pVertexInputState : *const PipelineVertexInputStateCreateInfo,
7446	pub pTessellationState : *const PipelineTessellationStateCreateInfo,
7447}
7448
7449#[repr(C)]
7450#[derive(Debug, Copy, Clone)]
7451pub struct GraphicsPipelineShaderGroupsCreateInfoNV {
7452	pub sType : StructureType,
7453	pub pNext : *const void,
7454	pub groupCount : u32,
7455	pub pGroups : *const GraphicsShaderGroupCreateInfoNV,
7456	pub pipelineCount : u32,
7457	pub pPipelines : *const Pipeline,
7458}
7459
7460#[repr(C)]
7461#[derive(Debug, Copy, Clone)]
7462pub struct BindShaderGroupIndirectCommandNV {
7463	pub groupIndex : u32,
7464}
7465
7466#[repr(C)]
7467#[derive(Debug, Copy, Clone)]
7468pub struct BindIndexBufferIndirectCommandNV {
7469	pub bufferAddress : DeviceAddress,
7470	pub size : u32,
7471	pub indexType : IndexType,
7472}
7473
7474#[repr(C)]
7475#[derive(Debug, Copy, Clone)]
7476pub struct BindVertexBufferIndirectCommandNV {
7477	pub bufferAddress : DeviceAddress,
7478	pub size : u32,
7479	pub stride : u32,
7480}
7481
7482#[repr(C)]
7483#[derive(Debug, Copy, Clone)]
7484pub struct SetStateFlagsIndirectCommandNV {
7485	pub data : u32,
7486}
7487
7488#[repr(C)]
7489#[derive(Debug, Copy, Clone)]
7490pub struct IndirectCommandsStreamNV {
7491	pub buffer : Buffer,
7492	pub offset : DeviceSize,
7493}
7494
7495#[repr(C)]
7496#[derive(Debug, Copy, Clone)]
7497pub struct IndirectCommandsLayoutTokenNV {
7498	pub sType : StructureType,
7499	pub pNext : *const void,
7500	pub tokenType : IndirectCommandsTokenTypeNV,
7501	pub stream : u32,
7502	pub offset : u32,
7503	pub vertexBindingUnit : u32,
7504	pub vertexDynamicStride : Bool32,
7505	pub pushconstantPipelineLayout : PipelineLayout,
7506	pub pushconstantShaderStageFlags : ShaderStageFlags,
7507	pub pushconstantOffset : u32,
7508	pub pushconstantSize : u32,
7509	pub indirectStateFlags : IndirectStateFlagsNV,
7510	pub indexTypeCount : u32,
7511	pub pIndexTypes : *const IndexType,
7512	pub pIndexTypeValues : *const u32,
7513}
7514
7515#[repr(C)]
7516#[derive(Debug, Copy, Clone)]
7517pub struct IndirectCommandsLayoutCreateInfoNV {
7518	pub sType : StructureType,
7519	pub pNext : *const void,
7520	pub flags : IndirectCommandsLayoutUsageFlagsNV,
7521	pub pipelineBindPoint : PipelineBindPoint,
7522	pub tokenCount : u32,
7523	pub pTokens : *const IndirectCommandsLayoutTokenNV,
7524	pub streamCount : u32,
7525	pub pStreamStrides : *const u32,
7526}
7527
7528#[repr(C)]
7529#[derive(Debug, Copy, Clone)]
7530pub struct GeneratedCommandsInfoNV {
7531	pub sType : StructureType,
7532	pub pNext : *const void,
7533	pub pipelineBindPoint : PipelineBindPoint,
7534	pub pipeline : Pipeline,
7535	pub indirectCommandsLayout : IndirectCommandsLayoutNV,
7536	pub streamCount : u32,
7537	pub pStreams : *const IndirectCommandsStreamNV,
7538	pub sequencesCount : u32,
7539	pub preprocessBuffer : Buffer,
7540	pub preprocessOffset : DeviceSize,
7541	pub preprocessSize : DeviceSize,
7542	pub sequencesCountBuffer : Buffer,
7543	pub sequencesCountOffset : DeviceSize,
7544	pub sequencesIndexBuffer : Buffer,
7545	pub sequencesIndexOffset : DeviceSize,
7546}
7547
7548#[repr(C)]
7549#[derive(Debug, Copy, Clone)]
7550pub struct GeneratedCommandsMemoryRequirementsInfoNV {
7551	pub sType : StructureType,
7552	pub pNext : *const void,
7553	pub pipelineBindPoint : PipelineBindPoint,
7554	pub pipeline : Pipeline,
7555	pub indirectCommandsLayout : IndirectCommandsLayoutNV,
7556	pub maxSequencesCount : u32,
7557}
7558
7559#[repr(C)]
7560#[derive(Debug, Copy, Clone)]
7561pub struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
7562	pub sType : StructureType,
7563	pub pNext : *mut void,
7564	pub texelBufferAlignment : Bool32,
7565}
7566
7567#[repr(C)]
7568#[derive(Debug, Copy, Clone)]
7569pub struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT {
7570	pub sType : StructureType,
7571	pub pNext : *mut void,
7572	pub storageTexelBufferOffsetAlignmentBytes : DeviceSize,
7573	pub storageTexelBufferOffsetSingleTexelAlignment : Bool32,
7574	pub uniformTexelBufferOffsetAlignmentBytes : DeviceSize,
7575	pub uniformTexelBufferOffsetSingleTexelAlignment : Bool32,
7576}
7577
7578#[repr(C)]
7579#[derive(Debug, Copy, Clone)]
7580pub struct RenderPassTransformBeginInfoQCOM {
7581	pub sType : StructureType,
7582	pub pNext : *mut void,
7583	pub transform : SurfaceTransformFlagBitsKHR,
7584}
7585
7586#[repr(C)]
7587#[derive(Debug, Copy, Clone)]
7588pub struct CommandBufferInheritanceRenderPassTransformInfoQCOM {
7589	pub sType : StructureType,
7590	pub pNext : *mut void,
7591	pub transform : SurfaceTransformFlagBitsKHR,
7592	pub renderArea : Rect2D,
7593}
7594
7595#[repr(C)]
7596#[derive(Debug, Copy, Clone)]
7597pub struct PhysicalDeviceRobustness2FeaturesEXT {
7598	pub sType : StructureType,
7599	pub pNext : *mut void,
7600	pub robustBufferAccess2 : Bool32,
7601	pub robustImageAccess2 : Bool32,
7602	pub nullDescriptor : Bool32,
7603}
7604
7605#[repr(C)]
7606#[derive(Debug, Copy, Clone)]
7607pub struct PhysicalDeviceRobustness2PropertiesEXT {
7608	pub sType : StructureType,
7609	pub pNext : *mut void,
7610	pub robustStorageBufferAccessSizeAlignment : DeviceSize,
7611	pub robustUniformBufferAccessSizeAlignment : DeviceSize,
7612}
7613
7614#[repr(C)]
7615#[derive(Debug, Copy, Clone)]
7616pub struct SamplerCustomBorderColorCreateInfoEXT {
7617	pub sType : StructureType,
7618	pub pNext : *const void,
7619	pub customBorderColor : ClearColorValue,
7620	pub format : Format,
7621}
7622
7623#[repr(C)]
7624#[derive(Debug, Copy, Clone)]
7625pub struct PhysicalDeviceCustomBorderColorPropertiesEXT {
7626	pub sType : StructureType,
7627	pub pNext : *mut void,
7628	pub maxCustomBorderColorSamplers : u32,
7629}
7630
7631#[repr(C)]
7632#[derive(Debug, Copy, Clone)]
7633pub struct PhysicalDeviceCustomBorderColorFeaturesEXT {
7634	pub sType : StructureType,
7635	pub pNext : *mut void,
7636	pub customBorderColors : Bool32,
7637	pub customBorderColorWithoutFormat : Bool32,
7638}
7639
7640pub type PrivateDataSlotEXT = u64;
7641pub type PrivateDataSlotCreateFlagBitsEXT = i32;
7642pub const PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
7643pub type PrivateDataSlotCreateFlagsEXT = u32;
7644
7645#[repr(C)]
7646#[derive(Debug, Copy, Clone)]
7647pub struct PhysicalDevicePrivateDataFeaturesEXT {
7648	pub sType : StructureType,
7649	pub pNext : *mut void,
7650	pub privateData : Bool32,
7651}
7652
7653#[repr(C)]
7654#[derive(Debug, Copy, Clone)]
7655pub struct DevicePrivateDataCreateInfoEXT {
7656	pub sType : StructureType,
7657	pub pNext : *const void,
7658	pub privateDataSlotRequestCount : u32,
7659}
7660
7661#[repr(C)]
7662#[derive(Debug, Copy, Clone)]
7663pub struct PrivateDataSlotCreateInfoEXT {
7664	pub sType : StructureType,
7665	pub pNext : *const void,
7666	pub flags : PrivateDataSlotCreateFlagsEXT,
7667}
7668
7669#[repr(C)]
7670#[derive(Debug, Copy, Clone)]
7671pub struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT {
7672	pub sType : StructureType,
7673	pub pNext : *mut void,
7674	pub pipelineCreationCacheControl : Bool32,
7675}
7676
7677pub type DeviceDiagnosticsConfigFlagBitsNV = i32;
7678pub const DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV : i32 = 0x00000001;
7679pub const DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV : i32 = 0x00000002;
7680pub const DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV : i32 = 0x00000004;
7681pub const DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV : i32 = 0x7FFFFFF;
7682pub type DeviceDiagnosticsConfigFlagsNV = u32;
7683
7684#[repr(C)]
7685#[derive(Debug, Copy, Clone)]
7686pub struct PhysicalDeviceDiagnosticsConfigFeaturesNV {
7687	pub sType : StructureType,
7688	pub pNext : *mut void,
7689	pub diagnosticsConfig : Bool32,
7690}
7691
7692#[repr(C)]
7693#[derive(Debug, Copy, Clone)]
7694pub struct DeviceDiagnosticsConfigCreateInfoNV {
7695	pub sType : StructureType,
7696	pub pNext : *const void,
7697	pub flags : DeviceDiagnosticsConfigFlagsNV,
7698}
7699
7700
7701//WIN32
7702//windows types
7703pub type HINSTANCE = u64;
7704pub type HWND = u64;
7705pub type HANDLE = u64;
7706pub type DWORD = u32;
7707pub type LPCWSTR = *const i16;
7708pub type HMONITOR = u64;
7709pub type LPSECURITY_ATTRIBUTES = u64;
7710
7711pub type Win32SurfaceCreateFlagsKHR = u32;
7712
7713#[repr(C)]
7714#[derive(Debug, Copy, Clone)]
7715pub struct Win32SurfaceCreateInfoKHR {
7716        pub sType : StructureType,
7717        pub pNext : *const void,
7718        pub flags : Win32SurfaceCreateFlagsKHR,
7719        pub hinstance : HINSTANCE,
7720        pub hwnd : HWND,
7721}
7722
7723#[repr(C)]
7724#[derive(Debug, Copy, Clone)]
7725pub struct ImportMemoryWin32HandleInfoKHR {
7726        pub sType : StructureType,
7727        pub pNext : *const void,
7728        pub handleType : ExternalMemoryHandleTypeFlagBits,
7729        pub handle : HANDLE,
7730        pub name : LPCWSTR,
7731}
7732
7733#[repr(C)]
7734#[derive(Debug, Copy, Clone)]
7735pub struct ExportMemoryWin32HandleInfoKHR {
7736        pub sType : StructureType,
7737        pub pNext : *const void,
7738        pub pAttributes : LPSECURITY_ATTRIBUTES,
7739        pub dwAccess : DWORD,
7740        pub name : LPCWSTR,
7741}
7742
7743#[repr(C)]
7744#[derive(Debug, Copy, Clone)]
7745pub struct MemoryWin32HandlePropertiesKHR {
7746        pub sType : StructureType,
7747        pub pNext : *mut void,
7748        pub memoryTypeBits : u32,
7749}
7750
7751#[repr(C)]
7752#[derive(Debug, Copy, Clone)]
7753pub struct MemoryGetWin32HandleInfoKHR {
7754        pub sType : StructureType,
7755        pub pNext : *const void,
7756        pub memory : DeviceMemory,
7757        pub handleType : ExternalMemoryHandleTypeFlagBits,
7758}
7759
7760#[repr(C)]
7761#[derive(Debug, Copy, Clone)]
7762pub struct Win32KeyedMutexAcquireReleaseInfoKHR {
7763        pub sType : StructureType,
7764        pub pNext : *const void,
7765        pub acquireCount : u32,
7766        pub pAcquireSyncs : *const DeviceMemory,
7767        pub pAcquireKeys : *const u64,
7768        pub pAcquireTimeouts : *const u32,
7769        pub releaseCount : u32,
7770        pub pReleaseSyncs : *const DeviceMemory,
7771        pub pReleaseKeys : *const u64,
7772}
7773
7774#[repr(C)]
7775#[derive(Debug, Copy, Clone)]
7776pub struct ImportSemaphoreWin32HandleInfoKHR {
7777        pub sType : StructureType,
7778        pub pNext : *const void,
7779        pub semaphore : Semaphore,
7780        pub flags : SemaphoreImportFlags,
7781        pub handleType : ExternalSemaphoreHandleTypeFlagBits,
7782        pub handle : HANDLE,
7783        pub name : LPCWSTR,
7784}
7785
7786#[repr(C)]
7787#[derive(Debug, Copy, Clone)]
7788pub struct ExportSemaphoreWin32HandleInfoKHR {
7789        pub sType : StructureType,
7790        pub pNext : *const void,
7791        pub pAttributes : LPSECURITY_ATTRIBUTES,
7792        pub dwAccess : DWORD,
7793        pub name : LPCWSTR,
7794}
7795
7796#[repr(C)]
7797#[derive(Debug, Copy, Clone)]
7798pub struct D3D12FenceSubmitInfoKHR {
7799        pub sType : StructureType,
7800        pub pNext : *const void,
7801        pub waitSemaphoreValuesCount : u32,
7802        pub pWaitSemaphoreValues : *const u64,
7803        pub signalSemaphoreValuesCount : u32,
7804        pub pSignalSemaphoreValues : *const u64,
7805}
7806
7807#[repr(C)]
7808#[derive(Debug, Copy, Clone)]
7809pub struct SemaphoreGetWin32HandleInfoKHR {
7810        pub sType : StructureType,
7811        pub pNext : *const void,
7812        pub semaphore : Semaphore,
7813        pub handleType : ExternalSemaphoreHandleTypeFlagBits,
7814}
7815
7816#[repr(C)]
7817#[derive(Debug, Copy, Clone)]
7818pub struct ImportFenceWin32HandleInfoKHR {
7819        pub sType : StructureType,
7820        pub pNext : *const void,
7821        pub fence : Fence,
7822        pub flags : FenceImportFlags,
7823        pub handleType : ExternalFenceHandleTypeFlagBits,
7824        pub handle : HANDLE,
7825        pub name : LPCWSTR,
7826}
7827
7828#[repr(C)]
7829#[derive(Debug, Copy, Clone)]
7830pub struct ExportFenceWin32HandleInfoKHR {
7831        pub sType : StructureType,
7832        pub pNext : *const void,
7833        pub pAttributes : LPSECURITY_ATTRIBUTES,
7834        pub dwAccess : DWORD,
7835        pub name : LPCWSTR,
7836}
7837
7838#[repr(C)]
7839#[derive(Debug, Copy, Clone)]
7840pub struct FenceGetWin32HandleInfoKHR {
7841        pub sType : StructureType,
7842        pub pNext : *const void,
7843        pub fence : Fence,
7844        pub handleType : ExternalFenceHandleTypeFlagBits,
7845}
7846
7847#[repr(C)]
7848#[derive(Debug, Copy, Clone)]
7849pub struct ImportMemoryWin32HandleInfoNV {
7850        pub sType : StructureType,
7851        pub pNext : *const void,
7852        pub handleType : ExternalMemoryHandleTypeFlagsNV,
7853        pub handle : HANDLE,
7854}
7855
7856#[repr(C)]
7857#[derive(Debug, Copy, Clone)]
7858pub struct ExportMemoryWin32HandleInfoNV {
7859        pub sType : StructureType,
7860        pub pNext : *const void,
7861        pub pAttributes : LPSECURITY_ATTRIBUTES,
7862        pub dwAccess : DWORD,
7863}
7864
7865#[repr(C)]
7866#[derive(Debug, Copy, Clone)]
7867pub struct Win32KeyedMutexAcquireReleaseInfoNV {
7868        pub sType : StructureType,
7869        pub pNext : *const void,
7870        pub acquireCount : u32,
7871        pub pAcquireSyncs : *const DeviceMemory,
7872        pub pAcquireKeys : *const u64,
7873        pub pAcquireTimeoutMilliseconds : *const u32,
7874        pub releaseCount : u32,
7875        pub pReleaseSyncs : *const DeviceMemory,
7876        pub pReleaseKeys : *const u64,
7877}
7878
7879pub type FullScreenExclusiveEXT = i32;
7880pub const FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT : i32 = 0;
7881pub const FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT : i32 = 1;
7882pub const FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT : i32 = 2;
7883pub const FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT : i32 = 3;
7884pub const FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT : i32 = 0x7FFFFFF;
7885
7886#[repr(C)]
7887#[derive(Debug, Copy, Clone)]
7888pub struct SurfaceFullScreenExclusiveInfoEXT {
7889        pub sType : StructureType,
7890        pub pNext : *mut void,
7891        pub fullScreenExclusive : FullScreenExclusiveEXT,
7892}
7893
7894#[repr(C)]
7895#[derive(Debug, Copy, Clone)]
7896pub struct SurfaceCapabilitiesFullScreenExclusiveEXT {
7897        pub sType : StructureType,
7898        pub pNext : *mut void,
7899        pub fullScreenExclusiveSupported : Bool32,
7900}
7901
7902#[repr(C)]
7903#[derive(Debug, Copy, Clone)]
7904pub struct SurfaceFullScreenExclusiveWin32InfoEXT {
7905        pub sType : StructureType,
7906        pub pNext : *const void,
7907        pub hmonitor : HMONITOR,
7908}
7909
7910impl ::std::default::Default for ApplicationInfo {
7911    fn default() -> ApplicationInfo {
7912        ApplicationInfo {
7913            sType : STRUCTURE_TYPE_APPLICATION_INFO,
7914            pNext : 0 as _,
7915            pApplicationName : 0 as _,
7916            applicationVersion : 0 as _,
7917            pEngineName : 0 as _,
7918            engineVersion : 0 as _,
7919            apiVersion : 0 as _,
7920        }
7921    }
7922}
7923impl ::std::default::Default for InstanceCreateInfo {
7924    fn default() -> InstanceCreateInfo {
7925        InstanceCreateInfo {
7926            sType : STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
7927            pNext : 0 as _,
7928            flags : 0 as _,
7929            pApplicationInfo : 0 as _,
7930            enabledLayerCount : 0 as _,
7931            ppEnabledLayerNames : 0 as _,
7932            enabledExtensionCount : 0 as _,
7933            ppEnabledExtensionNames : 0 as _,
7934        }
7935    }
7936}
7937impl ::std::default::Default for AllocationCallbacks {
7938    fn default() -> AllocationCallbacks {
7939        AllocationCallbacks {
7940            pUserData : 0 as _,
7941            pfnAllocation : 0 as _,
7942            pfnReallocation : 0 as _,
7943            pfnFree : 0 as _,
7944            pfnInternalAllocation : 0 as _,
7945            pfnInternalFree : 0 as _,
7946        }
7947    }
7948}
7949impl ::std::default::Default for PhysicalDeviceFeatures {
7950    fn default() -> PhysicalDeviceFeatures {
7951        PhysicalDeviceFeatures {
7952            robustBufferAccess : 0 as _,
7953            fullDrawIndexUint32 : 0 as _,
7954            imageCubeArray : 0 as _,
7955            independentBlend : 0 as _,
7956            geometryShader : 0 as _,
7957            tessellationShader : 0 as _,
7958            sampleRateShading : 0 as _,
7959            dualSrcBlend : 0 as _,
7960            logicOp : 0 as _,
7961            multiDrawIndirect : 0 as _,
7962            drawIndirectFirstInstance : 0 as _,
7963            depthClamp : 0 as _,
7964            depthBiasClamp : 0 as _,
7965            fillModeNonSolid : 0 as _,
7966            depthBounds : 0 as _,
7967            wideLines : 0 as _,
7968            largePoints : 0 as _,
7969            alphaToOne : 0 as _,
7970            multiViewport : 0 as _,
7971            samplerAnisotropy : 0 as _,
7972            textureCompressionETC2 : 0 as _,
7973            textureCompressionASTC_LDR : 0 as _,
7974            textureCompressionBC : 0 as _,
7975            occlusionQueryPrecise : 0 as _,
7976            pipelineStatisticsQuery : 0 as _,
7977            vertexPipelineStoresAndAtomics : 0 as _,
7978            fragmentStoresAndAtomics : 0 as _,
7979            shaderTessellationAndGeometryPointSize : 0 as _,
7980            shaderImageGatherExtended : 0 as _,
7981            shaderStorageImageExtendedFormats : 0 as _,
7982            shaderStorageImageMultisample : 0 as _,
7983            shaderStorageImageReadWithoutFormat : 0 as _,
7984            shaderStorageImageWriteWithoutFormat : 0 as _,
7985            shaderUniformBufferArrayDynamicIndexing : 0 as _,
7986            shaderSampledImageArrayDynamicIndexing : 0 as _,
7987            shaderStorageBufferArrayDynamicIndexing : 0 as _,
7988            shaderStorageImageArrayDynamicIndexing : 0 as _,
7989            shaderClipDistance : 0 as _,
7990            shaderCullDistance : 0 as _,
7991            shaderFloat64 : 0 as _,
7992            shaderInt64 : 0 as _,
7993            shaderInt16 : 0 as _,
7994            shaderResourceResidency : 0 as _,
7995            shaderResourceMinLod : 0 as _,
7996            sparseBinding : 0 as _,
7997            sparseResidencyBuffer : 0 as _,
7998            sparseResidencyImage2D : 0 as _,
7999            sparseResidencyImage3D : 0 as _,
8000            sparseResidency2Samples : 0 as _,
8001            sparseResidency4Samples : 0 as _,
8002            sparseResidency8Samples : 0 as _,
8003            sparseResidency16Samples : 0 as _,
8004            sparseResidencyAliased : 0 as _,
8005            variableMultisampleRate : 0 as _,
8006            inheritedQueries : 0 as _,
8007        }
8008    }
8009}
8010impl ::std::default::Default for FormatProperties {
8011    fn default() -> FormatProperties {
8012        FormatProperties {
8013            linearTilingFeatures : Default::default(),
8014            optimalTilingFeatures : Default::default(),
8015            bufferFeatures : Default::default(),
8016        }
8017    }
8018}
8019impl ::std::default::Default for Extent3D {
8020    fn default() -> Extent3D {
8021        Extent3D {
8022            width : 0 as _,
8023            height : 0 as _,
8024            depth : 0 as _,
8025        }
8026    }
8027}
8028impl ::std::default::Default for ImageFormatProperties {
8029    fn default() -> ImageFormatProperties {
8030        ImageFormatProperties {
8031            maxExtent : Default::default(),
8032            maxMipLevels : 0 as _,
8033            maxArrayLayers : 0 as _,
8034            sampleCounts : Default::default(),
8035            maxResourceSize : Default::default(),
8036        }
8037    }
8038}
8039impl ::std::default::Default for PhysicalDeviceLimits {
8040    fn default() -> PhysicalDeviceLimits {
8041        PhysicalDeviceLimits {
8042            maxImageDimension1D : 0 as _,
8043            maxImageDimension2D : 0 as _,
8044            maxImageDimension3D : 0 as _,
8045            maxImageDimensionCube : 0 as _,
8046            maxImageArrayLayers : 0 as _,
8047            maxTexelBufferElements : 0 as _,
8048            maxUniformBufferRange : 0 as _,
8049            maxStorageBufferRange : 0 as _,
8050            maxPushConstantsSize : 0 as _,
8051            maxMemoryAllocationCount : 0 as _,
8052            maxSamplerAllocationCount : 0 as _,
8053            bufferImageGranularity : Default::default(),
8054            sparseAddressSpaceSize : Default::default(),
8055            maxBoundDescriptorSets : 0 as _,
8056            maxPerStageDescriptorSamplers : 0 as _,
8057            maxPerStageDescriptorUniformBuffers : 0 as _,
8058            maxPerStageDescriptorStorageBuffers : 0 as _,
8059            maxPerStageDescriptorSampledImages : 0 as _,
8060            maxPerStageDescriptorStorageImages : 0 as _,
8061            maxPerStageDescriptorInputAttachments : 0 as _,
8062            maxPerStageResources : 0 as _,
8063            maxDescriptorSetSamplers : 0 as _,
8064            maxDescriptorSetUniformBuffers : 0 as _,
8065            maxDescriptorSetUniformBuffersDynamic : 0 as _,
8066            maxDescriptorSetStorageBuffers : 0 as _,
8067            maxDescriptorSetStorageBuffersDynamic : 0 as _,
8068            maxDescriptorSetSampledImages : 0 as _,
8069            maxDescriptorSetStorageImages : 0 as _,
8070            maxDescriptorSetInputAttachments : 0 as _,
8071            maxVertexInputAttributes : 0 as _,
8072            maxVertexInputBindings : 0 as _,
8073            maxVertexInputAttributeOffset : 0 as _,
8074            maxVertexInputBindingStride : 0 as _,
8075            maxVertexOutputComponents : 0 as _,
8076            maxTessellationGenerationLevel : 0 as _,
8077            maxTessellationPatchSize : 0 as _,
8078            maxTessellationControlPerVertexInputComponents : 0 as _,
8079            maxTessellationControlPerVertexOutputComponents : 0 as _,
8080            maxTessellationControlPerPatchOutputComponents : 0 as _,
8081            maxTessellationControlTotalOutputComponents : 0 as _,
8082            maxTessellationEvaluationInputComponents : 0 as _,
8083            maxTessellationEvaluationOutputComponents : 0 as _,
8084            maxGeometryShaderInvocations : 0 as _,
8085            maxGeometryInputComponents : 0 as _,
8086            maxGeometryOutputComponents : 0 as _,
8087            maxGeometryOutputVertices : 0 as _,
8088            maxGeometryTotalOutputComponents : 0 as _,
8089            maxFragmentInputComponents : 0 as _,
8090            maxFragmentOutputAttachments : 0 as _,
8091            maxFragmentDualSrcAttachments : 0 as _,
8092            maxFragmentCombinedOutputResources : 0 as _,
8093            maxComputeSharedMemorySize : 0 as _,
8094            maxComputeWorkGroupCount : [Default::default();3],
8095            maxComputeWorkGroupInvocations : 0 as _,
8096            maxComputeWorkGroupSize : [Default::default();3],
8097            subPixelPrecisionBits : 0 as _,
8098            subTexelPrecisionBits : 0 as _,
8099            mipmapPrecisionBits : 0 as _,
8100            maxDrawIndexedIndexValue : 0 as _,
8101            maxDrawIndirectCount : 0 as _,
8102            maxSamplerLodBias : 0 as _,
8103            maxSamplerAnisotropy : 0 as _,
8104            maxViewports : 0 as _,
8105            maxViewportDimensions : [Default::default();2],
8106            viewportBoundsRange : [Default::default();2],
8107            viewportSubPixelBits : 0 as _,
8108            minMemoryMapAlignment : Default::default(),
8109            minTexelBufferOffsetAlignment : Default::default(),
8110            minUniformBufferOffsetAlignment : Default::default(),
8111            minStorageBufferOffsetAlignment : Default::default(),
8112            minTexelOffset : 0 as _,
8113            maxTexelOffset : 0 as _,
8114            minTexelGatherOffset : 0 as _,
8115            maxTexelGatherOffset : 0 as _,
8116            minInterpolationOffset : 0 as _,
8117            maxInterpolationOffset : 0 as _,
8118            subPixelInterpolationOffsetBits : 0 as _,
8119            maxFramebufferWidth : 0 as _,
8120            maxFramebufferHeight : 0 as _,
8121            maxFramebufferLayers : 0 as _,
8122            framebufferColorSampleCounts : Default::default(),
8123            framebufferDepthSampleCounts : Default::default(),
8124            framebufferStencilSampleCounts : Default::default(),
8125            framebufferNoAttachmentsSampleCounts : Default::default(),
8126            maxColorAttachments : 0 as _,
8127            sampledImageColorSampleCounts : Default::default(),
8128            sampledImageIntegerSampleCounts : Default::default(),
8129            sampledImageDepthSampleCounts : Default::default(),
8130            sampledImageStencilSampleCounts : Default::default(),
8131            storageImageSampleCounts : Default::default(),
8132            maxSampleMaskWords : 0 as _,
8133            timestampComputeAndGraphics : 0 as _,
8134            timestampPeriod : 0 as _,
8135            maxClipDistances : 0 as _,
8136            maxCullDistances : 0 as _,
8137            maxCombinedClipAndCullDistances : 0 as _,
8138            discreteQueuePriorities : 0 as _,
8139            pointSizeRange : [Default::default();2],
8140            lineWidthRange : [Default::default();2],
8141            pointSizeGranularity : 0 as _,
8142            lineWidthGranularity : 0 as _,
8143            strictLines : 0 as _,
8144            standardSampleLocations : 0 as _,
8145            optimalBufferCopyOffsetAlignment : Default::default(),
8146            optimalBufferCopyRowPitchAlignment : Default::default(),
8147            nonCoherentAtomSize : Default::default(),
8148        }
8149    }
8150}
8151impl ::std::default::Default for PhysicalDeviceSparseProperties {
8152    fn default() -> PhysicalDeviceSparseProperties {
8153        PhysicalDeviceSparseProperties {
8154            residencyStandard2DBlockShape : 0 as _,
8155            residencyStandard2DMultisampleBlockShape : 0 as _,
8156            residencyStandard3DBlockShape : 0 as _,
8157            residencyAlignedMipSize : 0 as _,
8158            residencyNonResidentStrict : 0 as _,
8159        }
8160    }
8161}
8162impl ::std::default::Default for PhysicalDeviceProperties {
8163    fn default() -> PhysicalDeviceProperties {
8164        PhysicalDeviceProperties {
8165            apiVersion : 0 as _,
8166            driverVersion : 0 as _,
8167            vendorID : 0 as _,
8168            deviceID : 0 as _,
8169            deviceType : Default::default(),
8170            deviceName : [Default::default();MAX_PHYSICAL_DEVICE_NAME_SIZE],
8171            pipelineCacheUUID : [Default::default();UUID_SIZE],
8172            limits : Default::default(),
8173            sparseProperties : Default::default(),
8174        }
8175    }
8176}
8177impl ::std::default::Default for QueueFamilyProperties {
8178    fn default() -> QueueFamilyProperties {
8179        QueueFamilyProperties {
8180            queueFlags : Default::default(),
8181            queueCount : 0 as _,
8182            timestampValidBits : 0 as _,
8183            minImageTransferGranularity : Default::default(),
8184        }
8185    }
8186}
8187impl ::std::default::Default for MemoryType {
8188    fn default() -> MemoryType {
8189        MemoryType {
8190            propertyFlags : Default::default(),
8191            heapIndex : 0 as _,
8192        }
8193    }
8194}
8195impl ::std::default::Default for MemoryHeap {
8196    fn default() -> MemoryHeap {
8197        MemoryHeap {
8198            size : Default::default(),
8199            flags : Default::default(),
8200        }
8201    }
8202}
8203impl ::std::default::Default for PhysicalDeviceMemoryProperties {
8204    fn default() -> PhysicalDeviceMemoryProperties {
8205        PhysicalDeviceMemoryProperties {
8206            memoryTypeCount : 0 as _,
8207            memoryTypes : [Default::default();MAX_MEMORY_TYPES],
8208            memoryHeapCount : 0 as _,
8209            memoryHeaps : [Default::default();MAX_MEMORY_HEAPS],
8210        }
8211    }
8212}
8213impl ::std::default::Default for DeviceQueueCreateInfo {
8214    fn default() -> DeviceQueueCreateInfo {
8215        DeviceQueueCreateInfo {
8216            sType : STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
8217            pNext : 0 as _,
8218            flags : Default::default(),
8219            queueFamilyIndex : 0 as _,
8220            queueCount : 0 as _,
8221            pQueuePriorities : 0 as _,
8222        }
8223    }
8224}
8225impl ::std::default::Default for DeviceCreateInfo {
8226    fn default() -> DeviceCreateInfo {
8227        DeviceCreateInfo {
8228            sType : STRUCTURE_TYPE_DEVICE_CREATE_INFO,
8229            pNext : 0 as _,
8230            flags : Default::default(),
8231            queueCreateInfoCount : 0 as _,
8232            pQueueCreateInfos : 0 as _,
8233            enabledLayerCount : 0 as _,
8234            ppEnabledLayerNames : 0 as _,
8235            enabledExtensionCount : 0 as _,
8236            ppEnabledExtensionNames : 0 as _,
8237            pEnabledFeatures : 0 as _,
8238        }
8239    }
8240}
8241impl ::std::default::Default for ExtensionProperties {
8242    fn default() -> ExtensionProperties {
8243        ExtensionProperties {
8244            extensionName : [Default::default();MAX_EXTENSION_NAME_SIZE],
8245            specVersion : 0 as _,
8246        }
8247    }
8248}
8249impl ::std::default::Default for LayerProperties {
8250    fn default() -> LayerProperties {
8251        LayerProperties {
8252            layerName : [Default::default();MAX_EXTENSION_NAME_SIZE],
8253            specVersion : 0 as _,
8254            implementationVersion : 0 as _,
8255            description : [Default::default();MAX_DESCRIPTION_SIZE],
8256        }
8257    }
8258}
8259impl ::std::default::Default for SubmitInfo {
8260    fn default() -> SubmitInfo {
8261        SubmitInfo {
8262            sType : STRUCTURE_TYPE_SUBMIT_INFO,
8263            pNext : 0 as _,
8264            waitSemaphoreCount : 0 as _,
8265            pWaitSemaphores : 0 as _,
8266            pWaitDstStageMask : 0 as _,
8267            commandBufferCount : 0 as _,
8268            pCommandBuffers : 0 as _,
8269            signalSemaphoreCount : 0 as _,
8270            pSignalSemaphores : 0 as _,
8271        }
8272    }
8273}
8274impl ::std::default::Default for MemoryAllocateInfo {
8275    fn default() -> MemoryAllocateInfo {
8276        MemoryAllocateInfo {
8277            sType : STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
8278            pNext : 0 as _,
8279            allocationSize : Default::default(),
8280            memoryTypeIndex : 0 as _,
8281        }
8282    }
8283}
8284impl ::std::default::Default for MappedMemoryRange {
8285    fn default() -> MappedMemoryRange {
8286        MappedMemoryRange {
8287            sType : STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,
8288            pNext : 0 as _,
8289            memory : Default::default(),
8290            offset : Default::default(),
8291            size : Default::default(),
8292        }
8293    }
8294}
8295impl ::std::default::Default for MemoryRequirements {
8296    fn default() -> MemoryRequirements {
8297        MemoryRequirements {
8298            size : Default::default(),
8299            alignment : Default::default(),
8300            memoryTypeBits : 0 as _,
8301        }
8302    }
8303}
8304impl ::std::default::Default for SparseImageFormatProperties {
8305    fn default() -> SparseImageFormatProperties {
8306        SparseImageFormatProperties {
8307            aspectMask : Default::default(),
8308            imageGranularity : Default::default(),
8309            flags : Default::default(),
8310        }
8311    }
8312}
8313impl ::std::default::Default for SparseImageMemoryRequirements {
8314    fn default() -> SparseImageMemoryRequirements {
8315        SparseImageMemoryRequirements {
8316            formatProperties : Default::default(),
8317            imageMipTailFirstLod : 0 as _,
8318            imageMipTailSize : Default::default(),
8319            imageMipTailOffset : Default::default(),
8320            imageMipTailStride : Default::default(),
8321        }
8322    }
8323}
8324impl ::std::default::Default for SparseMemoryBind {
8325    fn default() -> SparseMemoryBind {
8326        SparseMemoryBind {
8327            resourceOffset : Default::default(),
8328            size : Default::default(),
8329            memory : Default::default(),
8330            memoryOffset : Default::default(),
8331            flags : Default::default(),
8332        }
8333    }
8334}
8335impl ::std::default::Default for SparseBufferMemoryBindInfo {
8336    fn default() -> SparseBufferMemoryBindInfo {
8337        SparseBufferMemoryBindInfo {
8338            buffer : Default::default(),
8339            bindCount : 0 as _,
8340            pBinds : 0 as _,
8341        }
8342    }
8343}
8344impl ::std::default::Default for SparseImageOpaqueMemoryBindInfo {
8345    fn default() -> SparseImageOpaqueMemoryBindInfo {
8346        SparseImageOpaqueMemoryBindInfo {
8347            image : Default::default(),
8348            bindCount : 0 as _,
8349            pBinds : 0 as _,
8350        }
8351    }
8352}
8353impl ::std::default::Default for ImageSubresource {
8354    fn default() -> ImageSubresource {
8355        ImageSubresource {
8356            aspectMask : Default::default(),
8357            mipLevel : 0 as _,
8358            arrayLayer : 0 as _,
8359        }
8360    }
8361}
8362impl ::std::default::Default for Offset3D {
8363    fn default() -> Offset3D {
8364        Offset3D {
8365            x : 0 as _,
8366            y : 0 as _,
8367            z : 0 as _,
8368        }
8369    }
8370}
8371impl ::std::default::Default for SparseImageMemoryBind {
8372    fn default() -> SparseImageMemoryBind {
8373        SparseImageMemoryBind {
8374            subresource : Default::default(),
8375            offset : Default::default(),
8376            extent : Default::default(),
8377            memory : Default::default(),
8378            memoryOffset : Default::default(),
8379            flags : Default::default(),
8380        }
8381    }
8382}
8383impl ::std::default::Default for SparseImageMemoryBindInfo {
8384    fn default() -> SparseImageMemoryBindInfo {
8385        SparseImageMemoryBindInfo {
8386            image : Default::default(),
8387            bindCount : 0 as _,
8388            pBinds : 0 as _,
8389        }
8390    }
8391}
8392impl ::std::default::Default for BindSparseInfo {
8393    fn default() -> BindSparseInfo {
8394        BindSparseInfo {
8395            sType : STRUCTURE_TYPE_BIND_SPARSE_INFO,
8396            pNext : 0 as _,
8397            waitSemaphoreCount : 0 as _,
8398            pWaitSemaphores : 0 as _,
8399            bufferBindCount : 0 as _,
8400            pBufferBinds : 0 as _,
8401            imageOpaqueBindCount : 0 as _,
8402            pImageOpaqueBinds : 0 as _,
8403            imageBindCount : 0 as _,
8404            pImageBinds : 0 as _,
8405            signalSemaphoreCount : 0 as _,
8406            pSignalSemaphores : 0 as _,
8407        }
8408    }
8409}
8410impl ::std::default::Default for FenceCreateInfo {
8411    fn default() -> FenceCreateInfo {
8412        FenceCreateInfo {
8413            sType : STRUCTURE_TYPE_FENCE_CREATE_INFO,
8414            pNext : 0 as _,
8415            flags : Default::default(),
8416        }
8417    }
8418}
8419impl ::std::default::Default for SemaphoreCreateInfo {
8420    fn default() -> SemaphoreCreateInfo {
8421        SemaphoreCreateInfo {
8422            sType : STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,
8423            pNext : 0 as _,
8424            flags : Default::default(),
8425        }
8426    }
8427}
8428impl ::std::default::Default for EventCreateInfo {
8429    fn default() -> EventCreateInfo {
8430        EventCreateInfo {
8431            sType : STRUCTURE_TYPE_EVENT_CREATE_INFO,
8432            pNext : 0 as _,
8433            flags : Default::default(),
8434        }
8435    }
8436}
8437impl ::std::default::Default for QueryPoolCreateInfo {
8438    fn default() -> QueryPoolCreateInfo {
8439        QueryPoolCreateInfo {
8440            sType : STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,
8441            pNext : 0 as _,
8442            flags : Default::default(),
8443            queryType : Default::default(),
8444            queryCount : 0 as _,
8445            pipelineStatistics : Default::default(),
8446        }
8447    }
8448}
8449impl ::std::default::Default for BufferCreateInfo {
8450    fn default() -> BufferCreateInfo {
8451        BufferCreateInfo {
8452            sType : STRUCTURE_TYPE_BUFFER_CREATE_INFO,
8453            pNext : 0 as _,
8454            flags : Default::default(),
8455            size : Default::default(),
8456            usage : Default::default(),
8457            sharingMode : Default::default(),
8458            queueFamilyIndexCount : 0 as _,
8459            pQueueFamilyIndices : 0 as _,
8460        }
8461    }
8462}
8463impl ::std::default::Default for BufferViewCreateInfo {
8464    fn default() -> BufferViewCreateInfo {
8465        BufferViewCreateInfo {
8466            sType : STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
8467            pNext : 0 as _,
8468            flags : Default::default(),
8469            buffer : Default::default(),
8470            format : Default::default(),
8471            offset : Default::default(),
8472            range : Default::default(),
8473        }
8474    }
8475}
8476impl ::std::default::Default for ImageCreateInfo {
8477    fn default() -> ImageCreateInfo {
8478        ImageCreateInfo {
8479            sType : STRUCTURE_TYPE_IMAGE_CREATE_INFO,
8480            pNext : 0 as _,
8481            flags : Default::default(),
8482            imageType : Default::default(),
8483            format : Default::default(),
8484            extent : Default::default(),
8485            mipLevels : 0 as _,
8486            arrayLayers : 0 as _,
8487            samples : Default::default(),
8488            tiling : Default::default(),
8489            usage : Default::default(),
8490            sharingMode : Default::default(),
8491            queueFamilyIndexCount : 0 as _,
8492            pQueueFamilyIndices : 0 as _,
8493            initialLayout : Default::default(),
8494        }
8495    }
8496}
8497impl ::std::default::Default for SubresourceLayout {
8498    fn default() -> SubresourceLayout {
8499        SubresourceLayout {
8500            offset : Default::default(),
8501            size : Default::default(),
8502            rowPitch : Default::default(),
8503            arrayPitch : Default::default(),
8504            depthPitch : Default::default(),
8505        }
8506    }
8507}
8508impl ::std::default::Default for ComponentMapping {
8509    fn default() -> ComponentMapping {
8510        ComponentMapping {
8511            r : Default::default(),
8512            g : Default::default(),
8513            b : Default::default(),
8514            a : Default::default(),
8515        }
8516    }
8517}
8518impl ::std::default::Default for ImageSubresourceRange {
8519    fn default() -> ImageSubresourceRange {
8520        ImageSubresourceRange {
8521            aspectMask : Default::default(),
8522            baseMipLevel : 0 as _,
8523            levelCount : 0 as _,
8524            baseArrayLayer : 0 as _,
8525            layerCount : 0 as _,
8526        }
8527    }
8528}
8529impl ::std::default::Default for ImageViewCreateInfo {
8530    fn default() -> ImageViewCreateInfo {
8531        ImageViewCreateInfo {
8532            sType : STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
8533            pNext : 0 as _,
8534            flags : Default::default(),
8535            image : Default::default(),
8536            viewType : Default::default(),
8537            format : Default::default(),
8538            components : Default::default(),
8539            subresourceRange : Default::default(),
8540        }
8541    }
8542}
8543impl ::std::default::Default for ShaderModuleCreateInfo {
8544    fn default() -> ShaderModuleCreateInfo {
8545        ShaderModuleCreateInfo {
8546            sType : STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,
8547            pNext : 0 as _,
8548            flags : Default::default(),
8549            codeSize : Default::default(),
8550            pCode : 0 as _,
8551        }
8552    }
8553}
8554impl ::std::default::Default for PipelineCacheCreateInfo {
8555    fn default() -> PipelineCacheCreateInfo {
8556        PipelineCacheCreateInfo {
8557            sType : STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
8558            pNext : 0 as _,
8559            flags : Default::default(),
8560            initialDataSize : Default::default(),
8561            pInitialData : 0 as _,
8562        }
8563    }
8564}
8565impl ::std::default::Default for SpecializationMapEntry {
8566    fn default() -> SpecializationMapEntry {
8567        SpecializationMapEntry {
8568            constantID : 0 as _,
8569            offset : 0 as _,
8570            size : Default::default(),
8571        }
8572    }
8573}
8574impl ::std::default::Default for SpecializationInfo {
8575    fn default() -> SpecializationInfo {
8576        SpecializationInfo {
8577            mapEntryCount : 0 as _,
8578            pMapEntries : 0 as _,
8579            dataSize : Default::default(),
8580            pData : 0 as _,
8581        }
8582    }
8583}
8584impl ::std::default::Default for PipelineShaderStageCreateInfo {
8585    fn default() -> PipelineShaderStageCreateInfo {
8586        PipelineShaderStageCreateInfo {
8587            sType : STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,
8588            pNext : 0 as _,
8589            flags : Default::default(),
8590            stage : Default::default(),
8591            module : Default::default(),
8592            pName : 0 as _,
8593            pSpecializationInfo : 0 as _,
8594        }
8595    }
8596}
8597impl ::std::default::Default for VertexInputBindingDescription {
8598    fn default() -> VertexInputBindingDescription {
8599        VertexInputBindingDescription {
8600            binding : 0 as _,
8601            stride : 0 as _,
8602            inputRate : Default::default(),
8603        }
8604    }
8605}
8606impl ::std::default::Default for VertexInputAttributeDescription {
8607    fn default() -> VertexInputAttributeDescription {
8608        VertexInputAttributeDescription {
8609            location : 0 as _,
8610            binding : 0 as _,
8611            format : Default::default(),
8612            offset : 0 as _,
8613        }
8614    }
8615}
8616impl ::std::default::Default for PipelineVertexInputStateCreateInfo {
8617    fn default() -> PipelineVertexInputStateCreateInfo {
8618        PipelineVertexInputStateCreateInfo {
8619            sType : STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,
8620            pNext : 0 as _,
8621            flags : Default::default(),
8622            vertexBindingDescriptionCount : 0 as _,
8623            pVertexBindingDescriptions : 0 as _,
8624            vertexAttributeDescriptionCount : 0 as _,
8625            pVertexAttributeDescriptions : 0 as _,
8626        }
8627    }
8628}
8629impl ::std::default::Default for PipelineInputAssemblyStateCreateInfo {
8630    fn default() -> PipelineInputAssemblyStateCreateInfo {
8631        PipelineInputAssemblyStateCreateInfo {
8632            sType : STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,
8633            pNext : 0 as _,
8634            flags : Default::default(),
8635            topology : Default::default(),
8636            primitiveRestartEnable : 0 as _,
8637        }
8638    }
8639}
8640impl ::std::default::Default for PipelineTessellationStateCreateInfo {
8641    fn default() -> PipelineTessellationStateCreateInfo {
8642        PipelineTessellationStateCreateInfo {
8643            sType : STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,
8644            pNext : 0 as _,
8645            flags : Default::default(),
8646            patchControlPoints : 0 as _,
8647        }
8648    }
8649}
8650impl ::std::default::Default for Viewport {
8651    fn default() -> Viewport {
8652        Viewport {
8653            x : 0 as _,
8654            y : 0 as _,
8655            width : 0 as _,
8656            height : 0 as _,
8657            minDepth : 0 as _,
8658            maxDepth : 0 as _,
8659        }
8660    }
8661}
8662impl ::std::default::Default for Offset2D {
8663    fn default() -> Offset2D {
8664        Offset2D {
8665            x : 0 as _,
8666            y : 0 as _,
8667        }
8668    }
8669}
8670impl ::std::default::Default for Extent2D {
8671    fn default() -> Extent2D {
8672        Extent2D {
8673            width : 0 as _,
8674            height : 0 as _,
8675        }
8676    }
8677}
8678impl ::std::default::Default for Rect2D {
8679    fn default() -> Rect2D {
8680        Rect2D {
8681            offset : Default::default(),
8682            extent : Default::default(),
8683        }
8684    }
8685}
8686impl ::std::default::Default for PipelineViewportStateCreateInfo {
8687    fn default() -> PipelineViewportStateCreateInfo {
8688        PipelineViewportStateCreateInfo {
8689            sType : STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
8690            pNext : 0 as _,
8691            flags : Default::default(),
8692            viewportCount : 0 as _,
8693            pViewports : 0 as _,
8694            scissorCount : 0 as _,
8695            pScissors : 0 as _,
8696        }
8697    }
8698}
8699impl ::std::default::Default for PipelineRasterizationStateCreateInfo {
8700    fn default() -> PipelineRasterizationStateCreateInfo {
8701        PipelineRasterizationStateCreateInfo {
8702            sType : STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
8703            pNext : 0 as _,
8704            flags : Default::default(),
8705            depthClampEnable : 0 as _,
8706            rasterizerDiscardEnable : 0 as _,
8707            polygonMode : Default::default(),
8708            cullMode : Default::default(),
8709            frontFace : Default::default(),
8710            depthBiasEnable : 0 as _,
8711            depthBiasConstantFactor : 0 as _,
8712            depthBiasClamp : 0 as _,
8713            depthBiasSlopeFactor : 0 as _,
8714            lineWidth : 0 as _,
8715        }
8716    }
8717}
8718impl ::std::default::Default for PipelineMultisampleStateCreateInfo {
8719    fn default() -> PipelineMultisampleStateCreateInfo {
8720        PipelineMultisampleStateCreateInfo {
8721            sType : STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
8722            pNext : 0 as _,
8723            flags : Default::default(),
8724            rasterizationSamples : Default::default(),
8725            sampleShadingEnable : 0 as _,
8726            minSampleShading : 0 as _,
8727            pSampleMask : 0 as _,
8728            alphaToCoverageEnable : 0 as _,
8729            alphaToOneEnable : 0 as _,
8730        }
8731    }
8732}
8733impl ::std::default::Default for StencilOpState {
8734    fn default() -> StencilOpState {
8735        StencilOpState {
8736            failOp : Default::default(),
8737            passOp : Default::default(),
8738            depthFailOp : Default::default(),
8739            compareOp : Default::default(),
8740            compareMask : 0 as _,
8741            writeMask : 0 as _,
8742            reference : 0 as _,
8743        }
8744    }
8745}
8746impl ::std::default::Default for PipelineDepthStencilStateCreateInfo {
8747    fn default() -> PipelineDepthStencilStateCreateInfo {
8748        PipelineDepthStencilStateCreateInfo {
8749            sType : STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
8750            pNext : 0 as _,
8751            flags : Default::default(),
8752            depthTestEnable : 0 as _,
8753            depthWriteEnable : 0 as _,
8754            depthCompareOp : Default::default(),
8755            depthBoundsTestEnable : 0 as _,
8756            stencilTestEnable : 0 as _,
8757            front : Default::default(),
8758            back : Default::default(),
8759            minDepthBounds : 0 as _,
8760            maxDepthBounds : 0 as _,
8761        }
8762    }
8763}
8764impl ::std::default::Default for PipelineColorBlendAttachmentState {
8765    fn default() -> PipelineColorBlendAttachmentState {
8766        PipelineColorBlendAttachmentState {
8767            blendEnable : 0 as _,
8768            srcColorBlendFactor : Default::default(),
8769            dstColorBlendFactor : Default::default(),
8770            colorBlendOp : Default::default(),
8771            srcAlphaBlendFactor : Default::default(),
8772            dstAlphaBlendFactor : Default::default(),
8773            alphaBlendOp : Default::default(),
8774            colorWriteMask : Default::default(),
8775        }
8776    }
8777}
8778impl ::std::default::Default for PipelineColorBlendStateCreateInfo {
8779    fn default() -> PipelineColorBlendStateCreateInfo {
8780        PipelineColorBlendStateCreateInfo {
8781            sType : STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,
8782            pNext : 0 as _,
8783            flags : Default::default(),
8784            logicOpEnable : 0 as _,
8785            logicOp : Default::default(),
8786            attachmentCount : 0 as _,
8787            pAttachments : 0 as _,
8788            blendConstants : [Default::default();4],
8789        }
8790    }
8791}
8792impl ::std::default::Default for PipelineDynamicStateCreateInfo {
8793    fn default() -> PipelineDynamicStateCreateInfo {
8794        PipelineDynamicStateCreateInfo {
8795            sType : STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
8796            pNext : 0 as _,
8797            flags : Default::default(),
8798            dynamicStateCount : 0 as _,
8799            pDynamicStates : 0 as _,
8800        }
8801    }
8802}
8803impl ::std::default::Default for GraphicsPipelineCreateInfo {
8804    fn default() -> GraphicsPipelineCreateInfo {
8805        GraphicsPipelineCreateInfo {
8806            sType : STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,
8807            pNext : 0 as _,
8808            flags : Default::default(),
8809            stageCount : 0 as _,
8810            pStages : 0 as _,
8811            pVertexInputState : 0 as _,
8812            pInputAssemblyState : 0 as _,
8813            pTessellationState : 0 as _,
8814            pViewportState : 0 as _,
8815            pRasterizationState : 0 as _,
8816            pMultisampleState : 0 as _,
8817            pDepthStencilState : 0 as _,
8818            pColorBlendState : 0 as _,
8819            pDynamicState : 0 as _,
8820            layout : Default::default(),
8821            renderPass : Default::default(),
8822            subpass : 0 as _,
8823            basePipelineHandle : Default::default(),
8824            basePipelineIndex : 0 as _,
8825        }
8826    }
8827}
8828impl ::std::default::Default for ComputePipelineCreateInfo {
8829    fn default() -> ComputePipelineCreateInfo {
8830        ComputePipelineCreateInfo {
8831            sType : STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
8832            pNext : 0 as _,
8833            flags : Default::default(),
8834            stage : Default::default(),
8835            layout : Default::default(),
8836            basePipelineHandle : Default::default(),
8837            basePipelineIndex : 0 as _,
8838        }
8839    }
8840}
8841impl ::std::default::Default for PushConstantRange {
8842    fn default() -> PushConstantRange {
8843        PushConstantRange {
8844            stageFlags : Default::default(),
8845            offset : 0 as _,
8846            size : 0 as _,
8847        }
8848    }
8849}
8850impl ::std::default::Default for PipelineLayoutCreateInfo {
8851    fn default() -> PipelineLayoutCreateInfo {
8852        PipelineLayoutCreateInfo {
8853            sType : STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
8854            pNext : 0 as _,
8855            flags : Default::default(),
8856            setLayoutCount : 0 as _,
8857            pSetLayouts : 0 as _,
8858            pushConstantRangeCount : 0 as _,
8859            pPushConstantRanges : 0 as _,
8860        }
8861    }
8862}
8863impl ::std::default::Default for SamplerCreateInfo {
8864    fn default() -> SamplerCreateInfo {
8865        SamplerCreateInfo {
8866            sType : STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
8867            pNext : 0 as _,
8868            flags : Default::default(),
8869            magFilter : Default::default(),
8870            minFilter : Default::default(),
8871            mipmapMode : Default::default(),
8872            addressModeU : Default::default(),
8873            addressModeV : Default::default(),
8874            addressModeW : Default::default(),
8875            mipLodBias : 0 as _,
8876            anisotropyEnable : 0 as _,
8877            maxAnisotropy : 0 as _,
8878            compareEnable : 0 as _,
8879            compareOp : Default::default(),
8880            minLod : 0 as _,
8881            maxLod : 0 as _,
8882            borderColor : Default::default(),
8883            unnormalizedCoordinates : 0 as _,
8884        }
8885    }
8886}
8887impl ::std::default::Default for DescriptorSetLayoutBinding {
8888    fn default() -> DescriptorSetLayoutBinding {
8889        DescriptorSetLayoutBinding {
8890            binding : 0 as _,
8891            descriptorType : Default::default(),
8892            descriptorCount : 0 as _,
8893            stageFlags : Default::default(),
8894            pImmutableSamplers : 0 as _,
8895        }
8896    }
8897}
8898impl ::std::default::Default for DescriptorSetLayoutCreateInfo {
8899    fn default() -> DescriptorSetLayoutCreateInfo {
8900        DescriptorSetLayoutCreateInfo {
8901            sType : STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
8902            pNext : 0 as _,
8903            flags : Default::default(),
8904            bindingCount : 0 as _,
8905            pBindings : 0 as _,
8906        }
8907    }
8908}
8909impl ::std::default::Default for DescriptorPoolSize {
8910    fn default() -> DescriptorPoolSize {
8911        DescriptorPoolSize {
8912            r#type : Default::default(),
8913            descriptorCount : 0 as _,
8914        }
8915    }
8916}
8917impl ::std::default::Default for DescriptorPoolCreateInfo {
8918    fn default() -> DescriptorPoolCreateInfo {
8919        DescriptorPoolCreateInfo {
8920            sType : STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
8921            pNext : 0 as _,
8922            flags : Default::default(),
8923            maxSets : 0 as _,
8924            poolSizeCount : 0 as _,
8925            pPoolSizes : 0 as _,
8926        }
8927    }
8928}
8929impl ::std::default::Default for DescriptorSetAllocateInfo {
8930    fn default() -> DescriptorSetAllocateInfo {
8931        DescriptorSetAllocateInfo {
8932            sType : STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
8933            pNext : 0 as _,
8934            descriptorPool : Default::default(),
8935            descriptorSetCount : 0 as _,
8936            pSetLayouts : 0 as _,
8937        }
8938    }
8939}
8940impl ::std::default::Default for DescriptorImageInfo {
8941    fn default() -> DescriptorImageInfo {
8942        DescriptorImageInfo {
8943            sampler : Default::default(),
8944            imageView : Default::default(),
8945            imageLayout : Default::default(),
8946        }
8947    }
8948}
8949impl ::std::default::Default for DescriptorBufferInfo {
8950    fn default() -> DescriptorBufferInfo {
8951        DescriptorBufferInfo {
8952            buffer : Default::default(),
8953            offset : Default::default(),
8954            range : Default::default(),
8955        }
8956    }
8957}
8958impl ::std::default::Default for WriteDescriptorSet {
8959    fn default() -> WriteDescriptorSet {
8960        WriteDescriptorSet {
8961            sType : STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
8962            pNext : 0 as _,
8963            dstSet : Default::default(),
8964            dstBinding : 0 as _,
8965            dstArrayElement : 0 as _,
8966            descriptorCount : 0 as _,
8967            descriptorType : Default::default(),
8968            pImageInfo : 0 as _,
8969            pBufferInfo : 0 as _,
8970            pTexelBufferView : 0 as _,
8971        }
8972    }
8973}
8974impl ::std::default::Default for CopyDescriptorSet {
8975    fn default() -> CopyDescriptorSet {
8976        CopyDescriptorSet {
8977            sType : STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,
8978            pNext : 0 as _,
8979            srcSet : Default::default(),
8980            srcBinding : 0 as _,
8981            srcArrayElement : 0 as _,
8982            dstSet : Default::default(),
8983            dstBinding : 0 as _,
8984            dstArrayElement : 0 as _,
8985            descriptorCount : 0 as _,
8986        }
8987    }
8988}
8989impl ::std::default::Default for FramebufferCreateInfo {
8990    fn default() -> FramebufferCreateInfo {
8991        FramebufferCreateInfo {
8992            sType : STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
8993            pNext : 0 as _,
8994            flags : Default::default(),
8995            renderPass : Default::default(),
8996            attachmentCount : 0 as _,
8997            pAttachments : 0 as _,
8998            width : 0 as _,
8999            height : 0 as _,
9000            layers : 0 as _,
9001        }
9002    }
9003}
9004impl ::std::default::Default for AttachmentDescription {
9005    fn default() -> AttachmentDescription {
9006        AttachmentDescription {
9007            flags : Default::default(),
9008            format : Default::default(),
9009            samples : Default::default(),
9010            loadOp : Default::default(),
9011            storeOp : Default::default(),
9012            stencilLoadOp : Default::default(),
9013            stencilStoreOp : Default::default(),
9014            initialLayout : Default::default(),
9015            finalLayout : Default::default(),
9016        }
9017    }
9018}
9019impl ::std::default::Default for AttachmentReference {
9020    fn default() -> AttachmentReference {
9021        AttachmentReference {
9022            attachment : 0 as _,
9023            layout : Default::default(),
9024        }
9025    }
9026}
9027impl ::std::default::Default for SubpassDescription {
9028    fn default() -> SubpassDescription {
9029        SubpassDescription {
9030            flags : Default::default(),
9031            pipelineBindPoint : Default::default(),
9032            inputAttachmentCount : 0 as _,
9033            pInputAttachments : 0 as _,
9034            colorAttachmentCount : 0 as _,
9035            pColorAttachments : 0 as _,
9036            pResolveAttachments : 0 as _,
9037            pDepthStencilAttachment : 0 as _,
9038            preserveAttachmentCount : 0 as _,
9039            pPreserveAttachments : 0 as _,
9040        }
9041    }
9042}
9043impl ::std::default::Default for SubpassDependency {
9044    fn default() -> SubpassDependency {
9045        SubpassDependency {
9046            srcSubpass : 0 as _,
9047            dstSubpass : 0 as _,
9048            srcStageMask : Default::default(),
9049            dstStageMask : Default::default(),
9050            srcAccessMask : Default::default(),
9051            dstAccessMask : Default::default(),
9052            dependencyFlags : Default::default(),
9053        }
9054    }
9055}
9056impl ::std::default::Default for RenderPassCreateInfo {
9057    fn default() -> RenderPassCreateInfo {
9058        RenderPassCreateInfo {
9059            sType : STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,
9060            pNext : 0 as _,
9061            flags : Default::default(),
9062            attachmentCount : 0 as _,
9063            pAttachments : 0 as _,
9064            subpassCount : 0 as _,
9065            pSubpasses : 0 as _,
9066            dependencyCount : 0 as _,
9067            pDependencies : 0 as _,
9068        }
9069    }
9070}
9071impl ::std::default::Default for CommandPoolCreateInfo {
9072    fn default() -> CommandPoolCreateInfo {
9073        CommandPoolCreateInfo {
9074            sType : STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,
9075            pNext : 0 as _,
9076            flags : Default::default(),
9077            queueFamilyIndex : 0 as _,
9078        }
9079    }
9080}
9081impl ::std::default::Default for CommandBufferAllocateInfo {
9082    fn default() -> CommandBufferAllocateInfo {
9083        CommandBufferAllocateInfo {
9084            sType : STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,
9085            pNext : 0 as _,
9086            commandPool : Default::default(),
9087            level : Default::default(),
9088            commandBufferCount : 0 as _,
9089        }
9090    }
9091}
9092impl ::std::default::Default for CommandBufferInheritanceInfo {
9093    fn default() -> CommandBufferInheritanceInfo {
9094        CommandBufferInheritanceInfo {
9095            sType : STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,
9096            pNext : 0 as _,
9097            renderPass : Default::default(),
9098            subpass : 0 as _,
9099            framebuffer : Default::default(),
9100            occlusionQueryEnable : 0 as _,
9101            queryFlags : Default::default(),
9102            pipelineStatistics : Default::default(),
9103        }
9104    }
9105}
9106impl ::std::default::Default for CommandBufferBeginInfo {
9107    fn default() -> CommandBufferBeginInfo {
9108        CommandBufferBeginInfo {
9109            sType : STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
9110            pNext : 0 as _,
9111            flags : Default::default(),
9112            pInheritanceInfo : 0 as _,
9113        }
9114    }
9115}
9116impl ::std::default::Default for BufferCopy {
9117    fn default() -> BufferCopy {
9118        BufferCopy {
9119            srcOffset : Default::default(),
9120            dstOffset : Default::default(),
9121            size : Default::default(),
9122        }
9123    }
9124}
9125impl ::std::default::Default for ImageSubresourceLayers {
9126    fn default() -> ImageSubresourceLayers {
9127        ImageSubresourceLayers {
9128            aspectMask : Default::default(),
9129            mipLevel : 0 as _,
9130            baseArrayLayer : 0 as _,
9131            layerCount : 0 as _,
9132        }
9133    }
9134}
9135impl ::std::default::Default for ImageCopy {
9136    fn default() -> ImageCopy {
9137        ImageCopy {
9138            srcSubresource : Default::default(),
9139            srcOffset : Default::default(),
9140            dstSubresource : Default::default(),
9141            dstOffset : Default::default(),
9142            extent : Default::default(),
9143        }
9144    }
9145}
9146impl ::std::default::Default for ImageBlit {
9147    fn default() -> ImageBlit {
9148        ImageBlit {
9149            srcSubresource : Default::default(),
9150            srcOffsets : [Default::default();2],
9151            dstSubresource : Default::default(),
9152            dstOffsets : [Default::default();2],
9153        }
9154    }
9155}
9156impl ::std::default::Default for BufferImageCopy {
9157    fn default() -> BufferImageCopy {
9158        BufferImageCopy {
9159            bufferOffset : Default::default(),
9160            bufferRowLength : 0 as _,
9161            bufferImageHeight : 0 as _,
9162            imageSubresource : Default::default(),
9163            imageOffset : Default::default(),
9164            imageExtent : Default::default(),
9165        }
9166    }
9167}
9168impl ::std::default::Default for ClearDepthStencilValue {
9169    fn default() -> ClearDepthStencilValue {
9170        ClearDepthStencilValue {
9171            depth : 0 as _,
9172            stencil : 0 as _,
9173        }
9174    }
9175}
9176impl ::std::default::Default for ClearAttachment {
9177    fn default() -> ClearAttachment {
9178        ClearAttachment {
9179            aspectMask : Default::default(),
9180            colorAttachment : 0 as _,
9181            clearValue : Default::default(),
9182        }
9183    }
9184}
9185impl ::std::default::Default for ClearRect {
9186    fn default() -> ClearRect {
9187        ClearRect {
9188            rect : Default::default(),
9189            baseArrayLayer : 0 as _,
9190            layerCount : 0 as _,
9191        }
9192    }
9193}
9194impl ::std::default::Default for ImageResolve {
9195    fn default() -> ImageResolve {
9196        ImageResolve {
9197            srcSubresource : Default::default(),
9198            srcOffset : Default::default(),
9199            dstSubresource : Default::default(),
9200            dstOffset : Default::default(),
9201            extent : Default::default(),
9202        }
9203    }
9204}
9205impl ::std::default::Default for MemoryBarrier {
9206    fn default() -> MemoryBarrier {
9207        MemoryBarrier {
9208            sType : STRUCTURE_TYPE_MEMORY_BARRIER,
9209            pNext : 0 as _,
9210            srcAccessMask : Default::default(),
9211            dstAccessMask : Default::default(),
9212        }
9213    }
9214}
9215impl ::std::default::Default for BufferMemoryBarrier {
9216    fn default() -> BufferMemoryBarrier {
9217        BufferMemoryBarrier {
9218            sType : STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
9219            pNext : 0 as _,
9220            srcAccessMask : Default::default(),
9221            dstAccessMask : Default::default(),
9222            srcQueueFamilyIndex : 0 as _,
9223            dstQueueFamilyIndex : 0 as _,
9224            buffer : Default::default(),
9225            offset : Default::default(),
9226            size : Default::default(),
9227        }
9228    }
9229}
9230impl ::std::default::Default for ImageMemoryBarrier {
9231    fn default() -> ImageMemoryBarrier {
9232        ImageMemoryBarrier {
9233            sType : STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
9234            pNext : 0 as _,
9235            srcAccessMask : Default::default(),
9236            dstAccessMask : Default::default(),
9237            oldLayout : Default::default(),
9238            newLayout : Default::default(),
9239            srcQueueFamilyIndex : 0 as _,
9240            dstQueueFamilyIndex : 0 as _,
9241            image : Default::default(),
9242            subresourceRange : Default::default(),
9243        }
9244    }
9245}
9246impl ::std::default::Default for RenderPassBeginInfo {
9247    fn default() -> RenderPassBeginInfo {
9248        RenderPassBeginInfo {
9249            sType : STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
9250            pNext : 0 as _,
9251            renderPass : Default::default(),
9252            framebuffer : Default::default(),
9253            renderArea : Default::default(),
9254            clearValueCount : 0 as _,
9255            pClearValues : 0 as _,
9256        }
9257    }
9258}
9259impl ::std::default::Default for DispatchIndirectCommand {
9260    fn default() -> DispatchIndirectCommand {
9261        DispatchIndirectCommand {
9262            x : 0 as _,
9263            y : 0 as _,
9264            z : 0 as _,
9265        }
9266    }
9267}
9268impl ::std::default::Default for DrawIndexedIndirectCommand {
9269    fn default() -> DrawIndexedIndirectCommand {
9270        DrawIndexedIndirectCommand {
9271            indexCount : 0 as _,
9272            instanceCount : 0 as _,
9273            firstIndex : 0 as _,
9274            vertexOffset : 0 as _,
9275            firstInstance : 0 as _,
9276        }
9277    }
9278}
9279impl ::std::default::Default for DrawIndirectCommand {
9280    fn default() -> DrawIndirectCommand {
9281        DrawIndirectCommand {
9282            vertexCount : 0 as _,
9283            instanceCount : 0 as _,
9284            firstVertex : 0 as _,
9285            firstInstance : 0 as _,
9286        }
9287    }
9288}
9289impl ::std::default::Default for PhysicalDeviceSubgroupProperties {
9290    fn default() -> PhysicalDeviceSubgroupProperties {
9291        PhysicalDeviceSubgroupProperties {
9292            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES,
9293            pNext : 0 as _,
9294            subgroupSize : 0 as _,
9295            supportedStages : Default::default(),
9296            supportedOperations : Default::default(),
9297            quadOperationsInAllStages : 0 as _,
9298        }
9299    }
9300}
9301impl ::std::default::Default for BindBufferMemoryInfo {
9302    fn default() -> BindBufferMemoryInfo {
9303        BindBufferMemoryInfo {
9304            sType : STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
9305            pNext : 0 as _,
9306            buffer : Default::default(),
9307            memory : Default::default(),
9308            memoryOffset : Default::default(),
9309        }
9310    }
9311}
9312impl ::std::default::Default for BindImageMemoryInfo {
9313    fn default() -> BindImageMemoryInfo {
9314        BindImageMemoryInfo {
9315            sType : STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
9316            pNext : 0 as _,
9317            image : Default::default(),
9318            memory : Default::default(),
9319            memoryOffset : Default::default(),
9320        }
9321    }
9322}
9323impl ::std::default::Default for PhysicalDevice16BitStorageFeatures {
9324    fn default() -> PhysicalDevice16BitStorageFeatures {
9325        PhysicalDevice16BitStorageFeatures {
9326            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
9327            pNext : 0 as _,
9328            storageBuffer16BitAccess : 0 as _,
9329            uniformAndStorageBuffer16BitAccess : 0 as _,
9330            storagePushConstant16 : 0 as _,
9331            storageInputOutput16 : 0 as _,
9332        }
9333    }
9334}
9335impl ::std::default::Default for MemoryDedicatedRequirements {
9336    fn default() -> MemoryDedicatedRequirements {
9337        MemoryDedicatedRequirements {
9338            sType : STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
9339            pNext : 0 as _,
9340            prefersDedicatedAllocation : 0 as _,
9341            requiresDedicatedAllocation : 0 as _,
9342        }
9343    }
9344}
9345impl ::std::default::Default for MemoryDedicatedAllocateInfo {
9346    fn default() -> MemoryDedicatedAllocateInfo {
9347        MemoryDedicatedAllocateInfo {
9348            sType : STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
9349            pNext : 0 as _,
9350            image : Default::default(),
9351            buffer : Default::default(),
9352        }
9353    }
9354}
9355impl ::std::default::Default for MemoryAllocateFlagsInfo {
9356    fn default() -> MemoryAllocateFlagsInfo {
9357        MemoryAllocateFlagsInfo {
9358            sType : STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
9359            pNext : 0 as _,
9360            flags : Default::default(),
9361            deviceMask : 0 as _,
9362        }
9363    }
9364}
9365impl ::std::default::Default for DeviceGroupRenderPassBeginInfo {
9366    fn default() -> DeviceGroupRenderPassBeginInfo {
9367        DeviceGroupRenderPassBeginInfo {
9368            sType : STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
9369            pNext : 0 as _,
9370            deviceMask : 0 as _,
9371            deviceRenderAreaCount : 0 as _,
9372            pDeviceRenderAreas : 0 as _,
9373        }
9374    }
9375}
9376impl ::std::default::Default for DeviceGroupCommandBufferBeginInfo {
9377    fn default() -> DeviceGroupCommandBufferBeginInfo {
9378        DeviceGroupCommandBufferBeginInfo {
9379            sType : STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
9380            pNext : 0 as _,
9381            deviceMask : 0 as _,
9382        }
9383    }
9384}
9385impl ::std::default::Default for DeviceGroupSubmitInfo {
9386    fn default() -> DeviceGroupSubmitInfo {
9387        DeviceGroupSubmitInfo {
9388            sType : STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
9389            pNext : 0 as _,
9390            waitSemaphoreCount : 0 as _,
9391            pWaitSemaphoreDeviceIndices : 0 as _,
9392            commandBufferCount : 0 as _,
9393            pCommandBufferDeviceMasks : 0 as _,
9394            signalSemaphoreCount : 0 as _,
9395            pSignalSemaphoreDeviceIndices : 0 as _,
9396        }
9397    }
9398}
9399impl ::std::default::Default for DeviceGroupBindSparseInfo {
9400    fn default() -> DeviceGroupBindSparseInfo {
9401        DeviceGroupBindSparseInfo {
9402            sType : STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
9403            pNext : 0 as _,
9404            resourceDeviceIndex : 0 as _,
9405            memoryDeviceIndex : 0 as _,
9406        }
9407    }
9408}
9409impl ::std::default::Default for BindBufferMemoryDeviceGroupInfo {
9410    fn default() -> BindBufferMemoryDeviceGroupInfo {
9411        BindBufferMemoryDeviceGroupInfo {
9412            sType : STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
9413            pNext : 0 as _,
9414            deviceIndexCount : 0 as _,
9415            pDeviceIndices : 0 as _,
9416        }
9417    }
9418}
9419impl ::std::default::Default for BindImageMemoryDeviceGroupInfo {
9420    fn default() -> BindImageMemoryDeviceGroupInfo {
9421        BindImageMemoryDeviceGroupInfo {
9422            sType : STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
9423            pNext : 0 as _,
9424            deviceIndexCount : 0 as _,
9425            pDeviceIndices : 0 as _,
9426            splitInstanceBindRegionCount : 0 as _,
9427            pSplitInstanceBindRegions : 0 as _,
9428        }
9429    }
9430}
9431impl ::std::default::Default for PhysicalDeviceGroupProperties {
9432    fn default() -> PhysicalDeviceGroupProperties {
9433        PhysicalDeviceGroupProperties {
9434            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
9435            pNext : 0 as _,
9436            physicalDeviceCount : 0 as _,
9437            physicalDevices : [Default::default();MAX_DEVICE_GROUP_SIZE],
9438            subsetAllocation : 0 as _,
9439        }
9440    }
9441}
9442impl ::std::default::Default for DeviceGroupDeviceCreateInfo {
9443    fn default() -> DeviceGroupDeviceCreateInfo {
9444        DeviceGroupDeviceCreateInfo {
9445            sType : STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
9446            pNext : 0 as _,
9447            physicalDeviceCount : 0 as _,
9448            pPhysicalDevices : 0 as _,
9449        }
9450    }
9451}
9452impl ::std::default::Default for BufferMemoryRequirementsInfo2 {
9453    fn default() -> BufferMemoryRequirementsInfo2 {
9454        BufferMemoryRequirementsInfo2 {
9455            sType : STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
9456            pNext : 0 as _,
9457            buffer : Default::default(),
9458        }
9459    }
9460}
9461impl ::std::default::Default for ImageMemoryRequirementsInfo2 {
9462    fn default() -> ImageMemoryRequirementsInfo2 {
9463        ImageMemoryRequirementsInfo2 {
9464            sType : STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
9465            pNext : 0 as _,
9466            image : Default::default(),
9467        }
9468    }
9469}
9470impl ::std::default::Default for ImageSparseMemoryRequirementsInfo2 {
9471    fn default() -> ImageSparseMemoryRequirementsInfo2 {
9472        ImageSparseMemoryRequirementsInfo2 {
9473            sType : STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
9474            pNext : 0 as _,
9475            image : Default::default(),
9476        }
9477    }
9478}
9479impl ::std::default::Default for MemoryRequirements2 {
9480    fn default() -> MemoryRequirements2 {
9481        MemoryRequirements2 {
9482            sType : STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
9483            pNext : 0 as _,
9484            memoryRequirements : Default::default(),
9485        }
9486    }
9487}
9488impl ::std::default::Default for SparseImageMemoryRequirements2 {
9489    fn default() -> SparseImageMemoryRequirements2 {
9490        SparseImageMemoryRequirements2 {
9491            sType : STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
9492            pNext : 0 as _,
9493            memoryRequirements : Default::default(),
9494        }
9495    }
9496}
9497impl ::std::default::Default for PhysicalDeviceFeatures2 {
9498    fn default() -> PhysicalDeviceFeatures2 {
9499        PhysicalDeviceFeatures2 {
9500            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
9501            pNext : 0 as _,
9502            features : Default::default(),
9503        }
9504    }
9505}
9506impl ::std::default::Default for PhysicalDeviceProperties2 {
9507    fn default() -> PhysicalDeviceProperties2 {
9508        PhysicalDeviceProperties2 {
9509            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
9510            pNext : 0 as _,
9511            properties : Default::default(),
9512        }
9513    }
9514}
9515impl ::std::default::Default for FormatProperties2 {
9516    fn default() -> FormatProperties2 {
9517        FormatProperties2 {
9518            sType : STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
9519            pNext : 0 as _,
9520            formatProperties : Default::default(),
9521        }
9522    }
9523}
9524impl ::std::default::Default for ImageFormatProperties2 {
9525    fn default() -> ImageFormatProperties2 {
9526        ImageFormatProperties2 {
9527            sType : STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
9528            pNext : 0 as _,
9529            imageFormatProperties : Default::default(),
9530        }
9531    }
9532}
9533impl ::std::default::Default for PhysicalDeviceImageFormatInfo2 {
9534    fn default() -> PhysicalDeviceImageFormatInfo2 {
9535        PhysicalDeviceImageFormatInfo2 {
9536            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
9537            pNext : 0 as _,
9538            format : Default::default(),
9539            r#type : Default::default(),
9540            tiling : Default::default(),
9541            usage : Default::default(),
9542            flags : Default::default(),
9543        }
9544    }
9545}
9546impl ::std::default::Default for QueueFamilyProperties2 {
9547    fn default() -> QueueFamilyProperties2 {
9548        QueueFamilyProperties2 {
9549            sType : STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
9550            pNext : 0 as _,
9551            queueFamilyProperties : Default::default(),
9552        }
9553    }
9554}
9555impl ::std::default::Default for PhysicalDeviceMemoryProperties2 {
9556    fn default() -> PhysicalDeviceMemoryProperties2 {
9557        PhysicalDeviceMemoryProperties2 {
9558            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
9559            pNext : 0 as _,
9560            memoryProperties : Default::default(),
9561        }
9562    }
9563}
9564impl ::std::default::Default for SparseImageFormatProperties2 {
9565    fn default() -> SparseImageFormatProperties2 {
9566        SparseImageFormatProperties2 {
9567            sType : STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
9568            pNext : 0 as _,
9569            properties : Default::default(),
9570        }
9571    }
9572}
9573impl ::std::default::Default for PhysicalDeviceSparseImageFormatInfo2 {
9574    fn default() -> PhysicalDeviceSparseImageFormatInfo2 {
9575        PhysicalDeviceSparseImageFormatInfo2 {
9576            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
9577            pNext : 0 as _,
9578            format : Default::default(),
9579            r#type : Default::default(),
9580            samples : Default::default(),
9581            usage : Default::default(),
9582            tiling : Default::default(),
9583        }
9584    }
9585}
9586impl ::std::default::Default for PhysicalDevicePointClippingProperties {
9587    fn default() -> PhysicalDevicePointClippingProperties {
9588        PhysicalDevicePointClippingProperties {
9589            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
9590            pNext : 0 as _,
9591            pointClippingBehavior : Default::default(),
9592        }
9593    }
9594}
9595impl ::std::default::Default for InputAttachmentAspectReference {
9596    fn default() -> InputAttachmentAspectReference {
9597        InputAttachmentAspectReference {
9598            subpass : 0 as _,
9599            inputAttachmentIndex : 0 as _,
9600            aspectMask : Default::default(),
9601        }
9602    }
9603}
9604impl ::std::default::Default for RenderPassInputAttachmentAspectCreateInfo {
9605    fn default() -> RenderPassInputAttachmentAspectCreateInfo {
9606        RenderPassInputAttachmentAspectCreateInfo {
9607            sType : STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
9608            pNext : 0 as _,
9609            aspectReferenceCount : 0 as _,
9610            pAspectReferences : 0 as _,
9611        }
9612    }
9613}
9614impl ::std::default::Default for ImageViewUsageCreateInfo {
9615    fn default() -> ImageViewUsageCreateInfo {
9616        ImageViewUsageCreateInfo {
9617            sType : STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
9618            pNext : 0 as _,
9619            usage : Default::default(),
9620        }
9621    }
9622}
9623impl ::std::default::Default for PipelineTessellationDomainOriginStateCreateInfo {
9624    fn default() -> PipelineTessellationDomainOriginStateCreateInfo {
9625        PipelineTessellationDomainOriginStateCreateInfo {
9626            sType : STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
9627            pNext : 0 as _,
9628            domainOrigin : Default::default(),
9629        }
9630    }
9631}
9632impl ::std::default::Default for RenderPassMultiviewCreateInfo {
9633    fn default() -> RenderPassMultiviewCreateInfo {
9634        RenderPassMultiviewCreateInfo {
9635            sType : STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
9636            pNext : 0 as _,
9637            subpassCount : 0 as _,
9638            pViewMasks : 0 as _,
9639            dependencyCount : 0 as _,
9640            pViewOffsets : 0 as _,
9641            correlationMaskCount : 0 as _,
9642            pCorrelationMasks : 0 as _,
9643        }
9644    }
9645}
9646impl ::std::default::Default for PhysicalDeviceMultiviewFeatures {
9647    fn default() -> PhysicalDeviceMultiviewFeatures {
9648        PhysicalDeviceMultiviewFeatures {
9649            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
9650            pNext : 0 as _,
9651            multiview : 0 as _,
9652            multiviewGeometryShader : 0 as _,
9653            multiviewTessellationShader : 0 as _,
9654        }
9655    }
9656}
9657impl ::std::default::Default for PhysicalDeviceMultiviewProperties {
9658    fn default() -> PhysicalDeviceMultiviewProperties {
9659        PhysicalDeviceMultiviewProperties {
9660            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
9661            pNext : 0 as _,
9662            maxMultiviewViewCount : 0 as _,
9663            maxMultiviewInstanceIndex : 0 as _,
9664        }
9665    }
9666}
9667impl ::std::default::Default for PhysicalDeviceVariablePointersFeatures {
9668    fn default() -> PhysicalDeviceVariablePointersFeatures {
9669        PhysicalDeviceVariablePointersFeatures {
9670            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
9671            pNext : 0 as _,
9672            variablePointersStorageBuffer : 0 as _,
9673            variablePointers : 0 as _,
9674        }
9675    }
9676}
9677impl ::std::default::Default for PhysicalDeviceProtectedMemoryFeatures {
9678    fn default() -> PhysicalDeviceProtectedMemoryFeatures {
9679        PhysicalDeviceProtectedMemoryFeatures {
9680            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
9681            pNext : 0 as _,
9682            protectedMemory : 0 as _,
9683        }
9684    }
9685}
9686impl ::std::default::Default for PhysicalDeviceProtectedMemoryProperties {
9687    fn default() -> PhysicalDeviceProtectedMemoryProperties {
9688        PhysicalDeviceProtectedMemoryProperties {
9689            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,
9690            pNext : 0 as _,
9691            protectedNoFault : 0 as _,
9692        }
9693    }
9694}
9695impl ::std::default::Default for DeviceQueueInfo2 {
9696    fn default() -> DeviceQueueInfo2 {
9697        DeviceQueueInfo2 {
9698            sType : STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,
9699            pNext : 0 as _,
9700            flags : Default::default(),
9701            queueFamilyIndex : 0 as _,
9702            queueIndex : 0 as _,
9703        }
9704    }
9705}
9706impl ::std::default::Default for ProtectedSubmitInfo {
9707    fn default() -> ProtectedSubmitInfo {
9708        ProtectedSubmitInfo {
9709            sType : STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,
9710            pNext : 0 as _,
9711            protectedSubmit : 0 as _,
9712        }
9713    }
9714}
9715impl ::std::default::Default for SamplerYcbcrConversionCreateInfo {
9716    fn default() -> SamplerYcbcrConversionCreateInfo {
9717        SamplerYcbcrConversionCreateInfo {
9718            sType : STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
9719            pNext : 0 as _,
9720            format : Default::default(),
9721            ycbcrModel : Default::default(),
9722            ycbcrRange : Default::default(),
9723            components : Default::default(),
9724            xChromaOffset : Default::default(),
9725            yChromaOffset : Default::default(),
9726            chromaFilter : Default::default(),
9727            forceExplicitReconstruction : 0 as _,
9728        }
9729    }
9730}
9731impl ::std::default::Default for SamplerYcbcrConversionInfo {
9732    fn default() -> SamplerYcbcrConversionInfo {
9733        SamplerYcbcrConversionInfo {
9734            sType : STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
9735            pNext : 0 as _,
9736            conversion : Default::default(),
9737        }
9738    }
9739}
9740impl ::std::default::Default for BindImagePlaneMemoryInfo {
9741    fn default() -> BindImagePlaneMemoryInfo {
9742        BindImagePlaneMemoryInfo {
9743            sType : STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
9744            pNext : 0 as _,
9745            planeAspect : Default::default(),
9746        }
9747    }
9748}
9749impl ::std::default::Default for ImagePlaneMemoryRequirementsInfo {
9750    fn default() -> ImagePlaneMemoryRequirementsInfo {
9751        ImagePlaneMemoryRequirementsInfo {
9752            sType : STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
9753            pNext : 0 as _,
9754            planeAspect : Default::default(),
9755        }
9756    }
9757}
9758impl ::std::default::Default for PhysicalDeviceSamplerYcbcrConversionFeatures {
9759    fn default() -> PhysicalDeviceSamplerYcbcrConversionFeatures {
9760        PhysicalDeviceSamplerYcbcrConversionFeatures {
9761            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
9762            pNext : 0 as _,
9763            samplerYcbcrConversion : 0 as _,
9764        }
9765    }
9766}
9767impl ::std::default::Default for SamplerYcbcrConversionImageFormatProperties {
9768    fn default() -> SamplerYcbcrConversionImageFormatProperties {
9769        SamplerYcbcrConversionImageFormatProperties {
9770            sType : STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
9771            pNext : 0 as _,
9772            combinedImageSamplerDescriptorCount : 0 as _,
9773        }
9774    }
9775}
9776impl ::std::default::Default for DescriptorUpdateTemplateEntry {
9777    fn default() -> DescriptorUpdateTemplateEntry {
9778        DescriptorUpdateTemplateEntry {
9779            dstBinding : 0 as _,
9780            dstArrayElement : 0 as _,
9781            descriptorCount : 0 as _,
9782            descriptorType : Default::default(),
9783            offset : Default::default(),
9784            stride : Default::default(),
9785        }
9786    }
9787}
9788impl ::std::default::Default for DescriptorUpdateTemplateCreateInfo {
9789    fn default() -> DescriptorUpdateTemplateCreateInfo {
9790        DescriptorUpdateTemplateCreateInfo {
9791            sType : STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
9792            pNext : 0 as _,
9793            flags : Default::default(),
9794            descriptorUpdateEntryCount : 0 as _,
9795            pDescriptorUpdateEntries : 0 as _,
9796            templateType : Default::default(),
9797            descriptorSetLayout : Default::default(),
9798            pipelineBindPoint : Default::default(),
9799            pipelineLayout : Default::default(),
9800            set : 0 as _,
9801        }
9802    }
9803}
9804impl ::std::default::Default for ExternalMemoryProperties {
9805    fn default() -> ExternalMemoryProperties {
9806        ExternalMemoryProperties {
9807            externalMemoryFeatures : Default::default(),
9808            exportFromImportedHandleTypes : Default::default(),
9809            compatibleHandleTypes : Default::default(),
9810        }
9811    }
9812}
9813impl ::std::default::Default for PhysicalDeviceExternalImageFormatInfo {
9814    fn default() -> PhysicalDeviceExternalImageFormatInfo {
9815        PhysicalDeviceExternalImageFormatInfo {
9816            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
9817            pNext : 0 as _,
9818            handleType : Default::default(),
9819        }
9820    }
9821}
9822impl ::std::default::Default for ExternalImageFormatProperties {
9823    fn default() -> ExternalImageFormatProperties {
9824        ExternalImageFormatProperties {
9825            sType : STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
9826            pNext : 0 as _,
9827            externalMemoryProperties : Default::default(),
9828        }
9829    }
9830}
9831impl ::std::default::Default for PhysicalDeviceExternalBufferInfo {
9832    fn default() -> PhysicalDeviceExternalBufferInfo {
9833        PhysicalDeviceExternalBufferInfo {
9834            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
9835            pNext : 0 as _,
9836            flags : Default::default(),
9837            usage : Default::default(),
9838            handleType : Default::default(),
9839        }
9840    }
9841}
9842impl ::std::default::Default for ExternalBufferProperties {
9843    fn default() -> ExternalBufferProperties {
9844        ExternalBufferProperties {
9845            sType : STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
9846            pNext : 0 as _,
9847            externalMemoryProperties : Default::default(),
9848        }
9849    }
9850}
9851impl ::std::default::Default for PhysicalDeviceIDProperties {
9852    fn default() -> PhysicalDeviceIDProperties {
9853        PhysicalDeviceIDProperties {
9854            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
9855            pNext : 0 as _,
9856            deviceUUID : [Default::default();UUID_SIZE],
9857            driverUUID : [Default::default();UUID_SIZE],
9858            deviceLUID : [Default::default();LUID_SIZE],
9859            deviceNodeMask : 0 as _,
9860            deviceLUIDValid : 0 as _,
9861        }
9862    }
9863}
9864impl ::std::default::Default for ExternalMemoryImageCreateInfo {
9865    fn default() -> ExternalMemoryImageCreateInfo {
9866        ExternalMemoryImageCreateInfo {
9867            sType : STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
9868            pNext : 0 as _,
9869            handleTypes : Default::default(),
9870        }
9871    }
9872}
9873impl ::std::default::Default for ExternalMemoryBufferCreateInfo {
9874    fn default() -> ExternalMemoryBufferCreateInfo {
9875        ExternalMemoryBufferCreateInfo {
9876            sType : STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
9877            pNext : 0 as _,
9878            handleTypes : Default::default(),
9879        }
9880    }
9881}
9882impl ::std::default::Default for ExportMemoryAllocateInfo {
9883    fn default() -> ExportMemoryAllocateInfo {
9884        ExportMemoryAllocateInfo {
9885            sType : STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
9886            pNext : 0 as _,
9887            handleTypes : Default::default(),
9888        }
9889    }
9890}
9891impl ::std::default::Default for PhysicalDeviceExternalFenceInfo {
9892    fn default() -> PhysicalDeviceExternalFenceInfo {
9893        PhysicalDeviceExternalFenceInfo {
9894            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
9895            pNext : 0 as _,
9896            handleType : Default::default(),
9897        }
9898    }
9899}
9900impl ::std::default::Default for ExternalFenceProperties {
9901    fn default() -> ExternalFenceProperties {
9902        ExternalFenceProperties {
9903            sType : STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
9904            pNext : 0 as _,
9905            exportFromImportedHandleTypes : Default::default(),
9906            compatibleHandleTypes : Default::default(),
9907            externalFenceFeatures : Default::default(),
9908        }
9909    }
9910}
9911impl ::std::default::Default for ExportFenceCreateInfo {
9912    fn default() -> ExportFenceCreateInfo {
9913        ExportFenceCreateInfo {
9914            sType : STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
9915            pNext : 0 as _,
9916            handleTypes : Default::default(),
9917        }
9918    }
9919}
9920impl ::std::default::Default for ExportSemaphoreCreateInfo {
9921    fn default() -> ExportSemaphoreCreateInfo {
9922        ExportSemaphoreCreateInfo {
9923            sType : STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
9924            pNext : 0 as _,
9925            handleTypes : Default::default(),
9926        }
9927    }
9928}
9929impl ::std::default::Default for PhysicalDeviceExternalSemaphoreInfo {
9930    fn default() -> PhysicalDeviceExternalSemaphoreInfo {
9931        PhysicalDeviceExternalSemaphoreInfo {
9932            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
9933            pNext : 0 as _,
9934            handleType : Default::default(),
9935        }
9936    }
9937}
9938impl ::std::default::Default for ExternalSemaphoreProperties {
9939    fn default() -> ExternalSemaphoreProperties {
9940        ExternalSemaphoreProperties {
9941            sType : STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
9942            pNext : 0 as _,
9943            exportFromImportedHandleTypes : Default::default(),
9944            compatibleHandleTypes : Default::default(),
9945            externalSemaphoreFeatures : Default::default(),
9946        }
9947    }
9948}
9949impl ::std::default::Default for PhysicalDeviceMaintenance3Properties {
9950    fn default() -> PhysicalDeviceMaintenance3Properties {
9951        PhysicalDeviceMaintenance3Properties {
9952            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
9953            pNext : 0 as _,
9954            maxPerSetDescriptors : 0 as _,
9955            maxMemoryAllocationSize : Default::default(),
9956        }
9957    }
9958}
9959impl ::std::default::Default for DescriptorSetLayoutSupport {
9960    fn default() -> DescriptorSetLayoutSupport {
9961        DescriptorSetLayoutSupport {
9962            sType : STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
9963            pNext : 0 as _,
9964            supported : 0 as _,
9965        }
9966    }
9967}
9968impl ::std::default::Default for PhysicalDeviceShaderDrawParametersFeatures {
9969    fn default() -> PhysicalDeviceShaderDrawParametersFeatures {
9970        PhysicalDeviceShaderDrawParametersFeatures {
9971            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
9972            pNext : 0 as _,
9973            shaderDrawParameters : 0 as _,
9974        }
9975    }
9976}
9977impl ::std::default::Default for PhysicalDeviceVulkan11Features {
9978    fn default() -> PhysicalDeviceVulkan11Features {
9979        PhysicalDeviceVulkan11Features {
9980            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
9981            pNext : 0 as _,
9982            storageBuffer16BitAccess : 0 as _,
9983            uniformAndStorageBuffer16BitAccess : 0 as _,
9984            storagePushConstant16 : 0 as _,
9985            storageInputOutput16 : 0 as _,
9986            multiview : 0 as _,
9987            multiviewGeometryShader : 0 as _,
9988            multiviewTessellationShader : 0 as _,
9989            variablePointersStorageBuffer : 0 as _,
9990            variablePointers : 0 as _,
9991            protectedMemory : 0 as _,
9992            samplerYcbcrConversion : 0 as _,
9993            shaderDrawParameters : 0 as _,
9994        }
9995    }
9996}
9997impl ::std::default::Default for PhysicalDeviceVulkan11Properties {
9998    fn default() -> PhysicalDeviceVulkan11Properties {
9999        PhysicalDeviceVulkan11Properties {
10000            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,
10001            pNext : 0 as _,
10002            deviceUUID : [Default::default();UUID_SIZE],
10003            driverUUID : [Default::default();UUID_SIZE],
10004            deviceLUID : [Default::default();LUID_SIZE],
10005            deviceNodeMask : 0 as _,
10006            deviceLUIDValid : 0 as _,
10007            subgroupSize : 0 as _,
10008            subgroupSupportedStages : Default::default(),
10009            subgroupSupportedOperations : Default::default(),
10010            subgroupQuadOperationsInAllStages : 0 as _,
10011            pointClippingBehavior : Default::default(),
10012            maxMultiviewViewCount : 0 as _,
10013            maxMultiviewInstanceIndex : 0 as _,
10014            protectedNoFault : 0 as _,
10015            maxPerSetDescriptors : 0 as _,
10016            maxMemoryAllocationSize : Default::default(),
10017        }
10018    }
10019}
10020impl ::std::default::Default for PhysicalDeviceVulkan12Features {
10021    fn default() -> PhysicalDeviceVulkan12Features {
10022        PhysicalDeviceVulkan12Features {
10023            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
10024            pNext : 0 as _,
10025            samplerMirrorClampToEdge : 0 as _,
10026            drawIndirectCount : 0 as _,
10027            storageBuffer8BitAccess : 0 as _,
10028            uniformAndStorageBuffer8BitAccess : 0 as _,
10029            storagePushConstant8 : 0 as _,
10030            shaderBufferInt64Atomics : 0 as _,
10031            shaderSharedInt64Atomics : 0 as _,
10032            shaderFloat16 : 0 as _,
10033            shaderInt8 : 0 as _,
10034            descriptorIndexing : 0 as _,
10035            shaderInputAttachmentArrayDynamicIndexing : 0 as _,
10036            shaderUniformTexelBufferArrayDynamicIndexing : 0 as _,
10037            shaderStorageTexelBufferArrayDynamicIndexing : 0 as _,
10038            shaderUniformBufferArrayNonUniformIndexing : 0 as _,
10039            shaderSampledImageArrayNonUniformIndexing : 0 as _,
10040            shaderStorageBufferArrayNonUniformIndexing : 0 as _,
10041            shaderStorageImageArrayNonUniformIndexing : 0 as _,
10042            shaderInputAttachmentArrayNonUniformIndexing : 0 as _,
10043            shaderUniformTexelBufferArrayNonUniformIndexing : 0 as _,
10044            shaderStorageTexelBufferArrayNonUniformIndexing : 0 as _,
10045            descriptorBindingUniformBufferUpdateAfterBind : 0 as _,
10046            descriptorBindingSampledImageUpdateAfterBind : 0 as _,
10047            descriptorBindingStorageImageUpdateAfterBind : 0 as _,
10048            descriptorBindingStorageBufferUpdateAfterBind : 0 as _,
10049            descriptorBindingUniformTexelBufferUpdateAfterBind : 0 as _,
10050            descriptorBindingStorageTexelBufferUpdateAfterBind : 0 as _,
10051            descriptorBindingUpdateUnusedWhilePending : 0 as _,
10052            descriptorBindingPartiallyBound : 0 as _,
10053            descriptorBindingVariableDescriptorCount : 0 as _,
10054            runtimeDescriptorArray : 0 as _,
10055            samplerFilterMinmax : 0 as _,
10056            scalarBlockLayout : 0 as _,
10057            imagelessFramebuffer : 0 as _,
10058            uniformBufferStandardLayout : 0 as _,
10059            shaderSubgroupExtendedTypes : 0 as _,
10060            separateDepthStencilLayouts : 0 as _,
10061            hostQueryReset : 0 as _,
10062            timelineSemaphore : 0 as _,
10063            bufferDeviceAddress : 0 as _,
10064            bufferDeviceAddressCaptureReplay : 0 as _,
10065            bufferDeviceAddressMultiDevice : 0 as _,
10066            vulkanMemoryModel : 0 as _,
10067            vulkanMemoryModelDeviceScope : 0 as _,
10068            vulkanMemoryModelAvailabilityVisibilityChains : 0 as _,
10069            shaderOutputViewportIndex : 0 as _,
10070            shaderOutputLayer : 0 as _,
10071            subgroupBroadcastDynamicId : 0 as _,
10072        }
10073    }
10074}
10075impl ::std::default::Default for ConformanceVersion {
10076    fn default() -> ConformanceVersion {
10077        ConformanceVersion {
10078            major : Default::default(),
10079            minor : Default::default(),
10080            subminor : Default::default(),
10081            patch : Default::default(),
10082        }
10083    }
10084}
10085impl ::std::default::Default for PhysicalDeviceVulkan12Properties {
10086    fn default() -> PhysicalDeviceVulkan12Properties {
10087        PhysicalDeviceVulkan12Properties {
10088            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,
10089            pNext : 0 as _,
10090            driverID : Default::default(),
10091            driverName : [Default::default();MAX_DRIVER_NAME_SIZE],
10092            driverInfo : [Default::default();MAX_DRIVER_INFO_SIZE],
10093            conformanceVersion : Default::default(),
10094            denormBehaviorIndependence : Default::default(),
10095            roundingModeIndependence : Default::default(),
10096            shaderSignedZeroInfNanPreserveFloat16 : 0 as _,
10097            shaderSignedZeroInfNanPreserveFloat32 : 0 as _,
10098            shaderSignedZeroInfNanPreserveFloat64 : 0 as _,
10099            shaderDenormPreserveFloat16 : 0 as _,
10100            shaderDenormPreserveFloat32 : 0 as _,
10101            shaderDenormPreserveFloat64 : 0 as _,
10102            shaderDenormFlushToZeroFloat16 : 0 as _,
10103            shaderDenormFlushToZeroFloat32 : 0 as _,
10104            shaderDenormFlushToZeroFloat64 : 0 as _,
10105            shaderRoundingModeRTEFloat16 : 0 as _,
10106            shaderRoundingModeRTEFloat32 : 0 as _,
10107            shaderRoundingModeRTEFloat64 : 0 as _,
10108            shaderRoundingModeRTZFloat16 : 0 as _,
10109            shaderRoundingModeRTZFloat32 : 0 as _,
10110            shaderRoundingModeRTZFloat64 : 0 as _,
10111            maxUpdateAfterBindDescriptorsInAllPools : 0 as _,
10112            shaderUniformBufferArrayNonUniformIndexingNative : 0 as _,
10113            shaderSampledImageArrayNonUniformIndexingNative : 0 as _,
10114            shaderStorageBufferArrayNonUniformIndexingNative : 0 as _,
10115            shaderStorageImageArrayNonUniformIndexingNative : 0 as _,
10116            shaderInputAttachmentArrayNonUniformIndexingNative : 0 as _,
10117            robustBufferAccessUpdateAfterBind : 0 as _,
10118            quadDivergentImplicitLod : 0 as _,
10119            maxPerStageDescriptorUpdateAfterBindSamplers : 0 as _,
10120            maxPerStageDescriptorUpdateAfterBindUniformBuffers : 0 as _,
10121            maxPerStageDescriptorUpdateAfterBindStorageBuffers : 0 as _,
10122            maxPerStageDescriptorUpdateAfterBindSampledImages : 0 as _,
10123            maxPerStageDescriptorUpdateAfterBindStorageImages : 0 as _,
10124            maxPerStageDescriptorUpdateAfterBindInputAttachments : 0 as _,
10125            maxPerStageUpdateAfterBindResources : 0 as _,
10126            maxDescriptorSetUpdateAfterBindSamplers : 0 as _,
10127            maxDescriptorSetUpdateAfterBindUniformBuffers : 0 as _,
10128            maxDescriptorSetUpdateAfterBindUniformBuffersDynamic : 0 as _,
10129            maxDescriptorSetUpdateAfterBindStorageBuffers : 0 as _,
10130            maxDescriptorSetUpdateAfterBindStorageBuffersDynamic : 0 as _,
10131            maxDescriptorSetUpdateAfterBindSampledImages : 0 as _,
10132            maxDescriptorSetUpdateAfterBindStorageImages : 0 as _,
10133            maxDescriptorSetUpdateAfterBindInputAttachments : 0 as _,
10134            supportedDepthResolveModes : Default::default(),
10135            supportedStencilResolveModes : Default::default(),
10136            independentResolveNone : 0 as _,
10137            independentResolve : 0 as _,
10138            filterMinmaxSingleComponentFormats : 0 as _,
10139            filterMinmaxImageComponentMapping : 0 as _,
10140            maxTimelineSemaphoreValueDifference : 0 as _,
10141            framebufferIntegerColorSampleCounts : Default::default(),
10142        }
10143    }
10144}
10145impl ::std::default::Default for ImageFormatListCreateInfo {
10146    fn default() -> ImageFormatListCreateInfo {
10147        ImageFormatListCreateInfo {
10148            sType : STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
10149            pNext : 0 as _,
10150            viewFormatCount : 0 as _,
10151            pViewFormats : 0 as _,
10152        }
10153    }
10154}
10155impl ::std::default::Default for AttachmentDescription2 {
10156    fn default() -> AttachmentDescription2 {
10157        AttachmentDescription2 {
10158            sType : STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
10159            pNext : 0 as _,
10160            flags : Default::default(),
10161            format : Default::default(),
10162            samples : Default::default(),
10163            loadOp : Default::default(),
10164            storeOp : Default::default(),
10165            stencilLoadOp : Default::default(),
10166            stencilStoreOp : Default::default(),
10167            initialLayout : Default::default(),
10168            finalLayout : Default::default(),
10169        }
10170    }
10171}
10172impl ::std::default::Default for AttachmentReference2 {
10173    fn default() -> AttachmentReference2 {
10174        AttachmentReference2 {
10175            sType : STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
10176            pNext : 0 as _,
10177            attachment : 0 as _,
10178            layout : Default::default(),
10179            aspectMask : Default::default(),
10180        }
10181    }
10182}
10183impl ::std::default::Default for SubpassDescription2 {
10184    fn default() -> SubpassDescription2 {
10185        SubpassDescription2 {
10186            sType : STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
10187            pNext : 0 as _,
10188            flags : Default::default(),
10189            pipelineBindPoint : Default::default(),
10190            viewMask : 0 as _,
10191            inputAttachmentCount : 0 as _,
10192            pInputAttachments : 0 as _,
10193            colorAttachmentCount : 0 as _,
10194            pColorAttachments : 0 as _,
10195            pResolveAttachments : 0 as _,
10196            pDepthStencilAttachment : 0 as _,
10197            preserveAttachmentCount : 0 as _,
10198            pPreserveAttachments : 0 as _,
10199        }
10200    }
10201}
10202impl ::std::default::Default for SubpassDependency2 {
10203    fn default() -> SubpassDependency2 {
10204        SubpassDependency2 {
10205            sType : STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
10206            pNext : 0 as _,
10207            srcSubpass : 0 as _,
10208            dstSubpass : 0 as _,
10209            srcStageMask : Default::default(),
10210            dstStageMask : Default::default(),
10211            srcAccessMask : Default::default(),
10212            dstAccessMask : Default::default(),
10213            dependencyFlags : Default::default(),
10214            viewOffset : 0 as _,
10215        }
10216    }
10217}
10218impl ::std::default::Default for RenderPassCreateInfo2 {
10219    fn default() -> RenderPassCreateInfo2 {
10220        RenderPassCreateInfo2 {
10221            sType : STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
10222            pNext : 0 as _,
10223            flags : Default::default(),
10224            attachmentCount : 0 as _,
10225            pAttachments : 0 as _,
10226            subpassCount : 0 as _,
10227            pSubpasses : 0 as _,
10228            dependencyCount : 0 as _,
10229            pDependencies : 0 as _,
10230            correlatedViewMaskCount : 0 as _,
10231            pCorrelatedViewMasks : 0 as _,
10232        }
10233    }
10234}
10235impl ::std::default::Default for SubpassBeginInfo {
10236    fn default() -> SubpassBeginInfo {
10237        SubpassBeginInfo {
10238            sType : STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
10239            pNext : 0 as _,
10240            contents : Default::default(),
10241        }
10242    }
10243}
10244impl ::std::default::Default for SubpassEndInfo {
10245    fn default() -> SubpassEndInfo {
10246        SubpassEndInfo {
10247            sType : STRUCTURE_TYPE_SUBPASS_END_INFO,
10248            pNext : 0 as _,
10249        }
10250    }
10251}
10252impl ::std::default::Default for PhysicalDevice8BitStorageFeatures {
10253    fn default() -> PhysicalDevice8BitStorageFeatures {
10254        PhysicalDevice8BitStorageFeatures {
10255            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
10256            pNext : 0 as _,
10257            storageBuffer8BitAccess : 0 as _,
10258            uniformAndStorageBuffer8BitAccess : 0 as _,
10259            storagePushConstant8 : 0 as _,
10260        }
10261    }
10262}
10263impl ::std::default::Default for PhysicalDeviceDriverProperties {
10264    fn default() -> PhysicalDeviceDriverProperties {
10265        PhysicalDeviceDriverProperties {
10266            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
10267            pNext : 0 as _,
10268            driverID : Default::default(),
10269            driverName : [Default::default();MAX_DRIVER_NAME_SIZE],
10270            driverInfo : [Default::default();MAX_DRIVER_INFO_SIZE],
10271            conformanceVersion : Default::default(),
10272        }
10273    }
10274}
10275impl ::std::default::Default for PhysicalDeviceShaderAtomicInt64Features {
10276    fn default() -> PhysicalDeviceShaderAtomicInt64Features {
10277        PhysicalDeviceShaderAtomicInt64Features {
10278            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
10279            pNext : 0 as _,
10280            shaderBufferInt64Atomics : 0 as _,
10281            shaderSharedInt64Atomics : 0 as _,
10282        }
10283    }
10284}
10285impl ::std::default::Default for PhysicalDeviceShaderFloat16Int8Features {
10286    fn default() -> PhysicalDeviceShaderFloat16Int8Features {
10287        PhysicalDeviceShaderFloat16Int8Features {
10288            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
10289            pNext : 0 as _,
10290            shaderFloat16 : 0 as _,
10291            shaderInt8 : 0 as _,
10292        }
10293    }
10294}
10295impl ::std::default::Default for PhysicalDeviceFloatControlsProperties {
10296    fn default() -> PhysicalDeviceFloatControlsProperties {
10297        PhysicalDeviceFloatControlsProperties {
10298            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
10299            pNext : 0 as _,
10300            denormBehaviorIndependence : Default::default(),
10301            roundingModeIndependence : Default::default(),
10302            shaderSignedZeroInfNanPreserveFloat16 : 0 as _,
10303            shaderSignedZeroInfNanPreserveFloat32 : 0 as _,
10304            shaderSignedZeroInfNanPreserveFloat64 : 0 as _,
10305            shaderDenormPreserveFloat16 : 0 as _,
10306            shaderDenormPreserveFloat32 : 0 as _,
10307            shaderDenormPreserveFloat64 : 0 as _,
10308            shaderDenormFlushToZeroFloat16 : 0 as _,
10309            shaderDenormFlushToZeroFloat32 : 0 as _,
10310            shaderDenormFlushToZeroFloat64 : 0 as _,
10311            shaderRoundingModeRTEFloat16 : 0 as _,
10312            shaderRoundingModeRTEFloat32 : 0 as _,
10313            shaderRoundingModeRTEFloat64 : 0 as _,
10314            shaderRoundingModeRTZFloat16 : 0 as _,
10315            shaderRoundingModeRTZFloat32 : 0 as _,
10316            shaderRoundingModeRTZFloat64 : 0 as _,
10317        }
10318    }
10319}
10320impl ::std::default::Default for DescriptorSetLayoutBindingFlagsCreateInfo {
10321    fn default() -> DescriptorSetLayoutBindingFlagsCreateInfo {
10322        DescriptorSetLayoutBindingFlagsCreateInfo {
10323            sType : STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
10324            pNext : 0 as _,
10325            bindingCount : 0 as _,
10326            pBindingFlags : 0 as _,
10327        }
10328    }
10329}
10330impl ::std::default::Default for PhysicalDeviceDescriptorIndexingFeatures {
10331    fn default() -> PhysicalDeviceDescriptorIndexingFeatures {
10332        PhysicalDeviceDescriptorIndexingFeatures {
10333            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
10334            pNext : 0 as _,
10335            shaderInputAttachmentArrayDynamicIndexing : 0 as _,
10336            shaderUniformTexelBufferArrayDynamicIndexing : 0 as _,
10337            shaderStorageTexelBufferArrayDynamicIndexing : 0 as _,
10338            shaderUniformBufferArrayNonUniformIndexing : 0 as _,
10339            shaderSampledImageArrayNonUniformIndexing : 0 as _,
10340            shaderStorageBufferArrayNonUniformIndexing : 0 as _,
10341            shaderStorageImageArrayNonUniformIndexing : 0 as _,
10342            shaderInputAttachmentArrayNonUniformIndexing : 0 as _,
10343            shaderUniformTexelBufferArrayNonUniformIndexing : 0 as _,
10344            shaderStorageTexelBufferArrayNonUniformIndexing : 0 as _,
10345            descriptorBindingUniformBufferUpdateAfterBind : 0 as _,
10346            descriptorBindingSampledImageUpdateAfterBind : 0 as _,
10347            descriptorBindingStorageImageUpdateAfterBind : 0 as _,
10348            descriptorBindingStorageBufferUpdateAfterBind : 0 as _,
10349            descriptorBindingUniformTexelBufferUpdateAfterBind : 0 as _,
10350            descriptorBindingStorageTexelBufferUpdateAfterBind : 0 as _,
10351            descriptorBindingUpdateUnusedWhilePending : 0 as _,
10352            descriptorBindingPartiallyBound : 0 as _,
10353            descriptorBindingVariableDescriptorCount : 0 as _,
10354            runtimeDescriptorArray : 0 as _,
10355        }
10356    }
10357}
10358impl ::std::default::Default for PhysicalDeviceDescriptorIndexingProperties {
10359    fn default() -> PhysicalDeviceDescriptorIndexingProperties {
10360        PhysicalDeviceDescriptorIndexingProperties {
10361            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
10362            pNext : 0 as _,
10363            maxUpdateAfterBindDescriptorsInAllPools : 0 as _,
10364            shaderUniformBufferArrayNonUniformIndexingNative : 0 as _,
10365            shaderSampledImageArrayNonUniformIndexingNative : 0 as _,
10366            shaderStorageBufferArrayNonUniformIndexingNative : 0 as _,
10367            shaderStorageImageArrayNonUniformIndexingNative : 0 as _,
10368            shaderInputAttachmentArrayNonUniformIndexingNative : 0 as _,
10369            robustBufferAccessUpdateAfterBind : 0 as _,
10370            quadDivergentImplicitLod : 0 as _,
10371            maxPerStageDescriptorUpdateAfterBindSamplers : 0 as _,
10372            maxPerStageDescriptorUpdateAfterBindUniformBuffers : 0 as _,
10373            maxPerStageDescriptorUpdateAfterBindStorageBuffers : 0 as _,
10374            maxPerStageDescriptorUpdateAfterBindSampledImages : 0 as _,
10375            maxPerStageDescriptorUpdateAfterBindStorageImages : 0 as _,
10376            maxPerStageDescriptorUpdateAfterBindInputAttachments : 0 as _,
10377            maxPerStageUpdateAfterBindResources : 0 as _,
10378            maxDescriptorSetUpdateAfterBindSamplers : 0 as _,
10379            maxDescriptorSetUpdateAfterBindUniformBuffers : 0 as _,
10380            maxDescriptorSetUpdateAfterBindUniformBuffersDynamic : 0 as _,
10381            maxDescriptorSetUpdateAfterBindStorageBuffers : 0 as _,
10382            maxDescriptorSetUpdateAfterBindStorageBuffersDynamic : 0 as _,
10383            maxDescriptorSetUpdateAfterBindSampledImages : 0 as _,
10384            maxDescriptorSetUpdateAfterBindStorageImages : 0 as _,
10385            maxDescriptorSetUpdateAfterBindInputAttachments : 0 as _,
10386        }
10387    }
10388}
10389impl ::std::default::Default for DescriptorSetVariableDescriptorCountAllocateInfo {
10390    fn default() -> DescriptorSetVariableDescriptorCountAllocateInfo {
10391        DescriptorSetVariableDescriptorCountAllocateInfo {
10392            sType : STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
10393            pNext : 0 as _,
10394            descriptorSetCount : 0 as _,
10395            pDescriptorCounts : 0 as _,
10396        }
10397    }
10398}
10399impl ::std::default::Default for DescriptorSetVariableDescriptorCountLayoutSupport {
10400    fn default() -> DescriptorSetVariableDescriptorCountLayoutSupport {
10401        DescriptorSetVariableDescriptorCountLayoutSupport {
10402            sType : STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
10403            pNext : 0 as _,
10404            maxVariableDescriptorCount : 0 as _,
10405        }
10406    }
10407}
10408impl ::std::default::Default for SubpassDescriptionDepthStencilResolve {
10409    fn default() -> SubpassDescriptionDepthStencilResolve {
10410        SubpassDescriptionDepthStencilResolve {
10411            sType : STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
10412            pNext : 0 as _,
10413            depthResolveMode : Default::default(),
10414            stencilResolveMode : Default::default(),
10415            pDepthStencilResolveAttachment : 0 as _,
10416        }
10417    }
10418}
10419impl ::std::default::Default for PhysicalDeviceDepthStencilResolveProperties {
10420    fn default() -> PhysicalDeviceDepthStencilResolveProperties {
10421        PhysicalDeviceDepthStencilResolveProperties {
10422            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
10423            pNext : 0 as _,
10424            supportedDepthResolveModes : Default::default(),
10425            supportedStencilResolveModes : Default::default(),
10426            independentResolveNone : 0 as _,
10427            independentResolve : 0 as _,
10428        }
10429    }
10430}
10431impl ::std::default::Default for PhysicalDeviceScalarBlockLayoutFeatures {
10432    fn default() -> PhysicalDeviceScalarBlockLayoutFeatures {
10433        PhysicalDeviceScalarBlockLayoutFeatures {
10434            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
10435            pNext : 0 as _,
10436            scalarBlockLayout : 0 as _,
10437        }
10438    }
10439}
10440impl ::std::default::Default for ImageStencilUsageCreateInfo {
10441    fn default() -> ImageStencilUsageCreateInfo {
10442        ImageStencilUsageCreateInfo {
10443            sType : STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
10444            pNext : 0 as _,
10445            stencilUsage : Default::default(),
10446        }
10447    }
10448}
10449impl ::std::default::Default for SamplerReductionModeCreateInfo {
10450    fn default() -> SamplerReductionModeCreateInfo {
10451        SamplerReductionModeCreateInfo {
10452            sType : STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
10453            pNext : 0 as _,
10454            reductionMode : Default::default(),
10455        }
10456    }
10457}
10458impl ::std::default::Default for PhysicalDeviceSamplerFilterMinmaxProperties {
10459    fn default() -> PhysicalDeviceSamplerFilterMinmaxProperties {
10460        PhysicalDeviceSamplerFilterMinmaxProperties {
10461            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
10462            pNext : 0 as _,
10463            filterMinmaxSingleComponentFormats : 0 as _,
10464            filterMinmaxImageComponentMapping : 0 as _,
10465        }
10466    }
10467}
10468impl ::std::default::Default for PhysicalDeviceVulkanMemoryModelFeatures {
10469    fn default() -> PhysicalDeviceVulkanMemoryModelFeatures {
10470        PhysicalDeviceVulkanMemoryModelFeatures {
10471            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
10472            pNext : 0 as _,
10473            vulkanMemoryModel : 0 as _,
10474            vulkanMemoryModelDeviceScope : 0 as _,
10475            vulkanMemoryModelAvailabilityVisibilityChains : 0 as _,
10476        }
10477    }
10478}
10479impl ::std::default::Default for PhysicalDeviceImagelessFramebufferFeatures {
10480    fn default() -> PhysicalDeviceImagelessFramebufferFeatures {
10481        PhysicalDeviceImagelessFramebufferFeatures {
10482            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
10483            pNext : 0 as _,
10484            imagelessFramebuffer : 0 as _,
10485        }
10486    }
10487}
10488impl ::std::default::Default for FramebufferAttachmentImageInfo {
10489    fn default() -> FramebufferAttachmentImageInfo {
10490        FramebufferAttachmentImageInfo {
10491            sType : STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
10492            pNext : 0 as _,
10493            flags : Default::default(),
10494            usage : Default::default(),
10495            width : 0 as _,
10496            height : 0 as _,
10497            layerCount : 0 as _,
10498            viewFormatCount : 0 as _,
10499            pViewFormats : 0 as _,
10500        }
10501    }
10502}
10503impl ::std::default::Default for FramebufferAttachmentsCreateInfo {
10504    fn default() -> FramebufferAttachmentsCreateInfo {
10505        FramebufferAttachmentsCreateInfo {
10506            sType : STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
10507            pNext : 0 as _,
10508            attachmentImageInfoCount : 0 as _,
10509            pAttachmentImageInfos : 0 as _,
10510        }
10511    }
10512}
10513impl ::std::default::Default for RenderPassAttachmentBeginInfo {
10514    fn default() -> RenderPassAttachmentBeginInfo {
10515        RenderPassAttachmentBeginInfo {
10516            sType : STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
10517            pNext : 0 as _,
10518            attachmentCount : 0 as _,
10519            pAttachments : 0 as _,
10520        }
10521    }
10522}
10523impl ::std::default::Default for PhysicalDeviceUniformBufferStandardLayoutFeatures {
10524    fn default() -> PhysicalDeviceUniformBufferStandardLayoutFeatures {
10525        PhysicalDeviceUniformBufferStandardLayoutFeatures {
10526            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
10527            pNext : 0 as _,
10528            uniformBufferStandardLayout : 0 as _,
10529        }
10530    }
10531}
10532impl ::std::default::Default for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
10533    fn default() -> PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
10534        PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
10535            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
10536            pNext : 0 as _,
10537            shaderSubgroupExtendedTypes : 0 as _,
10538        }
10539    }
10540}
10541impl ::std::default::Default for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
10542    fn default() -> PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
10543        PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
10544            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
10545            pNext : 0 as _,
10546            separateDepthStencilLayouts : 0 as _,
10547        }
10548    }
10549}
10550impl ::std::default::Default for AttachmentReferenceStencilLayout {
10551    fn default() -> AttachmentReferenceStencilLayout {
10552        AttachmentReferenceStencilLayout {
10553            sType : STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
10554            pNext : 0 as _,
10555            stencilLayout : Default::default(),
10556        }
10557    }
10558}
10559impl ::std::default::Default for AttachmentDescriptionStencilLayout {
10560    fn default() -> AttachmentDescriptionStencilLayout {
10561        AttachmentDescriptionStencilLayout {
10562            sType : STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
10563            pNext : 0 as _,
10564            stencilInitialLayout : Default::default(),
10565            stencilFinalLayout : Default::default(),
10566        }
10567    }
10568}
10569impl ::std::default::Default for PhysicalDeviceHostQueryResetFeatures {
10570    fn default() -> PhysicalDeviceHostQueryResetFeatures {
10571        PhysicalDeviceHostQueryResetFeatures {
10572            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
10573            pNext : 0 as _,
10574            hostQueryReset : 0 as _,
10575        }
10576    }
10577}
10578impl ::std::default::Default for PhysicalDeviceTimelineSemaphoreFeatures {
10579    fn default() -> PhysicalDeviceTimelineSemaphoreFeatures {
10580        PhysicalDeviceTimelineSemaphoreFeatures {
10581            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
10582            pNext : 0 as _,
10583            timelineSemaphore : 0 as _,
10584        }
10585    }
10586}
10587impl ::std::default::Default for PhysicalDeviceTimelineSemaphoreProperties {
10588    fn default() -> PhysicalDeviceTimelineSemaphoreProperties {
10589        PhysicalDeviceTimelineSemaphoreProperties {
10590            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
10591            pNext : 0 as _,
10592            maxTimelineSemaphoreValueDifference : 0 as _,
10593        }
10594    }
10595}
10596impl ::std::default::Default for SemaphoreTypeCreateInfo {
10597    fn default() -> SemaphoreTypeCreateInfo {
10598        SemaphoreTypeCreateInfo {
10599            sType : STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
10600            pNext : 0 as _,
10601            semaphoreType : Default::default(),
10602            initialValue : 0 as _,
10603        }
10604    }
10605}
10606impl ::std::default::Default for TimelineSemaphoreSubmitInfo {
10607    fn default() -> TimelineSemaphoreSubmitInfo {
10608        TimelineSemaphoreSubmitInfo {
10609            sType : STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
10610            pNext : 0 as _,
10611            waitSemaphoreValueCount : 0 as _,
10612            pWaitSemaphoreValues : 0 as _,
10613            signalSemaphoreValueCount : 0 as _,
10614            pSignalSemaphoreValues : 0 as _,
10615        }
10616    }
10617}
10618impl ::std::default::Default for SemaphoreWaitInfo {
10619    fn default() -> SemaphoreWaitInfo {
10620        SemaphoreWaitInfo {
10621            sType : STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
10622            pNext : 0 as _,
10623            flags : Default::default(),
10624            semaphoreCount : 0 as _,
10625            pSemaphores : 0 as _,
10626            pValues : 0 as _,
10627        }
10628    }
10629}
10630impl ::std::default::Default for SemaphoreSignalInfo {
10631    fn default() -> SemaphoreSignalInfo {
10632        SemaphoreSignalInfo {
10633            sType : STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
10634            pNext : 0 as _,
10635            semaphore : Default::default(),
10636            value : 0 as _,
10637        }
10638    }
10639}
10640impl ::std::default::Default for PhysicalDeviceBufferDeviceAddressFeatures {
10641    fn default() -> PhysicalDeviceBufferDeviceAddressFeatures {
10642        PhysicalDeviceBufferDeviceAddressFeatures {
10643            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
10644            pNext : 0 as _,
10645            bufferDeviceAddress : 0 as _,
10646            bufferDeviceAddressCaptureReplay : 0 as _,
10647            bufferDeviceAddressMultiDevice : 0 as _,
10648        }
10649    }
10650}
10651impl ::std::default::Default for BufferDeviceAddressInfo {
10652    fn default() -> BufferDeviceAddressInfo {
10653        BufferDeviceAddressInfo {
10654            sType : STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
10655            pNext : 0 as _,
10656            buffer : Default::default(),
10657        }
10658    }
10659}
10660impl ::std::default::Default for BufferOpaqueCaptureAddressCreateInfo {
10661    fn default() -> BufferOpaqueCaptureAddressCreateInfo {
10662        BufferOpaqueCaptureAddressCreateInfo {
10663            sType : STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
10664            pNext : 0 as _,
10665            opaqueCaptureAddress : 0 as _,
10666        }
10667    }
10668}
10669impl ::std::default::Default for MemoryOpaqueCaptureAddressAllocateInfo {
10670    fn default() -> MemoryOpaqueCaptureAddressAllocateInfo {
10671        MemoryOpaqueCaptureAddressAllocateInfo {
10672            sType : STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
10673            pNext : 0 as _,
10674            opaqueCaptureAddress : 0 as _,
10675        }
10676    }
10677}
10678impl ::std::default::Default for DeviceMemoryOpaqueCaptureAddressInfo {
10679    fn default() -> DeviceMemoryOpaqueCaptureAddressInfo {
10680        DeviceMemoryOpaqueCaptureAddressInfo {
10681            sType : STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
10682            pNext : 0 as _,
10683            memory : Default::default(),
10684        }
10685    }
10686}
10687impl ::std::default::Default for SurfaceCapabilitiesKHR {
10688    fn default() -> SurfaceCapabilitiesKHR {
10689        SurfaceCapabilitiesKHR {
10690            minImageCount : 0 as _,
10691            maxImageCount : 0 as _,
10692            currentExtent : Default::default(),
10693            minImageExtent : Default::default(),
10694            maxImageExtent : Default::default(),
10695            maxImageArrayLayers : 0 as _,
10696            supportedTransforms : Default::default(),
10697            currentTransform : Default::default(),
10698            supportedCompositeAlpha : Default::default(),
10699            supportedUsageFlags : Default::default(),
10700        }
10701    }
10702}
10703impl ::std::default::Default for SurfaceFormatKHR {
10704    fn default() -> SurfaceFormatKHR {
10705        SurfaceFormatKHR {
10706            format : Default::default(),
10707            colorSpace : Default::default(),
10708        }
10709    }
10710}
10711impl ::std::default::Default for SwapchainCreateInfoKHR {
10712    fn default() -> SwapchainCreateInfoKHR {
10713        SwapchainCreateInfoKHR {
10714            sType : STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
10715            pNext : 0 as _,
10716            flags : Default::default(),
10717            surface : Default::default(),
10718            minImageCount : 0 as _,
10719            imageFormat : Default::default(),
10720            imageColorSpace : Default::default(),
10721            imageExtent : Default::default(),
10722            imageArrayLayers : 0 as _,
10723            imageUsage : Default::default(),
10724            imageSharingMode : Default::default(),
10725            queueFamilyIndexCount : 0 as _,
10726            pQueueFamilyIndices : 0 as _,
10727            preTransform : Default::default(),
10728            compositeAlpha : Default::default(),
10729            presentMode : Default::default(),
10730            clipped : 0 as _,
10731            oldSwapchain : Default::default(),
10732        }
10733    }
10734}
10735impl ::std::default::Default for PresentInfoKHR {
10736    fn default() -> PresentInfoKHR {
10737        PresentInfoKHR {
10738            sType : STRUCTURE_TYPE_PRESENT_INFO_KHR,
10739            pNext : 0 as _,
10740            waitSemaphoreCount : 0 as _,
10741            pWaitSemaphores : 0 as _,
10742            swapchainCount : 0 as _,
10743            pSwapchains : 0 as _,
10744            pImageIndices : 0 as _,
10745            pResults : 0 as _,
10746        }
10747    }
10748}
10749impl ::std::default::Default for ImageSwapchainCreateInfoKHR {
10750    fn default() -> ImageSwapchainCreateInfoKHR {
10751        ImageSwapchainCreateInfoKHR {
10752            sType : STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,
10753            pNext : 0 as _,
10754            swapchain : Default::default(),
10755        }
10756    }
10757}
10758impl ::std::default::Default for BindImageMemorySwapchainInfoKHR {
10759    fn default() -> BindImageMemorySwapchainInfoKHR {
10760        BindImageMemorySwapchainInfoKHR {
10761            sType : STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,
10762            pNext : 0 as _,
10763            swapchain : Default::default(),
10764            imageIndex : 0 as _,
10765        }
10766    }
10767}
10768impl ::std::default::Default for AcquireNextImageInfoKHR {
10769    fn default() -> AcquireNextImageInfoKHR {
10770        AcquireNextImageInfoKHR {
10771            sType : STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,
10772            pNext : 0 as _,
10773            swapchain : Default::default(),
10774            timeout : 0 as _,
10775            semaphore : Default::default(),
10776            fence : Default::default(),
10777            deviceMask : 0 as _,
10778        }
10779    }
10780}
10781impl ::std::default::Default for DeviceGroupPresentCapabilitiesKHR {
10782    fn default() -> DeviceGroupPresentCapabilitiesKHR {
10783        DeviceGroupPresentCapabilitiesKHR {
10784            sType : STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,
10785            pNext : 0 as _,
10786            presentMask : [Default::default();MAX_DEVICE_GROUP_SIZE],
10787            modes : Default::default(),
10788        }
10789    }
10790}
10791impl ::std::default::Default for DeviceGroupPresentInfoKHR {
10792    fn default() -> DeviceGroupPresentInfoKHR {
10793        DeviceGroupPresentInfoKHR {
10794            sType : STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,
10795            pNext : 0 as _,
10796            swapchainCount : 0 as _,
10797            pDeviceMasks : 0 as _,
10798            mode : Default::default(),
10799        }
10800    }
10801}
10802impl ::std::default::Default for DeviceGroupSwapchainCreateInfoKHR {
10803    fn default() -> DeviceGroupSwapchainCreateInfoKHR {
10804        DeviceGroupSwapchainCreateInfoKHR {
10805            sType : STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,
10806            pNext : 0 as _,
10807            modes : Default::default(),
10808        }
10809    }
10810}
10811impl ::std::default::Default for DisplayPropertiesKHR {
10812    fn default() -> DisplayPropertiesKHR {
10813        DisplayPropertiesKHR {
10814            display : Default::default(),
10815            displayName : 0 as _,
10816            physicalDimensions : Default::default(),
10817            physicalResolution : Default::default(),
10818            supportedTransforms : Default::default(),
10819            planeReorderPossible : 0 as _,
10820            persistentContent : 0 as _,
10821        }
10822    }
10823}
10824impl ::std::default::Default for DisplayModeParametersKHR {
10825    fn default() -> DisplayModeParametersKHR {
10826        DisplayModeParametersKHR {
10827            visibleRegion : Default::default(),
10828            refreshRate : 0 as _,
10829        }
10830    }
10831}
10832impl ::std::default::Default for DisplayModePropertiesKHR {
10833    fn default() -> DisplayModePropertiesKHR {
10834        DisplayModePropertiesKHR {
10835            displayMode : Default::default(),
10836            parameters : Default::default(),
10837        }
10838    }
10839}
10840impl ::std::default::Default for DisplayModeCreateInfoKHR {
10841    fn default() -> DisplayModeCreateInfoKHR {
10842        DisplayModeCreateInfoKHR {
10843            sType : STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR,
10844            pNext : 0 as _,
10845            flags : Default::default(),
10846            parameters : Default::default(),
10847        }
10848    }
10849}
10850impl ::std::default::Default for DisplayPlaneCapabilitiesKHR {
10851    fn default() -> DisplayPlaneCapabilitiesKHR {
10852        DisplayPlaneCapabilitiesKHR {
10853            supportedAlpha : Default::default(),
10854            minSrcPosition : Default::default(),
10855            maxSrcPosition : Default::default(),
10856            minSrcExtent : Default::default(),
10857            maxSrcExtent : Default::default(),
10858            minDstPosition : Default::default(),
10859            maxDstPosition : Default::default(),
10860            minDstExtent : Default::default(),
10861            maxDstExtent : Default::default(),
10862        }
10863    }
10864}
10865impl ::std::default::Default for DisplayPlanePropertiesKHR {
10866    fn default() -> DisplayPlanePropertiesKHR {
10867        DisplayPlanePropertiesKHR {
10868            currentDisplay : Default::default(),
10869            currentStackIndex : 0 as _,
10870        }
10871    }
10872}
10873impl ::std::default::Default for DisplaySurfaceCreateInfoKHR {
10874    fn default() -> DisplaySurfaceCreateInfoKHR {
10875        DisplaySurfaceCreateInfoKHR {
10876            sType : STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,
10877            pNext : 0 as _,
10878            flags : Default::default(),
10879            displayMode : Default::default(),
10880            planeIndex : 0 as _,
10881            planeStackIndex : 0 as _,
10882            transform : Default::default(),
10883            globalAlpha : 0 as _,
10884            alphaMode : Default::default(),
10885            imageExtent : Default::default(),
10886        }
10887    }
10888}
10889impl ::std::default::Default for DisplayPresentInfoKHR {
10890    fn default() -> DisplayPresentInfoKHR {
10891        DisplayPresentInfoKHR {
10892            sType : STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,
10893            pNext : 0 as _,
10894            srcRect : Default::default(),
10895            dstRect : Default::default(),
10896            persistent : 0 as _,
10897        }
10898    }
10899}
10900impl ::std::default::Default for ImportMemoryFdInfoKHR {
10901    fn default() -> ImportMemoryFdInfoKHR {
10902        ImportMemoryFdInfoKHR {
10903            sType : STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,
10904            pNext : 0 as _,
10905            handleType : Default::default(),
10906            fd : 0 as _,
10907        }
10908    }
10909}
10910impl ::std::default::Default for MemoryFdPropertiesKHR {
10911    fn default() -> MemoryFdPropertiesKHR {
10912        MemoryFdPropertiesKHR {
10913            sType : STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,
10914            pNext : 0 as _,
10915            memoryTypeBits : 0 as _,
10916        }
10917    }
10918}
10919impl ::std::default::Default for MemoryGetFdInfoKHR {
10920    fn default() -> MemoryGetFdInfoKHR {
10921        MemoryGetFdInfoKHR {
10922            sType : STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,
10923            pNext : 0 as _,
10924            memory : Default::default(),
10925            handleType : Default::default(),
10926        }
10927    }
10928}
10929impl ::std::default::Default for ImportSemaphoreFdInfoKHR {
10930    fn default() -> ImportSemaphoreFdInfoKHR {
10931        ImportSemaphoreFdInfoKHR {
10932            sType : STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,
10933            pNext : 0 as _,
10934            semaphore : Default::default(),
10935            flags : Default::default(),
10936            handleType : Default::default(),
10937            fd : 0 as _,
10938        }
10939    }
10940}
10941impl ::std::default::Default for SemaphoreGetFdInfoKHR {
10942    fn default() -> SemaphoreGetFdInfoKHR {
10943        SemaphoreGetFdInfoKHR {
10944            sType : STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,
10945            pNext : 0 as _,
10946            semaphore : Default::default(),
10947            handleType : Default::default(),
10948        }
10949    }
10950}
10951impl ::std::default::Default for PhysicalDevicePushDescriptorPropertiesKHR {
10952    fn default() -> PhysicalDevicePushDescriptorPropertiesKHR {
10953        PhysicalDevicePushDescriptorPropertiesKHR {
10954            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,
10955            pNext : 0 as _,
10956            maxPushDescriptors : 0 as _,
10957        }
10958    }
10959}
10960impl ::std::default::Default for RectLayerKHR {
10961    fn default() -> RectLayerKHR {
10962        RectLayerKHR {
10963            offset : Default::default(),
10964            extent : Default::default(),
10965            layer : 0 as _,
10966        }
10967    }
10968}
10969impl ::std::default::Default for PresentRegionKHR {
10970    fn default() -> PresentRegionKHR {
10971        PresentRegionKHR {
10972            rectangleCount : 0 as _,
10973            pRectangles : 0 as _,
10974        }
10975    }
10976}
10977impl ::std::default::Default for PresentRegionsKHR {
10978    fn default() -> PresentRegionsKHR {
10979        PresentRegionsKHR {
10980            sType : STRUCTURE_TYPE_PRESENT_REGIONS_KHR,
10981            pNext : 0 as _,
10982            swapchainCount : 0 as _,
10983            pRegions : 0 as _,
10984        }
10985    }
10986}
10987impl ::std::default::Default for SharedPresentSurfaceCapabilitiesKHR {
10988    fn default() -> SharedPresentSurfaceCapabilitiesKHR {
10989        SharedPresentSurfaceCapabilitiesKHR {
10990            sType : STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,
10991            pNext : 0 as _,
10992            sharedPresentSupportedUsageFlags : Default::default(),
10993        }
10994    }
10995}
10996impl ::std::default::Default for ImportFenceFdInfoKHR {
10997    fn default() -> ImportFenceFdInfoKHR {
10998        ImportFenceFdInfoKHR {
10999            sType : STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
11000            pNext : 0 as _,
11001            fence : Default::default(),
11002            flags : Default::default(),
11003            handleType : Default::default(),
11004            fd : 0 as _,
11005        }
11006    }
11007}
11008impl ::std::default::Default for FenceGetFdInfoKHR {
11009    fn default() -> FenceGetFdInfoKHR {
11010        FenceGetFdInfoKHR {
11011            sType : STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
11012            pNext : 0 as _,
11013            fence : Default::default(),
11014            handleType : Default::default(),
11015        }
11016    }
11017}
11018impl ::std::default::Default for PhysicalDevicePerformanceQueryFeaturesKHR {
11019    fn default() -> PhysicalDevicePerformanceQueryFeaturesKHR {
11020        PhysicalDevicePerformanceQueryFeaturesKHR {
11021            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,
11022            pNext : 0 as _,
11023            performanceCounterQueryPools : 0 as _,
11024            performanceCounterMultipleQueryPools : 0 as _,
11025        }
11026    }
11027}
11028impl ::std::default::Default for PhysicalDevicePerformanceQueryPropertiesKHR {
11029    fn default() -> PhysicalDevicePerformanceQueryPropertiesKHR {
11030        PhysicalDevicePerformanceQueryPropertiesKHR {
11031            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,
11032            pNext : 0 as _,
11033            allowCommandBufferQueryCopies : 0 as _,
11034        }
11035    }
11036}
11037impl ::std::default::Default for PerformanceCounterKHR {
11038    fn default() -> PerformanceCounterKHR {
11039        PerformanceCounterKHR {
11040            sType : STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,
11041            pNext : 0 as _,
11042            unit : Default::default(),
11043            scope : Default::default(),
11044            storage : Default::default(),
11045            uuid : [Default::default();UUID_SIZE],
11046        }
11047    }
11048}
11049impl ::std::default::Default for PerformanceCounterDescriptionKHR {
11050    fn default() -> PerformanceCounterDescriptionKHR {
11051        PerformanceCounterDescriptionKHR {
11052            sType : STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,
11053            pNext : 0 as _,
11054            flags : Default::default(),
11055            name : [Default::default();MAX_DESCRIPTION_SIZE],
11056            category : [Default::default();MAX_DESCRIPTION_SIZE],
11057            description : [Default::default();MAX_DESCRIPTION_SIZE],
11058        }
11059    }
11060}
11061impl ::std::default::Default for QueryPoolPerformanceCreateInfoKHR {
11062    fn default() -> QueryPoolPerformanceCreateInfoKHR {
11063        QueryPoolPerformanceCreateInfoKHR {
11064            sType : STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,
11065            pNext : 0 as _,
11066            queueFamilyIndex : 0 as _,
11067            counterIndexCount : 0 as _,
11068            pCounterIndices : 0 as _,
11069        }
11070    }
11071}
11072impl ::std::default::Default for AcquireProfilingLockInfoKHR {
11073    fn default() -> AcquireProfilingLockInfoKHR {
11074        AcquireProfilingLockInfoKHR {
11075            sType : STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,
11076            pNext : 0 as _,
11077            flags : Default::default(),
11078            timeout : 0 as _,
11079        }
11080    }
11081}
11082impl ::std::default::Default for PerformanceQuerySubmitInfoKHR {
11083    fn default() -> PerformanceQuerySubmitInfoKHR {
11084        PerformanceQuerySubmitInfoKHR {
11085            sType : STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,
11086            pNext : 0 as _,
11087            counterPassIndex : 0 as _,
11088        }
11089    }
11090}
11091impl ::std::default::Default for PhysicalDeviceSurfaceInfo2KHR {
11092    fn default() -> PhysicalDeviceSurfaceInfo2KHR {
11093        PhysicalDeviceSurfaceInfo2KHR {
11094            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,
11095            pNext : 0 as _,
11096            surface : Default::default(),
11097        }
11098    }
11099}
11100impl ::std::default::Default for SurfaceCapabilities2KHR {
11101    fn default() -> SurfaceCapabilities2KHR {
11102        SurfaceCapabilities2KHR {
11103            sType : STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,
11104            pNext : 0 as _,
11105            surfaceCapabilities : Default::default(),
11106        }
11107    }
11108}
11109impl ::std::default::Default for SurfaceFormat2KHR {
11110    fn default() -> SurfaceFormat2KHR {
11111        SurfaceFormat2KHR {
11112            sType : STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,
11113            pNext : 0 as _,
11114            surfaceFormat : Default::default(),
11115        }
11116    }
11117}
11118impl ::std::default::Default for DisplayProperties2KHR {
11119    fn default() -> DisplayProperties2KHR {
11120        DisplayProperties2KHR {
11121            sType : STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,
11122            pNext : 0 as _,
11123            displayProperties : Default::default(),
11124        }
11125    }
11126}
11127impl ::std::default::Default for DisplayPlaneProperties2KHR {
11128    fn default() -> DisplayPlaneProperties2KHR {
11129        DisplayPlaneProperties2KHR {
11130            sType : STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,
11131            pNext : 0 as _,
11132            displayPlaneProperties : Default::default(),
11133        }
11134    }
11135}
11136impl ::std::default::Default for DisplayModeProperties2KHR {
11137    fn default() -> DisplayModeProperties2KHR {
11138        DisplayModeProperties2KHR {
11139            sType : STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,
11140            pNext : 0 as _,
11141            displayModeProperties : Default::default(),
11142        }
11143    }
11144}
11145impl ::std::default::Default for DisplayPlaneInfo2KHR {
11146    fn default() -> DisplayPlaneInfo2KHR {
11147        DisplayPlaneInfo2KHR {
11148            sType : STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,
11149            pNext : 0 as _,
11150            mode : Default::default(),
11151            planeIndex : 0 as _,
11152        }
11153    }
11154}
11155impl ::std::default::Default for DisplayPlaneCapabilities2KHR {
11156    fn default() -> DisplayPlaneCapabilities2KHR {
11157        DisplayPlaneCapabilities2KHR {
11158            sType : STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,
11159            pNext : 0 as _,
11160            capabilities : Default::default(),
11161        }
11162    }
11163}
11164impl ::std::default::Default for PhysicalDeviceShaderClockFeaturesKHR {
11165    fn default() -> PhysicalDeviceShaderClockFeaturesKHR {
11166        PhysicalDeviceShaderClockFeaturesKHR {
11167            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,
11168            pNext : 0 as _,
11169            shaderSubgroupClock : 0 as _,
11170            shaderDeviceClock : 0 as _,
11171        }
11172    }
11173}
11174impl ::std::default::Default for SurfaceProtectedCapabilitiesKHR {
11175    fn default() -> SurfaceProtectedCapabilitiesKHR {
11176        SurfaceProtectedCapabilitiesKHR {
11177            sType : STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,
11178            pNext : 0 as _,
11179            supportsProtected : 0 as _,
11180        }
11181    }
11182}
11183impl ::std::default::Default for PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11184    fn default() -> PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11185        PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11186            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,
11187            pNext : 0 as _,
11188            pipelineExecutableInfo : 0 as _,
11189        }
11190    }
11191}
11192impl ::std::default::Default for PipelineInfoKHR {
11193    fn default() -> PipelineInfoKHR {
11194        PipelineInfoKHR {
11195            sType : STRUCTURE_TYPE_PIPELINE_INFO_KHR,
11196            pNext : 0 as _,
11197            pipeline : Default::default(),
11198        }
11199    }
11200}
11201impl ::std::default::Default for PipelineExecutablePropertiesKHR {
11202    fn default() -> PipelineExecutablePropertiesKHR {
11203        PipelineExecutablePropertiesKHR {
11204            sType : STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,
11205            pNext : 0 as _,
11206            stages : Default::default(),
11207            name : [Default::default();MAX_DESCRIPTION_SIZE],
11208            description : [Default::default();MAX_DESCRIPTION_SIZE],
11209            subgroupSize : 0 as _,
11210        }
11211    }
11212}
11213impl ::std::default::Default for PipelineExecutableInfoKHR {
11214    fn default() -> PipelineExecutableInfoKHR {
11215        PipelineExecutableInfoKHR {
11216            sType : STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,
11217            pNext : 0 as _,
11218            pipeline : Default::default(),
11219            executableIndex : 0 as _,
11220        }
11221    }
11222}
11223impl ::std::default::Default for PipelineExecutableInternalRepresentationKHR {
11224    fn default() -> PipelineExecutableInternalRepresentationKHR {
11225        PipelineExecutableInternalRepresentationKHR {
11226            sType : STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,
11227            pNext : 0 as _,
11228            name : [Default::default();MAX_DESCRIPTION_SIZE],
11229            description : [Default::default();MAX_DESCRIPTION_SIZE],
11230            isText : 0 as _,
11231            dataSize : Default::default(),
11232            pData : 0 as _,
11233        }
11234    }
11235}
11236impl ::std::default::Default for DebugReportCallbackCreateInfoEXT {
11237    fn default() -> DebugReportCallbackCreateInfoEXT {
11238        DebugReportCallbackCreateInfoEXT {
11239            sType : STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
11240            pNext : 0 as _,
11241            flags : Default::default(),
11242            pfnCallback : 0 as _,
11243            pUserData : 0 as _,
11244        }
11245    }
11246}
11247impl ::std::default::Default for PipelineRasterizationStateRasterizationOrderAMD {
11248    fn default() -> PipelineRasterizationStateRasterizationOrderAMD {
11249        PipelineRasterizationStateRasterizationOrderAMD {
11250            sType : STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,
11251            pNext : 0 as _,
11252            rasterizationOrder : Default::default(),
11253        }
11254    }
11255}
11256impl ::std::default::Default for DebugMarkerObjectNameInfoEXT {
11257    fn default() -> DebugMarkerObjectNameInfoEXT {
11258        DebugMarkerObjectNameInfoEXT {
11259            sType : STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,
11260            pNext : 0 as _,
11261            objectType : Default::default(),
11262            object : 0 as _,
11263            pObjectName : 0 as _,
11264        }
11265    }
11266}
11267impl ::std::default::Default for DebugMarkerObjectTagInfoEXT {
11268    fn default() -> DebugMarkerObjectTagInfoEXT {
11269        DebugMarkerObjectTagInfoEXT {
11270            sType : STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,
11271            pNext : 0 as _,
11272            objectType : Default::default(),
11273            object : 0 as _,
11274            tagName : 0 as _,
11275            tagSize : Default::default(),
11276            pTag : 0 as _,
11277        }
11278    }
11279}
11280impl ::std::default::Default for DebugMarkerMarkerInfoEXT {
11281    fn default() -> DebugMarkerMarkerInfoEXT {
11282        DebugMarkerMarkerInfoEXT {
11283            sType : STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,
11284            pNext : 0 as _,
11285            pMarkerName : 0 as _,
11286            color : [Default::default();4],
11287        }
11288    }
11289}
11290impl ::std::default::Default for DedicatedAllocationImageCreateInfoNV {
11291    fn default() -> DedicatedAllocationImageCreateInfoNV {
11292        DedicatedAllocationImageCreateInfoNV {
11293            sType : STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,
11294            pNext : 0 as _,
11295            dedicatedAllocation : 0 as _,
11296        }
11297    }
11298}
11299impl ::std::default::Default for DedicatedAllocationBufferCreateInfoNV {
11300    fn default() -> DedicatedAllocationBufferCreateInfoNV {
11301        DedicatedAllocationBufferCreateInfoNV {
11302            sType : STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,
11303            pNext : 0 as _,
11304            dedicatedAllocation : 0 as _,
11305        }
11306    }
11307}
11308impl ::std::default::Default for DedicatedAllocationMemoryAllocateInfoNV {
11309    fn default() -> DedicatedAllocationMemoryAllocateInfoNV {
11310        DedicatedAllocationMemoryAllocateInfoNV {
11311            sType : STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,
11312            pNext : 0 as _,
11313            image : Default::default(),
11314            buffer : Default::default(),
11315        }
11316    }
11317}
11318impl ::std::default::Default for PhysicalDeviceTransformFeedbackFeaturesEXT {
11319    fn default() -> PhysicalDeviceTransformFeedbackFeaturesEXT {
11320        PhysicalDeviceTransformFeedbackFeaturesEXT {
11321            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,
11322            pNext : 0 as _,
11323            transformFeedback : 0 as _,
11324            geometryStreams : 0 as _,
11325        }
11326    }
11327}
11328impl ::std::default::Default for PhysicalDeviceTransformFeedbackPropertiesEXT {
11329    fn default() -> PhysicalDeviceTransformFeedbackPropertiesEXT {
11330        PhysicalDeviceTransformFeedbackPropertiesEXT {
11331            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,
11332            pNext : 0 as _,
11333            maxTransformFeedbackStreams : 0 as _,
11334            maxTransformFeedbackBuffers : 0 as _,
11335            maxTransformFeedbackBufferSize : Default::default(),
11336            maxTransformFeedbackStreamDataSize : 0 as _,
11337            maxTransformFeedbackBufferDataSize : 0 as _,
11338            maxTransformFeedbackBufferDataStride : 0 as _,
11339            transformFeedbackQueries : 0 as _,
11340            transformFeedbackStreamsLinesTriangles : 0 as _,
11341            transformFeedbackRasterizationStreamSelect : 0 as _,
11342            transformFeedbackDraw : 0 as _,
11343        }
11344    }
11345}
11346impl ::std::default::Default for PipelineRasterizationStateStreamCreateInfoEXT {
11347    fn default() -> PipelineRasterizationStateStreamCreateInfoEXT {
11348        PipelineRasterizationStateStreamCreateInfoEXT {
11349            sType : STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,
11350            pNext : 0 as _,
11351            flags : Default::default(),
11352            rasterizationStream : 0 as _,
11353        }
11354    }
11355}
11356impl ::std::default::Default for ImageViewHandleInfoNVX {
11357    fn default() -> ImageViewHandleInfoNVX {
11358        ImageViewHandleInfoNVX {
11359            sType : STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,
11360            pNext : 0 as _,
11361            imageView : Default::default(),
11362            descriptorType : Default::default(),
11363            sampler : Default::default(),
11364        }
11365    }
11366}
11367impl ::std::default::Default for ImageViewAddressPropertiesNVX {
11368    fn default() -> ImageViewAddressPropertiesNVX {
11369        ImageViewAddressPropertiesNVX {
11370            sType : STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,
11371            pNext : 0 as _,
11372            deviceAddress : Default::default(),
11373            size : Default::default(),
11374        }
11375    }
11376}
11377impl ::std::default::Default for TextureLODGatherFormatPropertiesAMD {
11378    fn default() -> TextureLODGatherFormatPropertiesAMD {
11379        TextureLODGatherFormatPropertiesAMD {
11380            sType : STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
11381            pNext : 0 as _,
11382            supportsTextureGatherLODBiasAMD : 0 as _,
11383        }
11384    }
11385}
11386impl ::std::default::Default for ShaderResourceUsageAMD {
11387    fn default() -> ShaderResourceUsageAMD {
11388        ShaderResourceUsageAMD {
11389            numUsedVgprs : 0 as _,
11390            numUsedSgprs : 0 as _,
11391            ldsSizePerLocalWorkGroup : 0 as _,
11392            ldsUsageSizeInBytes : Default::default(),
11393            scratchMemUsageInBytes : Default::default(),
11394        }
11395    }
11396}
11397impl ::std::default::Default for ShaderStatisticsInfoAMD {
11398    fn default() -> ShaderStatisticsInfoAMD {
11399        ShaderStatisticsInfoAMD {
11400            shaderStageMask : Default::default(),
11401            resourceUsage : Default::default(),
11402            numPhysicalVgprs : 0 as _,
11403            numPhysicalSgprs : 0 as _,
11404            numAvailableVgprs : 0 as _,
11405            numAvailableSgprs : 0 as _,
11406            computeWorkGroupSize : [Default::default();3],
11407        }
11408    }
11409}
11410impl ::std::default::Default for PhysicalDeviceCornerSampledImageFeaturesNV {
11411    fn default() -> PhysicalDeviceCornerSampledImageFeaturesNV {
11412        PhysicalDeviceCornerSampledImageFeaturesNV {
11413            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,
11414            pNext : 0 as _,
11415            cornerSampledImage : 0 as _,
11416        }
11417    }
11418}
11419impl ::std::default::Default for ExternalImageFormatPropertiesNV {
11420    fn default() -> ExternalImageFormatPropertiesNV {
11421        ExternalImageFormatPropertiesNV {
11422            imageFormatProperties : Default::default(),
11423            externalMemoryFeatures : Default::default(),
11424            exportFromImportedHandleTypes : Default::default(),
11425            compatibleHandleTypes : Default::default(),
11426        }
11427    }
11428}
11429impl ::std::default::Default for ExternalMemoryImageCreateInfoNV {
11430    fn default() -> ExternalMemoryImageCreateInfoNV {
11431        ExternalMemoryImageCreateInfoNV {
11432            sType : STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,
11433            pNext : 0 as _,
11434            handleTypes : Default::default(),
11435        }
11436    }
11437}
11438impl ::std::default::Default for ExportMemoryAllocateInfoNV {
11439    fn default() -> ExportMemoryAllocateInfoNV {
11440        ExportMemoryAllocateInfoNV {
11441            sType : STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,
11442            pNext : 0 as _,
11443            handleTypes : Default::default(),
11444        }
11445    }
11446}
11447impl ::std::default::Default for ValidationFlagsEXT {
11448    fn default() -> ValidationFlagsEXT {
11449        ValidationFlagsEXT {
11450            sType : STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,
11451            pNext : 0 as _,
11452            disabledValidationCheckCount : 0 as _,
11453            pDisabledValidationChecks : 0 as _,
11454        }
11455    }
11456}
11457impl ::std::default::Default for PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT {
11458    fn default() -> PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT {
11459        PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT {
11460            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT,
11461            pNext : 0 as _,
11462            textureCompressionASTC_HDR : 0 as _,
11463        }
11464    }
11465}
11466impl ::std::default::Default for ImageViewASTCDecodeModeEXT {
11467    fn default() -> ImageViewASTCDecodeModeEXT {
11468        ImageViewASTCDecodeModeEXT {
11469            sType : STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,
11470            pNext : 0 as _,
11471            decodeMode : Default::default(),
11472        }
11473    }
11474}
11475impl ::std::default::Default for PhysicalDeviceASTCDecodeFeaturesEXT {
11476    fn default() -> PhysicalDeviceASTCDecodeFeaturesEXT {
11477        PhysicalDeviceASTCDecodeFeaturesEXT {
11478            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,
11479            pNext : 0 as _,
11480            decodeModeSharedExponent : 0 as _,
11481        }
11482    }
11483}
11484impl ::std::default::Default for ConditionalRenderingBeginInfoEXT {
11485    fn default() -> ConditionalRenderingBeginInfoEXT {
11486        ConditionalRenderingBeginInfoEXT {
11487            sType : STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,
11488            pNext : 0 as _,
11489            buffer : Default::default(),
11490            offset : Default::default(),
11491            flags : Default::default(),
11492        }
11493    }
11494}
11495impl ::std::default::Default for PhysicalDeviceConditionalRenderingFeaturesEXT {
11496    fn default() -> PhysicalDeviceConditionalRenderingFeaturesEXT {
11497        PhysicalDeviceConditionalRenderingFeaturesEXT {
11498            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,
11499            pNext : 0 as _,
11500            conditionalRendering : 0 as _,
11501            inheritedConditionalRendering : 0 as _,
11502        }
11503    }
11504}
11505impl ::std::default::Default for CommandBufferInheritanceConditionalRenderingInfoEXT {
11506    fn default() -> CommandBufferInheritanceConditionalRenderingInfoEXT {
11507        CommandBufferInheritanceConditionalRenderingInfoEXT {
11508            sType : STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,
11509            pNext : 0 as _,
11510            conditionalRenderingEnable : 0 as _,
11511        }
11512    }
11513}
11514impl ::std::default::Default for ViewportWScalingNV {
11515    fn default() -> ViewportWScalingNV {
11516        ViewportWScalingNV {
11517            xcoeff : 0 as _,
11518            ycoeff : 0 as _,
11519        }
11520    }
11521}
11522impl ::std::default::Default for PipelineViewportWScalingStateCreateInfoNV {
11523    fn default() -> PipelineViewportWScalingStateCreateInfoNV {
11524        PipelineViewportWScalingStateCreateInfoNV {
11525            sType : STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,
11526            pNext : 0 as _,
11527            viewportWScalingEnable : 0 as _,
11528            viewportCount : 0 as _,
11529            pViewportWScalings : 0 as _,
11530        }
11531    }
11532}
11533impl ::std::default::Default for SurfaceCapabilities2EXT {
11534    fn default() -> SurfaceCapabilities2EXT {
11535        SurfaceCapabilities2EXT {
11536            sType : STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
11537            pNext : 0 as _,
11538            minImageCount : 0 as _,
11539            maxImageCount : 0 as _,
11540            currentExtent : Default::default(),
11541            minImageExtent : Default::default(),
11542            maxImageExtent : Default::default(),
11543            maxImageArrayLayers : 0 as _,
11544            supportedTransforms : Default::default(),
11545            currentTransform : Default::default(),
11546            supportedCompositeAlpha : Default::default(),
11547            supportedUsageFlags : Default::default(),
11548            supportedSurfaceCounters : Default::default(),
11549        }
11550    }
11551}
11552impl ::std::default::Default for DisplayPowerInfoEXT {
11553    fn default() -> DisplayPowerInfoEXT {
11554        DisplayPowerInfoEXT {
11555            sType : STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,
11556            pNext : 0 as _,
11557            powerState : Default::default(),
11558        }
11559    }
11560}
11561impl ::std::default::Default for DeviceEventInfoEXT {
11562    fn default() -> DeviceEventInfoEXT {
11563        DeviceEventInfoEXT {
11564            sType : STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,
11565            pNext : 0 as _,
11566            deviceEvent : Default::default(),
11567        }
11568    }
11569}
11570impl ::std::default::Default for DisplayEventInfoEXT {
11571    fn default() -> DisplayEventInfoEXT {
11572        DisplayEventInfoEXT {
11573            sType : STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,
11574            pNext : 0 as _,
11575            displayEvent : Default::default(),
11576        }
11577    }
11578}
11579impl ::std::default::Default for SwapchainCounterCreateInfoEXT {
11580    fn default() -> SwapchainCounterCreateInfoEXT {
11581        SwapchainCounterCreateInfoEXT {
11582            sType : STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,
11583            pNext : 0 as _,
11584            surfaceCounters : Default::default(),
11585        }
11586    }
11587}
11588impl ::std::default::Default for RefreshCycleDurationGOOGLE {
11589    fn default() -> RefreshCycleDurationGOOGLE {
11590        RefreshCycleDurationGOOGLE {
11591            refreshDuration : 0 as _,
11592        }
11593    }
11594}
11595impl ::std::default::Default for PastPresentationTimingGOOGLE {
11596    fn default() -> PastPresentationTimingGOOGLE {
11597        PastPresentationTimingGOOGLE {
11598            presentID : 0 as _,
11599            desiredPresentTime : 0 as _,
11600            actualPresentTime : 0 as _,
11601            earliestPresentTime : 0 as _,
11602            presentMargin : 0 as _,
11603        }
11604    }
11605}
11606impl ::std::default::Default for PresentTimeGOOGLE {
11607    fn default() -> PresentTimeGOOGLE {
11608        PresentTimeGOOGLE {
11609            presentID : 0 as _,
11610            desiredPresentTime : 0 as _,
11611        }
11612    }
11613}
11614impl ::std::default::Default for PresentTimesInfoGOOGLE {
11615    fn default() -> PresentTimesInfoGOOGLE {
11616        PresentTimesInfoGOOGLE {
11617            sType : STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,
11618            pNext : 0 as _,
11619            swapchainCount : 0 as _,
11620            pTimes : 0 as _,
11621        }
11622    }
11623}
11624impl ::std::default::Default for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
11625    fn default() -> PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
11626        PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
11627            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,
11628            pNext : 0 as _,
11629            perViewPositionAllComponents : 0 as _,
11630        }
11631    }
11632}
11633impl ::std::default::Default for ViewportSwizzleNV {
11634    fn default() -> ViewportSwizzleNV {
11635        ViewportSwizzleNV {
11636            x : Default::default(),
11637            y : Default::default(),
11638            z : Default::default(),
11639            w : Default::default(),
11640        }
11641    }
11642}
11643impl ::std::default::Default for PipelineViewportSwizzleStateCreateInfoNV {
11644    fn default() -> PipelineViewportSwizzleStateCreateInfoNV {
11645        PipelineViewportSwizzleStateCreateInfoNV {
11646            sType : STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,
11647            pNext : 0 as _,
11648            flags : Default::default(),
11649            viewportCount : 0 as _,
11650            pViewportSwizzles : 0 as _,
11651        }
11652    }
11653}
11654impl ::std::default::Default for PhysicalDeviceDiscardRectanglePropertiesEXT {
11655    fn default() -> PhysicalDeviceDiscardRectanglePropertiesEXT {
11656        PhysicalDeviceDiscardRectanglePropertiesEXT {
11657            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,
11658            pNext : 0 as _,
11659            maxDiscardRectangles : 0 as _,
11660        }
11661    }
11662}
11663impl ::std::default::Default for PipelineDiscardRectangleStateCreateInfoEXT {
11664    fn default() -> PipelineDiscardRectangleStateCreateInfoEXT {
11665        PipelineDiscardRectangleStateCreateInfoEXT {
11666            sType : STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,
11667            pNext : 0 as _,
11668            flags : Default::default(),
11669            discardRectangleMode : Default::default(),
11670            discardRectangleCount : 0 as _,
11671            pDiscardRectangles : 0 as _,
11672        }
11673    }
11674}
11675impl ::std::default::Default for PhysicalDeviceConservativeRasterizationPropertiesEXT {
11676    fn default() -> PhysicalDeviceConservativeRasterizationPropertiesEXT {
11677        PhysicalDeviceConservativeRasterizationPropertiesEXT {
11678            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,
11679            pNext : 0 as _,
11680            primitiveOverestimationSize : 0 as _,
11681            maxExtraPrimitiveOverestimationSize : 0 as _,
11682            extraPrimitiveOverestimationSizeGranularity : 0 as _,
11683            primitiveUnderestimation : 0 as _,
11684            conservativePointAndLineRasterization : 0 as _,
11685            degenerateTrianglesRasterized : 0 as _,
11686            degenerateLinesRasterized : 0 as _,
11687            fullyCoveredFragmentShaderInputVariable : 0 as _,
11688            conservativeRasterizationPostDepthCoverage : 0 as _,
11689        }
11690    }
11691}
11692impl ::std::default::Default for PipelineRasterizationConservativeStateCreateInfoEXT {
11693    fn default() -> PipelineRasterizationConservativeStateCreateInfoEXT {
11694        PipelineRasterizationConservativeStateCreateInfoEXT {
11695            sType : STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,
11696            pNext : 0 as _,
11697            flags : Default::default(),
11698            conservativeRasterizationMode : Default::default(),
11699            extraPrimitiveOverestimationSize : 0 as _,
11700        }
11701    }
11702}
11703impl ::std::default::Default for PhysicalDeviceDepthClipEnableFeaturesEXT {
11704    fn default() -> PhysicalDeviceDepthClipEnableFeaturesEXT {
11705        PhysicalDeviceDepthClipEnableFeaturesEXT {
11706            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,
11707            pNext : 0 as _,
11708            depthClipEnable : 0 as _,
11709        }
11710    }
11711}
11712impl ::std::default::Default for PipelineRasterizationDepthClipStateCreateInfoEXT {
11713    fn default() -> PipelineRasterizationDepthClipStateCreateInfoEXT {
11714        PipelineRasterizationDepthClipStateCreateInfoEXT {
11715            sType : STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,
11716            pNext : 0 as _,
11717            flags : Default::default(),
11718            depthClipEnable : 0 as _,
11719        }
11720    }
11721}
11722impl ::std::default::Default for XYColorEXT {
11723    fn default() -> XYColorEXT {
11724        XYColorEXT {
11725            x : 0 as _,
11726            y : 0 as _,
11727        }
11728    }
11729}
11730impl ::std::default::Default for HdrMetadataEXT {
11731    fn default() -> HdrMetadataEXT {
11732        HdrMetadataEXT {
11733            sType : STRUCTURE_TYPE_HDR_METADATA_EXT,
11734            pNext : 0 as _,
11735            displayPrimaryRed : Default::default(),
11736            displayPrimaryGreen : Default::default(),
11737            displayPrimaryBlue : Default::default(),
11738            whitePoint : Default::default(),
11739            maxLuminance : 0 as _,
11740            minLuminance : 0 as _,
11741            maxContentLightLevel : 0 as _,
11742            maxFrameAverageLightLevel : 0 as _,
11743        }
11744    }
11745}
11746impl ::std::default::Default for DebugUtilsLabelEXT {
11747    fn default() -> DebugUtilsLabelEXT {
11748        DebugUtilsLabelEXT {
11749            sType : STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,
11750            pNext : 0 as _,
11751            pLabelName : 0 as _,
11752            color : [Default::default();4],
11753        }
11754    }
11755}
11756impl ::std::default::Default for DebugUtilsObjectNameInfoEXT {
11757    fn default() -> DebugUtilsObjectNameInfoEXT {
11758        DebugUtilsObjectNameInfoEXT {
11759            sType : STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,
11760            pNext : 0 as _,
11761            objectType : Default::default(),
11762            objectHandle : 0 as _,
11763            pObjectName : 0 as _,
11764        }
11765    }
11766}
11767impl ::std::default::Default for DebugUtilsMessengerCallbackDataEXT {
11768    fn default() -> DebugUtilsMessengerCallbackDataEXT {
11769        DebugUtilsMessengerCallbackDataEXT {
11770            sType : STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,
11771            pNext : 0 as _,
11772            flags : Default::default(),
11773            pMessageIdName : 0 as _,
11774            messageIdNumber : 0 as _,
11775            pMessage : 0 as _,
11776            queueLabelCount : 0 as _,
11777            pQueueLabels : 0 as _,
11778            cmdBufLabelCount : 0 as _,
11779            pCmdBufLabels : 0 as _,
11780            objectCount : 0 as _,
11781            pObjects : 0 as _,
11782        }
11783    }
11784}
11785impl ::std::default::Default for DebugUtilsObjectTagInfoEXT {
11786    fn default() -> DebugUtilsObjectTagInfoEXT {
11787        DebugUtilsObjectTagInfoEXT {
11788            sType : STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,
11789            pNext : 0 as _,
11790            objectType : Default::default(),
11791            objectHandle : 0 as _,
11792            tagName : 0 as _,
11793            tagSize : Default::default(),
11794            pTag : 0 as _,
11795        }
11796    }
11797}
11798impl ::std::default::Default for DebugUtilsMessengerCreateInfoEXT {
11799    fn default() -> DebugUtilsMessengerCreateInfoEXT {
11800        DebugUtilsMessengerCreateInfoEXT {
11801            sType : STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
11802            pNext : 0 as _,
11803            flags : Default::default(),
11804            messageSeverity : Default::default(),
11805            messageType : Default::default(),
11806            pfnUserCallback : 0 as _,
11807            pUserData : 0 as _,
11808        }
11809    }
11810}
11811impl ::std::default::Default for PhysicalDeviceInlineUniformBlockFeaturesEXT {
11812    fn default() -> PhysicalDeviceInlineUniformBlockFeaturesEXT {
11813        PhysicalDeviceInlineUniformBlockFeaturesEXT {
11814            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT,
11815            pNext : 0 as _,
11816            inlineUniformBlock : 0 as _,
11817            descriptorBindingInlineUniformBlockUpdateAfterBind : 0 as _,
11818        }
11819    }
11820}
11821impl ::std::default::Default for PhysicalDeviceInlineUniformBlockPropertiesEXT {
11822    fn default() -> PhysicalDeviceInlineUniformBlockPropertiesEXT {
11823        PhysicalDeviceInlineUniformBlockPropertiesEXT {
11824            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT,
11825            pNext : 0 as _,
11826            maxInlineUniformBlockSize : 0 as _,
11827            maxPerStageDescriptorInlineUniformBlocks : 0 as _,
11828            maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks : 0 as _,
11829            maxDescriptorSetInlineUniformBlocks : 0 as _,
11830            maxDescriptorSetUpdateAfterBindInlineUniformBlocks : 0 as _,
11831        }
11832    }
11833}
11834impl ::std::default::Default for WriteDescriptorSetInlineUniformBlockEXT {
11835    fn default() -> WriteDescriptorSetInlineUniformBlockEXT {
11836        WriteDescriptorSetInlineUniformBlockEXT {
11837            sType : STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT,
11838            pNext : 0 as _,
11839            dataSize : 0 as _,
11840            pData : 0 as _,
11841        }
11842    }
11843}
11844impl ::std::default::Default for DescriptorPoolInlineUniformBlockCreateInfoEXT {
11845    fn default() -> DescriptorPoolInlineUniformBlockCreateInfoEXT {
11846        DescriptorPoolInlineUniformBlockCreateInfoEXT {
11847            sType : STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT,
11848            pNext : 0 as _,
11849            maxInlineUniformBlockBindings : 0 as _,
11850        }
11851    }
11852}
11853impl ::std::default::Default for SampleLocationEXT {
11854    fn default() -> SampleLocationEXT {
11855        SampleLocationEXT {
11856            x : 0 as _,
11857            y : 0 as _,
11858        }
11859    }
11860}
11861impl ::std::default::Default for SampleLocationsInfoEXT {
11862    fn default() -> SampleLocationsInfoEXT {
11863        SampleLocationsInfoEXT {
11864            sType : STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT,
11865            pNext : 0 as _,
11866            sampleLocationsPerPixel : Default::default(),
11867            sampleLocationGridSize : Default::default(),
11868            sampleLocationsCount : 0 as _,
11869            pSampleLocations : 0 as _,
11870        }
11871    }
11872}
11873impl ::std::default::Default for AttachmentSampleLocationsEXT {
11874    fn default() -> AttachmentSampleLocationsEXT {
11875        AttachmentSampleLocationsEXT {
11876            attachmentIndex : 0 as _,
11877            sampleLocationsInfo : Default::default(),
11878        }
11879    }
11880}
11881impl ::std::default::Default for SubpassSampleLocationsEXT {
11882    fn default() -> SubpassSampleLocationsEXT {
11883        SubpassSampleLocationsEXT {
11884            subpassIndex : 0 as _,
11885            sampleLocationsInfo : Default::default(),
11886        }
11887    }
11888}
11889impl ::std::default::Default for RenderPassSampleLocationsBeginInfoEXT {
11890    fn default() -> RenderPassSampleLocationsBeginInfoEXT {
11891        RenderPassSampleLocationsBeginInfoEXT {
11892            sType : STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT,
11893            pNext : 0 as _,
11894            attachmentInitialSampleLocationsCount : 0 as _,
11895            pAttachmentInitialSampleLocations : 0 as _,
11896            postSubpassSampleLocationsCount : 0 as _,
11897            pPostSubpassSampleLocations : 0 as _,
11898        }
11899    }
11900}
11901impl ::std::default::Default for PipelineSampleLocationsStateCreateInfoEXT {
11902    fn default() -> PipelineSampleLocationsStateCreateInfoEXT {
11903        PipelineSampleLocationsStateCreateInfoEXT {
11904            sType : STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
11905            pNext : 0 as _,
11906            sampleLocationsEnable : 0 as _,
11907            sampleLocationsInfo : Default::default(),
11908        }
11909    }
11910}
11911impl ::std::default::Default for PhysicalDeviceSampleLocationsPropertiesEXT {
11912    fn default() -> PhysicalDeviceSampleLocationsPropertiesEXT {
11913        PhysicalDeviceSampleLocationsPropertiesEXT {
11914            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,
11915            pNext : 0 as _,
11916            sampleLocationSampleCounts : Default::default(),
11917            maxSampleLocationGridSize : Default::default(),
11918            sampleLocationCoordinateRange : [Default::default();2],
11919            sampleLocationSubPixelBits : 0 as _,
11920            variableSampleLocations : 0 as _,
11921        }
11922    }
11923}
11924impl ::std::default::Default for MultisamplePropertiesEXT {
11925    fn default() -> MultisamplePropertiesEXT {
11926        MultisamplePropertiesEXT {
11927            sType : STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,
11928            pNext : 0 as _,
11929            maxSampleLocationGridSize : Default::default(),
11930        }
11931    }
11932}
11933impl ::std::default::Default for PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
11934    fn default() -> PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
11935        PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
11936            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,
11937            pNext : 0 as _,
11938            advancedBlendCoherentOperations : 0 as _,
11939        }
11940    }
11941}
11942impl ::std::default::Default for PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
11943    fn default() -> PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
11944        PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
11945            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,
11946            pNext : 0 as _,
11947            advancedBlendMaxColorAttachments : 0 as _,
11948            advancedBlendIndependentBlend : 0 as _,
11949            advancedBlendNonPremultipliedSrcColor : 0 as _,
11950            advancedBlendNonPremultipliedDstColor : 0 as _,
11951            advancedBlendCorrelatedOverlap : 0 as _,
11952            advancedBlendAllOperations : 0 as _,
11953        }
11954    }
11955}
11956impl ::std::default::Default for PipelineColorBlendAdvancedStateCreateInfoEXT {
11957    fn default() -> PipelineColorBlendAdvancedStateCreateInfoEXT {
11958        PipelineColorBlendAdvancedStateCreateInfoEXT {
11959            sType : STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,
11960            pNext : 0 as _,
11961            srcPremultiplied : 0 as _,
11962            dstPremultiplied : 0 as _,
11963            blendOverlap : Default::default(),
11964        }
11965    }
11966}
11967impl ::std::default::Default for PipelineCoverageToColorStateCreateInfoNV {
11968    fn default() -> PipelineCoverageToColorStateCreateInfoNV {
11969        PipelineCoverageToColorStateCreateInfoNV {
11970            sType : STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,
11971            pNext : 0 as _,
11972            flags : Default::default(),
11973            coverageToColorEnable : 0 as _,
11974            coverageToColorLocation : 0 as _,
11975        }
11976    }
11977}
11978impl ::std::default::Default for PipelineCoverageModulationStateCreateInfoNV {
11979    fn default() -> PipelineCoverageModulationStateCreateInfoNV {
11980        PipelineCoverageModulationStateCreateInfoNV {
11981            sType : STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,
11982            pNext : 0 as _,
11983            flags : Default::default(),
11984            coverageModulationMode : Default::default(),
11985            coverageModulationTableEnable : 0 as _,
11986            coverageModulationTableCount : 0 as _,
11987            pCoverageModulationTable : 0 as _,
11988        }
11989    }
11990}
11991impl ::std::default::Default for PhysicalDeviceShaderSMBuiltinsPropertiesNV {
11992    fn default() -> PhysicalDeviceShaderSMBuiltinsPropertiesNV {
11993        PhysicalDeviceShaderSMBuiltinsPropertiesNV {
11994            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,
11995            pNext : 0 as _,
11996            shaderSMCount : 0 as _,
11997            shaderWarpsPerSM : 0 as _,
11998        }
11999    }
12000}
12001impl ::std::default::Default for PhysicalDeviceShaderSMBuiltinsFeaturesNV {
12002    fn default() -> PhysicalDeviceShaderSMBuiltinsFeaturesNV {
12003        PhysicalDeviceShaderSMBuiltinsFeaturesNV {
12004            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,
12005            pNext : 0 as _,
12006            shaderSMBuiltins : 0 as _,
12007        }
12008    }
12009}
12010impl ::std::default::Default for DrmFormatModifierPropertiesEXT {
12011    fn default() -> DrmFormatModifierPropertiesEXT {
12012        DrmFormatModifierPropertiesEXT {
12013            drmFormatModifier : 0 as _,
12014            drmFormatModifierPlaneCount : 0 as _,
12015            drmFormatModifierTilingFeatures : Default::default(),
12016        }
12017    }
12018}
12019impl ::std::default::Default for DrmFormatModifierPropertiesListEXT {
12020    fn default() -> DrmFormatModifierPropertiesListEXT {
12021        DrmFormatModifierPropertiesListEXT {
12022            sType : STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,
12023            pNext : 0 as _,
12024            drmFormatModifierCount : 0 as _,
12025            pDrmFormatModifierProperties : 0 as _,
12026        }
12027    }
12028}
12029impl ::std::default::Default for PhysicalDeviceImageDrmFormatModifierInfoEXT {
12030    fn default() -> PhysicalDeviceImageDrmFormatModifierInfoEXT {
12031        PhysicalDeviceImageDrmFormatModifierInfoEXT {
12032            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
12033            pNext : 0 as _,
12034            drmFormatModifier : 0 as _,
12035            sharingMode : Default::default(),
12036            queueFamilyIndexCount : 0 as _,
12037            pQueueFamilyIndices : 0 as _,
12038        }
12039    }
12040}
12041impl ::std::default::Default for ImageDrmFormatModifierListCreateInfoEXT {
12042    fn default() -> ImageDrmFormatModifierListCreateInfoEXT {
12043        ImageDrmFormatModifierListCreateInfoEXT {
12044            sType : STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
12045            pNext : 0 as _,
12046            drmFormatModifierCount : 0 as _,
12047            pDrmFormatModifiers : 0 as _,
12048        }
12049    }
12050}
12051impl ::std::default::Default for ImageDrmFormatModifierExplicitCreateInfoEXT {
12052    fn default() -> ImageDrmFormatModifierExplicitCreateInfoEXT {
12053        ImageDrmFormatModifierExplicitCreateInfoEXT {
12054            sType : STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
12055            pNext : 0 as _,
12056            drmFormatModifier : 0 as _,
12057            drmFormatModifierPlaneCount : 0 as _,
12058            pPlaneLayouts : 0 as _,
12059        }
12060    }
12061}
12062impl ::std::default::Default for ImageDrmFormatModifierPropertiesEXT {
12063    fn default() -> ImageDrmFormatModifierPropertiesEXT {
12064        ImageDrmFormatModifierPropertiesEXT {
12065            sType : STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,
12066            pNext : 0 as _,
12067            drmFormatModifier : 0 as _,
12068        }
12069    }
12070}
12071impl ::std::default::Default for ValidationCacheCreateInfoEXT {
12072    fn default() -> ValidationCacheCreateInfoEXT {
12073        ValidationCacheCreateInfoEXT {
12074            sType : STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,
12075            pNext : 0 as _,
12076            flags : Default::default(),
12077            initialDataSize : Default::default(),
12078            pInitialData : 0 as _,
12079        }
12080    }
12081}
12082impl ::std::default::Default for ShaderModuleValidationCacheCreateInfoEXT {
12083    fn default() -> ShaderModuleValidationCacheCreateInfoEXT {
12084        ShaderModuleValidationCacheCreateInfoEXT {
12085            sType : STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,
12086            pNext : 0 as _,
12087            validationCache : Default::default(),
12088        }
12089    }
12090}
12091impl ::std::default::Default for ShadingRatePaletteNV {
12092    fn default() -> ShadingRatePaletteNV {
12093        ShadingRatePaletteNV {
12094            shadingRatePaletteEntryCount : 0 as _,
12095            pShadingRatePaletteEntries : 0 as _,
12096        }
12097    }
12098}
12099impl ::std::default::Default for PipelineViewportShadingRateImageStateCreateInfoNV {
12100    fn default() -> PipelineViewportShadingRateImageStateCreateInfoNV {
12101        PipelineViewportShadingRateImageStateCreateInfoNV {
12102            sType : STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
12103            pNext : 0 as _,
12104            shadingRateImageEnable : 0 as _,
12105            viewportCount : 0 as _,
12106            pShadingRatePalettes : 0 as _,
12107        }
12108    }
12109}
12110impl ::std::default::Default for PhysicalDeviceShadingRateImageFeaturesNV {
12111    fn default() -> PhysicalDeviceShadingRateImageFeaturesNV {
12112        PhysicalDeviceShadingRateImageFeaturesNV {
12113            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
12114            pNext : 0 as _,
12115            shadingRateImage : 0 as _,
12116            shadingRateCoarseSampleOrder : 0 as _,
12117        }
12118    }
12119}
12120impl ::std::default::Default for PhysicalDeviceShadingRateImagePropertiesNV {
12121    fn default() -> PhysicalDeviceShadingRateImagePropertiesNV {
12122        PhysicalDeviceShadingRateImagePropertiesNV {
12123            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
12124            pNext : 0 as _,
12125            shadingRateTexelSize : Default::default(),
12126            shadingRatePaletteSize : 0 as _,
12127            shadingRateMaxCoarseSamples : 0 as _,
12128        }
12129    }
12130}
12131impl ::std::default::Default for CoarseSampleLocationNV {
12132    fn default() -> CoarseSampleLocationNV {
12133        CoarseSampleLocationNV {
12134            pixelX : 0 as _,
12135            pixelY : 0 as _,
12136            sample : 0 as _,
12137        }
12138    }
12139}
12140impl ::std::default::Default for CoarseSampleOrderCustomNV {
12141    fn default() -> CoarseSampleOrderCustomNV {
12142        CoarseSampleOrderCustomNV {
12143            shadingRate : Default::default(),
12144            sampleCount : 0 as _,
12145            sampleLocationCount : 0 as _,
12146            pSampleLocations : 0 as _,
12147        }
12148    }
12149}
12150impl ::std::default::Default for PipelineViewportCoarseSampleOrderStateCreateInfoNV {
12151    fn default() -> PipelineViewportCoarseSampleOrderStateCreateInfoNV {
12152        PipelineViewportCoarseSampleOrderStateCreateInfoNV {
12153            sType : STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
12154            pNext : 0 as _,
12155            sampleOrderType : Default::default(),
12156            customSampleOrderCount : 0 as _,
12157            pCustomSampleOrders : 0 as _,
12158        }
12159    }
12160}
12161impl ::std::default::Default for RayTracingShaderGroupCreateInfoNV {
12162    fn default() -> RayTracingShaderGroupCreateInfoNV {
12163        RayTracingShaderGroupCreateInfoNV {
12164            sType : STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,
12165            pNext : 0 as _,
12166            r#type : Default::default(),
12167            generalShader : 0 as _,
12168            closestHitShader : 0 as _,
12169            anyHitShader : 0 as _,
12170            intersectionShader : 0 as _,
12171        }
12172    }
12173}
12174impl ::std::default::Default for RayTracingPipelineCreateInfoNV {
12175    fn default() -> RayTracingPipelineCreateInfoNV {
12176        RayTracingPipelineCreateInfoNV {
12177            sType : STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,
12178            pNext : 0 as _,
12179            flags : Default::default(),
12180            stageCount : 0 as _,
12181            pStages : 0 as _,
12182            groupCount : 0 as _,
12183            pGroups : 0 as _,
12184            maxRecursionDepth : 0 as _,
12185            layout : Default::default(),
12186            basePipelineHandle : Default::default(),
12187            basePipelineIndex : 0 as _,
12188        }
12189    }
12190}
12191impl ::std::default::Default for GeometryTrianglesNV {
12192    fn default() -> GeometryTrianglesNV {
12193        GeometryTrianglesNV {
12194            sType : STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,
12195            pNext : 0 as _,
12196            vertexData : Default::default(),
12197            vertexOffset : Default::default(),
12198            vertexCount : 0 as _,
12199            vertexStride : Default::default(),
12200            vertexFormat : Default::default(),
12201            indexData : Default::default(),
12202            indexOffset : Default::default(),
12203            indexCount : 0 as _,
12204            indexType : Default::default(),
12205            transformData : Default::default(),
12206            transformOffset : Default::default(),
12207        }
12208    }
12209}
12210impl ::std::default::Default for GeometryAABBNV {
12211    fn default() -> GeometryAABBNV {
12212        GeometryAABBNV {
12213            sType : STRUCTURE_TYPE_GEOMETRY_AABB_NV,
12214            pNext : 0 as _,
12215            aabbData : Default::default(),
12216            numAABBs : 0 as _,
12217            stride : 0 as _,
12218            offset : Default::default(),
12219        }
12220    }
12221}
12222impl ::std::default::Default for GeometryDataNV {
12223    fn default() -> GeometryDataNV {
12224        GeometryDataNV {
12225            triangles : Default::default(),
12226            aabbs : Default::default(),
12227        }
12228    }
12229}
12230impl ::std::default::Default for GeometryNV {
12231    fn default() -> GeometryNV {
12232        GeometryNV {
12233            sType : STRUCTURE_TYPE_GEOMETRY_NV,
12234            pNext : 0 as _,
12235            geometryType : Default::default(),
12236            geometry : Default::default(),
12237            flags : Default::default(),
12238        }
12239    }
12240}
12241impl ::std::default::Default for AccelerationStructureInfoNV {
12242    fn default() -> AccelerationStructureInfoNV {
12243        AccelerationStructureInfoNV {
12244            sType : STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,
12245            pNext : 0 as _,
12246            r#type : Default::default(),
12247            flags : Default::default(),
12248            instanceCount : 0 as _,
12249            geometryCount : 0 as _,
12250            pGeometries : 0 as _,
12251        }
12252    }
12253}
12254impl ::std::default::Default for AccelerationStructureCreateInfoNV {
12255    fn default() -> AccelerationStructureCreateInfoNV {
12256        AccelerationStructureCreateInfoNV {
12257            sType : STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,
12258            pNext : 0 as _,
12259            compactedSize : Default::default(),
12260            info : Default::default(),
12261        }
12262    }
12263}
12264impl ::std::default::Default for BindAccelerationStructureMemoryInfoKHR {
12265    fn default() -> BindAccelerationStructureMemoryInfoKHR {
12266        BindAccelerationStructureMemoryInfoKHR {
12267            sType : STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
12268            pNext : 0 as _,
12269            accelerationStructure : Default::default(),
12270            memory : Default::default(),
12271            memoryOffset : Default::default(),
12272            deviceIndexCount : 0 as _,
12273            pDeviceIndices : 0 as _,
12274        }
12275    }
12276}
12277impl ::std::default::Default for WriteDescriptorSetAccelerationStructureKHR {
12278    fn default() -> WriteDescriptorSetAccelerationStructureKHR {
12279        WriteDescriptorSetAccelerationStructureKHR {
12280            sType : STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
12281            pNext : 0 as _,
12282            accelerationStructureCount : 0 as _,
12283            pAccelerationStructures : 0 as _,
12284        }
12285    }
12286}
12287impl ::std::default::Default for AccelerationStructureMemoryRequirementsInfoNV {
12288    fn default() -> AccelerationStructureMemoryRequirementsInfoNV {
12289        AccelerationStructureMemoryRequirementsInfoNV {
12290            sType : STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,
12291            pNext : 0 as _,
12292            r#type : Default::default(),
12293            accelerationStructure : Default::default(),
12294        }
12295    }
12296}
12297impl ::std::default::Default for PhysicalDeviceRayTracingPropertiesNV {
12298    fn default() -> PhysicalDeviceRayTracingPropertiesNV {
12299        PhysicalDeviceRayTracingPropertiesNV {
12300            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,
12301            pNext : 0 as _,
12302            shaderGroupHandleSize : 0 as _,
12303            maxRecursionDepth : 0 as _,
12304            maxShaderGroupStride : 0 as _,
12305            shaderGroupBaseAlignment : 0 as _,
12306            maxGeometryCount : 0 as _,
12307            maxInstanceCount : 0 as _,
12308            maxTriangleCount : 0 as _,
12309            maxDescriptorSetAccelerationStructures : 0 as _,
12310        }
12311    }
12312}
12313impl ::std::default::Default for TransformMatrixKHR {
12314    fn default() -> TransformMatrixKHR {
12315        TransformMatrixKHR {
12316            matrix : [Default::default();12],
12317        }
12318    }
12319}
12320impl ::std::default::Default for AabbPositionsKHR {
12321    fn default() -> AabbPositionsKHR {
12322        AabbPositionsKHR {
12323            minX : 0 as _,
12324            minY : 0 as _,
12325            minZ : 0 as _,
12326            maxX : 0 as _,
12327            maxY : 0 as _,
12328            maxZ : 0 as _,
12329        }
12330    }
12331}
12332impl ::std::default::Default for PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
12333    fn default() -> PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
12334        PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
12335            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,
12336            pNext : 0 as _,
12337            representativeFragmentTest : 0 as _,
12338        }
12339    }
12340}
12341impl ::std::default::Default for PipelineRepresentativeFragmentTestStateCreateInfoNV {
12342    fn default() -> PipelineRepresentativeFragmentTestStateCreateInfoNV {
12343        PipelineRepresentativeFragmentTestStateCreateInfoNV {
12344            sType : STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV,
12345            pNext : 0 as _,
12346            representativeFragmentTestEnable : 0 as _,
12347        }
12348    }
12349}
12350impl ::std::default::Default for PhysicalDeviceImageViewImageFormatInfoEXT {
12351    fn default() -> PhysicalDeviceImageViewImageFormatInfoEXT {
12352        PhysicalDeviceImageViewImageFormatInfoEXT {
12353            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,
12354            pNext : 0 as _,
12355            imageViewType : Default::default(),
12356        }
12357    }
12358}
12359impl ::std::default::Default for FilterCubicImageViewImageFormatPropertiesEXT {
12360    fn default() -> FilterCubicImageViewImageFormatPropertiesEXT {
12361        FilterCubicImageViewImageFormatPropertiesEXT {
12362            sType : STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,
12363            pNext : 0 as _,
12364            filterCubic : 0 as _,
12365            filterCubicMinmax : 0 as _,
12366        }
12367    }
12368}
12369impl ::std::default::Default for DeviceQueueGlobalPriorityCreateInfoEXT {
12370    fn default() -> DeviceQueueGlobalPriorityCreateInfoEXT {
12371        DeviceQueueGlobalPriorityCreateInfoEXT {
12372            sType : STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT,
12373            pNext : 0 as _,
12374            globalPriority : Default::default(),
12375        }
12376    }
12377}
12378impl ::std::default::Default for ImportMemoryHostPointerInfoEXT {
12379    fn default() -> ImportMemoryHostPointerInfoEXT {
12380        ImportMemoryHostPointerInfoEXT {
12381            sType : STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT,
12382            pNext : 0 as _,
12383            handleType : Default::default(),
12384            pHostPointer : 0 as _,
12385        }
12386    }
12387}
12388impl ::std::default::Default for MemoryHostPointerPropertiesEXT {
12389    fn default() -> MemoryHostPointerPropertiesEXT {
12390        MemoryHostPointerPropertiesEXT {
12391            sType : STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT,
12392            pNext : 0 as _,
12393            memoryTypeBits : 0 as _,
12394        }
12395    }
12396}
12397impl ::std::default::Default for PhysicalDeviceExternalMemoryHostPropertiesEXT {
12398    fn default() -> PhysicalDeviceExternalMemoryHostPropertiesEXT {
12399        PhysicalDeviceExternalMemoryHostPropertiesEXT {
12400            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT,
12401            pNext : 0 as _,
12402            minImportedHostPointerAlignment : Default::default(),
12403        }
12404    }
12405}
12406impl ::std::default::Default for PipelineCompilerControlCreateInfoAMD {
12407    fn default() -> PipelineCompilerControlCreateInfoAMD {
12408        PipelineCompilerControlCreateInfoAMD {
12409            sType : STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD,
12410            pNext : 0 as _,
12411            compilerControlFlags : Default::default(),
12412        }
12413    }
12414}
12415impl ::std::default::Default for CalibratedTimestampInfoEXT {
12416    fn default() -> CalibratedTimestampInfoEXT {
12417        CalibratedTimestampInfoEXT {
12418            sType : STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT,
12419            pNext : 0 as _,
12420            timeDomain : Default::default(),
12421        }
12422    }
12423}
12424impl ::std::default::Default for PhysicalDeviceShaderCorePropertiesAMD {
12425    fn default() -> PhysicalDeviceShaderCorePropertiesAMD {
12426        PhysicalDeviceShaderCorePropertiesAMD {
12427            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD,
12428            pNext : 0 as _,
12429            shaderEngineCount : 0 as _,
12430            shaderArraysPerEngineCount : 0 as _,
12431            computeUnitsPerShaderArray : 0 as _,
12432            simdPerComputeUnit : 0 as _,
12433            wavefrontsPerSimd : 0 as _,
12434            wavefrontSize : 0 as _,
12435            sgprsPerSimd : 0 as _,
12436            minSgprAllocation : 0 as _,
12437            maxSgprAllocation : 0 as _,
12438            sgprAllocationGranularity : 0 as _,
12439            vgprsPerSimd : 0 as _,
12440            minVgprAllocation : 0 as _,
12441            maxVgprAllocation : 0 as _,
12442            vgprAllocationGranularity : 0 as _,
12443        }
12444    }
12445}
12446impl ::std::default::Default for DeviceMemoryOverallocationCreateInfoAMD {
12447    fn default() -> DeviceMemoryOverallocationCreateInfoAMD {
12448        DeviceMemoryOverallocationCreateInfoAMD {
12449            sType : STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD,
12450            pNext : 0 as _,
12451            overallocationBehavior : Default::default(),
12452        }
12453    }
12454}
12455impl ::std::default::Default for PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
12456    fn default() -> PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
12457        PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
12458            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT,
12459            pNext : 0 as _,
12460            maxVertexAttribDivisor : 0 as _,
12461        }
12462    }
12463}
12464impl ::std::default::Default for VertexInputBindingDivisorDescriptionEXT {
12465    fn default() -> VertexInputBindingDivisorDescriptionEXT {
12466        VertexInputBindingDivisorDescriptionEXT {
12467            binding : 0 as _,
12468            divisor : 0 as _,
12469        }
12470    }
12471}
12472impl ::std::default::Default for PipelineVertexInputDivisorStateCreateInfoEXT {
12473    fn default() -> PipelineVertexInputDivisorStateCreateInfoEXT {
12474        PipelineVertexInputDivisorStateCreateInfoEXT {
12475            sType : STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT,
12476            pNext : 0 as _,
12477            vertexBindingDivisorCount : 0 as _,
12478            pVertexBindingDivisors : 0 as _,
12479        }
12480    }
12481}
12482impl ::std::default::Default for PhysicalDeviceVertexAttributeDivisorFeaturesEXT {
12483    fn default() -> PhysicalDeviceVertexAttributeDivisorFeaturesEXT {
12484        PhysicalDeviceVertexAttributeDivisorFeaturesEXT {
12485            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT,
12486            pNext : 0 as _,
12487            vertexAttributeInstanceRateDivisor : 0 as _,
12488            vertexAttributeInstanceRateZeroDivisor : 0 as _,
12489        }
12490    }
12491}
12492impl ::std::default::Default for PipelineCreationFeedbackEXT {
12493    fn default() -> PipelineCreationFeedbackEXT {
12494        PipelineCreationFeedbackEXT {
12495            flags : Default::default(),
12496            duration : 0 as _,
12497        }
12498    }
12499}
12500impl ::std::default::Default for PipelineCreationFeedbackCreateInfoEXT {
12501    fn default() -> PipelineCreationFeedbackCreateInfoEXT {
12502        PipelineCreationFeedbackCreateInfoEXT {
12503            sType : STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT,
12504            pNext : 0 as _,
12505            pPipelineCreationFeedback : 0 as _,
12506            pipelineStageCreationFeedbackCount : 0 as _,
12507            pPipelineStageCreationFeedbacks : 0 as _,
12508        }
12509    }
12510}
12511impl ::std::default::Default for PhysicalDeviceComputeShaderDerivativesFeaturesNV {
12512    fn default() -> PhysicalDeviceComputeShaderDerivativesFeaturesNV {
12513        PhysicalDeviceComputeShaderDerivativesFeaturesNV {
12514            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV,
12515            pNext : 0 as _,
12516            computeDerivativeGroupQuads : 0 as _,
12517            computeDerivativeGroupLinear : 0 as _,
12518        }
12519    }
12520}
12521impl ::std::default::Default for PhysicalDeviceMeshShaderFeaturesNV {
12522    fn default() -> PhysicalDeviceMeshShaderFeaturesNV {
12523        PhysicalDeviceMeshShaderFeaturesNV {
12524            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV,
12525            pNext : 0 as _,
12526            taskShader : 0 as _,
12527            meshShader : 0 as _,
12528        }
12529    }
12530}
12531impl ::std::default::Default for PhysicalDeviceMeshShaderPropertiesNV {
12532    fn default() -> PhysicalDeviceMeshShaderPropertiesNV {
12533        PhysicalDeviceMeshShaderPropertiesNV {
12534            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV,
12535            pNext : 0 as _,
12536            maxDrawMeshTasksCount : 0 as _,
12537            maxTaskWorkGroupInvocations : 0 as _,
12538            maxTaskWorkGroupSize : [Default::default();3],
12539            maxTaskTotalMemorySize : 0 as _,
12540            maxTaskOutputCount : 0 as _,
12541            maxMeshWorkGroupInvocations : 0 as _,
12542            maxMeshWorkGroupSize : [Default::default();3],
12543            maxMeshTotalMemorySize : 0 as _,
12544            maxMeshOutputVertices : 0 as _,
12545            maxMeshOutputPrimitives : 0 as _,
12546            maxMeshMultiviewViewCount : 0 as _,
12547            meshOutputPerVertexGranularity : 0 as _,
12548            meshOutputPerPrimitiveGranularity : 0 as _,
12549        }
12550    }
12551}
12552impl ::std::default::Default for DrawMeshTasksIndirectCommandNV {
12553    fn default() -> DrawMeshTasksIndirectCommandNV {
12554        DrawMeshTasksIndirectCommandNV {
12555            taskCount : 0 as _,
12556            firstTask : 0 as _,
12557        }
12558    }
12559}
12560impl ::std::default::Default for PhysicalDeviceFragmentShaderBarycentricFeaturesNV {
12561    fn default() -> PhysicalDeviceFragmentShaderBarycentricFeaturesNV {
12562        PhysicalDeviceFragmentShaderBarycentricFeaturesNV {
12563            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV,
12564            pNext : 0 as _,
12565            fragmentShaderBarycentric : 0 as _,
12566        }
12567    }
12568}
12569impl ::std::default::Default for PhysicalDeviceShaderImageFootprintFeaturesNV {
12570    fn default() -> PhysicalDeviceShaderImageFootprintFeaturesNV {
12571        PhysicalDeviceShaderImageFootprintFeaturesNV {
12572            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,
12573            pNext : 0 as _,
12574            imageFootprint : 0 as _,
12575        }
12576    }
12577}
12578impl ::std::default::Default for PipelineViewportExclusiveScissorStateCreateInfoNV {
12579    fn default() -> PipelineViewportExclusiveScissorStateCreateInfoNV {
12580        PipelineViewportExclusiveScissorStateCreateInfoNV {
12581            sType : STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,
12582            pNext : 0 as _,
12583            exclusiveScissorCount : 0 as _,
12584            pExclusiveScissors : 0 as _,
12585        }
12586    }
12587}
12588impl ::std::default::Default for PhysicalDeviceExclusiveScissorFeaturesNV {
12589    fn default() -> PhysicalDeviceExclusiveScissorFeaturesNV {
12590        PhysicalDeviceExclusiveScissorFeaturesNV {
12591            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,
12592            pNext : 0 as _,
12593            exclusiveScissor : 0 as _,
12594        }
12595    }
12596}
12597impl ::std::default::Default for QueueFamilyCheckpointPropertiesNV {
12598    fn default() -> QueueFamilyCheckpointPropertiesNV {
12599        QueueFamilyCheckpointPropertiesNV {
12600            sType : STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,
12601            pNext : 0 as _,
12602            checkpointExecutionStageMask : Default::default(),
12603        }
12604    }
12605}
12606impl ::std::default::Default for CheckpointDataNV {
12607    fn default() -> CheckpointDataNV {
12608        CheckpointDataNV {
12609            sType : STRUCTURE_TYPE_CHECKPOINT_DATA_NV,
12610            pNext : 0 as _,
12611            stage : Default::default(),
12612            pCheckpointMarker : 0 as _,
12613        }
12614    }
12615}
12616impl ::std::default::Default for PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
12617    fn default() -> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
12618        PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
12619            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,
12620            pNext : 0 as _,
12621            shaderIntegerFunctions2 : 0 as _,
12622        }
12623    }
12624}
12625impl ::std::default::Default for InitializePerformanceApiInfoINTEL {
12626    fn default() -> InitializePerformanceApiInfoINTEL {
12627        InitializePerformanceApiInfoINTEL {
12628            sType : STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,
12629            pNext : 0 as _,
12630            pUserData : 0 as _,
12631        }
12632    }
12633}
12634impl ::std::default::Default for QueryPoolPerformanceQueryCreateInfoINTEL {
12635    fn default() -> QueryPoolPerformanceQueryCreateInfoINTEL {
12636        QueryPoolPerformanceQueryCreateInfoINTEL {
12637            sType : STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
12638            pNext : 0 as _,
12639            performanceCountersSampling : Default::default(),
12640        }
12641    }
12642}
12643impl ::std::default::Default for PerformanceMarkerInfoINTEL {
12644    fn default() -> PerformanceMarkerInfoINTEL {
12645        PerformanceMarkerInfoINTEL {
12646            sType : STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,
12647            pNext : 0 as _,
12648            marker : 0 as _,
12649        }
12650    }
12651}
12652impl ::std::default::Default for PerformanceStreamMarkerInfoINTEL {
12653    fn default() -> PerformanceStreamMarkerInfoINTEL {
12654        PerformanceStreamMarkerInfoINTEL {
12655            sType : STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,
12656            pNext : 0 as _,
12657            marker : 0 as _,
12658        }
12659    }
12660}
12661impl ::std::default::Default for PerformanceOverrideInfoINTEL {
12662    fn default() -> PerformanceOverrideInfoINTEL {
12663        PerformanceOverrideInfoINTEL {
12664            sType : STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,
12665            pNext : 0 as _,
12666            r#type : Default::default(),
12667            enable : 0 as _,
12668            parameter : 0 as _,
12669        }
12670    }
12671}
12672impl ::std::default::Default for PerformanceConfigurationAcquireInfoINTEL {
12673    fn default() -> PerformanceConfigurationAcquireInfoINTEL {
12674        PerformanceConfigurationAcquireInfoINTEL {
12675            sType : STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,
12676            pNext : 0 as _,
12677            r#type : Default::default(),
12678        }
12679    }
12680}
12681impl ::std::default::Default for PhysicalDevicePCIBusInfoPropertiesEXT {
12682    fn default() -> PhysicalDevicePCIBusInfoPropertiesEXT {
12683        PhysicalDevicePCIBusInfoPropertiesEXT {
12684            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,
12685            pNext : 0 as _,
12686            pciDomain : 0 as _,
12687            pciBus : 0 as _,
12688            pciDevice : 0 as _,
12689            pciFunction : 0 as _,
12690        }
12691    }
12692}
12693impl ::std::default::Default for DisplayNativeHdrSurfaceCapabilitiesAMD {
12694    fn default() -> DisplayNativeHdrSurfaceCapabilitiesAMD {
12695        DisplayNativeHdrSurfaceCapabilitiesAMD {
12696            sType : STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,
12697            pNext : 0 as _,
12698            localDimmingSupport : 0 as _,
12699        }
12700    }
12701}
12702impl ::std::default::Default for SwapchainDisplayNativeHdrCreateInfoAMD {
12703    fn default() -> SwapchainDisplayNativeHdrCreateInfoAMD {
12704        SwapchainDisplayNativeHdrCreateInfoAMD {
12705            sType : STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,
12706            pNext : 0 as _,
12707            localDimmingEnable : 0 as _,
12708        }
12709    }
12710}
12711impl ::std::default::Default for PhysicalDeviceFragmentDensityMapFeaturesEXT {
12712    fn default() -> PhysicalDeviceFragmentDensityMapFeaturesEXT {
12713        PhysicalDeviceFragmentDensityMapFeaturesEXT {
12714            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,
12715            pNext : 0 as _,
12716            fragmentDensityMap : 0 as _,
12717            fragmentDensityMapDynamic : 0 as _,
12718            fragmentDensityMapNonSubsampledImages : 0 as _,
12719        }
12720    }
12721}
12722impl ::std::default::Default for PhysicalDeviceFragmentDensityMapPropertiesEXT {
12723    fn default() -> PhysicalDeviceFragmentDensityMapPropertiesEXT {
12724        PhysicalDeviceFragmentDensityMapPropertiesEXT {
12725            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,
12726            pNext : 0 as _,
12727            minFragmentDensityTexelSize : Default::default(),
12728            maxFragmentDensityTexelSize : Default::default(),
12729            fragmentDensityInvocations : 0 as _,
12730        }
12731    }
12732}
12733impl ::std::default::Default for RenderPassFragmentDensityMapCreateInfoEXT {
12734    fn default() -> RenderPassFragmentDensityMapCreateInfoEXT {
12735        RenderPassFragmentDensityMapCreateInfoEXT {
12736            sType : STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
12737            pNext : 0 as _,
12738            fragmentDensityMapAttachment : Default::default(),
12739        }
12740    }
12741}
12742impl ::std::default::Default for PhysicalDeviceSubgroupSizeControlFeaturesEXT {
12743    fn default() -> PhysicalDeviceSubgroupSizeControlFeaturesEXT {
12744        PhysicalDeviceSubgroupSizeControlFeaturesEXT {
12745            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,
12746            pNext : 0 as _,
12747            subgroupSizeControl : 0 as _,
12748            computeFullSubgroups : 0 as _,
12749        }
12750    }
12751}
12752impl ::std::default::Default for PhysicalDeviceSubgroupSizeControlPropertiesEXT {
12753    fn default() -> PhysicalDeviceSubgroupSizeControlPropertiesEXT {
12754        PhysicalDeviceSubgroupSizeControlPropertiesEXT {
12755            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,
12756            pNext : 0 as _,
12757            minSubgroupSize : 0 as _,
12758            maxSubgroupSize : 0 as _,
12759            maxComputeWorkgroupSubgroups : 0 as _,
12760            requiredSubgroupSizeStages : Default::default(),
12761        }
12762    }
12763}
12764impl ::std::default::Default for PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT {
12765    fn default() -> PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT {
12766        PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT {
12767            sType : STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,
12768            pNext : 0 as _,
12769            requiredSubgroupSize : 0 as _,
12770        }
12771    }
12772}
12773impl ::std::default::Default for PhysicalDeviceShaderCoreProperties2AMD {
12774    fn default() -> PhysicalDeviceShaderCoreProperties2AMD {
12775        PhysicalDeviceShaderCoreProperties2AMD {
12776            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,
12777            pNext : 0 as _,
12778            shaderCoreFeatures : Default::default(),
12779            activeComputeUnitCount : 0 as _,
12780        }
12781    }
12782}
12783impl ::std::default::Default for PhysicalDeviceCoherentMemoryFeaturesAMD {
12784    fn default() -> PhysicalDeviceCoherentMemoryFeaturesAMD {
12785        PhysicalDeviceCoherentMemoryFeaturesAMD {
12786            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,
12787            pNext : 0 as _,
12788            deviceCoherentMemory : 0 as _,
12789        }
12790    }
12791}
12792impl ::std::default::Default for PhysicalDeviceMemoryBudgetPropertiesEXT {
12793    fn default() -> PhysicalDeviceMemoryBudgetPropertiesEXT {
12794        PhysicalDeviceMemoryBudgetPropertiesEXT {
12795            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,
12796            pNext : 0 as _,
12797            heapBudget : [Default::default();MAX_MEMORY_HEAPS],
12798            heapUsage : [Default::default();MAX_MEMORY_HEAPS],
12799        }
12800    }
12801}
12802impl ::std::default::Default for PhysicalDeviceMemoryPriorityFeaturesEXT {
12803    fn default() -> PhysicalDeviceMemoryPriorityFeaturesEXT {
12804        PhysicalDeviceMemoryPriorityFeaturesEXT {
12805            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,
12806            pNext : 0 as _,
12807            memoryPriority : 0 as _,
12808        }
12809    }
12810}
12811impl ::std::default::Default for MemoryPriorityAllocateInfoEXT {
12812    fn default() -> MemoryPriorityAllocateInfoEXT {
12813        MemoryPriorityAllocateInfoEXT {
12814            sType : STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,
12815            pNext : 0 as _,
12816            priority : 0 as _,
12817        }
12818    }
12819}
12820impl ::std::default::Default for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
12821    fn default() -> PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
12822        PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
12823            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV,
12824            pNext : 0 as _,
12825            dedicatedAllocationImageAliasing : 0 as _,
12826        }
12827    }
12828}
12829impl ::std::default::Default for PhysicalDeviceBufferDeviceAddressFeaturesEXT {
12830    fn default() -> PhysicalDeviceBufferDeviceAddressFeaturesEXT {
12831        PhysicalDeviceBufferDeviceAddressFeaturesEXT {
12832            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
12833            pNext : 0 as _,
12834            bufferDeviceAddress : 0 as _,
12835            bufferDeviceAddressCaptureReplay : 0 as _,
12836            bufferDeviceAddressMultiDevice : 0 as _,
12837        }
12838    }
12839}
12840impl ::std::default::Default for BufferDeviceAddressCreateInfoEXT {
12841    fn default() -> BufferDeviceAddressCreateInfoEXT {
12842        BufferDeviceAddressCreateInfoEXT {
12843            sType : STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT,
12844            pNext : 0 as _,
12845            deviceAddress : Default::default(),
12846        }
12847    }
12848}
12849impl ::std::default::Default for PhysicalDeviceToolPropertiesEXT {
12850    fn default() -> PhysicalDeviceToolPropertiesEXT {
12851        PhysicalDeviceToolPropertiesEXT {
12852            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT,
12853            pNext : 0 as _,
12854            name : [Default::default();MAX_EXTENSION_NAME_SIZE],
12855            version : [Default::default();MAX_EXTENSION_NAME_SIZE],
12856            purposes : Default::default(),
12857            description : [Default::default();MAX_DESCRIPTION_SIZE],
12858            layer : [Default::default();MAX_EXTENSION_NAME_SIZE],
12859        }
12860    }
12861}
12862impl ::std::default::Default for ValidationFeaturesEXT {
12863    fn default() -> ValidationFeaturesEXT {
12864        ValidationFeaturesEXT {
12865            sType : STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,
12866            pNext : 0 as _,
12867            enabledValidationFeatureCount : 0 as _,
12868            pEnabledValidationFeatures : 0 as _,
12869            disabledValidationFeatureCount : 0 as _,
12870            pDisabledValidationFeatures : 0 as _,
12871        }
12872    }
12873}
12874impl ::std::default::Default for CooperativeMatrixPropertiesNV {
12875    fn default() -> CooperativeMatrixPropertiesNV {
12876        CooperativeMatrixPropertiesNV {
12877            sType : STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,
12878            pNext : 0 as _,
12879            MSize : 0 as _,
12880            NSize : 0 as _,
12881            KSize : 0 as _,
12882            AType : Default::default(),
12883            BType : Default::default(),
12884            CType : Default::default(),
12885            DType : Default::default(),
12886            scope : Default::default(),
12887        }
12888    }
12889}
12890impl ::std::default::Default for PhysicalDeviceCooperativeMatrixFeaturesNV {
12891    fn default() -> PhysicalDeviceCooperativeMatrixFeaturesNV {
12892        PhysicalDeviceCooperativeMatrixFeaturesNV {
12893            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,
12894            pNext : 0 as _,
12895            cooperativeMatrix : 0 as _,
12896            cooperativeMatrixRobustBufferAccess : 0 as _,
12897        }
12898    }
12899}
12900impl ::std::default::Default for PhysicalDeviceCooperativeMatrixPropertiesNV {
12901    fn default() -> PhysicalDeviceCooperativeMatrixPropertiesNV {
12902        PhysicalDeviceCooperativeMatrixPropertiesNV {
12903            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,
12904            pNext : 0 as _,
12905            cooperativeMatrixSupportedStages : Default::default(),
12906        }
12907    }
12908}
12909impl ::std::default::Default for PhysicalDeviceCoverageReductionModeFeaturesNV {
12910    fn default() -> PhysicalDeviceCoverageReductionModeFeaturesNV {
12911        PhysicalDeviceCoverageReductionModeFeaturesNV {
12912            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,
12913            pNext : 0 as _,
12914            coverageReductionMode : 0 as _,
12915        }
12916    }
12917}
12918impl ::std::default::Default for PipelineCoverageReductionStateCreateInfoNV {
12919    fn default() -> PipelineCoverageReductionStateCreateInfoNV {
12920        PipelineCoverageReductionStateCreateInfoNV {
12921            sType : STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,
12922            pNext : 0 as _,
12923            flags : Default::default(),
12924            coverageReductionMode : Default::default(),
12925        }
12926    }
12927}
12928impl ::std::default::Default for FramebufferMixedSamplesCombinationNV {
12929    fn default() -> FramebufferMixedSamplesCombinationNV {
12930        FramebufferMixedSamplesCombinationNV {
12931            sType : STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,
12932            pNext : 0 as _,
12933            coverageReductionMode : Default::default(),
12934            rasterizationSamples : Default::default(),
12935            depthStencilSamples : Default::default(),
12936            colorSamples : Default::default(),
12937        }
12938    }
12939}
12940impl ::std::default::Default for PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
12941    fn default() -> PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
12942        PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
12943            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,
12944            pNext : 0 as _,
12945            fragmentShaderSampleInterlock : 0 as _,
12946            fragmentShaderPixelInterlock : 0 as _,
12947            fragmentShaderShadingRateInterlock : 0 as _,
12948        }
12949    }
12950}
12951impl ::std::default::Default for PhysicalDeviceYcbcrImageArraysFeaturesEXT {
12952    fn default() -> PhysicalDeviceYcbcrImageArraysFeaturesEXT {
12953        PhysicalDeviceYcbcrImageArraysFeaturesEXT {
12954            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,
12955            pNext : 0 as _,
12956            ycbcrImageArrays : 0 as _,
12957        }
12958    }
12959}
12960impl ::std::default::Default for HeadlessSurfaceCreateInfoEXT {
12961    fn default() -> HeadlessSurfaceCreateInfoEXT {
12962        HeadlessSurfaceCreateInfoEXT {
12963            sType : STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,
12964            pNext : 0 as _,
12965            flags : Default::default(),
12966        }
12967    }
12968}
12969impl ::std::default::Default for PhysicalDeviceLineRasterizationFeaturesEXT {
12970    fn default() -> PhysicalDeviceLineRasterizationFeaturesEXT {
12971        PhysicalDeviceLineRasterizationFeaturesEXT {
12972            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
12973            pNext : 0 as _,
12974            rectangularLines : 0 as _,
12975            bresenhamLines : 0 as _,
12976            smoothLines : 0 as _,
12977            stippledRectangularLines : 0 as _,
12978            stippledBresenhamLines : 0 as _,
12979            stippledSmoothLines : 0 as _,
12980        }
12981    }
12982}
12983impl ::std::default::Default for PhysicalDeviceLineRasterizationPropertiesEXT {
12984    fn default() -> PhysicalDeviceLineRasterizationPropertiesEXT {
12985        PhysicalDeviceLineRasterizationPropertiesEXT {
12986            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
12987            pNext : 0 as _,
12988            lineSubPixelPrecisionBits : 0 as _,
12989        }
12990    }
12991}
12992impl ::std::default::Default for PipelineRasterizationLineStateCreateInfoEXT {
12993    fn default() -> PipelineRasterizationLineStateCreateInfoEXT {
12994        PipelineRasterizationLineStateCreateInfoEXT {
12995            sType : STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
12996            pNext : 0 as _,
12997            lineRasterizationMode : Default::default(),
12998            stippledLineEnable : 0 as _,
12999            lineStippleFactor : 0 as _,
13000            lineStipplePattern : Default::default(),
13001        }
13002    }
13003}
13004impl ::std::default::Default for PhysicalDeviceIndexTypeUint8FeaturesEXT {
13005    fn default() -> PhysicalDeviceIndexTypeUint8FeaturesEXT {
13006        PhysicalDeviceIndexTypeUint8FeaturesEXT {
13007            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
13008            pNext : 0 as _,
13009            indexTypeUint8 : 0 as _,
13010        }
13011    }
13012}
13013impl ::std::default::Default for PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT {
13014    fn default() -> PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT {
13015        PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT {
13016            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT,
13017            pNext : 0 as _,
13018            shaderDemoteToHelperInvocation : 0 as _,
13019        }
13020    }
13021}
13022impl ::std::default::Default for PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
13023    fn default() -> PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
13024        PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
13025            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV,
13026            pNext : 0 as _,
13027            maxGraphicsShaderGroupCount : 0 as _,
13028            maxIndirectSequenceCount : 0 as _,
13029            maxIndirectCommandsTokenCount : 0 as _,
13030            maxIndirectCommandsStreamCount : 0 as _,
13031            maxIndirectCommandsTokenOffset : 0 as _,
13032            maxIndirectCommandsStreamStride : 0 as _,
13033            minSequencesCountBufferOffsetAlignment : 0 as _,
13034            minSequencesIndexBufferOffsetAlignment : 0 as _,
13035            minIndirectCommandsBufferOffsetAlignment : 0 as _,
13036        }
13037    }
13038}
13039impl ::std::default::Default for PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
13040    fn default() -> PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
13041        PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
13042            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,
13043            pNext : 0 as _,
13044            deviceGeneratedCommands : 0 as _,
13045        }
13046    }
13047}
13048impl ::std::default::Default for GraphicsShaderGroupCreateInfoNV {
13049    fn default() -> GraphicsShaderGroupCreateInfoNV {
13050        GraphicsShaderGroupCreateInfoNV {
13051            sType : STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV,
13052            pNext : 0 as _,
13053            stageCount : 0 as _,
13054            pStages : 0 as _,
13055            pVertexInputState : 0 as _,
13056            pTessellationState : 0 as _,
13057        }
13058    }
13059}
13060impl ::std::default::Default for GraphicsPipelineShaderGroupsCreateInfoNV {
13061    fn default() -> GraphicsPipelineShaderGroupsCreateInfoNV {
13062        GraphicsPipelineShaderGroupsCreateInfoNV {
13063            sType : STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV,
13064            pNext : 0 as _,
13065            groupCount : 0 as _,
13066            pGroups : 0 as _,
13067            pipelineCount : 0 as _,
13068            pPipelines : 0 as _,
13069        }
13070    }
13071}
13072impl ::std::default::Default for BindShaderGroupIndirectCommandNV {
13073    fn default() -> BindShaderGroupIndirectCommandNV {
13074        BindShaderGroupIndirectCommandNV {
13075            groupIndex : 0 as _,
13076        }
13077    }
13078}
13079impl ::std::default::Default for BindIndexBufferIndirectCommandNV {
13080    fn default() -> BindIndexBufferIndirectCommandNV {
13081        BindIndexBufferIndirectCommandNV {
13082            bufferAddress : Default::default(),
13083            size : 0 as _,
13084            indexType : Default::default(),
13085        }
13086    }
13087}
13088impl ::std::default::Default for BindVertexBufferIndirectCommandNV {
13089    fn default() -> BindVertexBufferIndirectCommandNV {
13090        BindVertexBufferIndirectCommandNV {
13091            bufferAddress : Default::default(),
13092            size : 0 as _,
13093            stride : 0 as _,
13094        }
13095    }
13096}
13097impl ::std::default::Default for SetStateFlagsIndirectCommandNV {
13098    fn default() -> SetStateFlagsIndirectCommandNV {
13099        SetStateFlagsIndirectCommandNV {
13100            data : 0 as _,
13101        }
13102    }
13103}
13104impl ::std::default::Default for IndirectCommandsStreamNV {
13105    fn default() -> IndirectCommandsStreamNV {
13106        IndirectCommandsStreamNV {
13107            buffer : Default::default(),
13108            offset : Default::default(),
13109        }
13110    }
13111}
13112impl ::std::default::Default for IndirectCommandsLayoutTokenNV {
13113    fn default() -> IndirectCommandsLayoutTokenNV {
13114        IndirectCommandsLayoutTokenNV {
13115            sType : STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,
13116            pNext : 0 as _,
13117            tokenType : Default::default(),
13118            stream : 0 as _,
13119            offset : 0 as _,
13120            vertexBindingUnit : 0 as _,
13121            vertexDynamicStride : 0 as _,
13122            pushconstantPipelineLayout : Default::default(),
13123            pushconstantShaderStageFlags : Default::default(),
13124            pushconstantOffset : 0 as _,
13125            pushconstantSize : 0 as _,
13126            indirectStateFlags : Default::default(),
13127            indexTypeCount : 0 as _,
13128            pIndexTypes : 0 as _,
13129            pIndexTypeValues : 0 as _,
13130        }
13131    }
13132}
13133impl ::std::default::Default for IndirectCommandsLayoutCreateInfoNV {
13134    fn default() -> IndirectCommandsLayoutCreateInfoNV {
13135        IndirectCommandsLayoutCreateInfoNV {
13136            sType : STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,
13137            pNext : 0 as _,
13138            flags : Default::default(),
13139            pipelineBindPoint : Default::default(),
13140            tokenCount : 0 as _,
13141            pTokens : 0 as _,
13142            streamCount : 0 as _,
13143            pStreamStrides : 0 as _,
13144        }
13145    }
13146}
13147impl ::std::default::Default for GeneratedCommandsInfoNV {
13148    fn default() -> GeneratedCommandsInfoNV {
13149        GeneratedCommandsInfoNV {
13150            sType : STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,
13151            pNext : 0 as _,
13152            pipelineBindPoint : Default::default(),
13153            pipeline : Default::default(),
13154            indirectCommandsLayout : Default::default(),
13155            streamCount : 0 as _,
13156            pStreams : 0 as _,
13157            sequencesCount : 0 as _,
13158            preprocessBuffer : Default::default(),
13159            preprocessOffset : Default::default(),
13160            preprocessSize : Default::default(),
13161            sequencesCountBuffer : Default::default(),
13162            sequencesCountOffset : Default::default(),
13163            sequencesIndexBuffer : Default::default(),
13164            sequencesIndexOffset : Default::default(),
13165        }
13166    }
13167}
13168impl ::std::default::Default for GeneratedCommandsMemoryRequirementsInfoNV {
13169    fn default() -> GeneratedCommandsMemoryRequirementsInfoNV {
13170        GeneratedCommandsMemoryRequirementsInfoNV {
13171            sType : STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,
13172            pNext : 0 as _,
13173            pipelineBindPoint : Default::default(),
13174            pipeline : Default::default(),
13175            indirectCommandsLayout : Default::default(),
13176            maxSequencesCount : 0 as _,
13177        }
13178    }
13179}
13180impl ::std::default::Default for PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
13181    fn default() -> PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
13182        PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
13183            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,
13184            pNext : 0 as _,
13185            texelBufferAlignment : 0 as _,
13186        }
13187    }
13188}
13189impl ::std::default::Default for PhysicalDeviceTexelBufferAlignmentPropertiesEXT {
13190    fn default() -> PhysicalDeviceTexelBufferAlignmentPropertiesEXT {
13191        PhysicalDeviceTexelBufferAlignmentPropertiesEXT {
13192            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,
13193            pNext : 0 as _,
13194            storageTexelBufferOffsetAlignmentBytes : Default::default(),
13195            storageTexelBufferOffsetSingleTexelAlignment : 0 as _,
13196            uniformTexelBufferOffsetAlignmentBytes : Default::default(),
13197            uniformTexelBufferOffsetSingleTexelAlignment : 0 as _,
13198        }
13199    }
13200}
13201impl ::std::default::Default for RenderPassTransformBeginInfoQCOM {
13202    fn default() -> RenderPassTransformBeginInfoQCOM {
13203        RenderPassTransformBeginInfoQCOM {
13204            sType : STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM,
13205            pNext : 0 as _,
13206            transform : Default::default(),
13207        }
13208    }
13209}
13210impl ::std::default::Default for CommandBufferInheritanceRenderPassTransformInfoQCOM {
13211    fn default() -> CommandBufferInheritanceRenderPassTransformInfoQCOM {
13212        CommandBufferInheritanceRenderPassTransformInfoQCOM {
13213            sType : STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,
13214            pNext : 0 as _,
13215            transform : Default::default(),
13216            renderArea : Default::default(),
13217        }
13218    }
13219}
13220impl ::std::default::Default for PhysicalDeviceRobustness2FeaturesEXT {
13221    fn default() -> PhysicalDeviceRobustness2FeaturesEXT {
13222        PhysicalDeviceRobustness2FeaturesEXT {
13223            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,
13224            pNext : 0 as _,
13225            robustBufferAccess2 : 0 as _,
13226            robustImageAccess2 : 0 as _,
13227            nullDescriptor : 0 as _,
13228        }
13229    }
13230}
13231impl ::std::default::Default for PhysicalDeviceRobustness2PropertiesEXT {
13232    fn default() -> PhysicalDeviceRobustness2PropertiesEXT {
13233        PhysicalDeviceRobustness2PropertiesEXT {
13234            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,
13235            pNext : 0 as _,
13236            robustStorageBufferAccessSizeAlignment : Default::default(),
13237            robustUniformBufferAccessSizeAlignment : Default::default(),
13238        }
13239    }
13240}
13241impl ::std::default::Default for SamplerCustomBorderColorCreateInfoEXT {
13242    fn default() -> SamplerCustomBorderColorCreateInfoEXT {
13243        SamplerCustomBorderColorCreateInfoEXT {
13244            sType : STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,
13245            pNext : 0 as _,
13246            customBorderColor : Default::default(),
13247            format : Default::default(),
13248        }
13249    }
13250}
13251impl ::std::default::Default for PhysicalDeviceCustomBorderColorPropertiesEXT {
13252    fn default() -> PhysicalDeviceCustomBorderColorPropertiesEXT {
13253        PhysicalDeviceCustomBorderColorPropertiesEXT {
13254            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,
13255            pNext : 0 as _,
13256            maxCustomBorderColorSamplers : 0 as _,
13257        }
13258    }
13259}
13260impl ::std::default::Default for PhysicalDeviceCustomBorderColorFeaturesEXT {
13261    fn default() -> PhysicalDeviceCustomBorderColorFeaturesEXT {
13262        PhysicalDeviceCustomBorderColorFeaturesEXT {
13263            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,
13264            pNext : 0 as _,
13265            customBorderColors : 0 as _,
13266            customBorderColorWithoutFormat : 0 as _,
13267        }
13268    }
13269}
13270impl ::std::default::Default for PhysicalDevicePrivateDataFeaturesEXT {
13271    fn default() -> PhysicalDevicePrivateDataFeaturesEXT {
13272        PhysicalDevicePrivateDataFeaturesEXT {
13273            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,
13274            pNext : 0 as _,
13275            privateData : 0 as _,
13276        }
13277    }
13278}
13279impl ::std::default::Default for DevicePrivateDataCreateInfoEXT {
13280    fn default() -> DevicePrivateDataCreateInfoEXT {
13281        DevicePrivateDataCreateInfoEXT {
13282            sType : STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,
13283            pNext : 0 as _,
13284            privateDataSlotRequestCount : 0 as _,
13285        }
13286    }
13287}
13288impl ::std::default::Default for PrivateDataSlotCreateInfoEXT {
13289    fn default() -> PrivateDataSlotCreateInfoEXT {
13290        PrivateDataSlotCreateInfoEXT {
13291            sType : STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,
13292            pNext : 0 as _,
13293            flags : Default::default(),
13294        }
13295    }
13296}
13297impl ::std::default::Default for PhysicalDevicePipelineCreationCacheControlFeaturesEXT {
13298    fn default() -> PhysicalDevicePipelineCreationCacheControlFeaturesEXT {
13299        PhysicalDevicePipelineCreationCacheControlFeaturesEXT {
13300            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,
13301            pNext : 0 as _,
13302            pipelineCreationCacheControl : 0 as _,
13303        }
13304    }
13305}
13306impl ::std::default::Default for PhysicalDeviceDiagnosticsConfigFeaturesNV {
13307    fn default() -> PhysicalDeviceDiagnosticsConfigFeaturesNV {
13308        PhysicalDeviceDiagnosticsConfigFeaturesNV {
13309            sType : STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,
13310            pNext : 0 as _,
13311            diagnosticsConfig : 0 as _,
13312        }
13313    }
13314}
13315impl ::std::default::Default for DeviceDiagnosticsConfigCreateInfoNV {
13316    fn default() -> DeviceDiagnosticsConfigCreateInfoNV {
13317        DeviceDiagnosticsConfigCreateInfoNV {
13318            sType : STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
13319            pNext : 0 as _,
13320            flags : Default::default(),
13321        }
13322    }
13323}
13324impl ::std::default::Default for Win32SurfaceCreateInfoKHR {
13325    fn default() -> Win32SurfaceCreateInfoKHR {
13326        Win32SurfaceCreateInfoKHR {
13327            sType : STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,
13328            pNext : 0 as _,
13329            flags : Default::default(),
13330            hinstance : 0 as _,
13331            hwnd : 0 as _,
13332        }
13333    }
13334}
13335impl ::std::default::Default for ImportMemoryWin32HandleInfoKHR {
13336    fn default() -> ImportMemoryWin32HandleInfoKHR {
13337        ImportMemoryWin32HandleInfoKHR {
13338            sType : STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
13339            pNext : 0 as _,
13340            handleType : Default::default(),
13341            handle : 0 as _,
13342            name : 0 as _,
13343        }
13344    }
13345}
13346impl ::std::default::Default for ExportMemoryWin32HandleInfoKHR {
13347    fn default() -> ExportMemoryWin32HandleInfoKHR {
13348        ExportMemoryWin32HandleInfoKHR {
13349            sType : STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,
13350            pNext : 0 as _,
13351            pAttributes : 0 as _,
13352            dwAccess : 0 as _,
13353            name : 0 as _,
13354        }
13355    }
13356}
13357impl ::std::default::Default for MemoryWin32HandlePropertiesKHR {
13358    fn default() -> MemoryWin32HandlePropertiesKHR {
13359        MemoryWin32HandlePropertiesKHR {
13360            sType : STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,
13361            pNext : 0 as _,
13362            memoryTypeBits : 0 as _,
13363        }
13364    }
13365}
13366impl ::std::default::Default for MemoryGetWin32HandleInfoKHR {
13367    fn default() -> MemoryGetWin32HandleInfoKHR {
13368        MemoryGetWin32HandleInfoKHR {
13369            sType : STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,
13370            pNext : 0 as _,
13371            memory : Default::default(),
13372            handleType : Default::default(),
13373        }
13374    }
13375}
13376impl ::std::default::Default for Win32KeyedMutexAcquireReleaseInfoKHR {
13377    fn default() -> Win32KeyedMutexAcquireReleaseInfoKHR {
13378        Win32KeyedMutexAcquireReleaseInfoKHR {
13379            sType : STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,
13380            pNext : 0 as _,
13381            acquireCount : 0 as _,
13382            pAcquireSyncs : 0 as _,
13383            pAcquireKeys : 0 as _,
13384            pAcquireTimeouts : 0 as _,
13385            releaseCount : 0 as _,
13386            pReleaseSyncs : 0 as _,
13387            pReleaseKeys : 0 as _,
13388        }
13389    }
13390}
13391impl ::std::default::Default for ImportSemaphoreWin32HandleInfoKHR {
13392    fn default() -> ImportSemaphoreWin32HandleInfoKHR {
13393        ImportSemaphoreWin32HandleInfoKHR {
13394            sType : STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
13395            pNext : 0 as _,
13396            semaphore : Default::default(),
13397            flags : Default::default(),
13398            handleType : Default::default(),
13399            handle : 0 as _,
13400            name : 0 as _,
13401        }
13402    }
13403}
13404impl ::std::default::Default for ExportSemaphoreWin32HandleInfoKHR {
13405    fn default() -> ExportSemaphoreWin32HandleInfoKHR {
13406        ExportSemaphoreWin32HandleInfoKHR {
13407            sType : STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
13408            pNext : 0 as _,
13409            pAttributes : 0 as _,
13410            dwAccess : 0 as _,
13411            name : 0 as _,
13412        }
13413    }
13414}
13415impl ::std::default::Default for D3D12FenceSubmitInfoKHR {
13416    fn default() -> D3D12FenceSubmitInfoKHR {
13417        D3D12FenceSubmitInfoKHR {
13418            sType : STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
13419            pNext : 0 as _,
13420            waitSemaphoreValuesCount : 0 as _,
13421            pWaitSemaphoreValues : 0 as _,
13422            signalSemaphoreValuesCount : 0 as _,
13423            pSignalSemaphoreValues : 0 as _,
13424        }
13425    }
13426}
13427impl ::std::default::Default for SemaphoreGetWin32HandleInfoKHR {
13428    fn default() -> SemaphoreGetWin32HandleInfoKHR {
13429        SemaphoreGetWin32HandleInfoKHR {
13430            sType : STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
13431            pNext : 0 as _,
13432            semaphore : Default::default(),
13433            handleType : Default::default(),
13434        }
13435    }
13436}
13437impl ::std::default::Default for ImportFenceWin32HandleInfoKHR {
13438    fn default() -> ImportFenceWin32HandleInfoKHR {
13439        ImportFenceWin32HandleInfoKHR {
13440            sType : STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,
13441            pNext : 0 as _,
13442            fence : Default::default(),
13443            flags : Default::default(),
13444            handleType : Default::default(),
13445            handle : 0 as _,
13446            name : 0 as _,
13447        }
13448    }
13449}
13450impl ::std::default::Default for ExportFenceWin32HandleInfoKHR {
13451    fn default() -> ExportFenceWin32HandleInfoKHR {
13452        ExportFenceWin32HandleInfoKHR {
13453            sType : STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,
13454            pNext : 0 as _,
13455            pAttributes : 0 as _,
13456            dwAccess : 0 as _,
13457            name : 0 as _,
13458        }
13459    }
13460}
13461impl ::std::default::Default for FenceGetWin32HandleInfoKHR {
13462    fn default() -> FenceGetWin32HandleInfoKHR {
13463        FenceGetWin32HandleInfoKHR {
13464            sType : STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,
13465            pNext : 0 as _,
13466            fence : Default::default(),
13467            handleType : Default::default(),
13468        }
13469    }
13470}
13471impl ::std::default::Default for ImportMemoryWin32HandleInfoNV {
13472    fn default() -> ImportMemoryWin32HandleInfoNV {
13473        ImportMemoryWin32HandleInfoNV {
13474            sType : STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,
13475            pNext : 0 as _,
13476            handleType : Default::default(),
13477            handle : 0 as _,
13478        }
13479    }
13480}
13481impl ::std::default::Default for ExportMemoryWin32HandleInfoNV {
13482    fn default() -> ExportMemoryWin32HandleInfoNV {
13483        ExportMemoryWin32HandleInfoNV {
13484            sType : STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,
13485            pNext : 0 as _,
13486            pAttributes : 0 as _,
13487            dwAccess : 0 as _,
13488        }
13489    }
13490}
13491impl ::std::default::Default for Win32KeyedMutexAcquireReleaseInfoNV {
13492    fn default() -> Win32KeyedMutexAcquireReleaseInfoNV {
13493        Win32KeyedMutexAcquireReleaseInfoNV {
13494            sType : STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,
13495            pNext : 0 as _,
13496            acquireCount : 0 as _,
13497            pAcquireSyncs : 0 as _,
13498            pAcquireKeys : 0 as _,
13499            pAcquireTimeoutMilliseconds : 0 as _,
13500            releaseCount : 0 as _,
13501            pReleaseSyncs : 0 as _,
13502            pReleaseKeys : 0 as _,
13503        }
13504    }
13505}
13506impl ::std::default::Default for SurfaceFullScreenExclusiveInfoEXT {
13507    fn default() -> SurfaceFullScreenExclusiveInfoEXT {
13508        SurfaceFullScreenExclusiveInfoEXT {
13509            sType : STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,
13510            pNext : 0 as _,
13511            fullScreenExclusive : Default::default(),
13512        }
13513    }
13514}
13515impl ::std::default::Default for SurfaceCapabilitiesFullScreenExclusiveEXT {
13516    fn default() -> SurfaceCapabilitiesFullScreenExclusiveEXT {
13517        SurfaceCapabilitiesFullScreenExclusiveEXT {
13518            sType : STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,
13519            pNext : 0 as _,
13520            fullScreenExclusiveSupported : 0 as _,
13521        }
13522    }
13523}
13524impl ::std::default::Default for SurfaceFullScreenExclusiveWin32InfoEXT {
13525    fn default() -> SurfaceFullScreenExclusiveWin32InfoEXT {
13526        SurfaceFullScreenExclusiveWin32InfoEXT {
13527            sType : STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,
13528            pNext : 0 as _,
13529            hmonitor : 0 as _,
13530        }
13531    }
13532}
13533
13534extern "C" {
13535	pub fn InitVulkanSimple(surface_extension : *const i8);
13536
13537	pub fn CreateInstance(pCreateInfo :*const InstanceCreateInfo) -> VkResult;
13538
13539	pub fn SetPhysicalDevice(physicalDevice : PhysicalDevice);
13540
13541	pub fn SetDeviceQueue(queueFamilyIndex : u32, queueIndex : u32);
13542
13543	pub fn CreateDevice(pCreateInfo : *const DeviceCreateInfo) -> VkResult;
13544
13545	pub fn DestroyInstance();
13546	
13547	pub fn DestroyDevice();
13548	
13549	pub fn DeviceWaitIdle();
13550	
13551	pub fn EnumeratePhysicalDevices(
13552		pPhysicalDeviceCount : *mut u32,
13553		pPhysicalDevices : *mut PhysicalDevice) -> VkResult;
13554	
13555	pub fn GetPhysicalDeviceFeatures(
13556		pFeatures : *mut PhysicalDeviceFeatures);
13557	
13558	pub fn GetPhysicalDeviceFormatProperties(
13559		format : Format,
13560		pFormatProperties : *mut FormatProperties);
13561	
13562	pub fn GetPhysicalDeviceImageFormatProperties(
13563		format : Format,
13564		r#type : ImageType,
13565		tiling : ImageTiling,
13566		usage : ImageUsageFlags,
13567		flags : ImageCreateFlags,
13568		pImageFormatProperties : *mut ImageFormatProperties) -> VkResult;
13569	
13570	pub fn GetPhysicalDeviceProperties(
13571		pProperties : *mut PhysicalDeviceProperties);
13572	
13573	pub fn GetPhysicalDeviceQueueFamilyProperties(
13574		pQueueFamilyPropertyCount : *mut u32,
13575		pQueueFamilyProperties : *mut QueueFamilyProperties);
13576	
13577	pub fn GetPhysicalDeviceMemoryProperties(
13578		pMemoryProperties : *mut PhysicalDeviceMemoryProperties);
13579	
13580	pub fn GetInstanceProcAddr(
13581		pName : *const i8) -> u64;
13582	
13583	pub fn GetDeviceProcAddr(
13584		pName : *const i8) -> u64;
13585	
13586	pub fn EnumerateInstanceExtensionProperties(
13587		pLayerName : *const i8,
13588		pPropertyCount : *mut u32,
13589		pProperties : *mut ExtensionProperties) -> VkResult;
13590	
13591	pub fn EnumerateDeviceExtensionProperties(
13592		pLayerName : *const i8,
13593		pPropertyCount : *mut u32,
13594		pProperties : *mut ExtensionProperties) -> VkResult;
13595	
13596	pub fn EnumerateInstanceLayerProperties(
13597		pPropertyCount : *mut u32,
13598		pProperties : *mut LayerProperties) -> VkResult;
13599	
13600	pub fn EnumerateDeviceLayerProperties(
13601		pPropertyCount : *mut u32,
13602		pProperties : *mut LayerProperties) -> VkResult;
13603	
13604	pub fn GetDeviceQueue(
13605		queueFamilyIndex : u32,
13606		queueIndex : u32,
13607		pQueue : *mut Queue);
13608	
13609	pub fn QueueSubmit(
13610		submitCount : u32,
13611		pSubmits : *const SubmitInfo,
13612		fence : Fence) -> VkResult;
13613	
13614	pub fn QueueWaitIdle(
13615		queue : Queue) -> VkResult;
13616	
13617	pub fn AllocateMemory(
13618		pAllocateInfo : *const MemoryAllocateInfo,
13619		pMemory : *mut DeviceMemory) -> VkResult;
13620	
13621	pub fn FreeMemory(
13622		memory : DeviceMemory);
13623	
13624	pub fn MapMemory(
13625		memory : DeviceMemory,
13626		offset : DeviceSize,
13627		size : DeviceSize,
13628		flags : MemoryMapFlags,
13629		ppData : &mut*mut f32) -> VkResult;
13630	
13631	pub fn UnmapMemory(
13632		memory : DeviceMemory);
13633	
13634	pub fn FlushMappedMemoryRanges(
13635		memoryRangeCount : u32,
13636		pMemoryRanges : *const MappedMemoryRange) -> VkResult;
13637	
13638	pub fn InvalidateMappedMemoryRanges(
13639		memoryRangeCount : u32,
13640		pMemoryRanges : *const MappedMemoryRange) -> VkResult;
13641	
13642	pub fn GetDeviceMemoryCommitment(
13643		memory : DeviceMemory,
13644		pCommittedMemoryInBytes : *mut DeviceSize);
13645	
13646	pub fn BindBufferMemory(
13647		buffer : Buffer,
13648		memory : DeviceMemory,
13649		memoryOffset : DeviceSize) -> VkResult;
13650	
13651	pub fn BindImageMemory(
13652		image : Image,
13653		memory : DeviceMemory,
13654		memoryOffset : DeviceSize) -> VkResult;
13655	
13656	pub fn GetBufferMemoryRequirements(
13657		buffer : Buffer,
13658		pMemoryRequirements : *mut MemoryRequirements);
13659	
13660	pub fn GetImageMemoryRequirements(
13661		image : Image,
13662		pMemoryRequirements : *mut MemoryRequirements);
13663	
13664	pub fn GetImageSparseMemoryRequirements(
13665		image : Image,
13666		pSparseMemoryRequirementCount : *mut u32,
13667		pSparseMemoryRequirements : *mut SparseImageMemoryRequirements);
13668	
13669	pub fn GetPhysicalDeviceSparseImageFormatProperties(
13670		format : Format,
13671		r#type : ImageType,
13672		samples : SampleCountFlagBits,
13673		usage : ImageUsageFlags,
13674		tiling : ImageTiling,
13675		pPropertyCount : *mut u32,
13676		pProperties : *mut SparseImageFormatProperties);
13677	
13678	pub fn QueueBindSparse(
13679		bindInfoCount : u32,
13680		pBindInfo : *const BindSparseInfo,
13681		fence : Fence) -> VkResult;
13682	
13683	pub fn CreateFence(
13684		pCreateInfo : *const FenceCreateInfo,
13685		pFence : *mut Fence) -> VkResult;
13686	
13687	pub fn DestroyFence(
13688		fence : Fence);
13689	
13690	pub fn ResetFences(
13691		fenceCount : u32,
13692		pFences : *const Fence) -> VkResult;
13693	
13694	pub fn GetFenceStatus(
13695		fence : Fence) -> VkResult;
13696	
13697	pub fn WaitForFences(
13698		fenceCount : u32,
13699		pFences : *const Fence,
13700		waitAll : Bool32,
13701		timeout : u64) -> VkResult;
13702	
13703	pub fn CreateSemaphore(
13704		pCreateInfo : *const SemaphoreCreateInfo,
13705		pSemaphore : *mut Semaphore) -> VkResult;
13706	
13707	pub fn DestroySemaphore(
13708		semaphore : Semaphore);
13709	
13710	pub fn CreateEvent(
13711		pCreateInfo : *const EventCreateInfo,
13712		pEvent : *mut Event) -> VkResult;
13713	
13714	pub fn DestroyEvent(
13715		event : Event);
13716	
13717	pub fn GetEventStatus(
13718		event : Event) -> VkResult;
13719	
13720	pub fn SetEvent(
13721		event : Event) -> VkResult;
13722	
13723	pub fn ResetEvent(
13724		event : Event) -> VkResult;
13725	
13726	pub fn CreateQueryPool(
13727		pCreateInfo : *const QueryPoolCreateInfo,
13728		pQueryPool : *mut QueryPool) -> VkResult;
13729	
13730	pub fn DestroyQueryPool(
13731		queryPool : QueryPool);
13732	
13733	pub fn GetQueryPoolResults(
13734		queryPool : QueryPool,
13735		firstQuery : u32,
13736		queryCount : u32,
13737		dataSize : usize,
13738		pData : u64,
13739		stride : DeviceSize,
13740		flags : QueryResultFlags) -> VkResult;
13741	
13742	pub fn CreateBuffer(
13743		pCreateInfo : *const BufferCreateInfo,
13744		pBuffer : *mut Buffer) -> VkResult;
13745	
13746	pub fn DestroyBuffer(
13747		buffer : Buffer);
13748	
13749	pub fn CreateBufferView(
13750		pCreateInfo : *const BufferViewCreateInfo,
13751		pView : *mut BufferView) -> VkResult;
13752	
13753	pub fn DestroyBufferView(
13754		bufferView : BufferView);
13755	
13756	pub fn CreateImage(
13757		pCreateInfo : *const ImageCreateInfo,
13758		pImage : *mut Image) -> VkResult;
13759	
13760	pub fn DestroyImage(
13761		image : Image);
13762	
13763	pub fn GetImageSubresourceLayout(
13764		image : Image,
13765		pSubresource : *const ImageSubresource,
13766		pLayout : *mut SubresourceLayout);
13767	
13768	pub fn CreateImageView(
13769		pCreateInfo : *const ImageViewCreateInfo,
13770		pView : *mut ImageView) -> VkResult;
13771	
13772	pub fn DestroyImageView(
13773		imageView : ImageView);
13774	
13775	pub fn CreateShaderModule(
13776		pCreateInfo : *const ShaderModuleCreateInfo,
13777		pShaderModule : *mut ShaderModule) -> VkResult;
13778	
13779	pub fn DestroyShaderModule(
13780		shaderModule : ShaderModule);
13781	
13782	pub fn CreatePipelineCache(
13783		pCreateInfo : *const PipelineCacheCreateInfo,
13784		pPipelineCache : *mut PipelineCache) -> VkResult;
13785	
13786	pub fn DestroyPipelineCache(
13787		pipelineCache : PipelineCache);
13788	
13789	pub fn GetPipelineCacheData(
13790		pipelineCache : PipelineCache,
13791		pDataSize : *mut usize,
13792		pData : u64) -> VkResult;
13793	
13794	pub fn MergePipelineCaches(
13795		dstCache : PipelineCache,
13796		srcCacheCount : u32,
13797		pSrcCaches : *const PipelineCache) -> VkResult;
13798	
13799	pub fn CreateGraphicsPipelines(
13800		pipelineCache : PipelineCache,
13801		createInfoCount : u32,
13802		pCreateInfos : *const GraphicsPipelineCreateInfo,
13803		pPipelines : *mut Pipeline) -> VkResult;
13804	
13805	pub fn CreateComputePipelines(
13806		pipelineCache : PipelineCache,
13807		createInfoCount : u32,
13808		pCreateInfos : *const ComputePipelineCreateInfo,
13809		pPipelines : *mut Pipeline) -> VkResult;
13810	
13811	pub fn DestroyPipeline(
13812		pipeline : Pipeline);
13813	
13814	pub fn CreatePipelineLayout(
13815		pCreateInfo : *const PipelineLayoutCreateInfo,
13816		pPipelineLayout : *mut PipelineLayout) -> VkResult;
13817	
13818	pub fn DestroyPipelineLayout(
13819		pipelineLayout : PipelineLayout);
13820	
13821	pub fn CreateSampler(
13822		pCreateInfo : *const SamplerCreateInfo,
13823		pSampler : *mut Sampler) -> VkResult;
13824	
13825	pub fn DestroySampler(
13826		sampler : Sampler);
13827	
13828	pub fn CreateDescriptorSetLayout(
13829		pCreateInfo : *const DescriptorSetLayoutCreateInfo,
13830		pSetLayout : *mut DescriptorSetLayout) -> VkResult;
13831	
13832	pub fn DestroyDescriptorSetLayout(
13833		descriptorSetLayout : DescriptorSetLayout);
13834	
13835	pub fn CreateDescriptorPool(
13836		pCreateInfo : *const DescriptorPoolCreateInfo,
13837		pDescriptorPool : *mut DescriptorPool) -> VkResult;
13838	
13839	pub fn DestroyDescriptorPool(
13840		descriptorPool : DescriptorPool);
13841	
13842	pub fn ResetDescriptorPool(
13843		descriptorPool : DescriptorPool,
13844		flags : DescriptorPoolResetFlags) -> VkResult;
13845	
13846	pub fn AllocateDescriptorSets(
13847		pAllocateInfo : *const DescriptorSetAllocateInfo,
13848		pDescriptorSets : *mut DescriptorSet) -> VkResult;
13849	
13850	pub fn FreeDescriptorSets(
13851		descriptorPool : DescriptorPool,
13852		descriptorSetCount : u32,
13853		pDescriptorSets : *const DescriptorSet) -> VkResult;
13854	
13855	pub fn UpdateDescriptorSets(
13856		descriptorWriteCount : u32,
13857		pDescriptorWrites : *const WriteDescriptorSet,
13858		descriptorCopyCount : u32,
13859		pDescriptorCopies : *const CopyDescriptorSet);
13860	
13861	pub fn CreateFramebuffer(
13862		pCreateInfo : *const FramebufferCreateInfo,
13863		pFramebuffer : *mut Framebuffer) -> VkResult;
13864	
13865	pub fn DestroyFramebuffer(
13866		framebuffer : Framebuffer);
13867	
13868	pub fn CreateRenderPass(
13869		pCreateInfo : *const RenderPassCreateInfo,
13870		pRenderPass : *mut RenderPass) -> VkResult;
13871	
13872	pub fn DestroyRenderPass(
13873		renderPass : RenderPass);
13874	
13875	pub fn GetRenderAreaGranularity(
13876		renderPass : RenderPass,
13877		pGranularity : *mut Extent2D);
13878	
13879	pub fn CreateCommandPool(
13880		pCreateInfo : *const CommandPoolCreateInfo,
13881		pCommandPool : *mut CommandPool) -> VkResult;
13882	
13883	pub fn DestroyCommandPool(
13884		commandPool : CommandPool);
13885	
13886	pub fn ResetCommandPool(
13887		commandPool : CommandPool,
13888		flags : CommandPoolResetFlags) -> VkResult;
13889	
13890	pub fn AllocateCommandBuffers(
13891		pAllocateInfo : *const CommandBufferAllocateInfo,
13892		pCommandBuffers : *mut CommandBuffer) -> VkResult;
13893	
13894	pub fn FreeCommandBuffers(
13895		commandPool : CommandPool,
13896		commandBufferCount : u32,
13897		pCommandBuffers : *const CommandBuffer);
13898	
13899	pub fn BeginCommandBuffer(
13900		commandBuffer : CommandBuffer,
13901		pBeginInfo : *const CommandBufferBeginInfo) -> VkResult;
13902	
13903	pub fn EndCommandBuffer(
13904		commandBuffer : CommandBuffer) -> VkResult;
13905	
13906	pub fn ResetCommandBuffer(
13907		commandBuffer : CommandBuffer,
13908		flags : CommandBufferResetFlags) -> VkResult;
13909	
13910	pub fn CmdBindPipeline(
13911		commandBuffer : CommandBuffer,
13912		pipelineBindPoint : PipelineBindPoint,
13913		pipeline : Pipeline);
13914	
13915	pub fn CmdSetViewport(
13916		commandBuffer : CommandBuffer,
13917		firstViewport : u32,
13918		viewportCount : u32,
13919		pViewports : *const Viewport);
13920	
13921	pub fn CmdSetScissor(
13922		commandBuffer : CommandBuffer,
13923		firstScissor : u32,
13924		scissorCount : u32,
13925		pScissors : *const Rect2D);
13926	
13927	pub fn CmdSetLineWidth(
13928		commandBuffer : CommandBuffer,
13929		lineWidth : f32);
13930	
13931	pub fn CmdSetDepthBias(
13932		commandBuffer : CommandBuffer,
13933		depthBiasConstantFactor : f32,
13934		depthBiasClamp : f32,
13935		depthBiasSlopeFactor : f32);
13936	
13937	pub fn CmdSetBlendConstants(
13938		commandBuffer : CommandBuffer,
13939		blendConstants : [f32;4]);
13940	
13941	pub fn CmdSetDepthBounds(
13942		commandBuffer : CommandBuffer,
13943		minDepthBounds : f32,
13944		maxDepthBounds : f32);
13945	
13946	pub fn CmdSetStencilCompareMask(
13947		commandBuffer : CommandBuffer,
13948		faceMask : StencilFaceFlags,
13949		compareMask : u32);
13950	
13951	pub fn CmdSetStencilWriteMask(
13952		commandBuffer : CommandBuffer,
13953		faceMask : StencilFaceFlags,
13954		writeMask : u32);
13955	
13956	pub fn CmdSetStencilReference(
13957		commandBuffer : CommandBuffer,
13958		faceMask : StencilFaceFlags,
13959		reference : u32);
13960	
13961	pub fn CmdBindDescriptorSets(
13962		commandBuffer : CommandBuffer,
13963		pipelineBindPoint : PipelineBindPoint,
13964		layout : PipelineLayout,
13965		firstSet : u32,
13966		descriptorSetCount : u32,
13967		pDescriptorSets : *const DescriptorSet,
13968		dynamicOffsetCount : u32,
13969		pDynamicOffsets : *const u32);
13970	
13971	pub fn CmdBindIndexBuffer(
13972		commandBuffer : CommandBuffer,
13973		buffer : Buffer,
13974		offset : DeviceSize,
13975		indexType : IndexType);
13976	
13977	pub fn CmdBindVertexBuffers(
13978		commandBuffer : CommandBuffer,
13979		firstBinding : u32,
13980		bindingCount : u32,
13981		pBuffers : *const Buffer,
13982		pOffsets : *const DeviceSize);
13983	
13984	pub fn CmdDraw(
13985		commandBuffer : CommandBuffer,
13986		vertexCount : u32,
13987		instanceCount : u32,
13988		firstVertex : u32,
13989		firstInstance : u32);
13990	
13991	pub fn CmdDrawIndexed(
13992		commandBuffer : CommandBuffer,
13993		indexCount : u32,
13994		instanceCount : u32,
13995		firstIndex : u32,
13996		vertexOffset : i32,
13997		firstInstance : u32);
13998	
13999	pub fn CmdDrawIndirect(
14000		commandBuffer : CommandBuffer,
14001		buffer : Buffer,
14002		offset : DeviceSize,
14003		drawCount : u32,
14004		stride : u32);
14005	
14006	pub fn CmdDrawIndexedIndirect(
14007		commandBuffer : CommandBuffer,
14008		buffer : Buffer,
14009		offset : DeviceSize,
14010		drawCount : u32,
14011		stride : u32);
14012	
14013	pub fn CmdDispatch(
14014		commandBuffer : CommandBuffer,
14015		groupCountX : u32,
14016		groupCountY : u32,
14017		groupCountZ : u32);
14018	
14019	pub fn CmdDispatchIndirect(
14020		commandBuffer : CommandBuffer,
14021		buffer : Buffer,
14022		offset : DeviceSize);
14023	
14024	pub fn CmdCopyBuffer(
14025		commandBuffer : CommandBuffer,
14026		srcBuffer : Buffer,
14027		dstBuffer : Buffer,
14028		regionCount : u32,
14029		pRegions : *const BufferCopy);
14030	
14031	pub fn CmdCopyImage(
14032		commandBuffer : CommandBuffer,
14033		srcImage : Image,
14034		srcImageLayout : ImageLayout,
14035		dstImage : Image,
14036		dstImageLayout : ImageLayout,
14037		regionCount : u32,
14038		pRegions : *const ImageCopy);
14039	
14040	pub fn CmdBlitImage(
14041		commandBuffer : CommandBuffer,
14042		srcImage : Image,
14043		srcImageLayout : ImageLayout,
14044		dstImage : Image,
14045		dstImageLayout : ImageLayout,
14046		regionCount : u32,
14047		pRegions : *const ImageBlit,
14048		filter : Filter);
14049	
14050	pub fn CmdCopyBufferToImage(
14051		commandBuffer : CommandBuffer,
14052		srcBuffer : Buffer,
14053		dstImage : Image,
14054		dstImageLayout : ImageLayout,
14055		regionCount : u32,
14056		pRegions : *const BufferImageCopy);
14057	
14058	pub fn CmdCopyImageToBuffer(
14059		commandBuffer : CommandBuffer,
14060		srcImage : Image,
14061		srcImageLayout : ImageLayout,
14062		dstBuffer : Buffer,
14063		regionCount : u32,
14064		pRegions : *const BufferImageCopy);
14065	
14066	pub fn CmdUpdateBuffer(
14067		commandBuffer : CommandBuffer,
14068		dstBuffer : Buffer,
14069		dstOffset : DeviceSize,
14070		dataSize : DeviceSize,
14071		pData : u64);
14072	
14073	pub fn CmdFillBuffer(
14074		commandBuffer : CommandBuffer,
14075		dstBuffer : Buffer,
14076		dstOffset : DeviceSize,
14077		size : DeviceSize,
14078		data : u32);
14079	
14080	pub fn CmdClearColorImage(
14081		commandBuffer : CommandBuffer,
14082		image : Image,
14083		imageLayout : ImageLayout,
14084		pColor : *const ClearColorValue,
14085		rangeCount : u32,
14086		pRanges : *const ImageSubresourceRange);
14087	
14088	pub fn CmdClearDepthStencilImage(
14089		commandBuffer : CommandBuffer,
14090		image : Image,
14091		imageLayout : ImageLayout,
14092		pDepthStencil : *const ClearDepthStencilValue,
14093		rangeCount : u32,
14094		pRanges : *const ImageSubresourceRange);
14095	
14096	pub fn CmdClearAttachments(
14097		commandBuffer : CommandBuffer,
14098		attachmentCount : u32,
14099		pAttachments : *const ClearAttachment,
14100		rectCount : u32,
14101		pRects : *const ClearRect);
14102	
14103	pub fn CmdResolveImage(
14104		commandBuffer : CommandBuffer,
14105		srcImage : Image,
14106		srcImageLayout : ImageLayout,
14107		dstImage : Image,
14108		dstImageLayout : ImageLayout,
14109		regionCount : u32,
14110		pRegions : *const ImageResolve);
14111	
14112	pub fn CmdSetEvent(
14113		commandBuffer : CommandBuffer,
14114		event : Event,
14115		stageMask : PipelineStageFlags);
14116	
14117	pub fn CmdResetEvent(
14118		commandBuffer : CommandBuffer,
14119		event : Event,
14120		stageMask : PipelineStageFlags);
14121	
14122	pub fn CmdWaitEvents(
14123		commandBuffer : CommandBuffer,
14124		eventCount : u32,
14125		pEvents : *const Event,
14126		srcStageMask : PipelineStageFlags,
14127		dstStageMask : PipelineStageFlags,
14128		memoryBarrierCount : u32,
14129		pMemoryBarriers : *const MemoryBarrier,
14130		bufferMemoryBarrierCount : u32,
14131		pBufferMemoryBarriers : *const BufferMemoryBarrier,
14132		imageMemoryBarrierCount : u32,
14133		pImageMemoryBarriers : *const ImageMemoryBarrier);
14134	
14135	pub fn CmdPipelineBarrier(
14136		commandBuffer : CommandBuffer,
14137		srcStageMask : PipelineStageFlags,
14138		dstStageMask : PipelineStageFlags,
14139		dependencyFlags : DependencyFlags,
14140		memoryBarrierCount : u32,
14141		pMemoryBarriers : *const MemoryBarrier,
14142		bufferMemoryBarrierCount : u32,
14143		pBufferMemoryBarriers : *const BufferMemoryBarrier,
14144		imageMemoryBarrierCount : u32,
14145		pImageMemoryBarriers : *const ImageMemoryBarrier);
14146	
14147	pub fn CmdBeginQuery(
14148		commandBuffer : CommandBuffer,
14149		queryPool : QueryPool,
14150		query : u32,
14151		flags : QueryControlFlags);
14152	
14153	pub fn CmdEndQuery(
14154		commandBuffer : CommandBuffer,
14155		queryPool : QueryPool,
14156		query : u32);
14157	
14158	pub fn CmdResetQueryPool(
14159		commandBuffer : CommandBuffer,
14160		queryPool : QueryPool,
14161		firstQuery : u32,
14162		queryCount : u32);
14163	
14164	pub fn CmdWriteTimestamp(
14165		commandBuffer : CommandBuffer,
14166		pipelineStage : PipelineStageFlagBits,
14167		queryPool : QueryPool,
14168		query : u32);
14169	
14170	pub fn CmdCopyQueryPoolResults(
14171		commandBuffer : CommandBuffer,
14172		queryPool : QueryPool,
14173		firstQuery : u32,
14174		queryCount : u32,
14175		dstBuffer : Buffer,
14176		dstOffset : DeviceSize,
14177		stride : DeviceSize,
14178		flags : QueryResultFlags);
14179	
14180	pub fn CmdPushConstants(
14181		commandBuffer : CommandBuffer,
14182		layout : PipelineLayout,
14183		stageFlags : ShaderStageFlags,
14184		offset : u32,
14185		size : u32,
14186		pValues : u64);
14187	
14188	pub fn CmdBeginRenderPass(
14189		commandBuffer : CommandBuffer,
14190		pRenderPassBegin : *const RenderPassBeginInfo,
14191		contents : SubpassContents);
14192	
14193	pub fn CmdNextSubpass(
14194		commandBuffer : CommandBuffer,
14195		contents : SubpassContents);
14196	
14197	pub fn CmdEndRenderPass(
14198		commandBuffer : CommandBuffer);
14199	
14200	pub fn CmdExecuteCommands(
14201		commandBuffer : CommandBuffer,
14202		commandBufferCount : u32,
14203		pCommandBuffers : *const CommandBuffer);
14204	
14205	pub fn EnumerateInstanceVersion(
14206		pApiVersion : *mut u32) -> VkResult;
14207	
14208	pub fn BindBufferMemory2(
14209		bindInfoCount : u32,
14210		pBindInfos : *const BindBufferMemoryInfo) -> VkResult;
14211	
14212	pub fn BindImageMemory2(
14213		bindInfoCount : u32,
14214		pBindInfos : *const BindImageMemoryInfo) -> VkResult;
14215	
14216	pub fn GetDeviceGroupPeerMemoryFeatures(
14217		heapIndex : u32,
14218		localDeviceIndex : u32,
14219		remoteDeviceIndex : u32,
14220		pPeerMemoryFeatures : *mut PeerMemoryFeatureFlags);
14221	
14222	pub fn CmdSetDeviceMask(
14223		commandBuffer : CommandBuffer,
14224		deviceMask : u32);
14225	
14226	pub fn CmdDispatchBase(
14227		commandBuffer : CommandBuffer,
14228		baseGroupX : u32,
14229		baseGroupY : u32,
14230		baseGroupZ : u32,
14231		groupCountX : u32,
14232		groupCountY : u32,
14233		groupCountZ : u32);
14234	
14235	pub fn EnumeratePhysicalDeviceGroups(
14236		pPhysicalDeviceGroupCount : *mut u32,
14237		pPhysicalDeviceGroupProperties : *mut PhysicalDeviceGroupProperties) -> VkResult;
14238	
14239	pub fn GetImageMemoryRequirements2(
14240		pInfo : *const ImageMemoryRequirementsInfo2,
14241		pMemoryRequirements : *mut MemoryRequirements2);
14242	
14243	pub fn GetBufferMemoryRequirements2(
14244		pInfo : *const BufferMemoryRequirementsInfo2,
14245		pMemoryRequirements : *mut MemoryRequirements2);
14246	
14247	pub fn GetImageSparseMemoryRequirements2(
14248		pInfo : *const ImageSparseMemoryRequirementsInfo2,
14249		pSparseMemoryRequirementCount : *mut u32,
14250		pSparseMemoryRequirements : *mut SparseImageMemoryRequirements2);
14251	
14252	pub fn GetPhysicalDeviceFeatures2(
14253		pFeatures : *mut PhysicalDeviceFeatures2);
14254	
14255	pub fn GetPhysicalDeviceProperties2(
14256		pProperties : *mut PhysicalDeviceProperties2);
14257	
14258	pub fn GetPhysicalDeviceFormatProperties2(
14259		format : Format,
14260		pFormatProperties : *mut FormatProperties2);
14261	
14262	pub fn GetPhysicalDeviceImageFormatProperties2(
14263		pImageFormatInfo : *const PhysicalDeviceImageFormatInfo2,
14264		pImageFormatProperties : *mut ImageFormatProperties2) -> VkResult;
14265	
14266	pub fn GetPhysicalDeviceQueueFamilyProperties2(
14267		pQueueFamilyPropertyCount : *mut u32,
14268		pQueueFamilyProperties : *mut QueueFamilyProperties2);
14269	
14270	pub fn GetPhysicalDeviceMemoryProperties2(
14271		pMemoryProperties : *mut PhysicalDeviceMemoryProperties2);
14272	
14273	pub fn GetPhysicalDeviceSparseImageFormatProperties2(
14274		pFormatInfo : *const PhysicalDeviceSparseImageFormatInfo2,
14275		pPropertyCount : *mut u32,
14276		pProperties : *mut SparseImageFormatProperties2);
14277	
14278	pub fn TrimCommandPool(
14279		commandPool : CommandPool,
14280		flags : CommandPoolTrimFlags);
14281	
14282	pub fn GetDeviceQueue2(
14283		pQueueInfo : *const DeviceQueueInfo2,
14284		pQueue : *mut Queue);
14285	
14286	pub fn CreateSamplerYcbcrConversion(
14287		pCreateInfo : *const SamplerYcbcrConversionCreateInfo,
14288		pYcbcrConversion : *mut SamplerYcbcrConversion) -> VkResult;
14289	
14290	pub fn DestroySamplerYcbcrConversion(
14291		ycbcrConversion : SamplerYcbcrConversion);
14292	
14293	pub fn CreateDescriptorUpdateTemplate(
14294		pCreateInfo : *const DescriptorUpdateTemplateCreateInfo,
14295		pDescriptorUpdateTemplate : *mut DescriptorUpdateTemplate) -> VkResult;
14296	
14297	pub fn DestroyDescriptorUpdateTemplate(
14298		descriptorUpdateTemplate : DescriptorUpdateTemplate);
14299	
14300	pub fn UpdateDescriptorSetWithTemplate(
14301		descriptorSet : DescriptorSet,
14302		descriptorUpdateTemplate : DescriptorUpdateTemplate,
14303		pData : u64);
14304	
14305	pub fn GetPhysicalDeviceExternalBufferProperties(
14306		pExternalBufferInfo : *const PhysicalDeviceExternalBufferInfo,
14307		pExternalBufferProperties : *mut ExternalBufferProperties);
14308	
14309	pub fn GetPhysicalDeviceExternalFenceProperties(
14310		pExternalFenceInfo : *const PhysicalDeviceExternalFenceInfo,
14311		pExternalFenceProperties : *mut ExternalFenceProperties);
14312	
14313	pub fn GetPhysicalDeviceExternalSemaphoreProperties(
14314		pExternalSemaphoreInfo : *const PhysicalDeviceExternalSemaphoreInfo,
14315		pExternalSemaphoreProperties : *mut ExternalSemaphoreProperties);
14316	
14317	pub fn GetDescriptorSetLayoutSupport(
14318		pCreateInfo : *const DescriptorSetLayoutCreateInfo,
14319		pSupport : *mut DescriptorSetLayoutSupport);
14320	
14321	pub fn CmdDrawIndirectCount(
14322		commandBuffer : CommandBuffer,
14323		buffer : Buffer,
14324		offset : DeviceSize,
14325		countBuffer : Buffer,
14326		countBufferOffset : DeviceSize,
14327		maxDrawCount : u32,
14328		stride : u32);
14329	
14330	pub fn CmdDrawIndexedIndirectCount(
14331		commandBuffer : CommandBuffer,
14332		buffer : Buffer,
14333		offset : DeviceSize,
14334		countBuffer : Buffer,
14335		countBufferOffset : DeviceSize,
14336		maxDrawCount : u32,
14337		stride : u32);
14338	
14339	pub fn CreateRenderPass2(
14340		pCreateInfo : *const RenderPassCreateInfo2,
14341		pRenderPass : *mut RenderPass) -> VkResult;
14342	
14343	pub fn CmdBeginRenderPass2(
14344		commandBuffer : CommandBuffer,
14345		pRenderPassBegin : *const RenderPassBeginInfo,
14346		pSubpassBeginInfo : *const SubpassBeginInfo);
14347	
14348	pub fn CmdNextSubpass2(
14349		commandBuffer : CommandBuffer,
14350		pSubpassBeginInfo : *const SubpassBeginInfo,
14351		pSubpassEndInfo : *const SubpassEndInfo);
14352	
14353	pub fn CmdEndRenderPass2(
14354		commandBuffer : CommandBuffer,
14355		pSubpassEndInfo : *const SubpassEndInfo);
14356	
14357	pub fn ResetQueryPool(
14358		queryPool : QueryPool,
14359		firstQuery : u32,
14360		queryCount : u32);
14361	
14362	pub fn GetSemaphoreCounterValue(
14363		semaphore : Semaphore,
14364		pValue : *mut u64) -> VkResult;
14365	
14366	pub fn WaitSemaphores(
14367		pWaitInfo : *const SemaphoreWaitInfo,
14368		timeout : u64) -> VkResult;
14369	
14370	pub fn SignalSemaphore(
14371		pSignalInfo : *const SemaphoreSignalInfo) -> VkResult;
14372	
14373	pub fn GetBufferDeviceAddress(
14374		pInfo : *const BufferDeviceAddressInfo) -> DeviceAddress;
14375	
14376	pub fn GetBufferOpaqueCaptureAddress(
14377		pInfo : *const BufferDeviceAddressInfo) -> u64;
14378	
14379	pub fn GetDeviceMemoryOpaqueCaptureAddress(
14380		pInfo : *const DeviceMemoryOpaqueCaptureAddressInfo) -> u64;
14381	
14382	pub fn DestroySurfaceKHR(
14383		surface : SurfaceKHR);
14384	
14385	pub fn GetPhysicalDeviceSurfaceSupportKHR(
14386		queueFamilyIndex : u32,
14387		surface : SurfaceKHR,
14388		pSupported : *mut Bool32) -> VkResult;
14389	
14390	pub fn GetPhysicalDeviceSurfaceCapabilitiesKHR(
14391		surface : SurfaceKHR,
14392		pSurfaceCapabilities : *mut SurfaceCapabilitiesKHR) -> VkResult;
14393	
14394	pub fn GetPhysicalDeviceSurfaceFormatsKHR(
14395		surface : SurfaceKHR,
14396		pSurfaceFormatCount : *mut u32,
14397		pSurfaceFormats : *mut SurfaceFormatKHR) -> VkResult;
14398	
14399	pub fn GetPhysicalDeviceSurfacePresentModesKHR(
14400		surface : SurfaceKHR,
14401		pPresentModeCount : *mut u32,
14402		pPresentModes : *mut PresentModeKHR) -> VkResult;
14403	
14404	pub fn CreateSwapchainKHR(
14405		pCreateInfo : *const SwapchainCreateInfoKHR,
14406		pSwapchain : *mut SwapchainKHR) -> VkResult;
14407	
14408	pub fn DestroySwapchainKHR(
14409		swapchain : SwapchainKHR);
14410	
14411	pub fn GetSwapchainImagesKHR(
14412		swapchain : SwapchainKHR,
14413		pSwapchainImageCount : *mut u32,
14414		pSwapchainImages : *mut Image) -> VkResult;
14415	
14416	pub fn AcquireNextImageKHR(
14417		swapchain : SwapchainKHR,
14418		timeout : u64,
14419		semaphore : Semaphore,
14420		fence : Fence,
14421		pImageIndex : *mut u32) -> VkResult;
14422	
14423	pub fn QueuePresentKHR(
14424		pPresentInfo : *const PresentInfoKHR) -> VkResult;
14425	
14426	pub fn GetDeviceGroupPresentCapabilitiesKHR(
14427		pDeviceGroupPresentCapabilities : *mut DeviceGroupPresentCapabilitiesKHR) -> VkResult;
14428	
14429	pub fn GetDeviceGroupSurfacePresentModesKHR(
14430		surface : SurfaceKHR,
14431		pModes : *mut DeviceGroupPresentModeFlagsKHR) -> VkResult;
14432	
14433	pub fn GetPhysicalDevicePresentRectanglesKHR(
14434		surface : SurfaceKHR,
14435		pRectCount : *mut u32,
14436		pRects : *mut Rect2D) -> VkResult;
14437	
14438	pub fn AcquireNextImage2KHR(
14439		pAcquireInfo : *const AcquireNextImageInfoKHR,
14440		pImageIndex : *mut u32) -> VkResult;
14441	
14442	pub fn GetPhysicalDeviceDisplayPropertiesKHR(
14443		pPropertyCount : *mut u32,
14444		pProperties : *mut DisplayPropertiesKHR) -> VkResult;
14445	
14446	pub fn GetPhysicalDeviceDisplayPlanePropertiesKHR(
14447		pPropertyCount : *mut u32,
14448		pProperties : *mut DisplayPlanePropertiesKHR) -> VkResult;
14449	
14450	pub fn GetDisplayPlaneSupportedDisplaysKHR(
14451		planeIndex : u32,
14452		pDisplayCount : *mut u32,
14453		pDisplays : *mut DisplayKHR) -> VkResult;
14454	
14455	pub fn GetDisplayModePropertiesKHR(
14456		display : DisplayKHR,
14457		pPropertyCount : *mut u32,
14458		pProperties : *mut DisplayModePropertiesKHR) -> VkResult;
14459	
14460	pub fn CreateDisplayModeKHR(
14461		display : DisplayKHR,
14462		pCreateInfo : *const DisplayModeCreateInfoKHR,
14463		pMode : *mut DisplayModeKHR) -> VkResult;
14464	
14465	pub fn GetDisplayPlaneCapabilitiesKHR(
14466		mode : DisplayModeKHR,
14467		planeIndex : u32,
14468		pCapabilities : *mut DisplayPlaneCapabilitiesKHR) -> VkResult;
14469	
14470	pub fn CreateDisplayPlaneSurfaceKHR(
14471		pCreateInfo : *const DisplaySurfaceCreateInfoKHR,
14472		pSurface : *mut SurfaceKHR) -> VkResult;
14473	
14474	pub fn CreateSharedSwapchainsKHR(
14475		swapchainCount : u32,
14476		pCreateInfos : *const SwapchainCreateInfoKHR,
14477		pSwapchains : *mut SwapchainKHR) -> VkResult;
14478	
14479	pub fn GetPhysicalDeviceFeatures2KHR(
14480		pFeatures : *mut PhysicalDeviceFeatures2);
14481	
14482	pub fn GetPhysicalDeviceProperties2KHR(
14483		pProperties : *mut PhysicalDeviceProperties2);
14484	
14485	pub fn GetPhysicalDeviceFormatProperties2KHR(
14486		format : Format,
14487		pFormatProperties : *mut FormatProperties2);
14488	
14489	pub fn GetPhysicalDeviceImageFormatProperties2KHR(
14490		pImageFormatInfo : *const PhysicalDeviceImageFormatInfo2,
14491		pImageFormatProperties : *mut ImageFormatProperties2) -> VkResult;
14492	
14493	pub fn GetPhysicalDeviceQueueFamilyProperties2KHR(
14494		pQueueFamilyPropertyCount : *mut u32,
14495		pQueueFamilyProperties : *mut QueueFamilyProperties2);
14496	
14497	pub fn GetPhysicalDeviceMemoryProperties2KHR(
14498		pMemoryProperties : *mut PhysicalDeviceMemoryProperties2);
14499	
14500	pub fn GetPhysicalDeviceSparseImageFormatProperties2KHR(
14501		pFormatInfo : *const PhysicalDeviceSparseImageFormatInfo2,
14502		pPropertyCount : *mut u32,
14503		pProperties : *mut SparseImageFormatProperties2);
14504	
14505	pub fn GetDeviceGroupPeerMemoryFeaturesKHR(
14506		heapIndex : u32,
14507		localDeviceIndex : u32,
14508		remoteDeviceIndex : u32,
14509		pPeerMemoryFeatures : *mut PeerMemoryFeatureFlags);
14510	
14511	pub fn CmdSetDeviceMaskKHR(
14512		commandBuffer : CommandBuffer,
14513		deviceMask : u32);
14514	
14515	pub fn CmdDispatchBaseKHR(
14516		commandBuffer : CommandBuffer,
14517		baseGroupX : u32,
14518		baseGroupY : u32,
14519		baseGroupZ : u32,
14520		groupCountX : u32,
14521		groupCountY : u32,
14522		groupCountZ : u32);
14523	
14524	pub fn TrimCommandPoolKHR(
14525		commandPool : CommandPool,
14526		flags : CommandPoolTrimFlags);
14527	
14528	pub fn EnumeratePhysicalDeviceGroupsKHR(
14529		pPhysicalDeviceGroupCount : *mut u32,
14530		pPhysicalDeviceGroupProperties : *mut PhysicalDeviceGroupProperties) -> VkResult;
14531	
14532	pub fn GetPhysicalDeviceExternalBufferPropertiesKHR(
14533		pExternalBufferInfo : *const PhysicalDeviceExternalBufferInfo,
14534		pExternalBufferProperties : *mut ExternalBufferProperties);
14535	
14536	pub fn GetMemoryFdKHR(
14537		pGetFdInfo : *const MemoryGetFdInfoKHR,
14538		pFd : *mut i32) -> VkResult;
14539	
14540	pub fn GetMemoryFdPropertiesKHR(
14541		handleType : ExternalMemoryHandleTypeFlagBits,
14542		fd : i32,
14543		pMemoryFdProperties : *mut MemoryFdPropertiesKHR) -> VkResult;
14544	
14545	pub fn GetPhysicalDeviceExternalSemaphorePropertiesKHR(
14546		pExternalSemaphoreInfo : *const PhysicalDeviceExternalSemaphoreInfo,
14547		pExternalSemaphoreProperties : *mut ExternalSemaphoreProperties);
14548	
14549	pub fn ImportSemaphoreFdKHR(
14550		pImportSemaphoreFdInfo : *const ImportSemaphoreFdInfoKHR) -> VkResult;
14551	
14552	pub fn GetSemaphoreFdKHR(
14553		pGetFdInfo : *const SemaphoreGetFdInfoKHR,
14554		pFd : *mut i32) -> VkResult;
14555	
14556	pub fn CmdPushDescriptorSetKHR(
14557		commandBuffer : CommandBuffer,
14558		pipelineBindPoint : PipelineBindPoint,
14559		layout : PipelineLayout,
14560		set : u32,
14561		descriptorWriteCount : u32,
14562		pDescriptorWrites : *const WriteDescriptorSet);
14563	
14564	pub fn CmdPushDescriptorSetWithTemplateKHR(
14565		commandBuffer : CommandBuffer,
14566		descriptorUpdateTemplate : DescriptorUpdateTemplate,
14567		layout : PipelineLayout,
14568		set : u32,
14569		pData : u64);
14570	
14571	pub fn CreateDescriptorUpdateTemplateKHR(
14572		pCreateInfo : *const DescriptorUpdateTemplateCreateInfo,
14573		pDescriptorUpdateTemplate : *mut DescriptorUpdateTemplate) -> VkResult;
14574	
14575	pub fn DestroyDescriptorUpdateTemplateKHR(
14576		descriptorUpdateTemplate : DescriptorUpdateTemplate);
14577	
14578	pub fn UpdateDescriptorSetWithTemplateKHR(
14579		descriptorSet : DescriptorSet,
14580		descriptorUpdateTemplate : DescriptorUpdateTemplate,
14581		pData : u64);
14582	
14583	pub fn CreateRenderPass2KHR(
14584		pCreateInfo : *const RenderPassCreateInfo2,
14585		pRenderPass : *mut RenderPass) -> VkResult;
14586	
14587	pub fn CmdBeginRenderPass2KHR(
14588		commandBuffer : CommandBuffer,
14589		pRenderPassBegin : *const RenderPassBeginInfo,
14590		pSubpassBeginInfo : *const SubpassBeginInfo);
14591	
14592	pub fn CmdNextSubpass2KHR(
14593		commandBuffer : CommandBuffer,
14594		pSubpassBeginInfo : *const SubpassBeginInfo,
14595		pSubpassEndInfo : *const SubpassEndInfo);
14596	
14597	pub fn CmdEndRenderPass2KHR(
14598		commandBuffer : CommandBuffer,
14599		pSubpassEndInfo : *const SubpassEndInfo);
14600	
14601	pub fn GetSwapchainStatusKHR(
14602		swapchain : SwapchainKHR) -> VkResult;
14603	
14604	pub fn GetPhysicalDeviceExternalFencePropertiesKHR(
14605		pExternalFenceInfo : *const PhysicalDeviceExternalFenceInfo,
14606		pExternalFenceProperties : *mut ExternalFenceProperties);
14607	
14608	pub fn ImportFenceFdKHR(
14609		pImportFenceFdInfo : *const ImportFenceFdInfoKHR) -> VkResult;
14610	
14611	pub fn GetFenceFdKHR(
14612		pGetFdInfo : *const FenceGetFdInfoKHR,
14613		pFd : *mut i32) -> VkResult;
14614	
14615	pub fn EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
14616		queueFamilyIndex : u32,
14617		pCounterCount : *mut u32,
14618		pCounters : *mut PerformanceCounterKHR,
14619		pCounterDescriptions : *mut PerformanceCounterDescriptionKHR) -> VkResult;
14620	
14621	pub fn GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
14622		pPerformanceQueryCreateInfo : *const QueryPoolPerformanceCreateInfoKHR,
14623		pNumPasses : *mut u32);
14624	
14625	pub fn AcquireProfilingLockKHR(
14626		pInfo : *const AcquireProfilingLockInfoKHR) -> VkResult;
14627	
14628	pub fn ReleaseProfilingLockKHR();
14629	
14630	pub fn GetPhysicalDeviceSurfaceCapabilities2KHR(
14631		pSurfaceInfo : *const PhysicalDeviceSurfaceInfo2KHR,
14632		pSurfaceCapabilities : *mut SurfaceCapabilities2KHR) -> VkResult;
14633	
14634	pub fn GetPhysicalDeviceSurfaceFormats2KHR(
14635		pSurfaceInfo : *const PhysicalDeviceSurfaceInfo2KHR,
14636		pSurfaceFormatCount : *mut u32,
14637		pSurfaceFormats : *mut SurfaceFormat2KHR) -> VkResult;
14638	
14639	pub fn GetPhysicalDeviceDisplayProperties2KHR(
14640		pPropertyCount : *mut u32,
14641		pProperties : *mut DisplayProperties2KHR) -> VkResult;
14642	
14643	pub fn GetPhysicalDeviceDisplayPlaneProperties2KHR(
14644		pPropertyCount : *mut u32,
14645		pProperties : *mut DisplayPlaneProperties2KHR) -> VkResult;
14646	
14647	pub fn GetDisplayModeProperties2KHR(
14648		display : DisplayKHR,
14649		pPropertyCount : *mut u32,
14650		pProperties : *mut DisplayModeProperties2KHR) -> VkResult;
14651	
14652	pub fn GetDisplayPlaneCapabilities2KHR(
14653		pDisplayPlaneInfo : *const DisplayPlaneInfo2KHR,
14654		pCapabilities : *mut DisplayPlaneCapabilities2KHR) -> VkResult;
14655	
14656	pub fn GetImageMemoryRequirements2KHR(
14657		pInfo : *const ImageMemoryRequirementsInfo2,
14658		pMemoryRequirements : *mut MemoryRequirements2);
14659	
14660	pub fn GetBufferMemoryRequirements2KHR(
14661		pInfo : *const BufferMemoryRequirementsInfo2,
14662		pMemoryRequirements : *mut MemoryRequirements2);
14663	
14664	pub fn GetImageSparseMemoryRequirements2KHR(
14665		pInfo : *const ImageSparseMemoryRequirementsInfo2,
14666		pSparseMemoryRequirementCount : *mut u32,
14667		pSparseMemoryRequirements : *mut SparseImageMemoryRequirements2);
14668	
14669	pub fn CreateSamplerYcbcrConversionKHR(
14670		pCreateInfo : *const SamplerYcbcrConversionCreateInfo,
14671		pYcbcrConversion : *mut SamplerYcbcrConversion) -> VkResult;
14672	
14673	pub fn DestroySamplerYcbcrConversionKHR(
14674		ycbcrConversion : SamplerYcbcrConversion);
14675	
14676	pub fn BindBufferMemory2KHR(
14677		bindInfoCount : u32,
14678		pBindInfos : *const BindBufferMemoryInfo) -> VkResult;
14679	
14680	pub fn BindImageMemory2KHR(
14681		bindInfoCount : u32,
14682		pBindInfos : *const BindImageMemoryInfo) -> VkResult;
14683	
14684	pub fn GetDescriptorSetLayoutSupportKHR(
14685		pCreateInfo : *const DescriptorSetLayoutCreateInfo,
14686		pSupport : *mut DescriptorSetLayoutSupport);
14687	
14688	pub fn CmdDrawIndirectCountKHR(
14689		commandBuffer : CommandBuffer,
14690		buffer : Buffer,
14691		offset : DeviceSize,
14692		countBuffer : Buffer,
14693		countBufferOffset : DeviceSize,
14694		maxDrawCount : u32,
14695		stride : u32);
14696	
14697	pub fn CmdDrawIndexedIndirectCountKHR(
14698		commandBuffer : CommandBuffer,
14699		buffer : Buffer,
14700		offset : DeviceSize,
14701		countBuffer : Buffer,
14702		countBufferOffset : DeviceSize,
14703		maxDrawCount : u32,
14704		stride : u32);
14705	
14706	pub fn GetSemaphoreCounterValueKHR(
14707		semaphore : Semaphore,
14708		pValue : *mut u64) -> VkResult;
14709	
14710	pub fn WaitSemaphoresKHR(
14711		pWaitInfo : *const SemaphoreWaitInfo,
14712		timeout : u64) -> VkResult;
14713	
14714	pub fn SignalSemaphoreKHR(
14715		pSignalInfo : *const SemaphoreSignalInfo) -> VkResult;
14716	
14717	pub fn GetBufferDeviceAddressKHR(
14718		pInfo : *const BufferDeviceAddressInfo) -> DeviceAddress;
14719	
14720	pub fn GetBufferOpaqueCaptureAddressKHR(
14721		pInfo : *const BufferDeviceAddressInfo) -> u64;
14722	
14723	pub fn GetDeviceMemoryOpaqueCaptureAddressKHR(
14724		pInfo : *const DeviceMemoryOpaqueCaptureAddressInfo) -> u64;
14725	
14726	pub fn GetPipelineExecutablePropertiesKHR(
14727		pPipelineInfo : *const PipelineInfoKHR,
14728		pExecutableCount : *mut u32,
14729		pProperties : *mut PipelineExecutablePropertiesKHR) -> VkResult;
14730	
14731	// pub fn GetPipelineExecutableStatisticsKHR(
14732	//     pExecutableInfo : *const PipelineExecutableInfoKHR,
14733	//     pStatisticCount : *mut u32,
14734	//     pStatistics : *mut PipelineExecutableStatisticKHR) -> VkResult;
14735	
14736	pub fn GetPipelineExecutableInternalRepresentationsKHR(
14737		pExecutableInfo : *const PipelineExecutableInfoKHR,
14738		pInternalRepresentationCount : *mut u32,
14739		pInternalRepresentations : *mut PipelineExecutableInternalRepresentationKHR) -> VkResult;
14740	
14741	pub fn CreateDebugReportCallbackEXT(
14742		pCreateInfo : *const DebugReportCallbackCreateInfoEXT,
14743		pCallback : *mut DebugReportCallbackEXT) -> VkResult;
14744	
14745	pub fn DestroyDebugReportCallbackEXT(
14746		callback : DebugReportCallbackEXT);
14747	
14748	pub fn DebugReportMessageEXT(
14749		flags : DebugReportFlagsEXT,
14750		objectType : DebugReportObjectTypeEXT,
14751		object : u64,
14752		location : usize,
14753		messageCode : i32,
14754		pLayerPrefix : *const i8,
14755		pMessage : *const i8);
14756	
14757	pub fn DebugMarkerSetObjectTagEXT(
14758		pTagInfo : *const DebugMarkerObjectTagInfoEXT) -> VkResult;
14759	
14760	pub fn DebugMarkerSetObjectNameEXT(
14761		pNameInfo : *const DebugMarkerObjectNameInfoEXT) -> VkResult;
14762	
14763	pub fn CmdDebugMarkerBeginEXT(
14764		commandBuffer : CommandBuffer,
14765		pMarkerInfo : *const DebugMarkerMarkerInfoEXT);
14766	
14767	pub fn CmdDebugMarkerEndEXT(
14768		commandBuffer : CommandBuffer);
14769	
14770	pub fn CmdDebugMarkerInsertEXT(
14771		commandBuffer : CommandBuffer,
14772		pMarkerInfo : *const DebugMarkerMarkerInfoEXT);
14773	
14774	pub fn CmdBindTransformFeedbackBuffersEXT(
14775		commandBuffer : CommandBuffer,
14776		firstBinding : u32,
14777		bindingCount : u32,
14778		pBuffers : *const Buffer,
14779		pOffsets : *const DeviceSize,
14780		pSizes : *const DeviceSize);
14781	
14782	pub fn CmdBeginTransformFeedbackEXT(
14783		commandBuffer : CommandBuffer,
14784		firstCounterBuffer : u32,
14785		counterBufferCount : u32,
14786		pCounterBuffers : *const Buffer,
14787		pCounterBufferOffsets : *const DeviceSize);
14788	
14789	pub fn CmdEndTransformFeedbackEXT(
14790		commandBuffer : CommandBuffer,
14791		firstCounterBuffer : u32,
14792		counterBufferCount : u32,
14793		pCounterBuffers : *const Buffer,
14794		pCounterBufferOffsets : *const DeviceSize);
14795	
14796	pub fn CmdBeginQueryIndexedEXT(
14797		commandBuffer : CommandBuffer,
14798		queryPool : QueryPool,
14799		query : u32,
14800		flags : QueryControlFlags,
14801		index : u32);
14802	
14803	pub fn CmdEndQueryIndexedEXT(
14804		commandBuffer : CommandBuffer,
14805		queryPool : QueryPool,
14806		query : u32,
14807		index : u32);
14808	
14809	pub fn CmdDrawIndirectByteCountEXT(
14810		commandBuffer : CommandBuffer,
14811		instanceCount : u32,
14812		firstInstance : u32,
14813		counterBuffer : Buffer,
14814		counterBufferOffset : DeviceSize,
14815		counterOffset : u32,
14816		vertexStride : u32);
14817	
14818	pub fn GetImageViewHandleNVX(
14819		pInfo : *const ImageViewHandleInfoNVX) -> u32;
14820	
14821	pub fn GetImageViewAddressNVX(
14822		imageView : ImageView,
14823		pProperties : *mut ImageViewAddressPropertiesNVX) -> VkResult;
14824	
14825	pub fn CmdDrawIndirectCountAMD(
14826		commandBuffer : CommandBuffer,
14827		buffer : Buffer,
14828		offset : DeviceSize,
14829		countBuffer : Buffer,
14830		countBufferOffset : DeviceSize,
14831		maxDrawCount : u32,
14832		stride : u32);
14833	
14834	pub fn CmdDrawIndexedIndirectCountAMD(
14835		commandBuffer : CommandBuffer,
14836		buffer : Buffer,
14837		offset : DeviceSize,
14838		countBuffer : Buffer,
14839		countBufferOffset : DeviceSize,
14840		maxDrawCount : u32,
14841		stride : u32);
14842	
14843	pub fn GetShaderInfoAMD(
14844		pipeline : Pipeline,
14845		shaderStage : ShaderStageFlagBits,
14846		infoType : ShaderInfoTypeAMD,
14847		pInfoSize : *mut usize,
14848		pInfo : u64) -> VkResult;
14849	
14850	pub fn GetPhysicalDeviceExternalImageFormatPropertiesNV(
14851		format : Format,
14852		r#type : ImageType,
14853		tiling : ImageTiling,
14854		usage : ImageUsageFlags,
14855		flags : ImageCreateFlags,
14856		externalHandleType : ExternalMemoryHandleTypeFlagsNV,
14857		pExternalImageFormatProperties : *mut ExternalImageFormatPropertiesNV) -> VkResult;
14858	
14859	pub fn CmdBeginConditionalRenderingEXT(
14860		commandBuffer : CommandBuffer,
14861		pConditionalRenderingBegin : *const ConditionalRenderingBeginInfoEXT);
14862	
14863	pub fn CmdEndConditionalRenderingEXT(
14864		commandBuffer : CommandBuffer);
14865	
14866	pub fn CmdSetViewportWScalingNV(
14867		commandBuffer : CommandBuffer,
14868		firstViewport : u32,
14869		viewportCount : u32,
14870		pViewportWScalings : *const ViewportWScalingNV);
14871	
14872	pub fn ReleaseDisplayEXT(
14873		display : DisplayKHR) -> VkResult;
14874	
14875	pub fn GetPhysicalDeviceSurfaceCapabilities2EXT(
14876		surface : SurfaceKHR,
14877		pSurfaceCapabilities : *mut SurfaceCapabilities2EXT) -> VkResult;
14878	
14879	pub fn DisplayPowerControlEXT(
14880		display : DisplayKHR,
14881		pDisplayPowerInfo : *const DisplayPowerInfoEXT) -> VkResult;
14882	
14883	pub fn RegisterDeviceEventEXT(
14884		pDeviceEventInfo : *const DeviceEventInfoEXT,
14885		pFence : *mut Fence) -> VkResult;
14886	
14887	pub fn RegisterDisplayEventEXT(
14888		display : DisplayKHR,
14889		pDisplayEventInfo : *const DisplayEventInfoEXT,
14890		pFence : *mut Fence) -> VkResult;
14891	
14892	pub fn GetSwapchainCounterEXT(
14893		swapchain : SwapchainKHR,
14894		counter : SurfaceCounterFlagBitsEXT,
14895		pCounterValue : *mut u64) -> VkResult;
14896	
14897	pub fn GetRefreshCycleDurationGOOGLE(
14898		swapchain : SwapchainKHR,
14899		pDisplayTimingProperties : *mut RefreshCycleDurationGOOGLE) -> VkResult;
14900	
14901	pub fn GetPastPresentationTimingGOOGLE(
14902		swapchain : SwapchainKHR,
14903		pPresentationTimingCount : *mut u32,
14904		pPresentationTimings : *mut PastPresentationTimingGOOGLE) -> VkResult;
14905	
14906	pub fn CmdSetDiscardRectangleEXT(
14907		commandBuffer : CommandBuffer,
14908		firstDiscardRectangle : u32,
14909		discardRectangleCount : u32,
14910		pDiscardRectangles : *const Rect2D);
14911	
14912	pub fn SetHdrMetadataEXT(
14913		swapchainCount : u32,
14914		pSwapchains : *const SwapchainKHR,
14915		pMetadata : *const HdrMetadataEXT);
14916	
14917	pub fn SetDebugUtilsObjectNameEXT(
14918		pNameInfo : *const DebugUtilsObjectNameInfoEXT) -> VkResult;
14919	
14920	pub fn SetDebugUtilsObjectTagEXT(
14921		pTagInfo : *const DebugUtilsObjectTagInfoEXT) -> VkResult;
14922	
14923	pub fn QueueBeginDebugUtilsLabelEXT(
14924		pLabelInfo : *const DebugUtilsLabelEXT);
14925	
14926	pub fn QueueEndDebugUtilsLabelEXT(
14927		queue : Queue);
14928	
14929	pub fn QueueInsertDebugUtilsLabelEXT(
14930		pLabelInfo : *const DebugUtilsLabelEXT);
14931	
14932	pub fn CmdBeginDebugUtilsLabelEXT(
14933		commandBuffer : CommandBuffer,
14934		pLabelInfo : *const DebugUtilsLabelEXT);
14935	
14936	pub fn CmdEndDebugUtilsLabelEXT(
14937		commandBuffer : CommandBuffer);
14938	
14939	pub fn CmdInsertDebugUtilsLabelEXT(
14940		commandBuffer : CommandBuffer,
14941		pLabelInfo : *const DebugUtilsLabelEXT);
14942	
14943	pub fn CreateDebugUtilsMessengerEXT(
14944		pCreateInfo : *const DebugUtilsMessengerCreateInfoEXT,
14945		pMessenger : *mut DebugUtilsMessengerEXT) -> VkResult;
14946	
14947	pub fn DestroyDebugUtilsMessengerEXT(
14948		messenger : DebugUtilsMessengerEXT);
14949	
14950	pub fn SubmitDebugUtilsMessageEXT(
14951		messageSeverity : DebugUtilsMessageSeverityFlagBitsEXT,
14952		messageTypes : DebugUtilsMessageTypeFlagsEXT,
14953		pCallbackData : *const DebugUtilsMessengerCallbackDataEXT);
14954	
14955	pub fn CmdSetSampleLocationsEXT(
14956		commandBuffer : CommandBuffer,
14957		pSampleLocationsInfo : *const SampleLocationsInfoEXT);
14958	
14959	pub fn GetPhysicalDeviceMultisamplePropertiesEXT(
14960		samples : SampleCountFlagBits,
14961		pMultisampleProperties : *mut MultisamplePropertiesEXT);
14962	
14963	pub fn GetImageDrmFormatModifierPropertiesEXT(
14964		image : Image,
14965		pProperties : *mut ImageDrmFormatModifierPropertiesEXT) -> VkResult;
14966	
14967	pub fn CreateValidationCacheEXT(
14968		pCreateInfo : *const ValidationCacheCreateInfoEXT,
14969		pValidationCache : *mut ValidationCacheEXT) -> VkResult;
14970	
14971	pub fn DestroyValidationCacheEXT(
14972		validationCache : ValidationCacheEXT);
14973	
14974	pub fn MergeValidationCachesEXT(
14975		dstCache : ValidationCacheEXT,
14976		srcCacheCount : u32,
14977		pSrcCaches : *const ValidationCacheEXT) -> VkResult;
14978	
14979	pub fn GetValidationCacheDataEXT(
14980		validationCache : ValidationCacheEXT,
14981		pDataSize : *mut usize,
14982		pData : u64) -> VkResult;
14983	
14984	pub fn CmdBindShadingRateImageNV(
14985		commandBuffer : CommandBuffer,
14986		imageView : ImageView,
14987		imageLayout : ImageLayout);
14988	
14989	pub fn CmdSetViewportShadingRatePaletteNV(
14990		commandBuffer : CommandBuffer,
14991		firstViewport : u32,
14992		viewportCount : u32,
14993		pShadingRatePalettes : *const ShadingRatePaletteNV);
14994	
14995	pub fn CmdSetCoarseSampleOrderNV(
14996		commandBuffer : CommandBuffer,
14997		sampleOrderType : CoarseSampleOrderTypeNV,
14998		customSampleOrderCount : u32,
14999		pCustomSampleOrders : *const CoarseSampleOrderCustomNV);
15000	
15001	pub fn CreateAccelerationStructureNV(
15002		pCreateInfo : *const AccelerationStructureCreateInfoNV,
15003		pAccelerationStructure : *mut AccelerationStructureNV) -> VkResult;
15004	
15005	pub fn DestroyAccelerationStructureKHR(
15006		accelerationStructure : AccelerationStructureKHR);
15007	
15008	pub fn DestroyAccelerationStructureNV(
15009		accelerationStructure : AccelerationStructureKHR);
15010	
15011	pub fn GetAccelerationStructureMemoryRequirementsNV(
15012		pInfo : *const AccelerationStructureMemoryRequirementsInfoNV,
15013		pMemoryRequirements : *mut MemoryRequirements2KHR);
15014	
15015	pub fn BindAccelerationStructureMemoryKHR(
15016		bindInfoCount : u32,
15017		pBindInfos : *const BindAccelerationStructureMemoryInfoKHR) -> VkResult;
15018	
15019	pub fn BindAccelerationStructureMemoryNV(
15020		bindInfoCount : u32,
15021		pBindInfos : *const BindAccelerationStructureMemoryInfoKHR) -> VkResult;
15022	
15023	pub fn CmdBuildAccelerationStructureNV(
15024		commandBuffer : CommandBuffer,
15025		pInfo : *const AccelerationStructureInfoNV,
15026		instanceData : Buffer,
15027		instanceOffset : DeviceSize,
15028		update : Bool32,
15029		dst : AccelerationStructureKHR,
15030		src : AccelerationStructureKHR,
15031		scratch : Buffer,
15032		scratchOffset : DeviceSize);
15033	
15034	pub fn CmdCopyAccelerationStructureNV(
15035		commandBuffer : CommandBuffer,
15036		dst : AccelerationStructureKHR,
15037		src : AccelerationStructureKHR,
15038		mode : CopyAccelerationStructureModeKHR);
15039	
15040	pub fn CmdTraceRaysNV(
15041		commandBuffer : CommandBuffer,
15042		raygenShaderBindingTableBuffer : Buffer,
15043		raygenShaderBindingOffset : DeviceSize,
15044		missShaderBindingTableBuffer : Buffer,
15045		missShaderBindingOffset : DeviceSize,
15046		missShaderBindingStride : DeviceSize,
15047		hitShaderBindingTableBuffer : Buffer,
15048		hitShaderBindingOffset : DeviceSize,
15049		hitShaderBindingStride : DeviceSize,
15050		callableShaderBindingTableBuffer : Buffer,
15051		callableShaderBindingOffset : DeviceSize,
15052		callableShaderBindingStride : DeviceSize,
15053		width : u32,
15054		height : u32,
15055		depth : u32);
15056	
15057	pub fn CreateRayTracingPipelinesNV(
15058		pipelineCache : PipelineCache,
15059		createInfoCount : u32,
15060		pCreateInfos : *const RayTracingPipelineCreateInfoNV,
15061		pPipelines : *mut Pipeline) -> VkResult;
15062	
15063	pub fn GetRayTracingShaderGroupHandlesKHR(
15064		pipeline : Pipeline,
15065		firstGroup : u32,
15066		groupCount : u32,
15067		dataSize : usize,
15068		pData : u64) -> VkResult;
15069	
15070	pub fn GetRayTracingShaderGroupHandlesNV(
15071		pipeline : Pipeline,
15072		firstGroup : u32,
15073		groupCount : u32,
15074		dataSize : usize,
15075		pData : u64) -> VkResult;
15076	
15077	pub fn GetAccelerationStructureHandleNV(
15078		accelerationStructure : AccelerationStructureKHR,
15079		dataSize : usize,
15080		pData : u64) -> VkResult;
15081	
15082	pub fn CmdWriteAccelerationStructuresPropertiesKHR(
15083		commandBuffer : CommandBuffer,
15084		accelerationStructureCount : u32,
15085		pAccelerationStructures : *const AccelerationStructureKHR,
15086		queryType : QueryType,
15087		queryPool : QueryPool,
15088		firstQuery : u32);
15089	
15090	pub fn CmdWriteAccelerationStructuresPropertiesNV(
15091		commandBuffer : CommandBuffer,
15092		accelerationStructureCount : u32,
15093		pAccelerationStructures : *const AccelerationStructureKHR,
15094		queryType : QueryType,
15095		queryPool : QueryPool,
15096		firstQuery : u32);
15097	
15098	pub fn CompileDeferredNV(
15099		pipeline : Pipeline,
15100		shader : u32) -> VkResult;
15101	
15102	pub fn GetMemoryHostPointerPropertiesEXT(
15103		handleType : ExternalMemoryHandleTypeFlagBits,
15104		pHostPointer : u64,
15105		pMemoryHostPointerProperties : *mut MemoryHostPointerPropertiesEXT) -> VkResult;
15106	
15107	pub fn CmdWriteBufferMarkerAMD(
15108		commandBuffer : CommandBuffer,
15109		pipelineStage : PipelineStageFlagBits,
15110		dstBuffer : Buffer,
15111		dstOffset : DeviceSize,
15112		marker : u32);
15113	
15114	pub fn GetPhysicalDeviceCalibrateableTimeDomainsEXT(
15115		pTimeDomainCount : *mut u32,
15116		pTimeDomains : *mut TimeDomainEXT) -> VkResult;
15117	
15118	pub fn GetCalibratedTimestampsEXT(
15119		timestampCount : u32,
15120		pTimestampInfos : *const CalibratedTimestampInfoEXT,
15121		pTimestamps : *mut u64,
15122		pMaxDeviation : *mut u64) -> VkResult;
15123	
15124	pub fn CmdDrawMeshTasksNV(
15125		commandBuffer : CommandBuffer,
15126		taskCount : u32,
15127		firstTask : u32);
15128	
15129	pub fn CmdDrawMeshTasksIndirectNV(
15130		commandBuffer : CommandBuffer,
15131		buffer : Buffer,
15132		offset : DeviceSize,
15133		drawCount : u32,
15134		stride : u32);
15135	
15136	pub fn CmdDrawMeshTasksIndirectCountNV(
15137		commandBuffer : CommandBuffer,
15138		buffer : Buffer,
15139		offset : DeviceSize,
15140		countBuffer : Buffer,
15141		countBufferOffset : DeviceSize,
15142		maxDrawCount : u32,
15143		stride : u32);
15144	
15145	pub fn CmdSetExclusiveScissorNV(
15146		commandBuffer : CommandBuffer,
15147		firstExclusiveScissor : u32,
15148		exclusiveScissorCount : u32,
15149		pExclusiveScissors : *const Rect2D);
15150	
15151	pub fn CmdSetCheckpointNV(
15152		commandBuffer : CommandBuffer,
15153		pCheckpointMarker : u64);
15154	
15155	pub fn GetQueueCheckpointDataNV(
15156		pCheckpointDataCount : *mut u32,
15157		pCheckpointData : *mut CheckpointDataNV);
15158	
15159	pub fn InitializePerformanceApiINTEL(
15160		pInitializeInfo : *const InitializePerformanceApiInfoINTEL) -> VkResult;
15161	
15162	pub fn UninitializePerformanceApiINTEL();
15163	
15164	pub fn CmdSetPerformanceMarkerINTEL(
15165		commandBuffer : CommandBuffer,
15166		pMarkerInfo : *const PerformanceMarkerInfoINTEL) -> VkResult;
15167	
15168	pub fn CmdSetPerformanceStreamMarkerINTEL(
15169		commandBuffer : CommandBuffer,
15170		pMarkerInfo : *const PerformanceStreamMarkerInfoINTEL) -> VkResult;
15171	
15172	pub fn CmdSetPerformanceOverrideINTEL(
15173		commandBuffer : CommandBuffer,
15174		pOverrideInfo : *const PerformanceOverrideInfoINTEL) -> VkResult;
15175	
15176	pub fn AcquirePerformanceConfigurationINTEL(
15177		pAcquireInfo : *const PerformanceConfigurationAcquireInfoINTEL,
15178		pConfiguration : *mut PerformanceConfigurationINTEL) -> VkResult;
15179	
15180	pub fn ReleasePerformanceConfigurationINTEL(
15181		configuration : PerformanceConfigurationINTEL) -> VkResult;
15182	
15183	pub fn QueueSetPerformanceConfigurationINTEL(
15184		configuration : PerformanceConfigurationINTEL) -> VkResult;
15185	
15186	// pub fn GetPerformanceParameterINTEL(
15187	//     parameter : PerformanceParameterTypeINTEL,
15188	//     pValue : *mut PerformanceValueINTEL) -> VkResult;
15189	
15190	pub fn SetLocalDimmingAMD(
15191		swapChain : SwapchainKHR,
15192		localDimmingEnable : Bool32);
15193	
15194	pub fn GetBufferDeviceAddressEXT(
15195		pInfo : *const BufferDeviceAddressInfo) -> DeviceAddress;
15196	
15197	pub fn GetPhysicalDeviceToolPropertiesEXT(
15198		pToolCount : *mut u32,
15199		pToolProperties : *mut PhysicalDeviceToolPropertiesEXT) -> VkResult;
15200	
15201	pub fn GetPhysicalDeviceCooperativeMatrixPropertiesNV(
15202		pPropertyCount : *mut u32,
15203		pProperties : *mut CooperativeMatrixPropertiesNV) -> VkResult;
15204	
15205	pub fn GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
15206		pCombinationCount : *mut u32,
15207		pCombinations : *mut FramebufferMixedSamplesCombinationNV) -> VkResult;
15208	
15209	pub fn CreateHeadlessSurfaceEXT(
15210		pCreateInfo : *const HeadlessSurfaceCreateInfoEXT,
15211		pSurface : *mut SurfaceKHR) -> VkResult;
15212	
15213	pub fn CmdSetLineStippleEXT(
15214		commandBuffer : CommandBuffer,
15215		lineStippleFactor : u32,
15216		lineStipplePattern : u16);
15217	
15218	pub fn ResetQueryPoolEXT(
15219		queryPool : QueryPool,
15220		firstQuery : u32,
15221		queryCount : u32);
15222	
15223	pub fn GetGeneratedCommandsMemoryRequirementsNV(
15224		pInfo : *const GeneratedCommandsMemoryRequirementsInfoNV,
15225		pMemoryRequirements : *mut MemoryRequirements2);
15226	
15227	pub fn CmdPreprocessGeneratedCommandsNV(
15228		commandBuffer : CommandBuffer,
15229		pGeneratedCommandsInfo : *const GeneratedCommandsInfoNV);
15230	
15231	pub fn CmdExecuteGeneratedCommandsNV(
15232		commandBuffer : CommandBuffer,
15233		isPreprocessed : Bool32,
15234		pGeneratedCommandsInfo : *const GeneratedCommandsInfoNV);
15235	
15236	pub fn CmdBindPipelineShaderGroupNV(
15237		commandBuffer : CommandBuffer,
15238		pipelineBindPoint : PipelineBindPoint,
15239		pipeline : Pipeline,
15240		groupIndex : u32);
15241	
15242	pub fn CreateIndirectCommandsLayoutNV(
15243		pCreateInfo : *const IndirectCommandsLayoutCreateInfoNV,
15244		pIndirectCommandsLayout : *mut IndirectCommandsLayoutNV) -> VkResult;
15245	
15246	pub fn DestroyIndirectCommandsLayoutNV(
15247		indirectCommandsLayout : IndirectCommandsLayoutNV);
15248	
15249	pub fn CreatePrivateDataSlotEXT(
15250		pCreateInfo : *const PrivateDataSlotCreateInfoEXT,
15251		pPrivateDataSlot : *mut PrivateDataSlotEXT) -> VkResult;
15252	
15253	pub fn DestroyPrivateDataSlotEXT(
15254		privateDataSlot : PrivateDataSlotEXT);
15255	
15256	pub fn SetPrivateDataEXT(
15257		objectType : ObjectType,
15258		objectHandle : u64,
15259		privateDataSlot : PrivateDataSlotEXT,
15260		data : u64) -> VkResult;
15261	
15262	pub fn GetPrivateDataEXT(
15263		objectType : ObjectType,
15264		objectHandle : u64,
15265		privateDataSlot : PrivateDataSlotEXT,
15266		pData : *mut u64);	
15267	}
15268	
15269extern "C" {
15270	pub fn CreateWin32SurfaceKHR(
15271		pCreateInfo : *const Win32SurfaceCreateInfoKHR,
15272		pSurface : *mut SurfaceKHR) -> VkResult;
15273	
15274	pub fn GetPhysicalDeviceWin32PresentationSupportKHR() -> Bool32;
15275	
15276	pub fn GetMemoryWin32HandleKHR(
15277		pGetWin32HandleInfo : *const MemoryGetWin32HandleInfoKHR,
15278		pHandle : *mut HANDLE) -> VkResult;
15279	
15280	pub fn GetMemoryWin32HandlePropertiesKHR(
15281		handleType : ExternalMemoryHandleTypeFlagBits,
15282		handle : HANDLE,
15283		pMemoryWin32HandleProperties : *mut MemoryWin32HandlePropertiesKHR) -> VkResult;
15284	
15285	pub fn ImportSemaphoreWin32HandleKHR(
15286		pImportSemaphoreWin32HandleInfo : *const ImportSemaphoreWin32HandleInfoKHR) -> VkResult;
15287	
15288	pub fn GetSemaphoreWin32HandleKHR(
15289		pGetWin32HandleInfo : *const SemaphoreGetWin32HandleInfoKHR,
15290		pHandle : *mut HANDLE) -> VkResult;
15291	
15292	pub fn ImportFenceWin32HandleKHR(
15293		pImportFenceWin32HandleInfo : *const ImportFenceWin32HandleInfoKHR) -> VkResult;
15294	
15295	pub fn GetFenceWin32HandleKHR(
15296		pGetWin32HandleInfo : *const FenceGetWin32HandleInfoKHR,
15297		pHandle : *mut HANDLE) -> VkResult;
15298	
15299	pub fn GetMemoryWin32HandleNV(
15300		memory : DeviceMemory,
15301		handleType : ExternalMemoryHandleTypeFlagsNV,
15302		pHandle : *mut HANDLE) -> VkResult;
15303	
15304	pub fn GetPhysicalDeviceSurfacePresentModes2EXT(
15305		pSurfaceInfo : *const PhysicalDeviceSurfaceInfo2KHR,
15306		pPresentModeCount : *mut u32,
15307		pPresentModes : *mut PresentModeKHR) -> VkResult;
15308	
15309	pub fn AcquireFullScreenExclusiveModeEXT(
15310		swapchain : SwapchainKHR) -> VkResult;
15311	
15312	pub fn ReleaseFullScreenExclusiveModeEXT(
15313		swapchain : SwapchainKHR) -> VkResult;
15314	
15315	pub fn GetDeviceGroupSurfacePresentModes2EXT(
15316		pSurfaceInfo : *const PhysicalDeviceSurfaceInfo2KHR,
15317		pModes : *mut DeviceGroupPresentModeFlagsKHR) -> VkResult;
15318}
15319
15320pub type XlibSurfaceCreateFlagsKHR = u32;
15321#[repr(C)]
15322#[derive(Debug, Copy, Clone)]
15323pub struct XlibSurfaceCreateInfoKHR {
15324        pub sType : StructureType,
15325        pub pNext : *const void,
15326        pub flags : XlibSurfaceCreateFlagsKHR,
15327        pub dpy : u64,
15328        pub window : u64,
15329}
15330
15331impl ::std::default::Default for XlibSurfaceCreateInfoKHR {
15332    fn default() -> XlibSurfaceCreateInfoKHR {
15333        XlibSurfaceCreateInfoKHR {
15334            sType : STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
15335            pNext : 0 as _,
15336            flags : Default::default(),
15337			dpy : 0 as _,
15338			window : 0 as _,
15339        }
15340    }
15341}
15342
15343extern "C" {
15344	pub fn CreateXlibSurfaceKHR(
15345		pCreateInfo : *const XlibSurfaceCreateInfoKHR,
15346		pSurface : *mut SurfaceKHR) -> VkResult;
15347		
15348	pub fn GetPhysicalDeviceXlibPresentationSupportKHR(
15349		queueFamilyIndex : u32,
15350		dpy : u64,
15351		visualID : u64) -> Bool32;
15352}
15353
15354pub type XcbSurfaceCreateFlagsKHR = u32;
15355#[repr(C)]
15356#[derive(Debug, Copy, Clone)]
15357pub struct XcbSurfaceCreateInfoKHR {
15358        pub sType : StructureType,
15359        pub pNext : *const void,
15360        pub flags : XcbSurfaceCreateFlagsKHR,
15361        pub connection : u64,
15362        pub window : u64,
15363}
15364
15365impl ::std::default::Default for XcbSurfaceCreateInfoKHR {
15366    fn default() -> XcbSurfaceCreateInfoKHR {
15367        XcbSurfaceCreateInfoKHR {
15368            sType : STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
15369            pNext : 0 as _,
15370            flags : Default::default(),
15371			connection : 0 as _,
15372			window : 0 as _,
15373        }
15374    }
15375}
15376
15377extern "C" {
15378	pub fn CreateXcbSurfaceKHR(
15379		pCreateInfo : *const XcbSurfaceCreateInfoKHR,
15380		pSurface : *mut SurfaceKHR) -> VkResult;
15381	
15382	pub fn GetPhysicalDeviceXcbPresentationSupportKHR(
15383		queueFamilyIndex : u32,
15384		connection : u64,
15385		visual_id : u32) -> Bool32;
15386}
15387
15388pub type WaylandSurfaceCreateFlagsKHR = u32;
15389
15390#[repr(C)]
15391#[derive(Debug, Copy, Clone)]
15392pub struct WaylandSurfaceCreateInfoKHR {
15393        pub sType : StructureType,
15394        pub pNext : *const void,
15395        pub flags : WaylandSurfaceCreateFlagsKHR,
15396        pub display : u64,
15397        pub surface : u64,
15398}
15399
15400impl ::std::default::Default for WaylandSurfaceCreateInfoKHR {
15401    fn default() -> WaylandSurfaceCreateInfoKHR {
15402        WaylandSurfaceCreateInfoKHR {
15403            sType : STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
15404            pNext : 0 as _,
15405            flags : Default::default(),
15406			display : 0 as _,
15407			surface : 0 as _,
15408        }
15409    }
15410}
15411
15412extern "C" {
15413	pub fn CreateWaylandSurfaceKHR(
15414		pCreateInfo : *const WaylandSurfaceCreateInfoKHR,
15415		pSurface : *const SurfaceKHR) -> VkResult;
15416	
15417	pub fn GetPhysicalDeviceWaylandPresentationSupportKHR(
15418		queueFamilyIndex : u32,
15419		display : u64) -> Bool32;
15420}
15421
15422pub type AndroidSurfaceCreateFlagsKHR = u32;
15423#[repr(C)]
15424#[derive(Debug, Copy, Clone)]
15425pub struct AndroidSurfaceCreateInfoKHR {
15426        pub sType : StructureType,
15427        pub pNext : *const void,
15428        pub flags : AndroidSurfaceCreateFlagsKHR,
15429        pub window : u64,
15430}
15431
15432#[repr(C)]
15433#[derive(Debug, Copy, Clone)]
15434pub struct AndroidHardwareBufferUsageANDROID {
15435        pub sType : StructureType,
15436        pub pNext : *mut void,
15437        pub androidHardwareBufferUsage : u64,
15438}
15439
15440#[repr(C)]
15441#[derive(Debug, Copy, Clone)]
15442pub struct AndroidHardwareBufferPropertiesANDROID {
15443        pub sType : StructureType,
15444        pub pNext : *mut void,
15445        pub allocationSize : DeviceSize,
15446        pub memoryTypeBits : u32,
15447}
15448
15449#[repr(C)]
15450#[derive(Debug, Copy, Clone)]
15451pub struct AndroidHardwareBufferFormatPropertiesANDROID {
15452        pub sType : StructureType,
15453        pub pNext : *mut void,
15454        pub format : Format,
15455        pub externalFormat : u64,
15456        pub formatFeatures : FormatFeatureFlags,
15457        pub samplerYcbcrConversionComponents : ComponentMapping,
15458        pub suggestedYcbcrModel : SamplerYcbcrModelConversion,
15459        pub suggestedYcbcrRange : SamplerYcbcrRange,
15460        pub suggestedXChromaOffset : ChromaLocation,
15461        pub suggestedYChromaOffset : ChromaLocation,
15462}
15463
15464#[repr(C)]
15465#[derive(Debug, Copy, Clone)]
15466pub struct ImportAndroidHardwareBufferInfoANDROID {
15467        pub sType : StructureType,
15468        pub pNext : *const void,
15469        pub buffer : u64,
15470}
15471
15472#[repr(C)]
15473#[derive(Debug, Copy, Clone)]
15474pub struct MemoryGetAndroidHardwareBufferInfoANDROID {
15475        pub sType : StructureType,
15476        pub pNext : *const void,
15477        pub memory : DeviceMemory,
15478}
15479
15480#[repr(C)]
15481#[derive(Debug, Copy, Clone)]
15482pub struct ExternalFormatANDROID {
15483        pub sType : StructureType,
15484        pub pNext : *mut void,
15485        pub externalFormat : u64,
15486}
15487
15488
15489impl ::std::default::Default for AndroidSurfaceCreateInfoKHR {
15490    fn default() -> AndroidSurfaceCreateInfoKHR {
15491        AndroidSurfaceCreateInfoKHR {
15492            sType : STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,
15493            pNext : 0 as _,
15494            flags : 0 as _,
15495            window : 0 as _,
15496        }
15497    }
15498}
15499
15500impl ::std::default::Default for AndroidHardwareBufferUsageANDROID {
15501    fn default() -> AndroidHardwareBufferUsageANDROID {
15502        AndroidHardwareBufferUsageANDROID {
15503            sType : STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,
15504            pNext : 0 as _,
15505            androidHardwareBufferUsage : 0 as _,
15506        }
15507    }
15508}
15509
15510impl ::std::default::Default for AndroidHardwareBufferPropertiesANDROID {
15511    fn default() -> AndroidHardwareBufferPropertiesANDROID {
15512        AndroidHardwareBufferPropertiesANDROID {
15513            sType : STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,
15514            pNext : 0 as _,
15515            allocationSize : 0 as _,
15516            memoryTypeBits : 0 as _,
15517        }
15518    }
15519}
15520
15521impl ::std::default::Default for AndroidHardwareBufferFormatPropertiesANDROID {
15522    fn default() -> AndroidHardwareBufferFormatPropertiesANDROID {
15523        AndroidHardwareBufferFormatPropertiesANDROID {
15524            sType : STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,
15525            pNext : 0 as _,
15526            format : 0 as _,
15527            externalFormat : 0 as _,
15528            formatFeatures : 0 as _,
15529            samplerYcbcrConversionComponents : Default::default(),
15530            suggestedYcbcrModel : 0 as _,
15531            suggestedYcbcrRange : 0 as _,
15532            suggestedXChromaOffset : 0 as _,
15533            suggestedYChromaOffset : 0 as _,
15534        }
15535    }
15536}
15537
15538impl ::std::default::Default for ImportAndroidHardwareBufferInfoANDROID {
15539    fn default() -> ImportAndroidHardwareBufferInfoANDROID {
15540        ImportAndroidHardwareBufferInfoANDROID {
15541            sType : STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
15542            pNext : 0 as _,
15543            buffer : 0 as _,
15544        }
15545    }
15546}
15547
15548impl ::std::default::Default for MemoryGetAndroidHardwareBufferInfoANDROID {
15549    fn default() -> MemoryGetAndroidHardwareBufferInfoANDROID {
15550        MemoryGetAndroidHardwareBufferInfoANDROID {
15551            sType : STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,
15552            pNext : 0 as _,
15553            memory : 0 as _,
15554        }
15555    }
15556}
15557
15558impl ::std::default::Default for ExternalFormatANDROID {
15559    fn default() -> ExternalFormatANDROID {
15560        ExternalFormatANDROID {
15561            sType : STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,
15562            pNext : 0 as _,
15563            externalFormat : 0 as _,
15564        }
15565    }
15566}
15567
15568extern "C" {
15569	pub fn CreateAndroidSurfaceKHR(
15570		pCreateInfo : *const AndroidSurfaceCreateInfoKHR,
15571		pSurface : *mut SurfaceKHR) -> VkResult;
15572	
15573	pub fn GetAndroidHardwareBufferPropertiesANDROID(
15574		buffer : u64,
15575		pProperties : *mut AndroidHardwareBufferPropertiesANDROID) -> VkResult;
15576	
15577	pub fn GetMemoryAndroidHardwareBufferANDROID(
15578		pInfo : *const MemoryGetAndroidHardwareBufferInfoANDROID,
15579		pBuffer : u64) -> VkResult;
15580}
15581
15582impl ApplicationInfo {
15583
15584	pub fn new() -> Self {
15585		 Self::default()
15586	}
15587
15588	pub fn sType(mut self, sType : StructureType) -> Self {
15589		self.sType = sType;
15590		self
15591	}
15592
15593	pub fn pNext(mut self, pNext : *const void) -> Self {
15594		self.pNext = pNext;
15595		self
15596	}
15597
15598	pub fn pApplicationName(mut self, pApplicationName : *const i8) -> Self {
15599		self.pApplicationName = pApplicationName;
15600		self
15601	}
15602
15603	pub fn applicationVersion(mut self, applicationVersion : u32) -> Self {
15604		self.applicationVersion = applicationVersion;
15605		self
15606	}
15607
15608	pub fn pEngineName(mut self, pEngineName : *const i8) -> Self {
15609		self.pEngineName = pEngineName;
15610		self
15611	}
15612
15613	pub fn engineVersion(mut self, engineVersion : u32) -> Self {
15614		self.engineVersion = engineVersion;
15615		self
15616	}
15617
15618	pub fn apiVersion(mut self, apiVersion : u32) -> Self {
15619		self.apiVersion = apiVersion;
15620		self
15621	}
15622
15623}
15624
15625impl InstanceCreateInfo {
15626
15627	pub fn new() -> Self {
15628		 Self::default()
15629	}
15630
15631	pub fn sType(mut self, sType : StructureType) -> Self {
15632		self.sType = sType;
15633		self
15634	}
15635
15636	pub fn pNext(mut self, pNext : *const void) -> Self {
15637		self.pNext = pNext;
15638		self
15639	}
15640
15641	pub fn flags(mut self, flags : i32) -> Self {
15642		self.flags = flags;
15643		self
15644	}
15645
15646	pub fn pApplicationInfo(mut self, pApplicationInfo : *const ApplicationInfo) -> Self {
15647		self.pApplicationInfo = pApplicationInfo;
15648		self
15649	}
15650
15651	pub fn enabledLayerCount(mut self, enabledLayerCount : u32) -> Self {
15652		self.enabledLayerCount = enabledLayerCount;
15653		self
15654	}
15655
15656	pub fn ppEnabledLayerNames(mut self, ppEnabledLayerNames : *const *const i8) -> Self {
15657		self.ppEnabledLayerNames = ppEnabledLayerNames;
15658		self
15659	}
15660
15661	pub fn enabledExtensionCount(mut self, enabledExtensionCount : u32) -> Self {
15662		self.enabledExtensionCount = enabledExtensionCount;
15663		self
15664	}
15665
15666	pub fn ppEnabledExtensionNames(mut self, ppEnabledExtensionNames : *const *const i8) -> Self {
15667		self.ppEnabledExtensionNames = ppEnabledExtensionNames;
15668		self
15669	}
15670
15671}
15672
15673impl AllocationCallbacks {
15674
15675	pub fn new() -> Self {
15676		 Self::default()
15677	}
15678
15679	pub fn pUserData(mut self, pUserData : *mut void) -> Self {
15680		self.pUserData = pUserData;
15681		self
15682	}
15683
15684	pub fn pfnAllocation(mut self, pfnAllocation : u64) -> Self {
15685		self.pfnAllocation = pfnAllocation;
15686		self
15687	}
15688
15689	pub fn pfnReallocation(mut self, pfnReallocation : u64) -> Self {
15690		self.pfnReallocation = pfnReallocation;
15691		self
15692	}
15693
15694	pub fn pfnFree(mut self, pfnFree : u64) -> Self {
15695		self.pfnFree = pfnFree;
15696		self
15697	}
15698
15699	pub fn pfnInternalAllocation(mut self, pfnInternalAllocation : u64) -> Self {
15700		self.pfnInternalAllocation = pfnInternalAllocation;
15701		self
15702	}
15703
15704	pub fn pfnInternalFree(mut self, pfnInternalFree : u64) -> Self {
15705		self.pfnInternalFree = pfnInternalFree;
15706		self
15707	}
15708
15709}
15710
15711impl PhysicalDeviceFeatures {
15712
15713	pub fn new() -> Self {
15714		 Self::default()
15715	}
15716
15717	pub fn robustBufferAccess(mut self, robustBufferAccess : Bool32) -> Self {
15718		self.robustBufferAccess = robustBufferAccess;
15719		self
15720	}
15721
15722	pub fn fullDrawIndexUint32(mut self, fullDrawIndexUint32 : Bool32) -> Self {
15723		self.fullDrawIndexUint32 = fullDrawIndexUint32;
15724		self
15725	}
15726
15727	pub fn imageCubeArray(mut self, imageCubeArray : Bool32) -> Self {
15728		self.imageCubeArray = imageCubeArray;
15729		self
15730	}
15731
15732	pub fn independentBlend(mut self, independentBlend : Bool32) -> Self {
15733		self.independentBlend = independentBlend;
15734		self
15735	}
15736
15737	pub fn geometryShader(mut self, geometryShader : Bool32) -> Self {
15738		self.geometryShader = geometryShader;
15739		self
15740	}
15741
15742	pub fn tessellationShader(mut self, tessellationShader : Bool32) -> Self {
15743		self.tessellationShader = tessellationShader;
15744		self
15745	}
15746
15747	pub fn sampleRateShading(mut self, sampleRateShading : Bool32) -> Self {
15748		self.sampleRateShading = sampleRateShading;
15749		self
15750	}
15751
15752	pub fn dualSrcBlend(mut self, dualSrcBlend : Bool32) -> Self {
15753		self.dualSrcBlend = dualSrcBlend;
15754		self
15755	}
15756
15757	pub fn logicOp(mut self, logicOp : Bool32) -> Self {
15758		self.logicOp = logicOp;
15759		self
15760	}
15761
15762	pub fn multiDrawIndirect(mut self, multiDrawIndirect : Bool32) -> Self {
15763		self.multiDrawIndirect = multiDrawIndirect;
15764		self
15765	}
15766
15767	pub fn drawIndirectFirstInstance(mut self, drawIndirectFirstInstance : Bool32) -> Self {
15768		self.drawIndirectFirstInstance = drawIndirectFirstInstance;
15769		self
15770	}
15771
15772	pub fn depthClamp(mut self, depthClamp : Bool32) -> Self {
15773		self.depthClamp = depthClamp;
15774		self
15775	}
15776
15777	pub fn depthBiasClamp(mut self, depthBiasClamp : Bool32) -> Self {
15778		self.depthBiasClamp = depthBiasClamp;
15779		self
15780	}
15781
15782	pub fn fillModeNonSolid(mut self, fillModeNonSolid : Bool32) -> Self {
15783		self.fillModeNonSolid = fillModeNonSolid;
15784		self
15785	}
15786
15787	pub fn depthBounds(mut self, depthBounds : Bool32) -> Self {
15788		self.depthBounds = depthBounds;
15789		self
15790	}
15791
15792	pub fn wideLines(mut self, wideLines : Bool32) -> Self {
15793		self.wideLines = wideLines;
15794		self
15795	}
15796
15797	pub fn largePoints(mut self, largePoints : Bool32) -> Self {
15798		self.largePoints = largePoints;
15799		self
15800	}
15801
15802	pub fn alphaToOne(mut self, alphaToOne : Bool32) -> Self {
15803		self.alphaToOne = alphaToOne;
15804		self
15805	}
15806
15807	pub fn multiViewport(mut self, multiViewport : Bool32) -> Self {
15808		self.multiViewport = multiViewport;
15809		self
15810	}
15811
15812	pub fn samplerAnisotropy(mut self, samplerAnisotropy : Bool32) -> Self {
15813		self.samplerAnisotropy = samplerAnisotropy;
15814		self
15815	}
15816
15817	pub fn textureCompressionETC2(mut self, textureCompressionETC2 : Bool32) -> Self {
15818		self.textureCompressionETC2 = textureCompressionETC2;
15819		self
15820	}
15821
15822	pub fn textureCompressionASTC_LDR(mut self, textureCompressionASTC_LDR : Bool32) -> Self {
15823		self.textureCompressionASTC_LDR = textureCompressionASTC_LDR;
15824		self
15825	}
15826
15827	pub fn textureCompressionBC(mut self, textureCompressionBC : Bool32) -> Self {
15828		self.textureCompressionBC = textureCompressionBC;
15829		self
15830	}
15831
15832	pub fn occlusionQueryPrecise(mut self, occlusionQueryPrecise : Bool32) -> Self {
15833		self.occlusionQueryPrecise = occlusionQueryPrecise;
15834		self
15835	}
15836
15837	pub fn pipelineStatisticsQuery(mut self, pipelineStatisticsQuery : Bool32) -> Self {
15838		self.pipelineStatisticsQuery = pipelineStatisticsQuery;
15839		self
15840	}
15841
15842	pub fn vertexPipelineStoresAndAtomics(mut self, vertexPipelineStoresAndAtomics : Bool32) -> Self {
15843		self.vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics;
15844		self
15845	}
15846
15847	pub fn fragmentStoresAndAtomics(mut self, fragmentStoresAndAtomics : Bool32) -> Self {
15848		self.fragmentStoresAndAtomics = fragmentStoresAndAtomics;
15849		self
15850	}
15851
15852	pub fn shaderTessellationAndGeometryPointSize(mut self, shaderTessellationAndGeometryPointSize : Bool32) -> Self {
15853		self.shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize;
15854		self
15855	}
15856
15857	pub fn shaderImageGatherExtended(mut self, shaderImageGatherExtended : Bool32) -> Self {
15858		self.shaderImageGatherExtended = shaderImageGatherExtended;
15859		self
15860	}
15861
15862	pub fn shaderStorageImageExtendedFormats(mut self, shaderStorageImageExtendedFormats : Bool32) -> Self {
15863		self.shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats;
15864		self
15865	}
15866
15867	pub fn shaderStorageImageMultisample(mut self, shaderStorageImageMultisample : Bool32) -> Self {
15868		self.shaderStorageImageMultisample = shaderStorageImageMultisample;
15869		self
15870	}
15871
15872	pub fn shaderStorageImageReadWithoutFormat(mut self, shaderStorageImageReadWithoutFormat : Bool32) -> Self {
15873		self.shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat;
15874		self
15875	}
15876
15877	pub fn shaderStorageImageWriteWithoutFormat(mut self, shaderStorageImageWriteWithoutFormat : Bool32) -> Self {
15878		self.shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat;
15879		self
15880	}
15881
15882	pub fn shaderUniformBufferArrayDynamicIndexing(mut self, shaderUniformBufferArrayDynamicIndexing : Bool32) -> Self {
15883		self.shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing;
15884		self
15885	}
15886
15887	pub fn shaderSampledImageArrayDynamicIndexing(mut self, shaderSampledImageArrayDynamicIndexing : Bool32) -> Self {
15888		self.shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing;
15889		self
15890	}
15891
15892	pub fn shaderStorageBufferArrayDynamicIndexing(mut self, shaderStorageBufferArrayDynamicIndexing : Bool32) -> Self {
15893		self.shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing;
15894		self
15895	}
15896
15897	pub fn shaderStorageImageArrayDynamicIndexing(mut self, shaderStorageImageArrayDynamicIndexing : Bool32) -> Self {
15898		self.shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing;
15899		self
15900	}
15901
15902	pub fn shaderClipDistance(mut self, shaderClipDistance : Bool32) -> Self {
15903		self.shaderClipDistance = shaderClipDistance;
15904		self
15905	}
15906
15907	pub fn shaderCullDistance(mut self, shaderCullDistance : Bool32) -> Self {
15908		self.shaderCullDistance = shaderCullDistance;
15909		self
15910	}
15911
15912	pub fn shaderFloat64(mut self, shaderFloat64 : Bool32) -> Self {
15913		self.shaderFloat64 = shaderFloat64;
15914		self
15915	}
15916
15917	pub fn shaderInt64(mut self, shaderInt64 : Bool32) -> Self {
15918		self.shaderInt64 = shaderInt64;
15919		self
15920	}
15921
15922	pub fn shaderInt16(mut self, shaderInt16 : Bool32) -> Self {
15923		self.shaderInt16 = shaderInt16;
15924		self
15925	}
15926
15927	pub fn shaderResourceResidency(mut self, shaderResourceResidency : Bool32) -> Self {
15928		self.shaderResourceResidency = shaderResourceResidency;
15929		self
15930	}
15931
15932	pub fn shaderResourceMinLod(mut self, shaderResourceMinLod : Bool32) -> Self {
15933		self.shaderResourceMinLod = shaderResourceMinLod;
15934		self
15935	}
15936
15937	pub fn sparseBinding(mut self, sparseBinding : Bool32) -> Self {
15938		self.sparseBinding = sparseBinding;
15939		self
15940	}
15941
15942	pub fn sparseResidencyBuffer(mut self, sparseResidencyBuffer : Bool32) -> Self {
15943		self.sparseResidencyBuffer = sparseResidencyBuffer;
15944		self
15945	}
15946
15947	pub fn sparseResidencyImage2D(mut self, sparseResidencyImage2D : Bool32) -> Self {
15948		self.sparseResidencyImage2D = sparseResidencyImage2D;
15949		self
15950	}
15951
15952	pub fn sparseResidencyImage3D(mut self, sparseResidencyImage3D : Bool32) -> Self {
15953		self.sparseResidencyImage3D = sparseResidencyImage3D;
15954		self
15955	}
15956
15957	pub fn sparseResidency2Samples(mut self, sparseResidency2Samples : Bool32) -> Self {
15958		self.sparseResidency2Samples = sparseResidency2Samples;
15959		self
15960	}
15961
15962	pub fn sparseResidency4Samples(mut self, sparseResidency4Samples : Bool32) -> Self {
15963		self.sparseResidency4Samples = sparseResidency4Samples;
15964		self
15965	}
15966
15967	pub fn sparseResidency8Samples(mut self, sparseResidency8Samples : Bool32) -> Self {
15968		self.sparseResidency8Samples = sparseResidency8Samples;
15969		self
15970	}
15971
15972	pub fn sparseResidency16Samples(mut self, sparseResidency16Samples : Bool32) -> Self {
15973		self.sparseResidency16Samples = sparseResidency16Samples;
15974		self
15975	}
15976
15977	pub fn sparseResidencyAliased(mut self, sparseResidencyAliased : Bool32) -> Self {
15978		self.sparseResidencyAliased = sparseResidencyAliased;
15979		self
15980	}
15981
15982	pub fn variableMultisampleRate(mut self, variableMultisampleRate : Bool32) -> Self {
15983		self.variableMultisampleRate = variableMultisampleRate;
15984		self
15985	}
15986
15987	pub fn inheritedQueries(mut self, inheritedQueries : Bool32) -> Self {
15988		self.inheritedQueries = inheritedQueries;
15989		self
15990	}
15991
15992}
15993
15994impl FormatProperties {
15995
15996	pub fn new() -> Self {
15997		 Self::default()
15998	}
15999
16000	pub fn linearTilingFeatures(mut self, linearTilingFeatures : FormatFeatureFlags) -> Self {
16001		self.linearTilingFeatures = linearTilingFeatures;
16002		self
16003	}
16004
16005	pub fn optimalTilingFeatures(mut self, optimalTilingFeatures : FormatFeatureFlags) -> Self {
16006		self.optimalTilingFeatures = optimalTilingFeatures;
16007		self
16008	}
16009
16010	pub fn bufferFeatures(mut self, bufferFeatures : FormatFeatureFlags) -> Self {
16011		self.bufferFeatures = bufferFeatures;
16012		self
16013	}
16014
16015}
16016
16017impl Extent3D {
16018
16019	pub fn new() -> Self {
16020		 Self::default()
16021	}
16022
16023	pub fn width(mut self, width : u32) -> Self {
16024		self.width = width;
16025		self
16026	}
16027
16028	pub fn height(mut self, height : u32) -> Self {
16029		self.height = height;
16030		self
16031	}
16032
16033	pub fn depth(mut self, depth : u32) -> Self {
16034		self.depth = depth;
16035		self
16036	}
16037
16038}
16039
16040impl ImageFormatProperties {
16041
16042	pub fn new() -> Self {
16043		 Self::default()
16044	}
16045
16046	pub fn maxExtent(mut self, maxExtent : Extent3D) -> Self {
16047		self.maxExtent = maxExtent;
16048		self
16049	}
16050
16051	pub fn maxMipLevels(mut self, maxMipLevels : u32) -> Self {
16052		self.maxMipLevels = maxMipLevels;
16053		self
16054	}
16055
16056	pub fn maxArrayLayers(mut self, maxArrayLayers : u32) -> Self {
16057		self.maxArrayLayers = maxArrayLayers;
16058		self
16059	}
16060
16061	pub fn sampleCounts(mut self, sampleCounts : SampleCountFlags) -> Self {
16062		self.sampleCounts = sampleCounts;
16063		self
16064	}
16065
16066	pub fn maxResourceSize(mut self, maxResourceSize : DeviceSize) -> Self {
16067		self.maxResourceSize = maxResourceSize;
16068		self
16069	}
16070
16071}
16072
16073impl PhysicalDeviceLimits {
16074
16075	pub fn new() -> Self {
16076		 Self::default()
16077	}
16078
16079	pub fn maxImageDimension1D(mut self, maxImageDimension1D : u32) -> Self {
16080		self.maxImageDimension1D = maxImageDimension1D;
16081		self
16082	}
16083
16084	pub fn maxImageDimension2D(mut self, maxImageDimension2D : u32) -> Self {
16085		self.maxImageDimension2D = maxImageDimension2D;
16086		self
16087	}
16088
16089	pub fn maxImageDimension3D(mut self, maxImageDimension3D : u32) -> Self {
16090		self.maxImageDimension3D = maxImageDimension3D;
16091		self
16092	}
16093
16094	pub fn maxImageDimensionCube(mut self, maxImageDimensionCube : u32) -> Self {
16095		self.maxImageDimensionCube = maxImageDimensionCube;
16096		self
16097	}
16098
16099	pub fn maxImageArrayLayers(mut self, maxImageArrayLayers : u32) -> Self {
16100		self.maxImageArrayLayers = maxImageArrayLayers;
16101		self
16102	}
16103
16104	pub fn maxTexelBufferElements(mut self, maxTexelBufferElements : u32) -> Self {
16105		self.maxTexelBufferElements = maxTexelBufferElements;
16106		self
16107	}
16108
16109	pub fn maxUniformBufferRange(mut self, maxUniformBufferRange : u32) -> Self {
16110		self.maxUniformBufferRange = maxUniformBufferRange;
16111		self
16112	}
16113
16114	pub fn maxStorageBufferRange(mut self, maxStorageBufferRange : u32) -> Self {
16115		self.maxStorageBufferRange = maxStorageBufferRange;
16116		self
16117	}
16118
16119	pub fn maxPushConstantsSize(mut self, maxPushConstantsSize : u32) -> Self {
16120		self.maxPushConstantsSize = maxPushConstantsSize;
16121		self
16122	}
16123
16124	pub fn maxMemoryAllocationCount(mut self, maxMemoryAllocationCount : u32) -> Self {
16125		self.maxMemoryAllocationCount = maxMemoryAllocationCount;
16126		self
16127	}
16128
16129	pub fn maxSamplerAllocationCount(mut self, maxSamplerAllocationCount : u32) -> Self {
16130		self.maxSamplerAllocationCount = maxSamplerAllocationCount;
16131		self
16132	}
16133
16134	pub fn bufferImageGranularity(mut self, bufferImageGranularity : DeviceSize) -> Self {
16135		self.bufferImageGranularity = bufferImageGranularity;
16136		self
16137	}
16138
16139	pub fn sparseAddressSpaceSize(mut self, sparseAddressSpaceSize : DeviceSize) -> Self {
16140		self.sparseAddressSpaceSize = sparseAddressSpaceSize;
16141		self
16142	}
16143
16144	pub fn maxBoundDescriptorSets(mut self, maxBoundDescriptorSets : u32) -> Self {
16145		self.maxBoundDescriptorSets = maxBoundDescriptorSets;
16146		self
16147	}
16148
16149	pub fn maxPerStageDescriptorSamplers(mut self, maxPerStageDescriptorSamplers : u32) -> Self {
16150		self.maxPerStageDescriptorSamplers = maxPerStageDescriptorSamplers;
16151		self
16152	}
16153
16154	pub fn maxPerStageDescriptorUniformBuffers(mut self, maxPerStageDescriptorUniformBuffers : u32) -> Self {
16155		self.maxPerStageDescriptorUniformBuffers = maxPerStageDescriptorUniformBuffers;
16156		self
16157	}
16158
16159	pub fn maxPerStageDescriptorStorageBuffers(mut self, maxPerStageDescriptorStorageBuffers : u32) -> Self {
16160		self.maxPerStageDescriptorStorageBuffers = maxPerStageDescriptorStorageBuffers;
16161		self
16162	}
16163
16164	pub fn maxPerStageDescriptorSampledImages(mut self, maxPerStageDescriptorSampledImages : u32) -> Self {
16165		self.maxPerStageDescriptorSampledImages = maxPerStageDescriptorSampledImages;
16166		self
16167	}
16168
16169	pub fn maxPerStageDescriptorStorageImages(mut self, maxPerStageDescriptorStorageImages : u32) -> Self {
16170		self.maxPerStageDescriptorStorageImages = maxPerStageDescriptorStorageImages;
16171		self
16172	}
16173
16174	pub fn maxPerStageDescriptorInputAttachments(mut self, maxPerStageDescriptorInputAttachments : u32) -> Self {
16175		self.maxPerStageDescriptorInputAttachments = maxPerStageDescriptorInputAttachments;
16176		self
16177	}
16178
16179	pub fn maxPerStageResources(mut self, maxPerStageResources : u32) -> Self {
16180		self.maxPerStageResources = maxPerStageResources;
16181		self
16182	}
16183
16184	pub fn maxDescriptorSetSamplers(mut self, maxDescriptorSetSamplers : u32) -> Self {
16185		self.maxDescriptorSetSamplers = maxDescriptorSetSamplers;
16186		self
16187	}
16188
16189	pub fn maxDescriptorSetUniformBuffers(mut self, maxDescriptorSetUniformBuffers : u32) -> Self {
16190		self.maxDescriptorSetUniformBuffers = maxDescriptorSetUniformBuffers;
16191		self
16192	}
16193
16194	pub fn maxDescriptorSetUniformBuffersDynamic(mut self, maxDescriptorSetUniformBuffersDynamic : u32) -> Self {
16195		self.maxDescriptorSetUniformBuffersDynamic = maxDescriptorSetUniformBuffersDynamic;
16196		self
16197	}
16198
16199	pub fn maxDescriptorSetStorageBuffers(mut self, maxDescriptorSetStorageBuffers : u32) -> Self {
16200		self.maxDescriptorSetStorageBuffers = maxDescriptorSetStorageBuffers;
16201		self
16202	}
16203
16204	pub fn maxDescriptorSetStorageBuffersDynamic(mut self, maxDescriptorSetStorageBuffersDynamic : u32) -> Self {
16205		self.maxDescriptorSetStorageBuffersDynamic = maxDescriptorSetStorageBuffersDynamic;
16206		self
16207	}
16208
16209	pub fn maxDescriptorSetSampledImages(mut self, maxDescriptorSetSampledImages : u32) -> Self {
16210		self.maxDescriptorSetSampledImages = maxDescriptorSetSampledImages;
16211		self
16212	}
16213
16214	pub fn maxDescriptorSetStorageImages(mut self, maxDescriptorSetStorageImages : u32) -> Self {
16215		self.maxDescriptorSetStorageImages = maxDescriptorSetStorageImages;
16216		self
16217	}
16218
16219	pub fn maxDescriptorSetInputAttachments(mut self, maxDescriptorSetInputAttachments : u32) -> Self {
16220		self.maxDescriptorSetInputAttachments = maxDescriptorSetInputAttachments;
16221		self
16222	}
16223
16224	pub fn maxVertexInputAttributes(mut self, maxVertexInputAttributes : u32) -> Self {
16225		self.maxVertexInputAttributes = maxVertexInputAttributes;
16226		self
16227	}
16228
16229	pub fn maxVertexInputBindings(mut self, maxVertexInputBindings : u32) -> Self {
16230		self.maxVertexInputBindings = maxVertexInputBindings;
16231		self
16232	}
16233
16234	pub fn maxVertexInputAttributeOffset(mut self, maxVertexInputAttributeOffset : u32) -> Self {
16235		self.maxVertexInputAttributeOffset = maxVertexInputAttributeOffset;
16236		self
16237	}
16238
16239	pub fn maxVertexInputBindingStride(mut self, maxVertexInputBindingStride : u32) -> Self {
16240		self.maxVertexInputBindingStride = maxVertexInputBindingStride;
16241		self
16242	}
16243
16244	pub fn maxVertexOutputComponents(mut self, maxVertexOutputComponents : u32) -> Self {
16245		self.maxVertexOutputComponents = maxVertexOutputComponents;
16246		self
16247	}
16248
16249	pub fn maxTessellationGenerationLevel(mut self, maxTessellationGenerationLevel : u32) -> Self {
16250		self.maxTessellationGenerationLevel = maxTessellationGenerationLevel;
16251		self
16252	}
16253
16254	pub fn maxTessellationPatchSize(mut self, maxTessellationPatchSize : u32) -> Self {
16255		self.maxTessellationPatchSize = maxTessellationPatchSize;
16256		self
16257	}
16258
16259	pub fn maxTessellationControlPerVertexInputComponents(mut self, maxTessellationControlPerVertexInputComponents : u32) -> Self {
16260		self.maxTessellationControlPerVertexInputComponents = maxTessellationControlPerVertexInputComponents;
16261		self
16262	}
16263
16264	pub fn maxTessellationControlPerVertexOutputComponents(mut self, maxTessellationControlPerVertexOutputComponents : u32) -> Self {
16265		self.maxTessellationControlPerVertexOutputComponents = maxTessellationControlPerVertexOutputComponents;
16266		self
16267	}
16268
16269	pub fn maxTessellationControlPerPatchOutputComponents(mut self, maxTessellationControlPerPatchOutputComponents : u32) -> Self {
16270		self.maxTessellationControlPerPatchOutputComponents = maxTessellationControlPerPatchOutputComponents;
16271		self
16272	}
16273
16274	pub fn maxTessellationControlTotalOutputComponents(mut self, maxTessellationControlTotalOutputComponents : u32) -> Self {
16275		self.maxTessellationControlTotalOutputComponents = maxTessellationControlTotalOutputComponents;
16276		self
16277	}
16278
16279	pub fn maxTessellationEvaluationInputComponents(mut self, maxTessellationEvaluationInputComponents : u32) -> Self {
16280		self.maxTessellationEvaluationInputComponents = maxTessellationEvaluationInputComponents;
16281		self
16282	}
16283
16284	pub fn maxTessellationEvaluationOutputComponents(mut self, maxTessellationEvaluationOutputComponents : u32) -> Self {
16285		self.maxTessellationEvaluationOutputComponents = maxTessellationEvaluationOutputComponents;
16286		self
16287	}
16288
16289	pub fn maxGeometryShaderInvocations(mut self, maxGeometryShaderInvocations : u32) -> Self {
16290		self.maxGeometryShaderInvocations = maxGeometryShaderInvocations;
16291		self
16292	}
16293
16294	pub fn maxGeometryInputComponents(mut self, maxGeometryInputComponents : u32) -> Self {
16295		self.maxGeometryInputComponents = maxGeometryInputComponents;
16296		self
16297	}
16298
16299	pub fn maxGeometryOutputComponents(mut self, maxGeometryOutputComponents : u32) -> Self {
16300		self.maxGeometryOutputComponents = maxGeometryOutputComponents;
16301		self
16302	}
16303
16304	pub fn maxGeometryOutputVertices(mut self, maxGeometryOutputVertices : u32) -> Self {
16305		self.maxGeometryOutputVertices = maxGeometryOutputVertices;
16306		self
16307	}
16308
16309	pub fn maxGeometryTotalOutputComponents(mut self, maxGeometryTotalOutputComponents : u32) -> Self {
16310		self.maxGeometryTotalOutputComponents = maxGeometryTotalOutputComponents;
16311		self
16312	}
16313
16314	pub fn maxFragmentInputComponents(mut self, maxFragmentInputComponents : u32) -> Self {
16315		self.maxFragmentInputComponents = maxFragmentInputComponents;
16316		self
16317	}
16318
16319	pub fn maxFragmentOutputAttachments(mut self, maxFragmentOutputAttachments : u32) -> Self {
16320		self.maxFragmentOutputAttachments = maxFragmentOutputAttachments;
16321		self
16322	}
16323
16324	pub fn maxFragmentDualSrcAttachments(mut self, maxFragmentDualSrcAttachments : u32) -> Self {
16325		self.maxFragmentDualSrcAttachments = maxFragmentDualSrcAttachments;
16326		self
16327	}
16328
16329	pub fn maxFragmentCombinedOutputResources(mut self, maxFragmentCombinedOutputResources : u32) -> Self {
16330		self.maxFragmentCombinedOutputResources = maxFragmentCombinedOutputResources;
16331		self
16332	}
16333
16334	pub fn maxComputeSharedMemorySize(mut self, maxComputeSharedMemorySize : u32) -> Self {
16335		self.maxComputeSharedMemorySize = maxComputeSharedMemorySize;
16336		self
16337	}
16338
16339	pub fn maxComputeWorkGroupCount(mut self, maxComputeWorkGroupCount : [u32;3]) -> Self {
16340		self.maxComputeWorkGroupCount = maxComputeWorkGroupCount;
16341		self
16342	}
16343
16344	pub fn maxComputeWorkGroupInvocations(mut self, maxComputeWorkGroupInvocations : u32) -> Self {
16345		self.maxComputeWorkGroupInvocations = maxComputeWorkGroupInvocations;
16346		self
16347	}
16348
16349	pub fn maxComputeWorkGroupSize(mut self, maxComputeWorkGroupSize : [u32;3]) -> Self {
16350		self.maxComputeWorkGroupSize = maxComputeWorkGroupSize;
16351		self
16352	}
16353
16354	pub fn subPixelPrecisionBits(mut self, subPixelPrecisionBits : u32) -> Self {
16355		self.subPixelPrecisionBits = subPixelPrecisionBits;
16356		self
16357	}
16358
16359	pub fn subTexelPrecisionBits(mut self, subTexelPrecisionBits : u32) -> Self {
16360		self.subTexelPrecisionBits = subTexelPrecisionBits;
16361		self
16362	}
16363
16364	pub fn mipmapPrecisionBits(mut self, mipmapPrecisionBits : u32) -> Self {
16365		self.mipmapPrecisionBits = mipmapPrecisionBits;
16366		self
16367	}
16368
16369	pub fn maxDrawIndexedIndexValue(mut self, maxDrawIndexedIndexValue : u32) -> Self {
16370		self.maxDrawIndexedIndexValue = maxDrawIndexedIndexValue;
16371		self
16372	}
16373
16374	pub fn maxDrawIndirectCount(mut self, maxDrawIndirectCount : u32) -> Self {
16375		self.maxDrawIndirectCount = maxDrawIndirectCount;
16376		self
16377	}
16378
16379	pub fn maxSamplerLodBias(mut self, maxSamplerLodBias : f32) -> Self {
16380		self.maxSamplerLodBias = maxSamplerLodBias;
16381		self
16382	}
16383
16384	pub fn maxSamplerAnisotropy(mut self, maxSamplerAnisotropy : f32) -> Self {
16385		self.maxSamplerAnisotropy = maxSamplerAnisotropy;
16386		self
16387	}
16388
16389	pub fn maxViewports(mut self, maxViewports : u32) -> Self {
16390		self.maxViewports = maxViewports;
16391		self
16392	}
16393
16394	pub fn maxViewportDimensions(mut self, maxViewportDimensions : [u32;2]) -> Self {
16395		self.maxViewportDimensions = maxViewportDimensions;
16396		self
16397	}
16398
16399	pub fn viewportBoundsRange(mut self, viewportBoundsRange : [f32;2]) -> Self {
16400		self.viewportBoundsRange = viewportBoundsRange;
16401		self
16402	}
16403
16404	pub fn viewportSubPixelBits(mut self, viewportSubPixelBits : u32) -> Self {
16405		self.viewportSubPixelBits = viewportSubPixelBits;
16406		self
16407	}
16408
16409	pub fn minMemoryMapAlignment(mut self, minMemoryMapAlignment : usize) -> Self {
16410		self.minMemoryMapAlignment = minMemoryMapAlignment;
16411		self
16412	}
16413
16414	pub fn minTexelBufferOffsetAlignment(mut self, minTexelBufferOffsetAlignment : DeviceSize) -> Self {
16415		self.minTexelBufferOffsetAlignment = minTexelBufferOffsetAlignment;
16416		self
16417	}
16418
16419	pub fn minUniformBufferOffsetAlignment(mut self, minUniformBufferOffsetAlignment : DeviceSize) -> Self {
16420		self.minUniformBufferOffsetAlignment = minUniformBufferOffsetAlignment;
16421		self
16422	}
16423
16424	pub fn minStorageBufferOffsetAlignment(mut self, minStorageBufferOffsetAlignment : DeviceSize) -> Self {
16425		self.minStorageBufferOffsetAlignment = minStorageBufferOffsetAlignment;
16426		self
16427	}
16428
16429	pub fn minTexelOffset(mut self, minTexelOffset : i32) -> Self {
16430		self.minTexelOffset = minTexelOffset;
16431		self
16432	}
16433
16434	pub fn maxTexelOffset(mut self, maxTexelOffset : u32) -> Self {
16435		self.maxTexelOffset = maxTexelOffset;
16436		self
16437	}
16438
16439	pub fn minTexelGatherOffset(mut self, minTexelGatherOffset : i32) -> Self {
16440		self.minTexelGatherOffset = minTexelGatherOffset;
16441		self
16442	}
16443
16444	pub fn maxTexelGatherOffset(mut self, maxTexelGatherOffset : u32) -> Self {
16445		self.maxTexelGatherOffset = maxTexelGatherOffset;
16446		self
16447	}
16448
16449	pub fn minInterpolationOffset(mut self, minInterpolationOffset : f32) -> Self {
16450		self.minInterpolationOffset = minInterpolationOffset;
16451		self
16452	}
16453
16454	pub fn maxInterpolationOffset(mut self, maxInterpolationOffset : f32) -> Self {
16455		self.maxInterpolationOffset = maxInterpolationOffset;
16456		self
16457	}
16458
16459	pub fn subPixelInterpolationOffsetBits(mut self, subPixelInterpolationOffsetBits : u32) -> Self {
16460		self.subPixelInterpolationOffsetBits = subPixelInterpolationOffsetBits;
16461		self
16462	}
16463
16464	pub fn maxFramebufferWidth(mut self, maxFramebufferWidth : u32) -> Self {
16465		self.maxFramebufferWidth = maxFramebufferWidth;
16466		self
16467	}
16468
16469	pub fn maxFramebufferHeight(mut self, maxFramebufferHeight : u32) -> Self {
16470		self.maxFramebufferHeight = maxFramebufferHeight;
16471		self
16472	}
16473
16474	pub fn maxFramebufferLayers(mut self, maxFramebufferLayers : u32) -> Self {
16475		self.maxFramebufferLayers = maxFramebufferLayers;
16476		self
16477	}
16478
16479	pub fn framebufferColorSampleCounts(mut self, framebufferColorSampleCounts : SampleCountFlags) -> Self {
16480		self.framebufferColorSampleCounts = framebufferColorSampleCounts;
16481		self
16482	}
16483
16484	pub fn framebufferDepthSampleCounts(mut self, framebufferDepthSampleCounts : SampleCountFlags) -> Self {
16485		self.framebufferDepthSampleCounts = framebufferDepthSampleCounts;
16486		self
16487	}
16488
16489	pub fn framebufferStencilSampleCounts(mut self, framebufferStencilSampleCounts : SampleCountFlags) -> Self {
16490		self.framebufferStencilSampleCounts = framebufferStencilSampleCounts;
16491		self
16492	}
16493
16494	pub fn framebufferNoAttachmentsSampleCounts(mut self, framebufferNoAttachmentsSampleCounts : SampleCountFlags) -> Self {
16495		self.framebufferNoAttachmentsSampleCounts = framebufferNoAttachmentsSampleCounts;
16496		self
16497	}
16498
16499	pub fn maxColorAttachments(mut self, maxColorAttachments : u32) -> Self {
16500		self.maxColorAttachments = maxColorAttachments;
16501		self
16502	}
16503
16504	pub fn sampledImageColorSampleCounts(mut self, sampledImageColorSampleCounts : SampleCountFlags) -> Self {
16505		self.sampledImageColorSampleCounts = sampledImageColorSampleCounts;
16506		self
16507	}
16508
16509	pub fn sampledImageIntegerSampleCounts(mut self, sampledImageIntegerSampleCounts : SampleCountFlags) -> Self {
16510		self.sampledImageIntegerSampleCounts = sampledImageIntegerSampleCounts;
16511		self
16512	}
16513
16514	pub fn sampledImageDepthSampleCounts(mut self, sampledImageDepthSampleCounts : SampleCountFlags) -> Self {
16515		self.sampledImageDepthSampleCounts = sampledImageDepthSampleCounts;
16516		self
16517	}
16518
16519	pub fn sampledImageStencilSampleCounts(mut self, sampledImageStencilSampleCounts : SampleCountFlags) -> Self {
16520		self.sampledImageStencilSampleCounts = sampledImageStencilSampleCounts;
16521		self
16522	}
16523
16524	pub fn storageImageSampleCounts(mut self, storageImageSampleCounts : SampleCountFlags) -> Self {
16525		self.storageImageSampleCounts = storageImageSampleCounts;
16526		self
16527	}
16528
16529	pub fn maxSampleMaskWords(mut self, maxSampleMaskWords : u32) -> Self {
16530		self.maxSampleMaskWords = maxSampleMaskWords;
16531		self
16532	}
16533
16534	pub fn timestampComputeAndGraphics(mut self, timestampComputeAndGraphics : Bool32) -> Self {
16535		self.timestampComputeAndGraphics = timestampComputeAndGraphics;
16536		self
16537	}
16538
16539	pub fn timestampPeriod(mut self, timestampPeriod : f32) -> Self {
16540		self.timestampPeriod = timestampPeriod;
16541		self
16542	}
16543
16544	pub fn maxClipDistances(mut self, maxClipDistances : u32) -> Self {
16545		self.maxClipDistances = maxClipDistances;
16546		self
16547	}
16548
16549	pub fn maxCullDistances(mut self, maxCullDistances : u32) -> Self {
16550		self.maxCullDistances = maxCullDistances;
16551		self
16552	}
16553
16554	pub fn maxCombinedClipAndCullDistances(mut self, maxCombinedClipAndCullDistances : u32) -> Self {
16555		self.maxCombinedClipAndCullDistances = maxCombinedClipAndCullDistances;
16556		self
16557	}
16558
16559	pub fn discreteQueuePriorities(mut self, discreteQueuePriorities : u32) -> Self {
16560		self.discreteQueuePriorities = discreteQueuePriorities;
16561		self
16562	}
16563
16564	pub fn pointSizeRange(mut self, pointSizeRange : [f32;2]) -> Self {
16565		self.pointSizeRange = pointSizeRange;
16566		self
16567	}
16568
16569	pub fn lineWidthRange(mut self, lineWidthRange : [f32;2]) -> Self {
16570		self.lineWidthRange = lineWidthRange;
16571		self
16572	}
16573
16574	pub fn pointSizeGranularity(mut self, pointSizeGranularity : f32) -> Self {
16575		self.pointSizeGranularity = pointSizeGranularity;
16576		self
16577	}
16578
16579	pub fn lineWidthGranularity(mut self, lineWidthGranularity : f32) -> Self {
16580		self.lineWidthGranularity = lineWidthGranularity;
16581		self
16582	}
16583
16584	pub fn strictLines(mut self, strictLines : Bool32) -> Self {
16585		self.strictLines = strictLines;
16586		self
16587	}
16588
16589	pub fn standardSampleLocations(mut self, standardSampleLocations : Bool32) -> Self {
16590		self.standardSampleLocations = standardSampleLocations;
16591		self
16592	}
16593
16594	pub fn optimalBufferCopyOffsetAlignment(mut self, optimalBufferCopyOffsetAlignment : DeviceSize) -> Self {
16595		self.optimalBufferCopyOffsetAlignment = optimalBufferCopyOffsetAlignment;
16596		self
16597	}
16598
16599	pub fn optimalBufferCopyRowPitchAlignment(mut self, optimalBufferCopyRowPitchAlignment : DeviceSize) -> Self {
16600		self.optimalBufferCopyRowPitchAlignment = optimalBufferCopyRowPitchAlignment;
16601		self
16602	}
16603
16604	pub fn nonCoherentAtomSize(mut self, nonCoherentAtomSize : DeviceSize) -> Self {
16605		self.nonCoherentAtomSize = nonCoherentAtomSize;
16606		self
16607	}
16608
16609}
16610
16611impl PhysicalDeviceSparseProperties {
16612
16613	pub fn new() -> Self {
16614		 Self::default()
16615	}
16616
16617	pub fn residencyStandard2DBlockShape(mut self, residencyStandard2DBlockShape : Bool32) -> Self {
16618		self.residencyStandard2DBlockShape = residencyStandard2DBlockShape;
16619		self
16620	}
16621
16622	pub fn residencyStandard2DMultisampleBlockShape(mut self, residencyStandard2DMultisampleBlockShape : Bool32) -> Self {
16623		self.residencyStandard2DMultisampleBlockShape = residencyStandard2DMultisampleBlockShape;
16624		self
16625	}
16626
16627	pub fn residencyStandard3DBlockShape(mut self, residencyStandard3DBlockShape : Bool32) -> Self {
16628		self.residencyStandard3DBlockShape = residencyStandard3DBlockShape;
16629		self
16630	}
16631
16632	pub fn residencyAlignedMipSize(mut self, residencyAlignedMipSize : Bool32) -> Self {
16633		self.residencyAlignedMipSize = residencyAlignedMipSize;
16634		self
16635	}
16636
16637	pub fn residencyNonResidentStrict(mut self, residencyNonResidentStrict : Bool32) -> Self {
16638		self.residencyNonResidentStrict = residencyNonResidentStrict;
16639		self
16640	}
16641
16642}
16643
16644impl PhysicalDeviceProperties {
16645
16646	pub fn new() -> Self {
16647		 Self::default()
16648	}
16649
16650	pub fn apiVersion(mut self, apiVersion : u32) -> Self {
16651		self.apiVersion = apiVersion;
16652		self
16653	}
16654
16655	pub fn driverVersion(mut self, driverVersion : u32) -> Self {
16656		self.driverVersion = driverVersion;
16657		self
16658	}
16659
16660	pub fn vendorID(mut self, vendorID : u32) -> Self {
16661		self.vendorID = vendorID;
16662		self
16663	}
16664
16665	pub fn deviceID(mut self, deviceID : u32) -> Self {
16666		self.deviceID = deviceID;
16667		self
16668	}
16669
16670	pub fn deviceType(mut self, deviceType : PhysicalDeviceType) -> Self {
16671		self.deviceType = deviceType;
16672		self
16673	}
16674
16675	pub fn deviceName(mut self, deviceName : [i8;MAX_PHYSICAL_DEVICE_NAME_SIZE]) -> Self {
16676		self.deviceName = deviceName;
16677		self
16678	}
16679
16680	pub fn pipelineCacheUUID(mut self, pipelineCacheUUID : [u8;UUID_SIZE]) -> Self {
16681		self.pipelineCacheUUID = pipelineCacheUUID;
16682		self
16683	}
16684
16685	pub fn limits(mut self, limits : PhysicalDeviceLimits) -> Self {
16686		self.limits = limits;
16687		self
16688	}
16689
16690	pub fn sparseProperties(mut self, sparseProperties : PhysicalDeviceSparseProperties) -> Self {
16691		self.sparseProperties = sparseProperties;
16692		self
16693	}
16694
16695}
16696
16697impl QueueFamilyProperties {
16698
16699	pub fn new() -> Self {
16700		 Self::default()
16701	}
16702
16703	pub fn queueFlags(mut self, queueFlags : QueueFlags) -> Self {
16704		self.queueFlags = queueFlags;
16705		self
16706	}
16707
16708	pub fn queueCount(mut self, queueCount : u32) -> Self {
16709		self.queueCount = queueCount;
16710		self
16711	}
16712
16713	pub fn timestampValidBits(mut self, timestampValidBits : u32) -> Self {
16714		self.timestampValidBits = timestampValidBits;
16715		self
16716	}
16717
16718	pub fn minImageTransferGranularity(mut self, minImageTransferGranularity : Extent3D) -> Self {
16719		self.minImageTransferGranularity = minImageTransferGranularity;
16720		self
16721	}
16722
16723}
16724
16725impl MemoryType {
16726
16727	pub fn new() -> Self {
16728		 Self::default()
16729	}
16730
16731	pub fn propertyFlags(mut self, propertyFlags : MemoryPropertyFlags) -> Self {
16732		self.propertyFlags = propertyFlags;
16733		self
16734	}
16735
16736	pub fn heapIndex(mut self, heapIndex : u32) -> Self {
16737		self.heapIndex = heapIndex;
16738		self
16739	}
16740
16741}
16742
16743impl MemoryHeap {
16744
16745	pub fn new() -> Self {
16746		 Self::default()
16747	}
16748
16749	pub fn size(mut self, size : DeviceSize) -> Self {
16750		self.size = size;
16751		self
16752	}
16753
16754	pub fn flags(mut self, flags : MemoryHeapFlags) -> Self {
16755		self.flags = flags;
16756		self
16757	}
16758
16759}
16760
16761impl PhysicalDeviceMemoryProperties {
16762
16763	pub fn new() -> Self {
16764		 Self::default()
16765	}
16766
16767	pub fn memoryTypeCount(mut self, memoryTypeCount : u32) -> Self {
16768		self.memoryTypeCount = memoryTypeCount;
16769		self
16770	}
16771
16772	pub fn memoryTypes(mut self, memoryTypes : [MemoryType;MAX_MEMORY_TYPES]) -> Self {
16773		self.memoryTypes = memoryTypes;
16774		self
16775	}
16776
16777	pub fn memoryHeapCount(mut self, memoryHeapCount : u32) -> Self {
16778		self.memoryHeapCount = memoryHeapCount;
16779		self
16780	}
16781
16782	pub fn memoryHeaps(mut self, memoryHeaps : [MemoryHeap;MAX_MEMORY_HEAPS]) -> Self {
16783		self.memoryHeaps = memoryHeaps;
16784		self
16785	}
16786
16787}
16788
16789impl DeviceQueueCreateInfo {
16790
16791	pub fn new() -> Self {
16792		 Self::default()
16793	}
16794
16795	pub fn sType(mut self, sType : StructureType) -> Self {
16796		self.sType = sType;
16797		self
16798	}
16799
16800	pub fn pNext(mut self, pNext : *const void) -> Self {
16801		self.pNext = pNext;
16802		self
16803	}
16804
16805	pub fn flags(mut self, flags : DeviceQueueCreateFlags) -> Self {
16806		self.flags = flags;
16807		self
16808	}
16809
16810	pub fn queueFamilyIndex(mut self, queueFamilyIndex : u32) -> Self {
16811		self.queueFamilyIndex = queueFamilyIndex;
16812		self
16813	}
16814
16815	pub fn queueCount(mut self, queueCount : u32) -> Self {
16816		self.queueCount = queueCount;
16817		self
16818	}
16819
16820	pub fn pQueuePriorities(mut self, pQueuePriorities : *const f32) -> Self {
16821		self.pQueuePriorities = pQueuePriorities;
16822		self
16823	}
16824
16825}
16826
16827impl DeviceCreateInfo {
16828
16829	pub fn new() -> Self {
16830		 Self::default()
16831	}
16832
16833	pub fn sType(mut self, sType : StructureType) -> Self {
16834		self.sType = sType;
16835		self
16836	}
16837
16838	pub fn pNext(mut self, pNext : *const void) -> Self {
16839		self.pNext = pNext;
16840		self
16841	}
16842
16843	pub fn flags(mut self, flags : DeviceCreateFlags) -> Self {
16844		self.flags = flags;
16845		self
16846	}
16847
16848	pub fn queueCreateInfoCount(mut self, queueCreateInfoCount : u32) -> Self {
16849		self.queueCreateInfoCount = queueCreateInfoCount;
16850		self
16851	}
16852
16853	pub fn pQueueCreateInfos(mut self, pQueueCreateInfos : *const DeviceQueueCreateInfo) -> Self {
16854		self.pQueueCreateInfos = pQueueCreateInfos;
16855		self
16856	}
16857
16858	pub fn enabledLayerCount(mut self, enabledLayerCount : u32) -> Self {
16859		self.enabledLayerCount = enabledLayerCount;
16860		self
16861	}
16862
16863	pub fn ppEnabledLayerNames(mut self, ppEnabledLayerNames : *const *const i8) -> Self {
16864		self.ppEnabledLayerNames = ppEnabledLayerNames;
16865		self
16866	}
16867
16868	pub fn enabledExtensionCount(mut self, enabledExtensionCount : u32) -> Self {
16869		self.enabledExtensionCount = enabledExtensionCount;
16870		self
16871	}
16872
16873	pub fn ppEnabledExtensionNames(mut self, ppEnabledExtensionNames : *const *const i8) -> Self {
16874		self.ppEnabledExtensionNames = ppEnabledExtensionNames;
16875		self
16876	}
16877
16878	pub fn pEnabledFeatures(mut self, pEnabledFeatures : *const PhysicalDeviceFeatures) -> Self {
16879		self.pEnabledFeatures = pEnabledFeatures;
16880		self
16881	}
16882
16883}
16884
16885impl ExtensionProperties {
16886
16887	pub fn new() -> Self {
16888		 Self::default()
16889	}
16890
16891	pub fn extensionName(mut self, extensionName : [i8;MAX_EXTENSION_NAME_SIZE]) -> Self {
16892		self.extensionName = extensionName;
16893		self
16894	}
16895
16896	pub fn specVersion(mut self, specVersion : u32) -> Self {
16897		self.specVersion = specVersion;
16898		self
16899	}
16900
16901}
16902
16903impl LayerProperties {
16904
16905	pub fn new() -> Self {
16906		 Self::default()
16907	}
16908
16909	pub fn layerName(mut self, layerName : [i8;MAX_EXTENSION_NAME_SIZE]) -> Self {
16910		self.layerName = layerName;
16911		self
16912	}
16913
16914	pub fn specVersion(mut self, specVersion : u32) -> Self {
16915		self.specVersion = specVersion;
16916		self
16917	}
16918
16919	pub fn implementationVersion(mut self, implementationVersion : u32) -> Self {
16920		self.implementationVersion = implementationVersion;
16921		self
16922	}
16923
16924	pub fn description(mut self, description : [i8;MAX_DESCRIPTION_SIZE]) -> Self {
16925		self.description = description;
16926		self
16927	}
16928
16929}
16930
16931impl SubmitInfo {
16932
16933	pub fn new() -> Self {
16934		 Self::default()
16935	}
16936
16937	pub fn sType(mut self, sType : StructureType) -> Self {
16938		self.sType = sType;
16939		self
16940	}
16941
16942	pub fn pNext(mut self, pNext : *const void) -> Self {
16943		self.pNext = pNext;
16944		self
16945	}
16946
16947	pub fn waitSemaphoreCount(mut self, waitSemaphoreCount : u32) -> Self {
16948		self.waitSemaphoreCount = waitSemaphoreCount;
16949		self
16950	}
16951
16952	pub fn pWaitSemaphores(mut self, pWaitSemaphores : *const Semaphore) -> Self {
16953		self.pWaitSemaphores = pWaitSemaphores;
16954		self
16955	}
16956
16957	pub fn pWaitDstStageMask(mut self, pWaitDstStageMask : *const PipelineStageFlags) -> Self {
16958		self.pWaitDstStageMask = pWaitDstStageMask;
16959		self
16960	}
16961
16962	pub fn commandBufferCount(mut self, commandBufferCount : u32) -> Self {
16963		self.commandBufferCount = commandBufferCount;
16964		self
16965	}
16966
16967	pub fn pCommandBuffers(mut self, pCommandBuffers : *const CommandBuffer) -> Self {
16968		self.pCommandBuffers = pCommandBuffers;
16969		self
16970	}
16971
16972	pub fn signalSemaphoreCount(mut self, signalSemaphoreCount : u32) -> Self {
16973		self.signalSemaphoreCount = signalSemaphoreCount;
16974		self
16975	}
16976
16977	pub fn pSignalSemaphores(mut self, pSignalSemaphores : *const Semaphore) -> Self {
16978		self.pSignalSemaphores = pSignalSemaphores;
16979		self
16980	}
16981
16982}
16983
16984impl MemoryAllocateInfo {
16985
16986	pub fn new() -> Self {
16987		 Self::default()
16988	}
16989
16990	pub fn sType(mut self, sType : StructureType) -> Self {
16991		self.sType = sType;
16992		self
16993	}
16994
16995	pub fn pNext(mut self, pNext : *const void) -> Self {
16996		self.pNext = pNext;
16997		self
16998	}
16999
17000	pub fn allocationSize(mut self, allocationSize : DeviceSize) -> Self {
17001		self.allocationSize = allocationSize;
17002		self
17003	}
17004
17005	pub fn memoryTypeIndex(mut self, memoryTypeIndex : u32) -> Self {
17006		self.memoryTypeIndex = memoryTypeIndex;
17007		self
17008	}
17009
17010}
17011
17012impl MappedMemoryRange {
17013
17014	pub fn new() -> Self {
17015		 Self::default()
17016	}
17017
17018	pub fn sType(mut self, sType : StructureType) -> Self {
17019		self.sType = sType;
17020		self
17021	}
17022
17023	pub fn pNext(mut self, pNext : *const void) -> Self {
17024		self.pNext = pNext;
17025		self
17026	}
17027
17028	pub fn memory(mut self, memory : DeviceMemory) -> Self {
17029		self.memory = memory;
17030		self
17031	}
17032
17033	pub fn offset(mut self, offset : DeviceSize) -> Self {
17034		self.offset = offset;
17035		self
17036	}
17037
17038	pub fn size(mut self, size : DeviceSize) -> Self {
17039		self.size = size;
17040		self
17041	}
17042
17043}
17044
17045impl MemoryRequirements {
17046
17047	pub fn new() -> Self {
17048		 Self::default()
17049	}
17050
17051	pub fn size(mut self, size : DeviceSize) -> Self {
17052		self.size = size;
17053		self
17054	}
17055
17056	pub fn alignment(mut self, alignment : DeviceSize) -> Self {
17057		self.alignment = alignment;
17058		self
17059	}
17060
17061	pub fn memoryTypeBits(mut self, memoryTypeBits : u32) -> Self {
17062		self.memoryTypeBits = memoryTypeBits;
17063		self
17064	}
17065
17066}
17067
17068impl SparseImageFormatProperties {
17069
17070	pub fn new() -> Self {
17071		 Self::default()
17072	}
17073
17074	pub fn aspectMask(mut self, aspectMask : ImageAspectFlags) -> Self {
17075		self.aspectMask = aspectMask;
17076		self
17077	}
17078
17079	pub fn imageGranularity(mut self, imageGranularity : Extent3D) -> Self {
17080		self.imageGranularity = imageGranularity;
17081		self
17082	}
17083
17084	pub fn flags(mut self, flags : SparseImageFormatFlags) -> Self {
17085		self.flags = flags;
17086		self
17087	}
17088
17089}
17090
17091impl SparseImageMemoryRequirements {
17092
17093	pub fn new() -> Self {
17094		 Self::default()
17095	}
17096
17097	pub fn formatProperties(mut self, formatProperties : SparseImageFormatProperties) -> Self {
17098		self.formatProperties = formatProperties;
17099		self
17100	}
17101
17102	pub fn imageMipTailFirstLod(mut self, imageMipTailFirstLod : u32) -> Self {
17103		self.imageMipTailFirstLod = imageMipTailFirstLod;
17104		self
17105	}
17106
17107	pub fn imageMipTailSize(mut self, imageMipTailSize : DeviceSize) -> Self {
17108		self.imageMipTailSize = imageMipTailSize;
17109		self
17110	}
17111
17112	pub fn imageMipTailOffset(mut self, imageMipTailOffset : DeviceSize) -> Self {
17113		self.imageMipTailOffset = imageMipTailOffset;
17114		self
17115	}
17116
17117	pub fn imageMipTailStride(mut self, imageMipTailStride : DeviceSize) -> Self {
17118		self.imageMipTailStride = imageMipTailStride;
17119		self
17120	}
17121
17122}
17123
17124impl SparseMemoryBind {
17125
17126	pub fn new() -> Self {
17127		 Self::default()
17128	}
17129
17130	pub fn resourceOffset(mut self, resourceOffset : DeviceSize) -> Self {
17131		self.resourceOffset = resourceOffset;
17132		self
17133	}
17134
17135	pub fn size(mut self, size : DeviceSize) -> Self {
17136		self.size = size;
17137		self
17138	}
17139
17140	pub fn memory(mut self, memory : DeviceMemory) -> Self {
17141		self.memory = memory;
17142		self
17143	}
17144
17145	pub fn memoryOffset(mut self, memoryOffset : DeviceSize) -> Self {
17146		self.memoryOffset = memoryOffset;
17147		self
17148	}
17149
17150	pub fn flags(mut self, flags : SparseMemoryBindFlags) -> Self {
17151		self.flags = flags;
17152		self
17153	}
17154
17155}
17156
17157impl SparseBufferMemoryBindInfo {
17158
17159	pub fn new() -> Self {
17160		 Self::default()
17161	}
17162
17163	pub fn buffer(mut self, buffer : Buffer) -> Self {
17164		self.buffer = buffer;
17165		self
17166	}
17167
17168	pub fn bindCount(mut self, bindCount : u32) -> Self {
17169		self.bindCount = bindCount;
17170		self
17171	}
17172
17173	pub fn pBinds(mut self, pBinds : *const SparseMemoryBind) -> Self {
17174		self.pBinds = pBinds;
17175		self
17176	}
17177
17178}
17179
17180impl SparseImageOpaqueMemoryBindInfo {
17181
17182	pub fn new() -> Self {
17183		 Self::default()
17184	}
17185
17186	pub fn image(mut self, image : Image) -> Self {
17187		self.image = image;
17188		self
17189	}
17190
17191	pub fn bindCount(mut self, bindCount : u32) -> Self {
17192		self.bindCount = bindCount;
17193		self
17194	}
17195
17196	pub fn pBinds(mut self, pBinds : *const SparseMemoryBind) -> Self {
17197		self.pBinds = pBinds;
17198		self
17199	}
17200
17201}
17202
17203impl ImageSubresource {
17204
17205	pub fn new() -> Self {
17206		 Self::default()
17207	}
17208
17209	pub fn aspectMask(mut self, aspectMask : ImageAspectFlags) -> Self {
17210		self.aspectMask = aspectMask;
17211		self
17212	}
17213
17214	pub fn mipLevel(mut self, mipLevel : u32) -> Self {
17215		self.mipLevel = mipLevel;
17216		self
17217	}
17218
17219	pub fn arrayLayer(mut self, arrayLayer : u32) -> Self {
17220		self.arrayLayer = arrayLayer;
17221		self
17222	}
17223
17224}
17225
17226impl Offset3D {
17227
17228	pub fn new() -> Self {
17229		 Self::default()
17230	}
17231
17232	pub fn x(mut self, x : i32) -> Self {
17233		self.x = x;
17234		self
17235	}
17236
17237	pub fn y(mut self, y : i32) -> Self {
17238		self.y = y;
17239		self
17240	}
17241
17242	pub fn z(mut self, z : i32) -> Self {
17243		self.z = z;
17244		self
17245	}
17246
17247}
17248
17249impl SparseImageMemoryBind {
17250
17251	pub fn new() -> Self {
17252		 Self::default()
17253	}
17254
17255	pub fn subresource(mut self, subresource : ImageSubresource) -> Self {
17256		self.subresource = subresource;
17257		self
17258	}
17259
17260	pub fn offset(mut self, offset : Offset3D) -> Self {
17261		self.offset = offset;
17262		self
17263	}
17264
17265	pub fn extent(mut self, extent : Extent3D) -> Self {
17266		self.extent = extent;
17267		self
17268	}
17269
17270	pub fn memory(mut self, memory : DeviceMemory) -> Self {
17271		self.memory = memory;
17272		self
17273	}
17274
17275	pub fn memoryOffset(mut self, memoryOffset : DeviceSize) -> Self {
17276		self.memoryOffset = memoryOffset;
17277		self
17278	}
17279
17280	pub fn flags(mut self, flags : SparseMemoryBindFlags) -> Self {
17281		self.flags = flags;
17282		self
17283	}
17284
17285}
17286
17287impl SparseImageMemoryBindInfo {
17288
17289	pub fn new() -> Self {
17290		 Self::default()
17291	}
17292
17293	pub fn image(mut self, image : Image) -> Self {
17294		self.image = image;
17295		self
17296	}
17297
17298	pub fn bindCount(mut self, bindCount : u32) -> Self {
17299		self.bindCount = bindCount;
17300		self
17301	}
17302
17303	pub fn pBinds(mut self, pBinds : *const SparseImageMemoryBind) -> Self {
17304		self.pBinds = pBinds;
17305		self
17306	}
17307
17308}
17309
17310impl BindSparseInfo {
17311
17312	pub fn new() -> Self {
17313		 Self::default()
17314	}
17315
17316	pub fn sType(mut self, sType : StructureType) -> Self {
17317		self.sType = sType;
17318		self
17319	}
17320
17321	pub fn pNext(mut self, pNext : *const void) -> Self {
17322		self.pNext = pNext;
17323		self
17324	}
17325
17326	pub fn waitSemaphoreCount(mut self, waitSemaphoreCount : u32) -> Self {
17327		self.waitSemaphoreCount = waitSemaphoreCount;
17328		self
17329	}
17330
17331	pub fn pWaitSemaphores(mut self, pWaitSemaphores : *const Semaphore) -> Self {
17332		self.pWaitSemaphores = pWaitSemaphores;
17333		self
17334	}
17335
17336	pub fn bufferBindCount(mut self, bufferBindCount : u32) -> Self {
17337		self.bufferBindCount = bufferBindCount;
17338		self
17339	}
17340
17341	pub fn pBufferBinds(mut self, pBufferBinds : *const SparseBufferMemoryBindInfo) -> Self {
17342		self.pBufferBinds = pBufferBinds;
17343		self
17344	}
17345
17346	pub fn imageOpaqueBindCount(mut self, imageOpaqueBindCount : u32) -> Self {
17347		self.imageOpaqueBindCount = imageOpaqueBindCount;
17348		self
17349	}
17350
17351	pub fn pImageOpaqueBinds(mut self, pImageOpaqueBinds : *const SparseImageOpaqueMemoryBindInfo) -> Self {
17352		self.pImageOpaqueBinds = pImageOpaqueBinds;
17353		self
17354	}
17355
17356	pub fn imageBindCount(mut self, imageBindCount : u32) -> Self {
17357		self.imageBindCount = imageBindCount;
17358		self
17359	}
17360
17361	pub fn pImageBinds(mut self, pImageBinds : *const SparseImageMemoryBindInfo) -> Self {
17362		self.pImageBinds = pImageBinds;
17363		self
17364	}
17365
17366	pub fn signalSemaphoreCount(mut self, signalSemaphoreCount : u32) -> Self {
17367		self.signalSemaphoreCount = signalSemaphoreCount;
17368		self
17369	}
17370
17371	pub fn pSignalSemaphores(mut self, pSignalSemaphores : *const Semaphore) -> Self {
17372		self.pSignalSemaphores = pSignalSemaphores;
17373		self
17374	}
17375
17376}
17377
17378impl FenceCreateInfo {
17379
17380	pub fn new() -> Self {
17381		 Self::default()
17382	}
17383
17384	pub fn sType(mut self, sType : StructureType) -> Self {
17385		self.sType = sType;
17386		self
17387	}
17388
17389	pub fn pNext(mut self, pNext : *const void) -> Self {
17390		self.pNext = pNext;
17391		self
17392	}
17393
17394	pub fn flags(mut self, flags : FenceCreateFlags) -> Self {
17395		self.flags = flags;
17396		self
17397	}
17398
17399}
17400
17401impl SemaphoreCreateInfo {
17402
17403	pub fn new() -> Self {
17404		 Self::default()
17405	}
17406
17407	pub fn sType(mut self, sType : StructureType) -> Self {
17408		self.sType = sType;
17409		self
17410	}
17411
17412	pub fn pNext(mut self, pNext : *const void) -> Self {
17413		self.pNext = pNext;
17414		self
17415	}
17416
17417	pub fn flags(mut self, flags : SemaphoreCreateFlags) -> Self {
17418		self.flags = flags;
17419		self
17420	}
17421
17422}
17423
17424impl EventCreateInfo {
17425
17426	pub fn new() -> Self {
17427		 Self::default()
17428	}
17429
17430	pub fn sType(mut self, sType : StructureType) -> Self {
17431		self.sType = sType;
17432		self
17433	}
17434
17435	pub fn pNext(mut self, pNext : *const void) -> Self {
17436		self.pNext = pNext;
17437		self
17438	}
17439
17440	pub fn flags(mut self, flags : EventCreateFlags) -> Self {
17441		self.flags = flags;
17442		self
17443	}
17444
17445}
17446
17447impl QueryPoolCreateInfo {
17448
17449	pub fn new() -> Self {
17450		 Self::default()
17451	}
17452
17453	pub fn sType(mut self, sType : StructureType) -> Self {
17454		self.sType = sType;
17455		self
17456	}
17457
17458	pub fn pNext(mut self, pNext : *const void) -> Self {
17459		self.pNext = pNext;
17460		self
17461	}
17462
17463	pub fn flags(mut self, flags : QueryPoolCreateFlags) -> Self {
17464		self.flags = flags;
17465		self
17466	}
17467
17468	pub fn queryType(mut self, queryType : QueryType) -> Self {
17469		self.queryType = queryType;
17470		self
17471	}
17472
17473	pub fn queryCount(mut self, queryCount : u32) -> Self {
17474		self.queryCount = queryCount;
17475		self
17476	}
17477
17478	pub fn pipelineStatistics(mut self, pipelineStatistics : QueryPipelineStatisticFlags) -> Self {
17479		self.pipelineStatistics = pipelineStatistics;
17480		self
17481	}
17482
17483}
17484
17485impl BufferCreateInfo {
17486
17487	pub fn new() -> Self {
17488		 Self::default()
17489	}
17490
17491	pub fn sType(mut self, sType : StructureType) -> Self {
17492		self.sType = sType;
17493		self
17494	}
17495
17496	pub fn pNext(mut self, pNext : *const void) -> Self {
17497		self.pNext = pNext;
17498		self
17499	}
17500
17501	pub fn flags(mut self, flags : BufferCreateFlags) -> Self {
17502		self.flags = flags;
17503		self
17504	}
17505
17506	pub fn size(mut self, size : DeviceSize) -> Self {
17507		self.size = size;
17508		self
17509	}
17510
17511	pub fn usage(mut self, usage : BufferUsageFlags) -> Self {
17512		self.usage = usage;
17513		self
17514	}
17515
17516	pub fn sharingMode(mut self, sharingMode : SharingMode) -> Self {
17517		self.sharingMode = sharingMode;
17518		self
17519	}
17520
17521	pub fn queueFamilyIndexCount(mut self, queueFamilyIndexCount : u32) -> Self {
17522		self.queueFamilyIndexCount = queueFamilyIndexCount;
17523		self
17524	}
17525
17526	pub fn pQueueFamilyIndices(mut self, pQueueFamilyIndices : *const u32) -> Self {
17527		self.pQueueFamilyIndices = pQueueFamilyIndices;
17528		self
17529	}
17530
17531}
17532
17533impl BufferViewCreateInfo {
17534
17535	pub fn new() -> Self {
17536		 Self::default()
17537	}
17538
17539	pub fn sType(mut self, sType : StructureType) -> Self {
17540		self.sType = sType;
17541		self
17542	}
17543
17544	pub fn pNext(mut self, pNext : *const void) -> Self {
17545		self.pNext = pNext;
17546		self
17547	}
17548
17549	pub fn flags(mut self, flags : BufferViewCreateFlags) -> Self {
17550		self.flags = flags;
17551		self
17552	}
17553
17554	pub fn buffer(mut self, buffer : Buffer) -> Self {
17555		self.buffer = buffer;
17556		self
17557	}
17558
17559	pub fn format(mut self, format : Format) -> Self {
17560		self.format = format;
17561		self
17562	}
17563
17564	pub fn offset(mut self, offset : DeviceSize) -> Self {
17565		self.offset = offset;
17566		self
17567	}
17568
17569	pub fn range(mut self, range : DeviceSize) -> Self {
17570		self.range = range;
17571		self
17572	}
17573
17574}
17575
17576impl ImageCreateInfo {
17577
17578	pub fn new() -> Self {
17579		 Self::default()
17580	}
17581
17582	pub fn sType(mut self, sType : StructureType) -> Self {
17583		self.sType = sType;
17584		self
17585	}
17586
17587	pub fn pNext(mut self, pNext : *const void) -> Self {
17588		self.pNext = pNext;
17589		self
17590	}
17591
17592	pub fn flags(mut self, flags : ImageCreateFlags) -> Self {
17593		self.flags = flags;
17594		self
17595	}
17596
17597	pub fn imageType(mut self, imageType : ImageType) -> Self {
17598		self.imageType = imageType;
17599		self
17600	}
17601
17602	pub fn format(mut self, format : Format) -> Self {
17603		self.format = format;
17604		self
17605	}
17606
17607	pub fn extent(mut self, extent : Extent3D) -> Self {
17608		self.extent = extent;
17609		self
17610	}
17611
17612	pub fn mipLevels(mut self, mipLevels : u32) -> Self {
17613		self.mipLevels = mipLevels;
17614		self
17615	}
17616
17617	pub fn arrayLayers(mut self, arrayLayers : u32) -> Self {
17618		self.arrayLayers = arrayLayers;
17619		self
17620	}
17621
17622	pub fn samples(mut self, samples : SampleCountFlagBits) -> Self {
17623		self.samples = samples;
17624		self
17625	}
17626
17627	pub fn tiling(mut self, tiling : ImageTiling) -> Self {
17628		self.tiling = tiling;
17629		self
17630	}
17631
17632	pub fn usage(mut self, usage : ImageUsageFlags) -> Self {
17633		self.usage = usage;
17634		self
17635	}
17636
17637	pub fn sharingMode(mut self, sharingMode : SharingMode) -> Self {
17638		self.sharingMode = sharingMode;
17639		self
17640	}
17641
17642	pub fn queueFamilyIndexCount(mut self, queueFamilyIndexCount : u32) -> Self {
17643		self.queueFamilyIndexCount = queueFamilyIndexCount;
17644		self
17645	}
17646
17647	pub fn pQueueFamilyIndices(mut self, pQueueFamilyIndices : *const u32) -> Self {
17648		self.pQueueFamilyIndices = pQueueFamilyIndices;
17649		self
17650	}
17651
17652	pub fn initialLayout(mut self, initialLayout : ImageLayout) -> Self {
17653		self.initialLayout = initialLayout;
17654		self
17655	}
17656
17657}
17658
17659impl SubresourceLayout {
17660
17661	pub fn new() -> Self {
17662		 Self::default()
17663	}
17664
17665	pub fn offset(mut self, offset : DeviceSize) -> Self {
17666		self.offset = offset;
17667		self
17668	}
17669
17670	pub fn size(mut self, size : DeviceSize) -> Self {
17671		self.size = size;
17672		self
17673	}
17674
17675	pub fn rowPitch(mut self, rowPitch : DeviceSize) -> Self {
17676		self.rowPitch = rowPitch;
17677		self
17678	}
17679
17680	pub fn arrayPitch(mut self, arrayPitch : DeviceSize) -> Self {
17681		self.arrayPitch = arrayPitch;
17682		self
17683	}
17684
17685	pub fn depthPitch(mut self, depthPitch : DeviceSize) -> Self {
17686		self.depthPitch = depthPitch;
17687		self
17688	}
17689
17690}
17691
17692impl ComponentMapping {
17693
17694	pub fn new() -> Self {
17695		 Self::default()
17696	}
17697
17698	pub fn r(mut self, r : ComponentSwizzle) -> Self {
17699		self.r = r;
17700		self
17701	}
17702
17703	pub fn g(mut self, g : ComponentSwizzle) -> Self {
17704		self.g = g;
17705		self
17706	}
17707
17708	pub fn b(mut self, b : ComponentSwizzle) -> Self {
17709		self.b = b;
17710		self
17711	}
17712
17713	pub fn a(mut self, a : ComponentSwizzle) -> Self {
17714		self.a = a;
17715		self
17716	}
17717
17718}
17719
17720impl ImageSubresourceRange {
17721
17722	pub fn new() -> Self {
17723		 Self::default()
17724	}
17725
17726	pub fn aspectMask(mut self, aspectMask : ImageAspectFlags) -> Self {
17727		self.aspectMask = aspectMask;
17728		self
17729	}
17730
17731	pub fn baseMipLevel(mut self, baseMipLevel : u32) -> Self {
17732		self.baseMipLevel = baseMipLevel;
17733		self
17734	}
17735
17736	pub fn levelCount(mut self, levelCount : u32) -> Self {
17737		self.levelCount = levelCount;
17738		self
17739	}
17740
17741	pub fn baseArrayLayer(mut self, baseArrayLayer : u32) -> Self {
17742		self.baseArrayLayer = baseArrayLayer;
17743		self
17744	}
17745
17746	pub fn layerCount(mut self, layerCount : u32) -> Self {
17747		self.layerCount = layerCount;
17748		self
17749	}
17750
17751}
17752
17753impl ImageViewCreateInfo {
17754
17755	pub fn new() -> Self {
17756		 Self::default()
17757	}
17758
17759	pub fn sType(mut self, sType : StructureType) -> Self {
17760		self.sType = sType;
17761		self
17762	}
17763
17764	pub fn pNext(mut self, pNext : *const void) -> Self {
17765		self.pNext = pNext;
17766		self
17767	}
17768
17769	pub fn flags(mut self, flags : ImageViewCreateFlags) -> Self {
17770		self.flags = flags;
17771		self
17772	}
17773
17774	pub fn image(mut self, image : Image) -> Self {
17775		self.image = image;
17776		self
17777	}
17778
17779	pub fn viewType(mut self, viewType : ImageViewType) -> Self {
17780		self.viewType = viewType;
17781		self
17782	}
17783
17784	pub fn format(mut self, format : Format) -> Self {
17785		self.format = format;
17786		self
17787	}
17788
17789	pub fn components(mut self, components : ComponentMapping) -> Self {
17790		self.components = components;
17791		self
17792	}
17793
17794	pub fn subresourceRange(mut self, subresourceRange : ImageSubresourceRange) -> Self {
17795		self.subresourceRange = subresourceRange;
17796		self
17797	}
17798
17799}
17800
17801impl ShaderModuleCreateInfo {
17802
17803	pub fn new() -> Self {
17804		 Self::default()
17805	}
17806
17807	pub fn sType(mut self, sType : StructureType) -> Self {
17808		self.sType = sType;
17809		self
17810	}
17811
17812	pub fn pNext(mut self, pNext : *const void) -> Self {
17813		self.pNext = pNext;
17814		self
17815	}
17816
17817	pub fn flags(mut self, flags : ShaderModuleCreateFlags) -> Self {
17818		self.flags = flags;
17819		self
17820	}
17821
17822	pub fn codeSize(mut self, codeSize : usize) -> Self {
17823		self.codeSize = codeSize;
17824		self
17825	}
17826
17827	pub fn pCode(mut self, pCode : *const u32) -> Self {
17828		self.pCode = pCode;
17829		self
17830	}
17831
17832}
17833
17834impl PipelineCacheCreateInfo {
17835
17836	pub fn new() -> Self {
17837		 Self::default()
17838	}
17839
17840	pub fn sType(mut self, sType : StructureType) -> Self {
17841		self.sType = sType;
17842		self
17843	}
17844
17845	pub fn pNext(mut self, pNext : *const void) -> Self {
17846		self.pNext = pNext;
17847		self
17848	}
17849
17850	pub fn flags(mut self, flags : PipelineCacheCreateFlags) -> Self {
17851		self.flags = flags;
17852		self
17853	}
17854
17855	pub fn initialDataSize(mut self, initialDataSize : usize) -> Self {
17856		self.initialDataSize = initialDataSize;
17857		self
17858	}
17859
17860	pub fn pInitialData(mut self, pInitialData : *const void) -> Self {
17861		self.pInitialData = pInitialData;
17862		self
17863	}
17864
17865}
17866
17867impl SpecializationMapEntry {
17868
17869	pub fn new() -> Self {
17870		 Self::default()
17871	}
17872
17873	pub fn constantID(mut self, constantID : u32) -> Self {
17874		self.constantID = constantID;
17875		self
17876	}
17877
17878	pub fn offset(mut self, offset : u32) -> Self {
17879		self.offset = offset;
17880		self
17881	}
17882
17883	pub fn size(mut self, size : usize) -> Self {
17884		self.size = size;
17885		self
17886	}
17887
17888}
17889
17890impl SpecializationInfo {
17891
17892	pub fn new() -> Self {
17893		 Self::default()
17894	}
17895
17896	pub fn mapEntryCount(mut self, mapEntryCount : u32) -> Self {
17897		self.mapEntryCount = mapEntryCount;
17898		self
17899	}
17900
17901	pub fn pMapEntries(mut self, pMapEntries : *const SpecializationMapEntry) -> Self {
17902		self.pMapEntries = pMapEntries;
17903		self
17904	}
17905
17906	pub fn dataSize(mut self, dataSize : usize) -> Self {
17907		self.dataSize = dataSize;
17908		self
17909	}
17910
17911	pub fn pData(mut self, pData : *const void) -> Self {
17912		self.pData = pData;
17913		self
17914	}
17915
17916}
17917
17918impl PipelineShaderStageCreateInfo {
17919
17920	pub fn new() -> Self {
17921		 Self::default()
17922	}
17923
17924	pub fn sType(mut self, sType : StructureType) -> Self {
17925		self.sType = sType;
17926		self
17927	}
17928
17929	pub fn pNext(mut self, pNext : *const void) -> Self {
17930		self.pNext = pNext;
17931		self
17932	}
17933
17934	pub fn flags(mut self, flags : PipelineShaderStageCreateFlags) -> Self {
17935		self.flags = flags;
17936		self
17937	}
17938
17939	pub fn stage(mut self, stage : ShaderStageFlagBits) -> Self {
17940		self.stage = stage;
17941		self
17942	}
17943
17944	pub fn module(mut self, module : ShaderModule) -> Self {
17945		self.module = module;
17946		self
17947	}
17948
17949	pub fn pName(mut self, pName : *const i8) -> Self {
17950		self.pName = pName;
17951		self
17952	}
17953
17954	pub fn pSpecializationInfo(mut self, pSpecializationInfo : *const SpecializationInfo) -> Self {
17955		self.pSpecializationInfo = pSpecializationInfo;
17956		self
17957	}
17958
17959}
17960
17961impl VertexInputBindingDescription {
17962
17963	pub fn new() -> Self {
17964		 Self::default()
17965	}
17966
17967	pub fn binding(mut self, binding : u32) -> Self {
17968		self.binding = binding;
17969		self
17970	}
17971
17972	pub fn stride(mut self, stride : u32) -> Self {
17973		self.stride = stride;
17974		self
17975	}
17976
17977	pub fn inputRate(mut self, inputRate : VertexInputRate) -> Self {
17978		self.inputRate = inputRate;
17979		self
17980	}
17981
17982}
17983
17984impl VertexInputAttributeDescription {
17985
17986	pub fn new() -> Self {
17987		 Self::default()
17988	}
17989
17990	pub fn location(mut self, location : u32) -> Self {
17991		self.location = location;
17992		self
17993	}
17994
17995	pub fn binding(mut self, binding : u32) -> Self {
17996		self.binding = binding;
17997		self
17998	}
17999
18000	pub fn format(mut self, format : Format) -> Self {
18001		self.format = format;
18002		self
18003	}
18004
18005	pub fn offset(mut self, offset : u32) -> Self {
18006		self.offset = offset;
18007		self
18008	}
18009
18010}
18011
18012impl PipelineVertexInputStateCreateInfo {
18013
18014	pub fn new() -> Self {
18015		 Self::default()
18016	}
18017
18018	pub fn sType(mut self, sType : StructureType) -> Self {
18019		self.sType = sType;
18020		self
18021	}
18022
18023	pub fn pNext(mut self, pNext : *const void) -> Self {
18024		self.pNext = pNext;
18025		self
18026	}
18027
18028	pub fn flags(mut self, flags : PipelineVertexInputStateCreateFlags) -> Self {
18029		self.flags = flags;
18030		self
18031	}
18032
18033	pub fn vertexBindingDescriptionCount(mut self, vertexBindingDescriptionCount : u32) -> Self {
18034		self.vertexBindingDescriptionCount = vertexBindingDescriptionCount;
18035		self
18036	}
18037
18038	pub fn pVertexBindingDescriptions(mut self, pVertexBindingDescriptions : *const VertexInputBindingDescription) -> Self {
18039		self.pVertexBindingDescriptions = pVertexBindingDescriptions;
18040		self
18041	}
18042
18043	pub fn vertexAttributeDescriptionCount(mut self, vertexAttributeDescriptionCount : u32) -> Self {
18044		self.vertexAttributeDescriptionCount = vertexAttributeDescriptionCount;
18045		self
18046	}
18047
18048	pub fn pVertexAttributeDescriptions(mut self, pVertexAttributeDescriptions : *const VertexInputAttributeDescription) -> Self {
18049		self.pVertexAttributeDescriptions = pVertexAttributeDescriptions;
18050		self
18051	}
18052
18053}
18054
18055impl PipelineInputAssemblyStateCreateInfo {
18056
18057	pub fn new() -> Self {
18058		 Self::default()
18059	}
18060
18061	pub fn sType(mut self, sType : StructureType) -> Self {
18062		self.sType = sType;
18063		self
18064	}
18065
18066	pub fn pNext(mut self, pNext : *const void) -> Self {
18067		self.pNext = pNext;
18068		self
18069	}
18070
18071	pub fn flags(mut self, flags : PipelineInputAssemblyStateCreateFlags) -> Self {
18072		self.flags = flags;
18073		self
18074	}
18075
18076	pub fn topology(mut self, topology : PrimitiveTopology) -> Self {
18077		self.topology = topology;
18078		self
18079	}
18080
18081	pub fn primitiveRestartEnable(mut self, primitiveRestartEnable : Bool32) -> Self {
18082		self.primitiveRestartEnable = primitiveRestartEnable;
18083		self
18084	}
18085
18086}
18087
18088impl PipelineTessellationStateCreateInfo {
18089
18090	pub fn new() -> Self {
18091		 Self::default()
18092	}
18093
18094	pub fn sType(mut self, sType : StructureType) -> Self {
18095		self.sType = sType;
18096		self
18097	}
18098
18099	pub fn pNext(mut self, pNext : *const void) -> Self {
18100		self.pNext = pNext;
18101		self
18102	}
18103
18104	pub fn flags(mut self, flags : PipelineTessellationStateCreateFlags) -> Self {
18105		self.flags = flags;
18106		self
18107	}
18108
18109	pub fn patchControlPoints(mut self, patchControlPoints : u32) -> Self {
18110		self.patchControlPoints = patchControlPoints;
18111		self
18112	}
18113
18114}
18115
18116impl Viewport {
18117
18118	pub fn new() -> Self {
18119		 Self::default()
18120	}
18121
18122	pub fn x(mut self, x : f32) -> Self {
18123		self.x = x;
18124		self
18125	}
18126
18127	pub fn y(mut self, y : f32) -> Self {
18128		self.y = y;
18129		self
18130	}
18131
18132	pub fn width(mut self, width : f32) -> Self {
18133		self.width = width;
18134		self
18135	}
18136
18137	pub fn height(mut self, height : f32) -> Self {
18138		self.height = height;
18139		self
18140	}
18141
18142	pub fn minDepth(mut self, minDepth : f32) -> Self {
18143		self.minDepth = minDepth;
18144		self
18145	}
18146
18147	pub fn maxDepth(mut self, maxDepth : f32) -> Self {
18148		self.maxDepth = maxDepth;
18149		self
18150	}
18151
18152}
18153
18154impl Offset2D {
18155
18156	pub fn new() -> Self {
18157		 Self::default()
18158	}
18159
18160	pub fn x(mut self, x : i32) -> Self {
18161		self.x = x;
18162		self
18163	}
18164
18165	pub fn y(mut self, y : i32) -> Self {
18166		self.y = y;
18167		self
18168	}
18169
18170}
18171
18172impl Extent2D {
18173
18174	pub fn new() -> Self {
18175		 Self::default()
18176	}
18177
18178	pub fn width(mut self, width : u32) -> Self {
18179		self.width = width;
18180		self
18181	}
18182
18183	pub fn height(mut self, height : u32) -> Self {
18184		self.height = height;
18185		self
18186	}
18187
18188}
18189
18190impl Rect2D {
18191
18192	pub fn new() -> Self {
18193		 Self::default()
18194	}
18195
18196	pub fn offset(mut self, offset : Offset2D) -> Self {
18197		self.offset = offset;
18198		self
18199	}
18200
18201	pub fn extent(mut self, extent : Extent2D) -> Self {
18202		self.extent = extent;
18203		self
18204	}
18205
18206}
18207
18208impl PipelineViewportStateCreateInfo {
18209
18210	pub fn new() -> Self {
18211		 Self::default()
18212	}
18213
18214	pub fn sType(mut self, sType : StructureType) -> Self {
18215		self.sType = sType;
18216		self
18217	}
18218
18219	pub fn pNext(mut self, pNext : *const void) -> Self {
18220		self.pNext = pNext;
18221		self
18222	}
18223
18224	pub fn flags(mut self, flags : PipelineViewportStateCreateFlags) -> Self {
18225		self.flags = flags;
18226		self
18227	}
18228
18229	pub fn viewportCount(mut self, viewportCount : u32) -> Self {
18230		self.viewportCount = viewportCount;
18231		self
18232	}
18233
18234	pub fn pViewports(mut self, pViewports : *const Viewport) -> Self {
18235		self.pViewports = pViewports;
18236		self
18237	}
18238
18239	pub fn scissorCount(mut self, scissorCount : u32) -> Self {
18240		self.scissorCount = scissorCount;
18241		self
18242	}
18243
18244	pub fn pScissors(mut self, pScissors : *const Rect2D) -> Self {
18245		self.pScissors = pScissors;
18246		self
18247	}
18248
18249}
18250
18251impl PipelineRasterizationStateCreateInfo {
18252
18253	pub fn new() -> Self {
18254		 Self::default()
18255	}
18256
18257	pub fn sType(mut self, sType : StructureType) -> Self {
18258		self.sType = sType;
18259		self
18260	}
18261
18262	pub fn pNext(mut self, pNext : *const void) -> Self {
18263		self.pNext = pNext;
18264		self
18265	}
18266
18267	pub fn flags(mut self, flags : PipelineRasterizationStateCreateFlags) -> Self {
18268		self.flags = flags;
18269		self
18270	}
18271
18272	pub fn depthClampEnable(mut self, depthClampEnable : Bool32) -> Self {
18273		self.depthClampEnable = depthClampEnable;
18274		self
18275	}
18276
18277	pub fn rasterizerDiscardEnable(mut self, rasterizerDiscardEnable : Bool32) -> Self {
18278		self.rasterizerDiscardEnable = rasterizerDiscardEnable;
18279		self
18280	}
18281
18282	pub fn polygonMode(mut self, polygonMode : PolygonMode) -> Self {
18283		self.polygonMode = polygonMode;
18284		self
18285	}
18286
18287	pub fn cullMode(mut self, cullMode : CullModeFlags) -> Self {
18288		self.cullMode = cullMode;
18289		self
18290	}
18291
18292	pub fn frontFace(mut self, frontFace : FrontFace) -> Self {
18293		self.frontFace = frontFace;
18294		self
18295	}
18296
18297	pub fn depthBiasEnable(mut self, depthBiasEnable : Bool32) -> Self {
18298		self.depthBiasEnable = depthBiasEnable;
18299		self
18300	}
18301
18302	pub fn depthBiasConstantFactor(mut self, depthBiasConstantFactor : f32) -> Self {
18303		self.depthBiasConstantFactor = depthBiasConstantFactor;
18304		self
18305	}
18306
18307	pub fn depthBiasClamp(mut self, depthBiasClamp : f32) -> Self {
18308		self.depthBiasClamp = depthBiasClamp;
18309		self
18310	}
18311
18312	pub fn depthBiasSlopeFactor(mut self, depthBiasSlopeFactor : f32) -> Self {
18313		self.depthBiasSlopeFactor = depthBiasSlopeFactor;
18314		self
18315	}
18316
18317	pub fn lineWidth(mut self, lineWidth : f32) -> Self {
18318		self.lineWidth = lineWidth;
18319		self
18320	}
18321
18322}
18323
18324impl PipelineMultisampleStateCreateInfo {
18325
18326	pub fn new() -> Self {
18327		 Self::default()
18328	}
18329
18330	pub fn sType(mut self, sType : StructureType) -> Self {
18331		self.sType = sType;
18332		self
18333	}
18334
18335	pub fn pNext(mut self, pNext : *const void) -> Self {
18336		self.pNext = pNext;
18337		self
18338	}
18339
18340	pub fn flags(mut self, flags : PipelineMultisampleStateCreateFlags) -> Self {
18341		self.flags = flags;
18342		self
18343	}
18344
18345	pub fn rasterizationSamples(mut self, rasterizationSamples : SampleCountFlagBits) -> Self {
18346		self.rasterizationSamples = rasterizationSamples;
18347		self
18348	}
18349
18350	pub fn sampleShadingEnable(mut self, sampleShadingEnable : Bool32) -> Self {
18351		self.sampleShadingEnable = sampleShadingEnable;
18352		self
18353	}
18354
18355	pub fn minSampleShading(mut self, minSampleShading : f32) -> Self {
18356		self.minSampleShading = minSampleShading;
18357		self
18358	}
18359
18360	pub fn pSampleMask(mut self, pSampleMask : *const SampleMask) -> Self {
18361		self.pSampleMask = pSampleMask;
18362		self
18363	}
18364
18365	pub fn alphaToCoverageEnable(mut self, alphaToCoverageEnable : Bool32) -> Self {
18366		self.alphaToCoverageEnable = alphaToCoverageEnable;
18367		self
18368	}
18369
18370	pub fn alphaToOneEnable(mut self, alphaToOneEnable : Bool32) -> Self {
18371		self.alphaToOneEnable = alphaToOneEnable;
18372		self
18373	}
18374
18375}
18376
18377impl StencilOpState {
18378
18379	pub fn new() -> Self {
18380		 Self::default()
18381	}
18382
18383	pub fn failOp(mut self, failOp : StencilOp) -> Self {
18384		self.failOp = failOp;
18385		self
18386	}
18387
18388	pub fn passOp(mut self, passOp : StencilOp) -> Self {
18389		self.passOp = passOp;
18390		self
18391	}
18392
18393	pub fn depthFailOp(mut self, depthFailOp : StencilOp) -> Self {
18394		self.depthFailOp = depthFailOp;
18395		self
18396	}
18397
18398	pub fn compareOp(mut self, compareOp : CompareOp) -> Self {
18399		self.compareOp = compareOp;
18400		self
18401	}
18402
18403	pub fn compareMask(mut self, compareMask : u32) -> Self {
18404		self.compareMask = compareMask;
18405		self
18406	}
18407
18408	pub fn writeMask(mut self, writeMask : u32) -> Self {
18409		self.writeMask = writeMask;
18410		self
18411	}
18412
18413	pub fn reference(mut self, reference : u32) -> Self {
18414		self.reference = reference;
18415		self
18416	}
18417
18418}
18419
18420impl PipelineDepthStencilStateCreateInfo {
18421
18422	pub fn new() -> Self {
18423		 Self::default()
18424	}
18425
18426	pub fn sType(mut self, sType : StructureType) -> Self {
18427		self.sType = sType;
18428		self
18429	}
18430
18431	pub fn pNext(mut self, pNext : *const void) -> Self {
18432		self.pNext = pNext;
18433		self
18434	}
18435
18436	pub fn flags(mut self, flags : PipelineDepthStencilStateCreateFlags) -> Self {
18437		self.flags = flags;
18438		self
18439	}
18440
18441	pub fn depthTestEnable(mut self, depthTestEnable : Bool32) -> Self {
18442		self.depthTestEnable = depthTestEnable;
18443		self
18444	}
18445
18446	pub fn depthWriteEnable(mut self, depthWriteEnable : Bool32) -> Self {
18447		self.depthWriteEnable = depthWriteEnable;
18448		self
18449	}
18450
18451	pub fn depthCompareOp(mut self, depthCompareOp : CompareOp) -> Self {
18452		self.depthCompareOp = depthCompareOp;
18453		self
18454	}
18455
18456	pub fn depthBoundsTestEnable(mut self, depthBoundsTestEnable : Bool32) -> Self {
18457		self.depthBoundsTestEnable = depthBoundsTestEnable;
18458		self
18459	}
18460
18461	pub fn stencilTestEnable(mut self, stencilTestEnable : Bool32) -> Self {
18462		self.stencilTestEnable = stencilTestEnable;
18463		self
18464	}
18465
18466	pub fn front(mut self, front : StencilOpState) -> Self {
18467		self.front = front;
18468		self
18469	}
18470
18471	pub fn back(mut self, back : StencilOpState) -> Self {
18472		self.back = back;
18473		self
18474	}
18475
18476	pub fn minDepthBounds(mut self, minDepthBounds : f32) -> Self {
18477		self.minDepthBounds = minDepthBounds;
18478		self
18479	}
18480
18481	pub fn maxDepthBounds(mut self, maxDepthBounds : f32) -> Self {
18482		self.maxDepthBounds = maxDepthBounds;
18483		self
18484	}
18485
18486}
18487
18488impl PipelineColorBlendAttachmentState {
18489
18490	pub fn new() -> Self {
18491		 Self::default()
18492	}
18493
18494	pub fn blendEnable(mut self, blendEnable : Bool32) -> Self {
18495		self.blendEnable = blendEnable;
18496		self
18497	}
18498
18499	pub fn srcColorBlendFactor(mut self, srcColorBlendFactor : BlendFactor) -> Self {
18500		self.srcColorBlendFactor = srcColorBlendFactor;
18501		self
18502	}
18503
18504	pub fn dstColorBlendFactor(mut self, dstColorBlendFactor : BlendFactor) -> Self {
18505		self.dstColorBlendFactor = dstColorBlendFactor;
18506		self
18507	}
18508
18509	pub fn colorBlendOp(mut self, colorBlendOp : BlendOp) -> Self {
18510		self.colorBlendOp = colorBlendOp;
18511		self
18512	}
18513
18514	pub fn srcAlphaBlendFactor(mut self, srcAlphaBlendFactor : BlendFactor) -> Self {
18515		self.srcAlphaBlendFactor = srcAlphaBlendFactor;
18516		self
18517	}
18518
18519	pub fn dstAlphaBlendFactor(mut self, dstAlphaBlendFactor : BlendFactor) -> Self {
18520		self.dstAlphaBlendFactor = dstAlphaBlendFactor;
18521		self
18522	}
18523
18524	pub fn alphaBlendOp(mut self, alphaBlendOp : BlendOp) -> Self {
18525		self.alphaBlendOp = alphaBlendOp;
18526		self
18527	}
18528
18529	pub fn colorWriteMask(mut self, colorWriteMask : ColorComponentFlags) -> Self {
18530		self.colorWriteMask = colorWriteMask;
18531		self
18532	}
18533
18534}
18535
18536impl PipelineColorBlendStateCreateInfo {
18537
18538	pub fn new() -> Self {
18539		 Self::default()
18540	}
18541
18542	pub fn sType(mut self, sType : StructureType) -> Self {
18543		self.sType = sType;
18544		self
18545	}
18546
18547	pub fn pNext(mut self, pNext : *const void) -> Self {
18548		self.pNext = pNext;
18549		self
18550	}
18551
18552	pub fn flags(mut self, flags : PipelineColorBlendStateCreateFlags) -> Self {
18553		self.flags = flags;
18554		self
18555	}
18556
18557	pub fn logicOpEnable(mut self, logicOpEnable : Bool32) -> Self {
18558		self.logicOpEnable = logicOpEnable;
18559		self
18560	}
18561
18562	pub fn logicOp(mut self, logicOp : LogicOp) -> Self {
18563		self.logicOp = logicOp;
18564		self
18565	}
18566
18567	pub fn attachmentCount(mut self, attachmentCount : u32) -> Self {
18568		self.attachmentCount = attachmentCount;
18569		self
18570	}
18571
18572	pub fn pAttachments(mut self, pAttachments : *const PipelineColorBlendAttachmentState) -> Self {
18573		self.pAttachments = pAttachments;
18574		self
18575	}
18576
18577	pub fn blendConstants(mut self, blendConstants : [f32;4]) -> Self {
18578		self.blendConstants = blendConstants;
18579		self
18580	}
18581
18582}
18583
18584impl PipelineDynamicStateCreateInfo {
18585
18586	pub fn new() -> Self {
18587		 Self::default()
18588	}
18589
18590	pub fn sType(mut self, sType : StructureType) -> Self {
18591		self.sType = sType;
18592		self
18593	}
18594
18595	pub fn pNext(mut self, pNext : *const void) -> Self {
18596		self.pNext = pNext;
18597		self
18598	}
18599
18600	pub fn flags(mut self, flags : PipelineDynamicStateCreateFlags) -> Self {
18601		self.flags = flags;
18602		self
18603	}
18604
18605	pub fn dynamicStateCount(mut self, dynamicStateCount : u32) -> Self {
18606		self.dynamicStateCount = dynamicStateCount;
18607		self
18608	}
18609
18610	pub fn pDynamicStates(mut self, pDynamicStates : *const DynamicState) -> Self {
18611		self.pDynamicStates = pDynamicStates;
18612		self
18613	}
18614
18615}
18616
18617impl GraphicsPipelineCreateInfo {
18618
18619	pub fn new() -> Self {
18620		 Self::default()
18621	}
18622
18623	pub fn sType(mut self, sType : StructureType) -> Self {
18624		self.sType = sType;
18625		self
18626	}
18627
18628	pub fn pNext(mut self, pNext : *const void) -> Self {
18629		self.pNext = pNext;
18630		self
18631	}
18632
18633	pub fn flags(mut self, flags : PipelineCreateFlags) -> Self {
18634		self.flags = flags;
18635		self
18636	}
18637
18638	pub fn stageCount(mut self, stageCount : u32) -> Self {
18639		self.stageCount = stageCount;
18640		self
18641	}
18642
18643	pub fn pStages(mut self, pStages : *const PipelineShaderStageCreateInfo) -> Self {
18644		self.pStages = pStages;
18645		self
18646	}
18647
18648	pub fn pVertexInputState(mut self, pVertexInputState : *const PipelineVertexInputStateCreateInfo) -> Self {
18649		self.pVertexInputState = pVertexInputState;
18650		self
18651	}
18652
18653	pub fn pInputAssemblyState(mut self, pInputAssemblyState : *const PipelineInputAssemblyStateCreateInfo) -> Self {
18654		self.pInputAssemblyState = pInputAssemblyState;
18655		self
18656	}
18657
18658	pub fn pTessellationState(mut self, pTessellationState : *const PipelineTessellationStateCreateInfo) -> Self {
18659		self.pTessellationState = pTessellationState;
18660		self
18661	}
18662
18663	pub fn pViewportState(mut self, pViewportState : *const PipelineViewportStateCreateInfo) -> Self {
18664		self.pViewportState = pViewportState;
18665		self
18666	}
18667
18668	pub fn pRasterizationState(mut self, pRasterizationState : *const PipelineRasterizationStateCreateInfo) -> Self {
18669		self.pRasterizationState = pRasterizationState;
18670		self
18671	}
18672
18673	pub fn pMultisampleState(mut self, pMultisampleState : *const PipelineMultisampleStateCreateInfo) -> Self {
18674		self.pMultisampleState = pMultisampleState;
18675		self
18676	}
18677
18678	pub fn pDepthStencilState(mut self, pDepthStencilState : *const PipelineDepthStencilStateCreateInfo) -> Self {
18679		self.pDepthStencilState = pDepthStencilState;
18680		self
18681	}
18682
18683	pub fn pColorBlendState(mut self, pColorBlendState : *const PipelineColorBlendStateCreateInfo) -> Self {
18684		self.pColorBlendState = pColorBlendState;
18685		self
18686	}
18687
18688	pub fn pDynamicState(mut self, pDynamicState : *const PipelineDynamicStateCreateInfo) -> Self {
18689		self.pDynamicState = pDynamicState;
18690		self
18691	}
18692
18693	pub fn layout(mut self, layout : PipelineLayout) -> Self {
18694		self.layout = layout;
18695		self
18696	}
18697
18698	pub fn renderPass(mut self, renderPass : RenderPass) -> Self {
18699		self.renderPass = renderPass;
18700		self
18701	}
18702
18703	pub fn subpass(mut self, subpass : u32) -> Self {
18704		self.subpass = subpass;
18705		self
18706	}
18707
18708	pub fn basePipelineHandle(mut self, basePipelineHandle : Pipeline) -> Self {
18709		self.basePipelineHandle = basePipelineHandle;
18710		self
18711	}
18712
18713	pub fn basePipelineIndex(mut self, basePipelineIndex : i32) -> Self {
18714		self.basePipelineIndex = basePipelineIndex;
18715		self
18716	}
18717
18718}
18719
18720impl ComputePipelineCreateInfo {
18721
18722	pub fn new() -> Self {
18723		 Self::default()
18724	}
18725
18726	pub fn sType(mut self, sType : StructureType) -> Self {
18727		self.sType = sType;
18728		self
18729	}
18730
18731	pub fn pNext(mut self, pNext : *const void) -> Self {
18732		self.pNext = pNext;
18733		self
18734	}
18735
18736	pub fn flags(mut self, flags : PipelineCreateFlags) -> Self {
18737		self.flags = flags;
18738		self
18739	}
18740
18741	pub fn stage(mut self, stage : PipelineShaderStageCreateInfo) -> Self {
18742		self.stage = stage;
18743		self
18744	}
18745
18746	pub fn layout(mut self, layout : PipelineLayout) -> Self {
18747		self.layout = layout;
18748		self
18749	}
18750
18751	pub fn basePipelineHandle(mut self, basePipelineHandle : Pipeline) -> Self {
18752		self.basePipelineHandle = basePipelineHandle;
18753		self
18754	}
18755
18756	pub fn basePipelineIndex(mut self, basePipelineIndex : i32) -> Self {
18757		self.basePipelineIndex = basePipelineIndex;
18758		self
18759	}
18760
18761}
18762
18763impl PushConstantRange {
18764
18765	pub fn new() -> Self {
18766		 Self::default()
18767	}
18768
18769	pub fn stageFlags(mut self, stageFlags : ShaderStageFlags) -> Self {
18770		self.stageFlags = stageFlags;
18771		self
18772	}
18773
18774	pub fn offset(mut self, offset : u32) -> Self {
18775		self.offset = offset;
18776		self
18777	}
18778
18779	pub fn size(mut self, size : u32) -> Self {
18780		self.size = size;
18781		self
18782	}
18783
18784}
18785
18786impl PipelineLayoutCreateInfo {
18787
18788	pub fn new() -> Self {
18789		 Self::default()
18790	}
18791
18792	pub fn sType(mut self, sType : StructureType) -> Self {
18793		self.sType = sType;
18794		self
18795	}
18796
18797	pub fn pNext(mut self, pNext : *const void) -> Self {
18798		self.pNext = pNext;
18799		self
18800	}
18801
18802	pub fn flags(mut self, flags : PipelineLayoutCreateFlags) -> Self {
18803		self.flags = flags;
18804		self
18805	}
18806
18807	pub fn setLayoutCount(mut self, setLayoutCount : u32) -> Self {
18808		self.setLayoutCount = setLayoutCount;
18809		self
18810	}
18811
18812	pub fn pSetLayouts(mut self, pSetLayouts : *const DescriptorSetLayout) -> Self {
18813		self.pSetLayouts = pSetLayouts;
18814		self
18815	}
18816
18817	pub fn pushConstantRangeCount(mut self, pushConstantRangeCount : u32) -> Self {
18818		self.pushConstantRangeCount = pushConstantRangeCount;
18819		self
18820	}
18821
18822	pub fn pPushConstantRanges(mut self, pPushConstantRanges : *const PushConstantRange) -> Self {
18823		self.pPushConstantRanges = pPushConstantRanges;
18824		self
18825	}
18826
18827}
18828
18829impl SamplerCreateInfo {
18830
18831	pub fn new() -> Self {
18832		 Self::default()
18833	}
18834
18835	pub fn sType(mut self, sType : StructureType) -> Self {
18836		self.sType = sType;
18837		self
18838	}
18839
18840	pub fn pNext(mut self, pNext : *const void) -> Self {
18841		self.pNext = pNext;
18842		self
18843	}
18844
18845	pub fn flags(mut self, flags : SamplerCreateFlags) -> Self {
18846		self.flags = flags;
18847		self
18848	}
18849
18850	pub fn magFilter(mut self, magFilter : Filter) -> Self {
18851		self.magFilter = magFilter;
18852		self
18853	}
18854
18855	pub fn minFilter(mut self, minFilter : Filter) -> Self {
18856		self.minFilter = minFilter;
18857		self
18858	}
18859
18860	pub fn mipmapMode(mut self, mipmapMode : SamplerMipmapMode) -> Self {
18861		self.mipmapMode = mipmapMode;
18862		self
18863	}
18864
18865	pub fn addressModeU(mut self, addressModeU : SamplerAddressMode) -> Self {
18866		self.addressModeU = addressModeU;
18867		self
18868	}
18869
18870	pub fn addressModeV(mut self, addressModeV : SamplerAddressMode) -> Self {
18871		self.addressModeV = addressModeV;
18872		self
18873	}
18874
18875	pub fn addressModeW(mut self, addressModeW : SamplerAddressMode) -> Self {
18876		self.addressModeW = addressModeW;
18877		self
18878	}
18879
18880	pub fn mipLodBias(mut self, mipLodBias : f32) -> Self {
18881		self.mipLodBias = mipLodBias;
18882		self
18883	}
18884
18885	pub fn anisotropyEnable(mut self, anisotropyEnable : Bool32) -> Self {
18886		self.anisotropyEnable = anisotropyEnable;
18887		self
18888	}
18889
18890	pub fn maxAnisotropy(mut self, maxAnisotropy : f32) -> Self {
18891		self.maxAnisotropy = maxAnisotropy;
18892		self
18893	}
18894
18895	pub fn compareEnable(mut self, compareEnable : Bool32) -> Self {
18896		self.compareEnable = compareEnable;
18897		self
18898	}
18899
18900	pub fn compareOp(mut self, compareOp : CompareOp) -> Self {
18901		self.compareOp = compareOp;
18902		self
18903	}
18904
18905	pub fn minLod(mut self, minLod : f32) -> Self {
18906		self.minLod = minLod;
18907		self
18908	}
18909
18910	pub fn maxLod(mut self, maxLod : f32) -> Self {
18911		self.maxLod = maxLod;
18912		self
18913	}
18914
18915	pub fn borderColor(mut self, borderColor : BorderColor) -> Self {
18916		self.borderColor = borderColor;
18917		self
18918	}
18919
18920	pub fn unnormalizedCoordinates(mut self, unnormalizedCoordinates : Bool32) -> Self {
18921		self.unnormalizedCoordinates = unnormalizedCoordinates;
18922		self
18923	}
18924
18925}
18926
18927impl DescriptorSetLayoutBinding {
18928
18929	pub fn new() -> Self {
18930		 Self::default()
18931	}
18932
18933	pub fn binding(mut self, binding : u32) -> Self {
18934		self.binding = binding;
18935		self
18936	}
18937
18938	pub fn descriptorType(mut self, descriptorType : DescriptorType) -> Self {
18939		self.descriptorType = descriptorType;
18940		self
18941	}
18942
18943	pub fn descriptorCount(mut self, descriptorCount : u32) -> Self {
18944		self.descriptorCount = descriptorCount;
18945		self
18946	}
18947
18948	pub fn stageFlags(mut self, stageFlags : ShaderStageFlags) -> Self {
18949		self.stageFlags = stageFlags;
18950		self
18951	}
18952
18953	pub fn pImmutableSamplers(mut self, pImmutableSamplers : *const Sampler) -> Self {
18954		self.pImmutableSamplers = pImmutableSamplers;
18955		self
18956	}
18957
18958}
18959
18960impl DescriptorSetLayoutCreateInfo {
18961
18962	pub fn new() -> Self {
18963		 Self::default()
18964	}
18965
18966	pub fn sType(mut self, sType : StructureType) -> Self {
18967		self.sType = sType;
18968		self
18969	}
18970
18971	pub fn pNext(mut self, pNext : *const void) -> Self {
18972		self.pNext = pNext;
18973		self
18974	}
18975
18976	pub fn flags(mut self, flags : DescriptorSetLayoutCreateFlags) -> Self {
18977		self.flags = flags;
18978		self
18979	}
18980
18981	pub fn bindingCount(mut self, bindingCount : u32) -> Self {
18982		self.bindingCount = bindingCount;
18983		self
18984	}
18985
18986	pub fn pBindings(mut self, pBindings : *const DescriptorSetLayoutBinding) -> Self {
18987		self.pBindings = pBindings;
18988		self
18989	}
18990
18991}
18992
18993impl DescriptorPoolSize {
18994
18995	pub fn new() -> Self {
18996		 Self::default()
18997	}
18998
18999	pub fn r#type(mut self, r#type : DescriptorType) -> Self {
19000		self.r#type = r#type;
19001		self
19002	}
19003
19004	pub fn descriptorCount(mut self, descriptorCount : u32) -> Self {
19005		self.descriptorCount = descriptorCount;
19006		self
19007	}
19008
19009}
19010
19011impl DescriptorPoolCreateInfo {
19012
19013	pub fn new() -> Self {
19014		 Self::default()
19015	}
19016
19017	pub fn sType(mut self, sType : StructureType) -> Self {
19018		self.sType = sType;
19019		self
19020	}
19021
19022	pub fn pNext(mut self, pNext : *const void) -> Self {
19023		self.pNext = pNext;
19024		self
19025	}
19026
19027	pub fn flags(mut self, flags : DescriptorPoolCreateFlags) -> Self {
19028		self.flags = flags;
19029		self
19030	}
19031
19032	pub fn maxSets(mut self, maxSets : u32) -> Self {
19033		self.maxSets = maxSets;
19034		self
19035	}
19036
19037	pub fn poolSizeCount(mut self, poolSizeCount : u32) -> Self {
19038		self.poolSizeCount = poolSizeCount;
19039		self
19040	}
19041
19042	pub fn pPoolSizes(mut self, pPoolSizes : *const DescriptorPoolSize) -> Self {
19043		self.pPoolSizes = pPoolSizes;
19044		self
19045	}
19046
19047}
19048
19049impl DescriptorSetAllocateInfo {
19050
19051	pub fn new() -> Self {
19052		 Self::default()
19053	}
19054
19055	pub fn sType(mut self, sType : StructureType) -> Self {
19056		self.sType = sType;
19057		self
19058	}
19059
19060	pub fn pNext(mut self, pNext : *const void) -> Self {
19061		self.pNext = pNext;
19062		self
19063	}
19064
19065	pub fn descriptorPool(mut self, descriptorPool : DescriptorPool) -> Self {
19066		self.descriptorPool = descriptorPool;
19067		self
19068	}
19069
19070	pub fn descriptorSetCount(mut self, descriptorSetCount : u32) -> Self {
19071		self.descriptorSetCount = descriptorSetCount;
19072		self
19073	}
19074
19075	pub fn pSetLayouts(mut self, pSetLayouts : *const DescriptorSetLayout) -> Self {
19076		self.pSetLayouts = pSetLayouts;
19077		self
19078	}
19079
19080}
19081
19082impl DescriptorImageInfo {
19083
19084	pub fn new() -> Self {
19085		 Self::default()
19086	}
19087
19088	pub fn sampler(mut self, sampler : Sampler) -> Self {
19089		self.sampler = sampler;
19090		self
19091	}
19092
19093	pub fn imageView(mut self, imageView : ImageView) -> Self {
19094		self.imageView = imageView;
19095		self
19096	}
19097
19098	pub fn imageLayout(mut self, imageLayout : ImageLayout) -> Self {
19099		self.imageLayout = imageLayout;
19100		self
19101	}
19102
19103}
19104
19105impl DescriptorBufferInfo {
19106
19107	pub fn new() -> Self {
19108		 Self::default()
19109	}
19110
19111	pub fn buffer(mut self, buffer : Buffer) -> Self {
19112		self.buffer = buffer;
19113		self
19114	}
19115
19116	pub fn offset(mut self, offset : DeviceSize) -> Self {
19117		self.offset = offset;
19118		self
19119	}
19120
19121	pub fn range(mut self, range : DeviceSize) -> Self {
19122		self.range = range;
19123		self
19124	}
19125
19126}
19127
19128impl WriteDescriptorSet {
19129
19130	pub fn new() -> Self {
19131		 Self::default()
19132	}
19133
19134	pub fn sType(mut self, sType : StructureType) -> Self {
19135		self.sType = sType;
19136		self
19137	}
19138
19139	pub fn pNext(mut self, pNext : *const void) -> Self {
19140		self.pNext = pNext;
19141		self
19142	}
19143
19144	pub fn dstSet(mut self, dstSet : DescriptorSet) -> Self {
19145		self.dstSet = dstSet;
19146		self
19147	}
19148
19149	pub fn dstBinding(mut self, dstBinding : u32) -> Self {
19150		self.dstBinding = dstBinding;
19151		self
19152	}
19153
19154	pub fn dstArrayElement(mut self, dstArrayElement : u32) -> Self {
19155		self.dstArrayElement = dstArrayElement;
19156		self
19157	}
19158
19159	pub fn descriptorCount(mut self, descriptorCount : u32) -> Self {
19160		self.descriptorCount = descriptorCount;
19161		self
19162	}
19163
19164	pub fn descriptorType(mut self, descriptorType : DescriptorType) -> Self {
19165		self.descriptorType = descriptorType;
19166		self
19167	}
19168
19169	pub fn pImageInfo(mut self, pImageInfo : *const DescriptorImageInfo) -> Self {
19170		self.pImageInfo = pImageInfo;
19171		self
19172	}
19173
19174	pub fn pBufferInfo(mut self, pBufferInfo : *const DescriptorBufferInfo) -> Self {
19175		self.pBufferInfo = pBufferInfo;
19176		self
19177	}
19178
19179	pub fn pTexelBufferView(mut self, pTexelBufferView : *const BufferView) -> Self {
19180		self.pTexelBufferView = pTexelBufferView;
19181		self
19182	}
19183
19184}
19185
19186impl CopyDescriptorSet {
19187
19188	pub fn new() -> Self {
19189		 Self::default()
19190	}
19191
19192	pub fn sType(mut self, sType : StructureType) -> Self {
19193		self.sType = sType;
19194		self
19195	}
19196
19197	pub fn pNext(mut self, pNext : *const void) -> Self {
19198		self.pNext = pNext;
19199		self
19200	}
19201
19202	pub fn srcSet(mut self, srcSet : DescriptorSet) -> Self {
19203		self.srcSet = srcSet;
19204		self
19205	}
19206
19207	pub fn srcBinding(mut self, srcBinding : u32) -> Self {
19208		self.srcBinding = srcBinding;
19209		self
19210	}
19211
19212	pub fn srcArrayElement(mut self, srcArrayElement : u32) -> Self {
19213		self.srcArrayElement = srcArrayElement;
19214		self
19215	}
19216
19217	pub fn dstSet(mut self, dstSet : DescriptorSet) -> Self {
19218		self.dstSet = dstSet;
19219		self
19220	}
19221
19222	pub fn dstBinding(mut self, dstBinding : u32) -> Self {
19223		self.dstBinding = dstBinding;
19224		self
19225	}
19226
19227	pub fn dstArrayElement(mut self, dstArrayElement : u32) -> Self {
19228		self.dstArrayElement = dstArrayElement;
19229		self
19230	}
19231
19232	pub fn descriptorCount(mut self, descriptorCount : u32) -> Self {
19233		self.descriptorCount = descriptorCount;
19234		self
19235	}
19236
19237}
19238
19239impl FramebufferCreateInfo {
19240
19241	pub fn new() -> Self {
19242		 Self::default()
19243	}
19244
19245	pub fn sType(mut self, sType : StructureType) -> Self {
19246		self.sType = sType;
19247		self
19248	}
19249
19250	pub fn pNext(mut self, pNext : *const void) -> Self {
19251		self.pNext = pNext;
19252		self
19253	}
19254
19255	pub fn flags(mut self, flags : FramebufferCreateFlags) -> Self {
19256		self.flags = flags;
19257		self
19258	}
19259
19260	pub fn renderPass(mut self, renderPass : RenderPass) -> Self {
19261		self.renderPass = renderPass;
19262		self
19263	}
19264
19265	pub fn attachmentCount(mut self, attachmentCount : u32) -> Self {
19266		self.attachmentCount = attachmentCount;
19267		self
19268	}
19269
19270	pub fn pAttachments(mut self, pAttachments : *const ImageView) -> Self {
19271		self.pAttachments = pAttachments;
19272		self
19273	}
19274
19275	pub fn width(mut self, width : u32) -> Self {
19276		self.width = width;
19277		self
19278	}
19279
19280	pub fn height(mut self, height : u32) -> Self {
19281		self.height = height;
19282		self
19283	}
19284
19285	pub fn layers(mut self, layers : u32) -> Self {
19286		self.layers = layers;
19287		self
19288	}
19289
19290}
19291
19292impl AttachmentDescription {
19293
19294	pub fn new() -> Self {
19295		 Self::default()
19296	}
19297
19298	pub fn flags(mut self, flags : AttachmentDescriptionFlags) -> Self {
19299		self.flags = flags;
19300		self
19301	}
19302
19303	pub fn format(mut self, format : Format) -> Self {
19304		self.format = format;
19305		self
19306	}
19307
19308	pub fn samples(mut self, samples : SampleCountFlagBits) -> Self {
19309		self.samples = samples;
19310		self
19311	}
19312
19313	pub fn loadOp(mut self, loadOp : AttachmentLoadOp) -> Self {
19314		self.loadOp = loadOp;
19315		self
19316	}
19317
19318	pub fn storeOp(mut self, storeOp : AttachmentStoreOp) -> Self {
19319		self.storeOp = storeOp;
19320		self
19321	}
19322
19323	pub fn stencilLoadOp(mut self, stencilLoadOp : AttachmentLoadOp) -> Self {
19324		self.stencilLoadOp = stencilLoadOp;
19325		self
19326	}
19327
19328	pub fn stencilStoreOp(mut self, stencilStoreOp : AttachmentStoreOp) -> Self {
19329		self.stencilStoreOp = stencilStoreOp;
19330		self
19331	}
19332
19333	pub fn initialLayout(mut self, initialLayout : ImageLayout) -> Self {
19334		self.initialLayout = initialLayout;
19335		self
19336	}
19337
19338	pub fn finalLayout(mut self, finalLayout : ImageLayout) -> Self {
19339		self.finalLayout = finalLayout;
19340		self
19341	}
19342
19343}
19344
19345impl AttachmentReference {
19346
19347	pub fn new() -> Self {
19348		 Self::default()
19349	}
19350
19351	pub fn attachment(mut self, attachment : u32) -> Self {
19352		self.attachment = attachment;
19353		self
19354	}
19355
19356	pub fn layout(mut self, layout : ImageLayout) -> Self {
19357		self.layout = layout;
19358		self
19359	}
19360
19361}
19362
19363impl SubpassDescription {
19364
19365	pub fn new() -> Self {
19366		 Self::default()
19367	}
19368
19369	pub fn flags(mut self, flags : SubpassDescriptionFlags) -> Self {
19370		self.flags = flags;
19371		self
19372	}
19373
19374	pub fn pipelineBindPoint(mut self, pipelineBindPoint : PipelineBindPoint) -> Self {
19375		self.pipelineBindPoint = pipelineBindPoint;
19376		self
19377	}
19378
19379	pub fn inputAttachmentCount(mut self, inputAttachmentCount : u32) -> Self {
19380		self.inputAttachmentCount = inputAttachmentCount;
19381		self
19382	}
19383
19384	pub fn pInputAttachments(mut self, pInputAttachments : *const AttachmentReference) -> Self {
19385		self.pInputAttachments = pInputAttachments;
19386		self
19387	}
19388
19389	pub fn colorAttachmentCount(mut self, colorAttachmentCount : u32) -> Self {
19390		self.colorAttachmentCount = colorAttachmentCount;
19391		self
19392	}
19393
19394	pub fn pColorAttachments(mut self, pColorAttachments : *const AttachmentReference) -> Self {
19395		self.pColorAttachments = pColorAttachments;
19396		self
19397	}
19398
19399	pub fn pResolveAttachments(mut self, pResolveAttachments : *const AttachmentReference) -> Self {
19400		self.pResolveAttachments = pResolveAttachments;
19401		self
19402	}
19403
19404	pub fn pDepthStencilAttachment(mut self, pDepthStencilAttachment : *const AttachmentReference) -> Self {
19405		self.pDepthStencilAttachment = pDepthStencilAttachment;
19406		self
19407	}
19408
19409	pub fn preserveAttachmentCount(mut self, preserveAttachmentCount : u32) -> Self {
19410		self.preserveAttachmentCount = preserveAttachmentCount;
19411		self
19412	}
19413
19414	pub fn pPreserveAttachments(mut self, pPreserveAttachments : *const u32) -> Self {
19415		self.pPreserveAttachments = pPreserveAttachments;
19416		self
19417	}
19418
19419}
19420
19421impl SubpassDependency {
19422
19423	pub fn new() -> Self {
19424		 Self::default()
19425	}
19426
19427	pub fn srcSubpass(mut self, srcSubpass : u32) -> Self {
19428		self.srcSubpass = srcSubpass;
19429		self
19430	}
19431
19432	pub fn dstSubpass(mut self, dstSubpass : u32) -> Self {
19433		self.dstSubpass = dstSubpass;
19434		self
19435	}
19436
19437	pub fn srcStageMask(mut self, srcStageMask : PipelineStageFlags) -> Self {
19438		self.srcStageMask = srcStageMask;
19439		self
19440	}
19441
19442	pub fn dstStageMask(mut self, dstStageMask : PipelineStageFlags) -> Self {
19443		self.dstStageMask = dstStageMask;
19444		self
19445	}
19446
19447	pub fn srcAccessMask(mut self, srcAccessMask : AccessFlags) -> Self {
19448		self.srcAccessMask = srcAccessMask;
19449		self
19450	}
19451
19452	pub fn dstAccessMask(mut self, dstAccessMask : AccessFlags) -> Self {
19453		self.dstAccessMask = dstAccessMask;
19454		self
19455	}
19456
19457	pub fn dependencyFlags(mut self, dependencyFlags : DependencyFlags) -> Self {
19458		self.dependencyFlags = dependencyFlags;
19459		self
19460	}
19461
19462}
19463
19464impl RenderPassCreateInfo {
19465
19466	pub fn new() -> Self {
19467		 Self::default()
19468	}
19469
19470	pub fn sType(mut self, sType : StructureType) -> Self {
19471		self.sType = sType;
19472		self
19473	}
19474
19475	pub fn pNext(mut self, pNext : *const void) -> Self {
19476		self.pNext = pNext;
19477		self
19478	}
19479
19480	pub fn flags(mut self, flags : RenderPassCreateFlags) -> Self {
19481		self.flags = flags;
19482		self
19483	}
19484
19485	pub fn attachmentCount(mut self, attachmentCount : u32) -> Self {
19486		self.attachmentCount = attachmentCount;
19487		self
19488	}
19489
19490	pub fn pAttachments(mut self, pAttachments : *const AttachmentDescription) -> Self {
19491		self.pAttachments = pAttachments;
19492		self
19493	}
19494
19495	pub fn subpassCount(mut self, subpassCount : u32) -> Self {
19496		self.subpassCount = subpassCount;
19497		self
19498	}
19499
19500	pub fn pSubpasses(mut self, pSubpasses : *const SubpassDescription) -> Self {
19501		self.pSubpasses = pSubpasses;
19502		self
19503	}
19504
19505	pub fn dependencyCount(mut self, dependencyCount : u32) -> Self {
19506		self.dependencyCount = dependencyCount;
19507		self
19508	}
19509
19510	pub fn pDependencies(mut self, pDependencies : *const SubpassDependency) -> Self {
19511		self.pDependencies = pDependencies;
19512		self
19513	}
19514
19515}
19516
19517impl CommandPoolCreateInfo {
19518
19519	pub fn new() -> Self {
19520		 Self::default()
19521	}
19522
19523	pub fn sType(mut self, sType : StructureType) -> Self {
19524		self.sType = sType;
19525		self
19526	}
19527
19528	pub fn pNext(mut self, pNext : *const void) -> Self {
19529		self.pNext = pNext;
19530		self
19531	}
19532
19533	pub fn flags(mut self, flags : CommandPoolCreateFlags) -> Self {
19534		self.flags = flags;
19535		self
19536	}
19537
19538	pub fn queueFamilyIndex(mut self, queueFamilyIndex : u32) -> Self {
19539		self.queueFamilyIndex = queueFamilyIndex;
19540		self
19541	}
19542
19543}
19544
19545impl CommandBufferAllocateInfo {
19546
19547	pub fn new() -> Self {
19548		 Self::default()
19549	}
19550
19551	pub fn sType(mut self, sType : StructureType) -> Self {
19552		self.sType = sType;
19553		self
19554	}
19555
19556	pub fn pNext(mut self, pNext : *const void) -> Self {
19557		self.pNext = pNext;
19558		self
19559	}
19560
19561	pub fn commandPool(mut self, commandPool : CommandPool) -> Self {
19562		self.commandPool = commandPool;
19563		self
19564	}
19565
19566	pub fn level(mut self, level : CommandBufferLevel) -> Self {
19567		self.level = level;
19568		self
19569	}
19570
19571	pub fn commandBufferCount(mut self, commandBufferCount : u32) -> Self {
19572		self.commandBufferCount = commandBufferCount;
19573		self
19574	}
19575
19576}
19577
19578impl CommandBufferInheritanceInfo {
19579
19580	pub fn new() -> Self {
19581		 Self::default()
19582	}
19583
19584	pub fn sType(mut self, sType : StructureType) -> Self {
19585		self.sType = sType;
19586		self
19587	}
19588
19589	pub fn pNext(mut self, pNext : *const void) -> Self {
19590		self.pNext = pNext;
19591		self
19592	}
19593
19594	pub fn renderPass(mut self, renderPass : RenderPass) -> Self {
19595		self.renderPass = renderPass;
19596		self
19597	}
19598
19599	pub fn subpass(mut self, subpass : u32) -> Self {
19600		self.subpass = subpass;
19601		self
19602	}
19603
19604	pub fn framebuffer(mut self, framebuffer : Framebuffer) -> Self {
19605		self.framebuffer = framebuffer;
19606		self
19607	}
19608
19609	pub fn occlusionQueryEnable(mut self, occlusionQueryEnable : Bool32) -> Self {
19610		self.occlusionQueryEnable = occlusionQueryEnable;
19611		self
19612	}
19613
19614	pub fn queryFlags(mut self, queryFlags : QueryControlFlags) -> Self {
19615		self.queryFlags = queryFlags;
19616		self
19617	}
19618
19619	pub fn pipelineStatistics(mut self, pipelineStatistics : QueryPipelineStatisticFlags) -> Self {
19620		self.pipelineStatistics = pipelineStatistics;
19621		self
19622	}
19623
19624}
19625
19626impl CommandBufferBeginInfo {
19627
19628	pub fn new() -> Self {
19629		 Self::default()
19630	}
19631
19632	pub fn sType(mut self, sType : StructureType) -> Self {
19633		self.sType = sType;
19634		self
19635	}
19636
19637	pub fn pNext(mut self, pNext : *const void) -> Self {
19638		self.pNext = pNext;
19639		self
19640	}
19641
19642	pub fn flags(mut self, flags : CommandBufferUsageFlags) -> Self {
19643		self.flags = flags;
19644		self
19645	}
19646
19647	pub fn pInheritanceInfo(mut self, pInheritanceInfo : *const CommandBufferInheritanceInfo) -> Self {
19648		self.pInheritanceInfo = pInheritanceInfo;
19649		self
19650	}
19651
19652}
19653
19654impl BufferCopy {
19655
19656	pub fn new() -> Self {
19657		 Self::default()
19658	}
19659
19660	pub fn srcOffset(mut self, srcOffset : DeviceSize) -> Self {
19661		self.srcOffset = srcOffset;
19662		self
19663	}
19664
19665	pub fn dstOffset(mut self, dstOffset : DeviceSize) -> Self {
19666		self.dstOffset = dstOffset;
19667		self
19668	}
19669
19670	pub fn size(mut self, size : DeviceSize) -> Self {
19671		self.size = size;
19672		self
19673	}
19674
19675}
19676
19677impl ImageSubresourceLayers {
19678
19679	pub fn new() -> Self {
19680		 Self::default()
19681	}
19682
19683	pub fn aspectMask(mut self, aspectMask : ImageAspectFlags) -> Self {
19684		self.aspectMask = aspectMask;
19685		self
19686	}
19687
19688	pub fn mipLevel(mut self, mipLevel : u32) -> Self {
19689		self.mipLevel = mipLevel;
19690		self
19691	}
19692
19693	pub fn baseArrayLayer(mut self, baseArrayLayer : u32) -> Self {
19694		self.baseArrayLayer = baseArrayLayer;
19695		self
19696	}
19697
19698	pub fn layerCount(mut self, layerCount : u32) -> Self {
19699		self.layerCount = layerCount;
19700		self
19701	}
19702
19703}
19704
19705impl ImageCopy {
19706
19707	pub fn new() -> Self {
19708		 Self::default()
19709	}
19710
19711	pub fn srcSubresource(mut self, srcSubresource : ImageSubresourceLayers) -> Self {
19712		self.srcSubresource = srcSubresource;
19713		self
19714	}
19715
19716	pub fn srcOffset(mut self, srcOffset : Offset3D) -> Self {
19717		self.srcOffset = srcOffset;
19718		self
19719	}
19720
19721	pub fn dstSubresource(mut self, dstSubresource : ImageSubresourceLayers) -> Self {
19722		self.dstSubresource = dstSubresource;
19723		self
19724	}
19725
19726	pub fn dstOffset(mut self, dstOffset : Offset3D) -> Self {
19727		self.dstOffset = dstOffset;
19728		self
19729	}
19730
19731	pub fn extent(mut self, extent : Extent3D) -> Self {
19732		self.extent = extent;
19733		self
19734	}
19735
19736}
19737
19738impl ImageBlit {
19739
19740	pub fn new() -> Self {
19741		 Self::default()
19742	}
19743
19744	pub fn srcSubresource(mut self, srcSubresource : ImageSubresourceLayers) -> Self {
19745		self.srcSubresource = srcSubresource;
19746		self
19747	}
19748
19749	pub fn srcOffsets(mut self, srcOffsets : [Offset3D;2]) -> Self {
19750		self.srcOffsets = srcOffsets;
19751		self
19752	}
19753
19754	pub fn dstSubresource(mut self, dstSubresource : ImageSubresourceLayers) -> Self {
19755		self.dstSubresource = dstSubresource;
19756		self
19757	}
19758
19759	pub fn dstOffsets(mut self, dstOffsets : [Offset3D;2]) -> Self {
19760		self.dstOffsets = dstOffsets;
19761		self
19762	}
19763
19764}
19765
19766impl BufferImageCopy {
19767
19768	pub fn new() -> Self {
19769		 Self::default()
19770	}
19771
19772	pub fn bufferOffset(mut self, bufferOffset : DeviceSize) -> Self {
19773		self.bufferOffset = bufferOffset;
19774		self
19775	}
19776
19777	pub fn bufferRowLength(mut self, bufferRowLength : u32) -> Self {
19778		self.bufferRowLength = bufferRowLength;
19779		self
19780	}
19781
19782	pub fn bufferImageHeight(mut self, bufferImageHeight : u32) -> Self {
19783		self.bufferImageHeight = bufferImageHeight;
19784		self
19785	}
19786
19787	pub fn imageSubresource(mut self, imageSubresource : ImageSubresourceLayers) -> Self {
19788		self.imageSubresource = imageSubresource;
19789		self
19790	}
19791
19792	pub fn imageOffset(mut self, imageOffset : Offset3D) -> Self {
19793		self.imageOffset = imageOffset;
19794		self
19795	}
19796
19797	pub fn imageExtent(mut self, imageExtent : Extent3D) -> Self {
19798		self.imageExtent = imageExtent;
19799		self
19800	}
19801
19802}
19803
19804impl ClearColorValue {
19805
19806	pub fn new() -> Self {
19807		 Self::default()
19808	}
19809
19810	pub fn float32(mut self, float32 : [f32;4]) -> Self {
19811		self.float32 = float32;
19812		self
19813	}
19814
19815}
19816
19817impl ClearDepthStencilValue {
19818
19819	pub fn new() -> Self {
19820		 Self::default()
19821	}
19822
19823	pub fn depth(mut self, depth : f32) -> Self {
19824		self.depth = depth;
19825		self
19826	}
19827
19828	pub fn stencil(mut self, stencil : u32) -> Self {
19829		self.stencil = stencil;
19830		self
19831	}
19832
19833}
19834
19835impl ClearValue {
19836
19837	pub fn new() -> Self {
19838		 Self::default()
19839	}
19840
19841	pub fn color(mut self, color : [f32;4]) -> Self {
19842		self.color = color;
19843		self
19844	}
19845
19846}
19847
19848impl ClearAttachment {
19849
19850	pub fn new() -> Self {
19851		 Self::default()
19852	}
19853
19854	pub fn aspectMask(mut self, aspectMask : ImageAspectFlags) -> Self {
19855		self.aspectMask = aspectMask;
19856		self
19857	}
19858
19859	pub fn colorAttachment(mut self, colorAttachment : u32) -> Self {
19860		self.colorAttachment = colorAttachment;
19861		self
19862	}
19863
19864	pub fn clearValue(mut self, clearValue : ClearValue) -> Self {
19865		self.clearValue = clearValue;
19866		self
19867	}
19868
19869}
19870
19871impl ClearRect {
19872
19873	pub fn new() -> Self {
19874		 Self::default()
19875	}
19876
19877	pub fn rect(mut self, rect : Rect2D) -> Self {
19878		self.rect = rect;
19879		self
19880	}
19881
19882	pub fn baseArrayLayer(mut self, baseArrayLayer : u32) -> Self {
19883		self.baseArrayLayer = baseArrayLayer;
19884		self
19885	}
19886
19887	pub fn layerCount(mut self, layerCount : u32) -> Self {
19888		self.layerCount = layerCount;
19889		self
19890	}
19891
19892}
19893
19894impl ImageResolve {
19895
19896	pub fn new() -> Self {
19897		 Self::default()
19898	}
19899
19900	pub fn srcSubresource(mut self, srcSubresource : ImageSubresourceLayers) -> Self {
19901		self.srcSubresource = srcSubresource;
19902		self
19903	}
19904
19905	pub fn srcOffset(mut self, srcOffset : Offset3D) -> Self {
19906		self.srcOffset = srcOffset;
19907		self
19908	}
19909
19910	pub fn dstSubresource(mut self, dstSubresource : ImageSubresourceLayers) -> Self {
19911		self.dstSubresource = dstSubresource;
19912		self
19913	}
19914
19915	pub fn dstOffset(mut self, dstOffset : Offset3D) -> Self {
19916		self.dstOffset = dstOffset;
19917		self
19918	}
19919
19920	pub fn extent(mut self, extent : Extent3D) -> Self {
19921		self.extent = extent;
19922		self
19923	}
19924
19925}
19926
19927impl MemoryBarrier {
19928
19929	pub fn new() -> Self {
19930		 Self::default()
19931	}
19932
19933	pub fn sType(mut self, sType : StructureType) -> Self {
19934		self.sType = sType;
19935		self
19936	}
19937
19938	pub fn pNext(mut self, pNext : *const void) -> Self {
19939		self.pNext = pNext;
19940		self
19941	}
19942
19943	pub fn srcAccessMask(mut self, srcAccessMask : AccessFlags) -> Self {
19944		self.srcAccessMask = srcAccessMask;
19945		self
19946	}
19947
19948	pub fn dstAccessMask(mut self, dstAccessMask : AccessFlags) -> Self {
19949		self.dstAccessMask = dstAccessMask;
19950		self
19951	}
19952
19953}
19954
19955impl BufferMemoryBarrier {
19956
19957	pub fn new() -> Self {
19958		 Self::default()
19959	}
19960
19961	pub fn sType(mut self, sType : StructureType) -> Self {
19962		self.sType = sType;
19963		self
19964	}
19965
19966	pub fn pNext(mut self, pNext : *const void) -> Self {
19967		self.pNext = pNext;
19968		self
19969	}
19970
19971	pub fn srcAccessMask(mut self, srcAccessMask : AccessFlags) -> Self {
19972		self.srcAccessMask = srcAccessMask;
19973		self
19974	}
19975
19976	pub fn dstAccessMask(mut self, dstAccessMask : AccessFlags) -> Self {
19977		self.dstAccessMask = dstAccessMask;
19978		self
19979	}
19980
19981	pub fn srcQueueFamilyIndex(mut self, srcQueueFamilyIndex : u32) -> Self {
19982		self.srcQueueFamilyIndex = srcQueueFamilyIndex;
19983		self
19984	}
19985
19986	pub fn dstQueueFamilyIndex(mut self, dstQueueFamilyIndex : u32) -> Self {
19987		self.dstQueueFamilyIndex = dstQueueFamilyIndex;
19988		self
19989	}
19990
19991	pub fn buffer(mut self, buffer : Buffer) -> Self {
19992		self.buffer = buffer;
19993		self
19994	}
19995
19996	pub fn offset(mut self, offset : DeviceSize) -> Self {
19997		self.offset = offset;
19998		self
19999	}
20000
20001	pub fn size(mut self, size : DeviceSize) -> Self {
20002		self.size = size;
20003		self
20004	}
20005
20006}
20007
20008impl ImageMemoryBarrier {
20009
20010	pub fn new() -> Self {
20011		 Self::default()
20012	}
20013
20014	pub fn sType(mut self, sType : StructureType) -> Self {
20015		self.sType = sType;
20016		self
20017	}
20018
20019	pub fn pNext(mut self, pNext : *const void) -> Self {
20020		self.pNext = pNext;
20021		self
20022	}
20023
20024	pub fn srcAccessMask(mut self, srcAccessMask : AccessFlags) -> Self {
20025		self.srcAccessMask = srcAccessMask;
20026		self
20027	}
20028
20029	pub fn dstAccessMask(mut self, dstAccessMask : AccessFlags) -> Self {
20030		self.dstAccessMask = dstAccessMask;
20031		self
20032	}
20033
20034	pub fn oldLayout(mut self, oldLayout : ImageLayout) -> Self {
20035		self.oldLayout = oldLayout;
20036		self
20037	}
20038
20039	pub fn newLayout(mut self, newLayout : ImageLayout) -> Self {
20040		self.newLayout = newLayout;
20041		self
20042	}
20043
20044	pub fn srcQueueFamilyIndex(mut self, srcQueueFamilyIndex : u32) -> Self {
20045		self.srcQueueFamilyIndex = srcQueueFamilyIndex;
20046		self
20047	}
20048
20049	pub fn dstQueueFamilyIndex(mut self, dstQueueFamilyIndex : u32) -> Self {
20050		self.dstQueueFamilyIndex = dstQueueFamilyIndex;
20051		self
20052	}
20053
20054	pub fn image(mut self, image : Image) -> Self {
20055		self.image = image;
20056		self
20057	}
20058
20059	pub fn subresourceRange(mut self, subresourceRange : ImageSubresourceRange) -> Self {
20060		self.subresourceRange = subresourceRange;
20061		self
20062	}
20063
20064}
20065
20066impl RenderPassBeginInfo {
20067
20068	pub fn new() -> Self {
20069		 Self::default()
20070	}
20071
20072	pub fn sType(mut self, sType : StructureType) -> Self {
20073		self.sType = sType;
20074		self
20075	}
20076
20077	pub fn pNext(mut self, pNext : *const void) -> Self {
20078		self.pNext = pNext;
20079		self
20080	}
20081
20082	pub fn renderPass(mut self, renderPass : RenderPass) -> Self {
20083		self.renderPass = renderPass;
20084		self
20085	}
20086
20087	pub fn framebuffer(mut self, framebuffer : Framebuffer) -> Self {
20088		self.framebuffer = framebuffer;
20089		self
20090	}
20091
20092	pub fn renderArea(mut self, renderArea : Rect2D) -> Self {
20093		self.renderArea = renderArea;
20094		self
20095	}
20096
20097	pub fn clearValueCount(mut self, clearValueCount : u32) -> Self {
20098		self.clearValueCount = clearValueCount;
20099		self
20100	}
20101
20102	pub fn pClearValues(mut self, pClearValues : *const ClearValue) -> Self {
20103		self.pClearValues = pClearValues;
20104		self
20105	}
20106
20107}
20108
20109impl DispatchIndirectCommand {
20110
20111	pub fn new() -> Self {
20112		 Self::default()
20113	}
20114
20115	pub fn x(mut self, x : u32) -> Self {
20116		self.x = x;
20117		self
20118	}
20119
20120	pub fn y(mut self, y : u32) -> Self {
20121		self.y = y;
20122		self
20123	}
20124
20125	pub fn z(mut self, z : u32) -> Self {
20126		self.z = z;
20127		self
20128	}
20129
20130}
20131
20132impl DrawIndexedIndirectCommand {
20133
20134	pub fn new() -> Self {
20135		 Self::default()
20136	}
20137
20138	pub fn indexCount(mut self, indexCount : u32) -> Self {
20139		self.indexCount = indexCount;
20140		self
20141	}
20142
20143	pub fn instanceCount(mut self, instanceCount : u32) -> Self {
20144		self.instanceCount = instanceCount;
20145		self
20146	}
20147
20148	pub fn firstIndex(mut self, firstIndex : u32) -> Self {
20149		self.firstIndex = firstIndex;
20150		self
20151	}
20152
20153	pub fn vertexOffset(mut self, vertexOffset : i32) -> Self {
20154		self.vertexOffset = vertexOffset;
20155		self
20156	}
20157
20158	pub fn firstInstance(mut self, firstInstance : u32) -> Self {
20159		self.firstInstance = firstInstance;
20160		self
20161	}
20162
20163}
20164
20165impl DrawIndirectCommand {
20166
20167	pub fn new() -> Self {
20168		 Self::default()
20169	}
20170
20171	pub fn vertexCount(mut self, vertexCount : u32) -> Self {
20172		self.vertexCount = vertexCount;
20173		self
20174	}
20175
20176	pub fn instanceCount(mut self, instanceCount : u32) -> Self {
20177		self.instanceCount = instanceCount;
20178		self
20179	}
20180
20181	pub fn firstVertex(mut self, firstVertex : u32) -> Self {
20182		self.firstVertex = firstVertex;
20183		self
20184	}
20185
20186	pub fn firstInstance(mut self, firstInstance : u32) -> Self {
20187		self.firstInstance = firstInstance;
20188		self
20189	}
20190
20191}
20192
20193impl PhysicalDeviceSubgroupProperties {
20194
20195	pub fn new() -> Self {
20196		 Self::default()
20197	}
20198
20199	pub fn sType(mut self, sType : StructureType) -> Self {
20200		self.sType = sType;
20201		self
20202	}
20203
20204	pub fn pNext(mut self, pNext : *mut void) -> Self {
20205		self.pNext = pNext;
20206		self
20207	}
20208
20209	pub fn subgroupSize(mut self, subgroupSize : u32) -> Self {
20210		self.subgroupSize = subgroupSize;
20211		self
20212	}
20213
20214	pub fn supportedStages(mut self, supportedStages : ShaderStageFlags) -> Self {
20215		self.supportedStages = supportedStages;
20216		self
20217	}
20218
20219	pub fn supportedOperations(mut self, supportedOperations : SubgroupFeatureFlags) -> Self {
20220		self.supportedOperations = supportedOperations;
20221		self
20222	}
20223
20224	pub fn quadOperationsInAllStages(mut self, quadOperationsInAllStages : Bool32) -> Self {
20225		self.quadOperationsInAllStages = quadOperationsInAllStages;
20226		self
20227	}
20228
20229}
20230
20231impl BindBufferMemoryInfo {
20232
20233	pub fn new() -> Self {
20234		 Self::default()
20235	}
20236
20237	pub fn sType(mut self, sType : StructureType) -> Self {
20238		self.sType = sType;
20239		self
20240	}
20241
20242	pub fn pNext(mut self, pNext : *const void) -> Self {
20243		self.pNext = pNext;
20244		self
20245	}
20246
20247	pub fn buffer(mut self, buffer : Buffer) -> Self {
20248		self.buffer = buffer;
20249		self
20250	}
20251
20252	pub fn memory(mut self, memory : DeviceMemory) -> Self {
20253		self.memory = memory;
20254		self
20255	}
20256
20257	pub fn memoryOffset(mut self, memoryOffset : DeviceSize) -> Self {
20258		self.memoryOffset = memoryOffset;
20259		self
20260	}
20261
20262}
20263
20264impl BindImageMemoryInfo {
20265
20266	pub fn new() -> Self {
20267		 Self::default()
20268	}
20269
20270	pub fn sType(mut self, sType : StructureType) -> Self {
20271		self.sType = sType;
20272		self
20273	}
20274
20275	pub fn pNext(mut self, pNext : *const void) -> Self {
20276		self.pNext = pNext;
20277		self
20278	}
20279
20280	pub fn image(mut self, image : Image) -> Self {
20281		self.image = image;
20282		self
20283	}
20284
20285	pub fn memory(mut self, memory : DeviceMemory) -> Self {
20286		self.memory = memory;
20287		self
20288	}
20289
20290	pub fn memoryOffset(mut self, memoryOffset : DeviceSize) -> Self {
20291		self.memoryOffset = memoryOffset;
20292		self
20293	}
20294
20295}
20296
20297impl PhysicalDevice16BitStorageFeatures {
20298
20299	pub fn new() -> Self {
20300		 Self::default()
20301	}
20302
20303	pub fn sType(mut self, sType : StructureType) -> Self {
20304		self.sType = sType;
20305		self
20306	}
20307
20308	pub fn pNext(mut self, pNext : *mut void) -> Self {
20309		self.pNext = pNext;
20310		self
20311	}
20312
20313	pub fn storageBuffer16BitAccess(mut self, storageBuffer16BitAccess : Bool32) -> Self {
20314		self.storageBuffer16BitAccess = storageBuffer16BitAccess;
20315		self
20316	}
20317
20318	pub fn uniformAndStorageBuffer16BitAccess(mut self, uniformAndStorageBuffer16BitAccess : Bool32) -> Self {
20319		self.uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess;
20320		self
20321	}
20322
20323	pub fn storagePushConstant16(mut self, storagePushConstant16 : Bool32) -> Self {
20324		self.storagePushConstant16 = storagePushConstant16;
20325		self
20326	}
20327
20328	pub fn storageInputOutput16(mut self, storageInputOutput16 : Bool32) -> Self {
20329		self.storageInputOutput16 = storageInputOutput16;
20330		self
20331	}
20332
20333}
20334
20335impl MemoryDedicatedRequirements {
20336
20337	pub fn new() -> Self {
20338		 Self::default()
20339	}
20340
20341	pub fn sType(mut self, sType : StructureType) -> Self {
20342		self.sType = sType;
20343		self
20344	}
20345
20346	pub fn pNext(mut self, pNext : *mut void) -> Self {
20347		self.pNext = pNext;
20348		self
20349	}
20350
20351	pub fn prefersDedicatedAllocation(mut self, prefersDedicatedAllocation : Bool32) -> Self {
20352		self.prefersDedicatedAllocation = prefersDedicatedAllocation;
20353		self
20354	}
20355
20356	pub fn requiresDedicatedAllocation(mut self, requiresDedicatedAllocation : Bool32) -> Self {
20357		self.requiresDedicatedAllocation = requiresDedicatedAllocation;
20358		self
20359	}
20360
20361}
20362
20363impl MemoryDedicatedAllocateInfo {
20364
20365	pub fn new() -> Self {
20366		 Self::default()
20367	}
20368
20369	pub fn sType(mut self, sType : StructureType) -> Self {
20370		self.sType = sType;
20371		self
20372	}
20373
20374	pub fn pNext(mut self, pNext : *const void) -> Self {
20375		self.pNext = pNext;
20376		self
20377	}
20378
20379	pub fn image(mut self, image : Image) -> Self {
20380		self.image = image;
20381		self
20382	}
20383
20384	pub fn buffer(mut self, buffer : Buffer) -> Self {
20385		self.buffer = buffer;
20386		self
20387	}
20388
20389}
20390
20391impl MemoryAllocateFlagsInfo {
20392
20393	pub fn new() -> Self {
20394		 Self::default()
20395	}
20396
20397	pub fn sType(mut self, sType : StructureType) -> Self {
20398		self.sType = sType;
20399		self
20400	}
20401
20402	pub fn pNext(mut self, pNext : *const void) -> Self {
20403		self.pNext = pNext;
20404		self
20405	}
20406
20407	pub fn flags(mut self, flags : MemoryAllocateFlags) -> Self {
20408		self.flags = flags;
20409		self
20410	}
20411
20412	pub fn deviceMask(mut self, deviceMask : u32) -> Self {
20413		self.deviceMask = deviceMask;
20414		self
20415	}
20416
20417}
20418
20419impl DeviceGroupRenderPassBeginInfo {
20420
20421	pub fn new() -> Self {
20422		 Self::default()
20423	}
20424
20425	pub fn sType(mut self, sType : StructureType) -> Self {
20426		self.sType = sType;
20427		self
20428	}
20429
20430	pub fn pNext(mut self, pNext : *const void) -> Self {
20431		self.pNext = pNext;
20432		self
20433	}
20434
20435	pub fn deviceMask(mut self, deviceMask : u32) -> Self {
20436		self.deviceMask = deviceMask;
20437		self
20438	}
20439
20440	pub fn deviceRenderAreaCount(mut self, deviceRenderAreaCount : u32) -> Self {
20441		self.deviceRenderAreaCount = deviceRenderAreaCount;
20442		self
20443	}
20444
20445	pub fn pDeviceRenderAreas(mut self, pDeviceRenderAreas : *const Rect2D) -> Self {
20446		self.pDeviceRenderAreas = pDeviceRenderAreas;
20447		self
20448	}
20449
20450}
20451
20452impl DeviceGroupCommandBufferBeginInfo {
20453
20454	pub fn new() -> Self {
20455		 Self::default()
20456	}
20457
20458	pub fn sType(mut self, sType : StructureType) -> Self {
20459		self.sType = sType;
20460		self
20461	}
20462
20463	pub fn pNext(mut self, pNext : *const void) -> Self {
20464		self.pNext = pNext;
20465		self
20466	}
20467
20468	pub fn deviceMask(mut self, deviceMask : u32) -> Self {
20469		self.deviceMask = deviceMask;
20470		self
20471	}
20472
20473}
20474
20475impl DeviceGroupSubmitInfo {
20476
20477	pub fn new() -> Self {
20478		 Self::default()
20479	}
20480
20481	pub fn sType(mut self, sType : StructureType) -> Self {
20482		self.sType = sType;
20483		self
20484	}
20485
20486	pub fn pNext(mut self, pNext : *const void) -> Self {
20487		self.pNext = pNext;
20488		self
20489	}
20490
20491	pub fn waitSemaphoreCount(mut self, waitSemaphoreCount : u32) -> Self {
20492		self.waitSemaphoreCount = waitSemaphoreCount;
20493		self
20494	}
20495
20496	pub fn pWaitSemaphoreDeviceIndices(mut self, pWaitSemaphoreDeviceIndices : *const u32) -> Self {
20497		self.pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices;
20498		self
20499	}
20500
20501	pub fn commandBufferCount(mut self, commandBufferCount : u32) -> Self {
20502		self.commandBufferCount = commandBufferCount;
20503		self
20504	}
20505
20506	pub fn pCommandBufferDeviceMasks(mut self, pCommandBufferDeviceMasks : *const u32) -> Self {
20507		self.pCommandBufferDeviceMasks = pCommandBufferDeviceMasks;
20508		self
20509	}
20510
20511	pub fn signalSemaphoreCount(mut self, signalSemaphoreCount : u32) -> Self {
20512		self.signalSemaphoreCount = signalSemaphoreCount;
20513		self
20514	}
20515
20516	pub fn pSignalSemaphoreDeviceIndices(mut self, pSignalSemaphoreDeviceIndices : *const u32) -> Self {
20517		self.pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices;
20518		self
20519	}
20520
20521}
20522
20523impl DeviceGroupBindSparseInfo {
20524
20525	pub fn new() -> Self {
20526		 Self::default()
20527	}
20528
20529	pub fn sType(mut self, sType : StructureType) -> Self {
20530		self.sType = sType;
20531		self
20532	}
20533
20534	pub fn pNext(mut self, pNext : *const void) -> Self {
20535		self.pNext = pNext;
20536		self
20537	}
20538
20539	pub fn resourceDeviceIndex(mut self, resourceDeviceIndex : u32) -> Self {
20540		self.resourceDeviceIndex = resourceDeviceIndex;
20541		self
20542	}
20543
20544	pub fn memoryDeviceIndex(mut self, memoryDeviceIndex : u32) -> Self {
20545		self.memoryDeviceIndex = memoryDeviceIndex;
20546		self
20547	}
20548
20549}
20550
20551impl BindBufferMemoryDeviceGroupInfo {
20552
20553	pub fn new() -> Self {
20554		 Self::default()
20555	}
20556
20557	pub fn sType(mut self, sType : StructureType) -> Self {
20558		self.sType = sType;
20559		self
20560	}
20561
20562	pub fn pNext(mut self, pNext : *const void) -> Self {
20563		self.pNext = pNext;
20564		self
20565	}
20566
20567	pub fn deviceIndexCount(mut self, deviceIndexCount : u32) -> Self {
20568		self.deviceIndexCount = deviceIndexCount;
20569		self
20570	}
20571
20572	pub fn pDeviceIndices(mut self, pDeviceIndices : *const u32) -> Self {
20573		self.pDeviceIndices = pDeviceIndices;
20574		self
20575	}
20576
20577}
20578
20579impl BindImageMemoryDeviceGroupInfo {
20580
20581	pub fn new() -> Self {
20582		 Self::default()
20583	}
20584
20585	pub fn sType(mut self, sType : StructureType) -> Self {
20586		self.sType = sType;
20587		self
20588	}
20589
20590	pub fn pNext(mut self, pNext : *const void) -> Self {
20591		self.pNext = pNext;
20592		self
20593	}
20594
20595	pub fn deviceIndexCount(mut self, deviceIndexCount : u32) -> Self {
20596		self.deviceIndexCount = deviceIndexCount;
20597		self
20598	}
20599
20600	pub fn pDeviceIndices(mut self, pDeviceIndices : *const u32) -> Self {
20601		self.pDeviceIndices = pDeviceIndices;
20602		self
20603	}
20604
20605	pub fn splitInstanceBindRegionCount(mut self, splitInstanceBindRegionCount : u32) -> Self {
20606		self.splitInstanceBindRegionCount = splitInstanceBindRegionCount;
20607		self
20608	}
20609
20610	pub fn pSplitInstanceBindRegions(mut self, pSplitInstanceBindRegions : *const Rect2D) -> Self {
20611		self.pSplitInstanceBindRegions = pSplitInstanceBindRegions;
20612		self
20613	}
20614
20615}
20616
20617impl PhysicalDeviceGroupProperties {
20618
20619	pub fn new() -> Self {
20620		 Self::default()
20621	}
20622
20623	pub fn sType(mut self, sType : StructureType) -> Self {
20624		self.sType = sType;
20625		self
20626	}
20627
20628	pub fn pNext(mut self, pNext : *mut void) -> Self {
20629		self.pNext = pNext;
20630		self
20631	}
20632
20633	pub fn physicalDeviceCount(mut self, physicalDeviceCount : u32) -> Self {
20634		self.physicalDeviceCount = physicalDeviceCount;
20635		self
20636	}
20637
20638	pub fn physicalDevices(mut self, physicalDevices : [PhysicalDevice;MAX_DEVICE_GROUP_SIZE]) -> Self {
20639		self.physicalDevices = physicalDevices;
20640		self
20641	}
20642
20643	pub fn subsetAllocation(mut self, subsetAllocation : Bool32) -> Self {
20644		self.subsetAllocation = subsetAllocation;
20645		self
20646	}
20647
20648}
20649
20650impl DeviceGroupDeviceCreateInfo {
20651
20652	pub fn new() -> Self {
20653		 Self::default()
20654	}
20655
20656	pub fn sType(mut self, sType : StructureType) -> Self {
20657		self.sType = sType;
20658		self
20659	}
20660
20661	pub fn pNext(mut self, pNext : *const void) -> Self {
20662		self.pNext = pNext;
20663		self
20664	}
20665
20666	pub fn physicalDeviceCount(mut self, physicalDeviceCount : u32) -> Self {
20667		self.physicalDeviceCount = physicalDeviceCount;
20668		self
20669	}
20670
20671	pub fn pPhysicalDevices(mut self, pPhysicalDevices : *const PhysicalDevice) -> Self {
20672		self.pPhysicalDevices = pPhysicalDevices;
20673		self
20674	}
20675
20676}
20677
20678impl BufferMemoryRequirementsInfo2 {
20679
20680	pub fn new() -> Self {
20681		 Self::default()
20682	}
20683
20684	pub fn sType(mut self, sType : StructureType) -> Self {
20685		self.sType = sType;
20686		self
20687	}
20688
20689	pub fn pNext(mut self, pNext : *const void) -> Self {
20690		self.pNext = pNext;
20691		self
20692	}
20693
20694	pub fn buffer(mut self, buffer : Buffer) -> Self {
20695		self.buffer = buffer;
20696		self
20697	}
20698
20699}
20700
20701impl ImageMemoryRequirementsInfo2 {
20702
20703	pub fn new() -> Self {
20704		 Self::default()
20705	}
20706
20707	pub fn sType(mut self, sType : StructureType) -> Self {
20708		self.sType = sType;
20709		self
20710	}
20711
20712	pub fn pNext(mut self, pNext : *const void) -> Self {
20713		self.pNext = pNext;
20714		self
20715	}
20716
20717	pub fn image(mut self, image : Image) -> Self {
20718		self.image = image;
20719		self
20720	}
20721
20722}
20723
20724impl ImageSparseMemoryRequirementsInfo2 {
20725
20726	pub fn new() -> Self {
20727		 Self::default()
20728	}
20729
20730	pub fn sType(mut self, sType : StructureType) -> Self {
20731		self.sType = sType;
20732		self
20733	}
20734
20735	pub fn pNext(mut self, pNext : *const void) -> Self {
20736		self.pNext = pNext;
20737		self
20738	}
20739
20740	pub fn image(mut self, image : Image) -> Self {
20741		self.image = image;
20742		self
20743	}
20744
20745}
20746
20747impl MemoryRequirements2 {
20748
20749	pub fn new() -> Self {
20750		 Self::default()
20751	}
20752
20753	pub fn sType(mut self, sType : StructureType) -> Self {
20754		self.sType = sType;
20755		self
20756	}
20757
20758	pub fn pNext(mut self, pNext : *mut void) -> Self {
20759		self.pNext = pNext;
20760		self
20761	}
20762
20763	pub fn memoryRequirements(mut self, memoryRequirements : MemoryRequirements) -> Self {
20764		self.memoryRequirements = memoryRequirements;
20765		self
20766	}
20767
20768}
20769
20770impl SparseImageMemoryRequirements2 {
20771
20772	pub fn new() -> Self {
20773		 Self::default()
20774	}
20775
20776	pub fn sType(mut self, sType : StructureType) -> Self {
20777		self.sType = sType;
20778		self
20779	}
20780
20781	pub fn pNext(mut self, pNext : *mut void) -> Self {
20782		self.pNext = pNext;
20783		self
20784	}
20785
20786	pub fn memoryRequirements(mut self, memoryRequirements : SparseImageMemoryRequirements) -> Self {
20787		self.memoryRequirements = memoryRequirements;
20788		self
20789	}
20790
20791}
20792
20793impl PhysicalDeviceFeatures2 {
20794
20795	pub fn new() -> Self {
20796		 Self::default()
20797	}
20798
20799	pub fn sType(mut self, sType : StructureType) -> Self {
20800		self.sType = sType;
20801		self
20802	}
20803
20804	pub fn pNext(mut self, pNext : *mut void) -> Self {
20805		self.pNext = pNext;
20806		self
20807	}
20808
20809	pub fn features(mut self, features : PhysicalDeviceFeatures) -> Self {
20810		self.features = features;
20811		self
20812	}
20813
20814}
20815
20816impl PhysicalDeviceProperties2 {
20817
20818	pub fn new() -> Self {
20819		 Self::default()
20820	}
20821
20822	pub fn sType(mut self, sType : StructureType) -> Self {
20823		self.sType = sType;
20824		self
20825	}
20826
20827	pub fn pNext(mut self, pNext : *mut void) -> Self {
20828		self.pNext = pNext;
20829		self
20830	}
20831
20832	pub fn properties(mut self, properties : PhysicalDeviceProperties) -> Self {
20833		self.properties = properties;
20834		self
20835	}
20836
20837}
20838
20839impl FormatProperties2 {
20840
20841	pub fn new() -> Self {
20842		 Self::default()
20843	}
20844
20845	pub fn sType(mut self, sType : StructureType) -> Self {
20846		self.sType = sType;
20847		self
20848	}
20849
20850	pub fn pNext(mut self, pNext : *mut void) -> Self {
20851		self.pNext = pNext;
20852		self
20853	}
20854
20855	pub fn formatProperties(mut self, formatProperties : FormatProperties) -> Self {
20856		self.formatProperties = formatProperties;
20857		self
20858	}
20859
20860}
20861
20862impl ImageFormatProperties2 {
20863
20864	pub fn new() -> Self {
20865		 Self::default()
20866	}
20867
20868	pub fn sType(mut self, sType : StructureType) -> Self {
20869		self.sType = sType;
20870		self
20871	}
20872
20873	pub fn pNext(mut self, pNext : *mut void) -> Self {
20874		self.pNext = pNext;
20875		self
20876	}
20877
20878	pub fn imageFormatProperties(mut self, imageFormatProperties : ImageFormatProperties) -> Self {
20879		self.imageFormatProperties = imageFormatProperties;
20880		self
20881	}
20882
20883}
20884
20885impl PhysicalDeviceImageFormatInfo2 {
20886
20887	pub fn new() -> Self {
20888		 Self::default()
20889	}
20890
20891	pub fn sType(mut self, sType : StructureType) -> Self {
20892		self.sType = sType;
20893		self
20894	}
20895
20896	pub fn pNext(mut self, pNext : *const void) -> Self {
20897		self.pNext = pNext;
20898		self
20899	}
20900
20901	pub fn format(mut self, format : Format) -> Self {
20902		self.format = format;
20903		self
20904	}
20905
20906	pub fn r#type(mut self, r#type : ImageType) -> Self {
20907		self.r#type = r#type;
20908		self
20909	}
20910
20911	pub fn tiling(mut self, tiling : ImageTiling) -> Self {
20912		self.tiling = tiling;
20913		self
20914	}
20915
20916	pub fn usage(mut self, usage : ImageUsageFlags) -> Self {
20917		self.usage = usage;
20918		self
20919	}
20920
20921	pub fn flags(mut self, flags : ImageCreateFlags) -> Self {
20922		self.flags = flags;
20923		self
20924	}
20925
20926}
20927
20928impl QueueFamilyProperties2 {
20929
20930	pub fn new() -> Self {
20931		 Self::default()
20932	}
20933
20934	pub fn sType(mut self, sType : StructureType) -> Self {
20935		self.sType = sType;
20936		self
20937	}
20938
20939	pub fn pNext(mut self, pNext : *mut void) -> Self {
20940		self.pNext = pNext;
20941		self
20942	}
20943
20944	pub fn queueFamilyProperties(mut self, queueFamilyProperties : QueueFamilyProperties) -> Self {
20945		self.queueFamilyProperties = queueFamilyProperties;
20946		self
20947	}
20948
20949}
20950
20951impl PhysicalDeviceMemoryProperties2 {
20952
20953	pub fn new() -> Self {
20954		 Self::default()
20955	}
20956
20957	pub fn sType(mut self, sType : StructureType) -> Self {
20958		self.sType = sType;
20959		self
20960	}
20961
20962	pub fn pNext(mut self, pNext : *mut void) -> Self {
20963		self.pNext = pNext;
20964		self
20965	}
20966
20967	pub fn memoryProperties(mut self, memoryProperties : PhysicalDeviceMemoryProperties) -> Self {
20968		self.memoryProperties = memoryProperties;
20969		self
20970	}
20971
20972}
20973
20974impl SparseImageFormatProperties2 {
20975
20976	pub fn new() -> Self {
20977		 Self::default()
20978	}
20979
20980	pub fn sType(mut self, sType : StructureType) -> Self {
20981		self.sType = sType;
20982		self
20983	}
20984
20985	pub fn pNext(mut self, pNext : *mut void) -> Self {
20986		self.pNext = pNext;
20987		self
20988	}
20989
20990	pub fn properties(mut self, properties : SparseImageFormatProperties) -> Self {
20991		self.properties = properties;
20992		self
20993	}
20994
20995}
20996
20997impl PhysicalDeviceSparseImageFormatInfo2 {
20998
20999	pub fn new() -> Self {
21000		 Self::default()
21001	}
21002
21003	pub fn sType(mut self, sType : StructureType) -> Self {
21004		self.sType = sType;
21005		self
21006	}
21007
21008	pub fn pNext(mut self, pNext : *const void) -> Self {
21009		self.pNext = pNext;
21010		self
21011	}
21012
21013	pub fn format(mut self, format : Format) -> Self {
21014		self.format = format;
21015		self
21016	}
21017
21018	pub fn r#type(mut self, r#type : ImageType) -> Self {
21019		self.r#type = r#type;
21020		self
21021	}
21022
21023	pub fn samples(mut self, samples : SampleCountFlagBits) -> Self {
21024		self.samples = samples;
21025		self
21026	}
21027
21028	pub fn usage(mut self, usage : ImageUsageFlags) -> Self {
21029		self.usage = usage;
21030		self
21031	}
21032
21033	pub fn tiling(mut self, tiling : ImageTiling) -> Self {
21034		self.tiling = tiling;
21035		self
21036	}
21037
21038}
21039
21040impl PhysicalDevicePointClippingProperties {
21041
21042	pub fn new() -> Self {
21043		 Self::default()
21044	}
21045
21046	pub fn sType(mut self, sType : StructureType) -> Self {
21047		self.sType = sType;
21048		self
21049	}
21050
21051	pub fn pNext(mut self, pNext : *mut void) -> Self {
21052		self.pNext = pNext;
21053		self
21054	}
21055
21056	pub fn pointClippingBehavior(mut self, pointClippingBehavior : PointClippingBehavior) -> Self {
21057		self.pointClippingBehavior = pointClippingBehavior;
21058		self
21059	}
21060
21061}
21062
21063impl InputAttachmentAspectReference {
21064
21065	pub fn new() -> Self {
21066		 Self::default()
21067	}
21068
21069	pub fn subpass(mut self, subpass : u32) -> Self {
21070		self.subpass = subpass;
21071		self
21072	}
21073
21074	pub fn inputAttachmentIndex(mut self, inputAttachmentIndex : u32) -> Self {
21075		self.inputAttachmentIndex = inputAttachmentIndex;
21076		self
21077	}
21078
21079	pub fn aspectMask(mut self, aspectMask : ImageAspectFlags) -> Self {
21080		self.aspectMask = aspectMask;
21081		self
21082	}
21083
21084}
21085
21086impl RenderPassInputAttachmentAspectCreateInfo {
21087
21088	pub fn new() -> Self {
21089		 Self::default()
21090	}
21091
21092	pub fn sType(mut self, sType : StructureType) -> Self {
21093		self.sType = sType;
21094		self
21095	}
21096
21097	pub fn pNext(mut self, pNext : *const void) -> Self {
21098		self.pNext = pNext;
21099		self
21100	}
21101
21102	pub fn aspectReferenceCount(mut self, aspectReferenceCount : u32) -> Self {
21103		self.aspectReferenceCount = aspectReferenceCount;
21104		self
21105	}
21106
21107	pub fn pAspectReferences(mut self, pAspectReferences : *const InputAttachmentAspectReference) -> Self {
21108		self.pAspectReferences = pAspectReferences;
21109		self
21110	}
21111
21112}
21113
21114impl ImageViewUsageCreateInfo {
21115
21116	pub fn new() -> Self {
21117		 Self::default()
21118	}
21119
21120	pub fn sType(mut self, sType : StructureType) -> Self {
21121		self.sType = sType;
21122		self
21123	}
21124
21125	pub fn pNext(mut self, pNext : *const void) -> Self {
21126		self.pNext = pNext;
21127		self
21128	}
21129
21130	pub fn usage(mut self, usage : ImageUsageFlags) -> Self {
21131		self.usage = usage;
21132		self
21133	}
21134
21135}
21136
21137impl PipelineTessellationDomainOriginStateCreateInfo {
21138
21139	pub fn new() -> Self {
21140		 Self::default()
21141	}
21142
21143	pub fn sType(mut self, sType : StructureType) -> Self {
21144		self.sType = sType;
21145		self
21146	}
21147
21148	pub fn pNext(mut self, pNext : *const void) -> Self {
21149		self.pNext = pNext;
21150		self
21151	}
21152
21153	pub fn domainOrigin(mut self, domainOrigin : TessellationDomainOrigin) -> Self {
21154		self.domainOrigin = domainOrigin;
21155		self
21156	}
21157
21158}
21159
21160impl RenderPassMultiviewCreateInfo {
21161
21162	pub fn new() -> Self {
21163		 Self::default()
21164	}
21165
21166	pub fn sType(mut self, sType : StructureType) -> Self {
21167		self.sType = sType;
21168		self
21169	}
21170
21171	pub fn pNext(mut self, pNext : *const void) -> Self {
21172		self.pNext = pNext;
21173		self
21174	}
21175
21176	pub fn subpassCount(mut self, subpassCount : u32) -> Self {
21177		self.subpassCount = subpassCount;
21178		self
21179	}
21180
21181	pub fn pViewMasks(mut self, pViewMasks : *const u32) -> Self {
21182		self.pViewMasks = pViewMasks;
21183		self
21184	}
21185
21186	pub fn dependencyCount(mut self, dependencyCount : u32) -> Self {
21187		self.dependencyCount = dependencyCount;
21188		self
21189	}
21190
21191	pub fn pViewOffsets(mut self, pViewOffsets : *const i32) -> Self {
21192		self.pViewOffsets = pViewOffsets;
21193		self
21194	}
21195
21196	pub fn correlationMaskCount(mut self, correlationMaskCount : u32) -> Self {
21197		self.correlationMaskCount = correlationMaskCount;
21198		self
21199	}
21200
21201	pub fn pCorrelationMasks(mut self, pCorrelationMasks : *const u32) -> Self {
21202		self.pCorrelationMasks = pCorrelationMasks;
21203		self
21204	}
21205
21206}
21207
21208impl PhysicalDeviceMultiviewFeatures {
21209
21210	pub fn new() -> Self {
21211		 Self::default()
21212	}
21213
21214	pub fn sType(mut self, sType : StructureType) -> Self {
21215		self.sType = sType;
21216		self
21217	}
21218
21219	pub fn pNext(mut self, pNext : *mut void) -> Self {
21220		self.pNext = pNext;
21221		self
21222	}
21223
21224	pub fn multiview(mut self, multiview : Bool32) -> Self {
21225		self.multiview = multiview;
21226		self
21227	}
21228
21229	pub fn multiviewGeometryShader(mut self, multiviewGeometryShader : Bool32) -> Self {
21230		self.multiviewGeometryShader = multiviewGeometryShader;
21231		self
21232	}
21233
21234	pub fn multiviewTessellationShader(mut self, multiviewTessellationShader : Bool32) -> Self {
21235		self.multiviewTessellationShader = multiviewTessellationShader;
21236		self
21237	}
21238
21239}
21240
21241impl PhysicalDeviceMultiviewProperties {
21242
21243	pub fn new() -> Self {
21244		 Self::default()
21245	}
21246
21247	pub fn sType(mut self, sType : StructureType) -> Self {
21248		self.sType = sType;
21249		self
21250	}
21251
21252	pub fn pNext(mut self, pNext : *mut void) -> Self {
21253		self.pNext = pNext;
21254		self
21255	}
21256
21257	pub fn maxMultiviewViewCount(mut self, maxMultiviewViewCount : u32) -> Self {
21258		self.maxMultiviewViewCount = maxMultiviewViewCount;
21259		self
21260	}
21261
21262	pub fn maxMultiviewInstanceIndex(mut self, maxMultiviewInstanceIndex : u32) -> Self {
21263		self.maxMultiviewInstanceIndex = maxMultiviewInstanceIndex;
21264		self
21265	}
21266
21267}
21268
21269impl PhysicalDeviceVariablePointersFeatures {
21270
21271	pub fn new() -> Self {
21272		 Self::default()
21273	}
21274
21275	pub fn sType(mut self, sType : StructureType) -> Self {
21276		self.sType = sType;
21277		self
21278	}
21279
21280	pub fn pNext(mut self, pNext : *mut void) -> Self {
21281		self.pNext = pNext;
21282		self
21283	}
21284
21285	pub fn variablePointersStorageBuffer(mut self, variablePointersStorageBuffer : Bool32) -> Self {
21286		self.variablePointersStorageBuffer = variablePointersStorageBuffer;
21287		self
21288	}
21289
21290	pub fn variablePointers(mut self, variablePointers : Bool32) -> Self {
21291		self.variablePointers = variablePointers;
21292		self
21293	}
21294
21295}
21296
21297impl PhysicalDeviceProtectedMemoryFeatures {
21298
21299	pub fn new() -> Self {
21300		 Self::default()
21301	}
21302
21303	pub fn sType(mut self, sType : StructureType) -> Self {
21304		self.sType = sType;
21305		self
21306	}
21307
21308	pub fn pNext(mut self, pNext : *mut void) -> Self {
21309		self.pNext = pNext;
21310		self
21311	}
21312
21313	pub fn protectedMemory(mut self, protectedMemory : Bool32) -> Self {
21314		self.protectedMemory = protectedMemory;
21315		self
21316	}
21317
21318}
21319
21320impl PhysicalDeviceProtectedMemoryProperties {
21321
21322	pub fn new() -> Self {
21323		 Self::default()
21324	}
21325
21326	pub fn sType(mut self, sType : StructureType) -> Self {
21327		self.sType = sType;
21328		self
21329	}
21330
21331	pub fn pNext(mut self, pNext : *mut void) -> Self {
21332		self.pNext = pNext;
21333		self
21334	}
21335
21336	pub fn protectedNoFault(mut self, protectedNoFault : Bool32) -> Self {
21337		self.protectedNoFault = protectedNoFault;
21338		self
21339	}
21340
21341}
21342
21343impl DeviceQueueInfo2 {
21344
21345	pub fn new() -> Self {
21346		 Self::default()
21347	}
21348
21349	pub fn sType(mut self, sType : StructureType) -> Self {
21350		self.sType = sType;
21351		self
21352	}
21353
21354	pub fn pNext(mut self, pNext : *const void) -> Self {
21355		self.pNext = pNext;
21356		self
21357	}
21358
21359	pub fn flags(mut self, flags : DeviceQueueCreateFlags) -> Self {
21360		self.flags = flags;
21361		self
21362	}
21363
21364	pub fn queueFamilyIndex(mut self, queueFamilyIndex : u32) -> Self {
21365		self.queueFamilyIndex = queueFamilyIndex;
21366		self
21367	}
21368
21369	pub fn queueIndex(mut self, queueIndex : u32) -> Self {
21370		self.queueIndex = queueIndex;
21371		self
21372	}
21373
21374}
21375
21376impl ProtectedSubmitInfo {
21377
21378	pub fn new() -> Self {
21379		 Self::default()
21380	}
21381
21382	pub fn sType(mut self, sType : StructureType) -> Self {
21383		self.sType = sType;
21384		self
21385	}
21386
21387	pub fn pNext(mut self, pNext : *const void) -> Self {
21388		self.pNext = pNext;
21389		self
21390	}
21391
21392	pub fn protectedSubmit(mut self, protectedSubmit : Bool32) -> Self {
21393		self.protectedSubmit = protectedSubmit;
21394		self
21395	}
21396
21397}
21398
21399impl SamplerYcbcrConversionCreateInfo {
21400
21401	pub fn new() -> Self {
21402		 Self::default()
21403	}
21404
21405	pub fn sType(mut self, sType : StructureType) -> Self {
21406		self.sType = sType;
21407		self
21408	}
21409
21410	pub fn pNext(mut self, pNext : *const void) -> Self {
21411		self.pNext = pNext;
21412		self
21413	}
21414
21415	pub fn format(mut self, format : Format) -> Self {
21416		self.format = format;
21417		self
21418	}
21419
21420	pub fn ycbcrModel(mut self, ycbcrModel : SamplerYcbcrModelConversion) -> Self {
21421		self.ycbcrModel = ycbcrModel;
21422		self
21423	}
21424
21425	pub fn ycbcrRange(mut self, ycbcrRange : SamplerYcbcrRange) -> Self {
21426		self.ycbcrRange = ycbcrRange;
21427		self
21428	}
21429
21430	pub fn components(mut self, components : ComponentMapping) -> Self {
21431		self.components = components;
21432		self
21433	}
21434
21435	pub fn xChromaOffset(mut self, xChromaOffset : ChromaLocation) -> Self {
21436		self.xChromaOffset = xChromaOffset;
21437		self
21438	}
21439
21440	pub fn yChromaOffset(mut self, yChromaOffset : ChromaLocation) -> Self {
21441		self.yChromaOffset = yChromaOffset;
21442		self
21443	}
21444
21445	pub fn chromaFilter(mut self, chromaFilter : Filter) -> Self {
21446		self.chromaFilter = chromaFilter;
21447		self
21448	}
21449
21450	pub fn forceExplicitReconstruction(mut self, forceExplicitReconstruction : Bool32) -> Self {
21451		self.forceExplicitReconstruction = forceExplicitReconstruction;
21452		self
21453	}
21454
21455}
21456
21457impl SamplerYcbcrConversionInfo {
21458
21459	pub fn new() -> Self {
21460		 Self::default()
21461	}
21462
21463	pub fn sType(mut self, sType : StructureType) -> Self {
21464		self.sType = sType;
21465		self
21466	}
21467
21468	pub fn pNext(mut self, pNext : *const void) -> Self {
21469		self.pNext = pNext;
21470		self
21471	}
21472
21473	pub fn conversion(mut self, conversion : SamplerYcbcrConversion) -> Self {
21474		self.conversion = conversion;
21475		self
21476	}
21477
21478}
21479
21480impl BindImagePlaneMemoryInfo {
21481
21482	pub fn new() -> Self {
21483		 Self::default()
21484	}
21485
21486	pub fn sType(mut self, sType : StructureType) -> Self {
21487		self.sType = sType;
21488		self
21489	}
21490
21491	pub fn pNext(mut self, pNext : *const void) -> Self {
21492		self.pNext = pNext;
21493		self
21494	}
21495
21496	pub fn planeAspect(mut self, planeAspect : ImageAspectFlagBits) -> Self {
21497		self.planeAspect = planeAspect;
21498		self
21499	}
21500
21501}
21502
21503impl ImagePlaneMemoryRequirementsInfo {
21504
21505	pub fn new() -> Self {
21506		 Self::default()
21507	}
21508
21509	pub fn sType(mut self, sType : StructureType) -> Self {
21510		self.sType = sType;
21511		self
21512	}
21513
21514	pub fn pNext(mut self, pNext : *const void) -> Self {
21515		self.pNext = pNext;
21516		self
21517	}
21518
21519	pub fn planeAspect(mut self, planeAspect : ImageAspectFlagBits) -> Self {
21520		self.planeAspect = planeAspect;
21521		self
21522	}
21523
21524}
21525
21526impl PhysicalDeviceSamplerYcbcrConversionFeatures {
21527
21528	pub fn new() -> Self {
21529		 Self::default()
21530	}
21531
21532	pub fn sType(mut self, sType : StructureType) -> Self {
21533		self.sType = sType;
21534		self
21535	}
21536
21537	pub fn pNext(mut self, pNext : *mut void) -> Self {
21538		self.pNext = pNext;
21539		self
21540	}
21541
21542	pub fn samplerYcbcrConversion(mut self, samplerYcbcrConversion : Bool32) -> Self {
21543		self.samplerYcbcrConversion = samplerYcbcrConversion;
21544		self
21545	}
21546
21547}
21548
21549impl SamplerYcbcrConversionImageFormatProperties {
21550
21551	pub fn new() -> Self {
21552		 Self::default()
21553	}
21554
21555	pub fn sType(mut self, sType : StructureType) -> Self {
21556		self.sType = sType;
21557		self
21558	}
21559
21560	pub fn pNext(mut self, pNext : *mut void) -> Self {
21561		self.pNext = pNext;
21562		self
21563	}
21564
21565	pub fn combinedImageSamplerDescriptorCount(mut self, combinedImageSamplerDescriptorCount : u32) -> Self {
21566		self.combinedImageSamplerDescriptorCount = combinedImageSamplerDescriptorCount;
21567		self
21568	}
21569
21570}
21571
21572impl DescriptorUpdateTemplateEntry {
21573
21574	pub fn new() -> Self {
21575		 Self::default()
21576	}
21577
21578	pub fn dstBinding(mut self, dstBinding : u32) -> Self {
21579		self.dstBinding = dstBinding;
21580		self
21581	}
21582
21583	pub fn dstArrayElement(mut self, dstArrayElement : u32) -> Self {
21584		self.dstArrayElement = dstArrayElement;
21585		self
21586	}
21587
21588	pub fn descriptorCount(mut self, descriptorCount : u32) -> Self {
21589		self.descriptorCount = descriptorCount;
21590		self
21591	}
21592
21593	pub fn descriptorType(mut self, descriptorType : DescriptorType) -> Self {
21594		self.descriptorType = descriptorType;
21595		self
21596	}
21597
21598	pub fn offset(mut self, offset : usize) -> Self {
21599		self.offset = offset;
21600		self
21601	}
21602
21603	pub fn stride(mut self, stride : usize) -> Self {
21604		self.stride = stride;
21605		self
21606	}
21607
21608}
21609
21610impl DescriptorUpdateTemplateCreateInfo {
21611
21612	pub fn new() -> Self {
21613		 Self::default()
21614	}
21615
21616	pub fn sType(mut self, sType : StructureType) -> Self {
21617		self.sType = sType;
21618		self
21619	}
21620
21621	pub fn pNext(mut self, pNext : *const void) -> Self {
21622		self.pNext = pNext;
21623		self
21624	}
21625
21626	pub fn flags(mut self, flags : DescriptorUpdateTemplateCreateFlags) -> Self {
21627		self.flags = flags;
21628		self
21629	}
21630
21631	pub fn descriptorUpdateEntryCount(mut self, descriptorUpdateEntryCount : u32) -> Self {
21632		self.descriptorUpdateEntryCount = descriptorUpdateEntryCount;
21633		self
21634	}
21635
21636	pub fn pDescriptorUpdateEntries(mut self, pDescriptorUpdateEntries : *const DescriptorUpdateTemplateEntry) -> Self {
21637		self.pDescriptorUpdateEntries = pDescriptorUpdateEntries;
21638		self
21639	}
21640
21641	pub fn templateType(mut self, templateType : DescriptorUpdateTemplateType) -> Self {
21642		self.templateType = templateType;
21643		self
21644	}
21645
21646	pub fn descriptorSetLayout(mut self, descriptorSetLayout : DescriptorSetLayout) -> Self {
21647		self.descriptorSetLayout = descriptorSetLayout;
21648		self
21649	}
21650
21651	pub fn pipelineBindPoint(mut self, pipelineBindPoint : PipelineBindPoint) -> Self {
21652		self.pipelineBindPoint = pipelineBindPoint;
21653		self
21654	}
21655
21656	pub fn pipelineLayout(mut self, pipelineLayout : PipelineLayout) -> Self {
21657		self.pipelineLayout = pipelineLayout;
21658		self
21659	}
21660
21661	pub fn set(mut self, set : u32) -> Self {
21662		self.set = set;
21663		self
21664	}
21665
21666}
21667
21668impl ExternalMemoryProperties {
21669
21670	pub fn new() -> Self {
21671		 Self::default()
21672	}
21673
21674	pub fn externalMemoryFeatures(mut self, externalMemoryFeatures : ExternalMemoryFeatureFlags) -> Self {
21675		self.externalMemoryFeatures = externalMemoryFeatures;
21676		self
21677	}
21678
21679	pub fn exportFromImportedHandleTypes(mut self, exportFromImportedHandleTypes : ExternalMemoryHandleTypeFlags) -> Self {
21680		self.exportFromImportedHandleTypes = exportFromImportedHandleTypes;
21681		self
21682	}
21683
21684	pub fn compatibleHandleTypes(mut self, compatibleHandleTypes : ExternalMemoryHandleTypeFlags) -> Self {
21685		self.compatibleHandleTypes = compatibleHandleTypes;
21686		self
21687	}
21688
21689}
21690
21691impl PhysicalDeviceExternalImageFormatInfo {
21692
21693	pub fn new() -> Self {
21694		 Self::default()
21695	}
21696
21697	pub fn sType(mut self, sType : StructureType) -> Self {
21698		self.sType = sType;
21699		self
21700	}
21701
21702	pub fn pNext(mut self, pNext : *const void) -> Self {
21703		self.pNext = pNext;
21704		self
21705	}
21706
21707	pub fn handleType(mut self, handleType : ExternalMemoryHandleTypeFlagBits) -> Self {
21708		self.handleType = handleType;
21709		self
21710	}
21711
21712}
21713
21714impl ExternalImageFormatProperties {
21715
21716	pub fn new() -> Self {
21717		 Self::default()
21718	}
21719
21720	pub fn sType(mut self, sType : StructureType) -> Self {
21721		self.sType = sType;
21722		self
21723	}
21724
21725	pub fn pNext(mut self, pNext : *mut void) -> Self {
21726		self.pNext = pNext;
21727		self
21728	}
21729
21730	pub fn externalMemoryProperties(mut self, externalMemoryProperties : ExternalMemoryProperties) -> Self {
21731		self.externalMemoryProperties = externalMemoryProperties;
21732		self
21733	}
21734
21735}
21736
21737impl PhysicalDeviceExternalBufferInfo {
21738
21739	pub fn new() -> Self {
21740		 Self::default()
21741	}
21742
21743	pub fn sType(mut self, sType : StructureType) -> Self {
21744		self.sType = sType;
21745		self
21746	}
21747
21748	pub fn pNext(mut self, pNext : *const void) -> Self {
21749		self.pNext = pNext;
21750		self
21751	}
21752
21753	pub fn flags(mut self, flags : BufferCreateFlags) -> Self {
21754		self.flags = flags;
21755		self
21756	}
21757
21758	pub fn usage(mut self, usage : BufferUsageFlags) -> Self {
21759		self.usage = usage;
21760		self
21761	}
21762
21763	pub fn handleType(mut self, handleType : ExternalMemoryHandleTypeFlagBits) -> Self {
21764		self.handleType = handleType;
21765		self
21766	}
21767
21768}
21769
21770impl ExternalBufferProperties {
21771
21772	pub fn new() -> Self {
21773		 Self::default()
21774	}
21775
21776	pub fn sType(mut self, sType : StructureType) -> Self {
21777		self.sType = sType;
21778		self
21779	}
21780
21781	pub fn pNext(mut self, pNext : *mut void) -> Self {
21782		self.pNext = pNext;
21783		self
21784	}
21785
21786	pub fn externalMemoryProperties(mut self, externalMemoryProperties : ExternalMemoryProperties) -> Self {
21787		self.externalMemoryProperties = externalMemoryProperties;
21788		self
21789	}
21790
21791}
21792
21793impl PhysicalDeviceIDProperties {
21794
21795	pub fn new() -> Self {
21796		 Self::default()
21797	}
21798
21799	pub fn sType(mut self, sType : StructureType) -> Self {
21800		self.sType = sType;
21801		self
21802	}
21803
21804	pub fn pNext(mut self, pNext : *mut void) -> Self {
21805		self.pNext = pNext;
21806		self
21807	}
21808
21809	pub fn deviceUUID(mut self, deviceUUID : [u8;UUID_SIZE]) -> Self {
21810		self.deviceUUID = deviceUUID;
21811		self
21812	}
21813
21814	pub fn driverUUID(mut self, driverUUID : [u8;UUID_SIZE]) -> Self {
21815		self.driverUUID = driverUUID;
21816		self
21817	}
21818
21819	pub fn deviceLUID(mut self, deviceLUID : [u8;LUID_SIZE]) -> Self {
21820		self.deviceLUID = deviceLUID;
21821		self
21822	}
21823
21824	pub fn deviceNodeMask(mut self, deviceNodeMask : u32) -> Self {
21825		self.deviceNodeMask = deviceNodeMask;
21826		self
21827	}
21828
21829	pub fn deviceLUIDValid(mut self, deviceLUIDValid : Bool32) -> Self {
21830		self.deviceLUIDValid = deviceLUIDValid;
21831		self
21832	}
21833
21834}
21835
21836impl ExternalMemoryImageCreateInfo {
21837
21838	pub fn new() -> Self {
21839		 Self::default()
21840	}
21841
21842	pub fn sType(mut self, sType : StructureType) -> Self {
21843		self.sType = sType;
21844		self
21845	}
21846
21847	pub fn pNext(mut self, pNext : *const void) -> Self {
21848		self.pNext = pNext;
21849		self
21850	}
21851
21852	pub fn handleTypes(mut self, handleTypes : ExternalMemoryHandleTypeFlags) -> Self {
21853		self.handleTypes = handleTypes;
21854		self
21855	}
21856
21857}
21858
21859impl ExternalMemoryBufferCreateInfo {
21860
21861	pub fn new() -> Self {
21862		 Self::default()
21863	}
21864
21865	pub fn sType(mut self, sType : StructureType) -> Self {
21866		self.sType = sType;
21867		self
21868	}
21869
21870	pub fn pNext(mut self, pNext : *const void) -> Self {
21871		self.pNext = pNext;
21872		self
21873	}
21874
21875	pub fn handleTypes(mut self, handleTypes : ExternalMemoryHandleTypeFlags) -> Self {
21876		self.handleTypes = handleTypes;
21877		self
21878	}
21879
21880}
21881
21882impl ExportMemoryAllocateInfo {
21883
21884	pub fn new() -> Self {
21885		 Self::default()
21886	}
21887
21888	pub fn sType(mut self, sType : StructureType) -> Self {
21889		self.sType = sType;
21890		self
21891	}
21892
21893	pub fn pNext(mut self, pNext : *const void) -> Self {
21894		self.pNext = pNext;
21895		self
21896	}
21897
21898	pub fn handleTypes(mut self, handleTypes : ExternalMemoryHandleTypeFlags) -> Self {
21899		self.handleTypes = handleTypes;
21900		self
21901	}
21902
21903}
21904
21905impl PhysicalDeviceExternalFenceInfo {
21906
21907	pub fn new() -> Self {
21908		 Self::default()
21909	}
21910
21911	pub fn sType(mut self, sType : StructureType) -> Self {
21912		self.sType = sType;
21913		self
21914	}
21915
21916	pub fn pNext(mut self, pNext : *const void) -> Self {
21917		self.pNext = pNext;
21918		self
21919	}
21920
21921	pub fn handleType(mut self, handleType : ExternalFenceHandleTypeFlagBits) -> Self {
21922		self.handleType = handleType;
21923		self
21924	}
21925
21926}
21927
21928impl ExternalFenceProperties {
21929
21930	pub fn new() -> Self {
21931		 Self::default()
21932	}
21933
21934	pub fn sType(mut self, sType : StructureType) -> Self {
21935		self.sType = sType;
21936		self
21937	}
21938
21939	pub fn pNext(mut self, pNext : *mut void) -> Self {
21940		self.pNext = pNext;
21941		self
21942	}
21943
21944	pub fn exportFromImportedHandleTypes(mut self, exportFromImportedHandleTypes : ExternalFenceHandleTypeFlags) -> Self {
21945		self.exportFromImportedHandleTypes = exportFromImportedHandleTypes;
21946		self
21947	}
21948
21949	pub fn compatibleHandleTypes(mut self, compatibleHandleTypes : ExternalFenceHandleTypeFlags) -> Self {
21950		self.compatibleHandleTypes = compatibleHandleTypes;
21951		self
21952	}
21953
21954	pub fn externalFenceFeatures(mut self, externalFenceFeatures : ExternalFenceFeatureFlags) -> Self {
21955		self.externalFenceFeatures = externalFenceFeatures;
21956		self
21957	}
21958
21959}
21960
21961impl ExportFenceCreateInfo {
21962
21963	pub fn new() -> Self {
21964		 Self::default()
21965	}
21966
21967	pub fn sType(mut self, sType : StructureType) -> Self {
21968		self.sType = sType;
21969		self
21970	}
21971
21972	pub fn pNext(mut self, pNext : *const void) -> Self {
21973		self.pNext = pNext;
21974		self
21975	}
21976
21977	pub fn handleTypes(mut self, handleTypes : ExternalFenceHandleTypeFlags) -> Self {
21978		self.handleTypes = handleTypes;
21979		self
21980	}
21981
21982}
21983
21984impl ExportSemaphoreCreateInfo {
21985
21986	pub fn new() -> Self {
21987		 Self::default()
21988	}
21989
21990	pub fn sType(mut self, sType : StructureType) -> Self {
21991		self.sType = sType;
21992		self
21993	}
21994
21995	pub fn pNext(mut self, pNext : *const void) -> Self {
21996		self.pNext = pNext;
21997		self
21998	}
21999
22000	pub fn handleTypes(mut self, handleTypes : ExternalSemaphoreHandleTypeFlags) -> Self {
22001		self.handleTypes = handleTypes;
22002		self
22003	}
22004
22005}
22006
22007impl PhysicalDeviceExternalSemaphoreInfo {
22008
22009	pub fn new() -> Self {
22010		 Self::default()
22011	}
22012
22013	pub fn sType(mut self, sType : StructureType) -> Self {
22014		self.sType = sType;
22015		self
22016	}
22017
22018	pub fn pNext(mut self, pNext : *const void) -> Self {
22019		self.pNext = pNext;
22020		self
22021	}
22022
22023	pub fn handleType(mut self, handleType : ExternalSemaphoreHandleTypeFlagBits) -> Self {
22024		self.handleType = handleType;
22025		self
22026	}
22027
22028}
22029
22030impl ExternalSemaphoreProperties {
22031
22032	pub fn new() -> Self {
22033		 Self::default()
22034	}
22035
22036	pub fn sType(mut self, sType : StructureType) -> Self {
22037		self.sType = sType;
22038		self
22039	}
22040
22041	pub fn pNext(mut self, pNext : *mut void) -> Self {
22042		self.pNext = pNext;
22043		self
22044	}
22045
22046	pub fn exportFromImportedHandleTypes(mut self, exportFromImportedHandleTypes : ExternalSemaphoreHandleTypeFlags) -> Self {
22047		self.exportFromImportedHandleTypes = exportFromImportedHandleTypes;
22048		self
22049	}
22050
22051	pub fn compatibleHandleTypes(mut self, compatibleHandleTypes : ExternalSemaphoreHandleTypeFlags) -> Self {
22052		self.compatibleHandleTypes = compatibleHandleTypes;
22053		self
22054	}
22055
22056	pub fn externalSemaphoreFeatures(mut self, externalSemaphoreFeatures : ExternalSemaphoreFeatureFlags) -> Self {
22057		self.externalSemaphoreFeatures = externalSemaphoreFeatures;
22058		self
22059	}
22060
22061}
22062
22063impl PhysicalDeviceMaintenance3Properties {
22064
22065	pub fn new() -> Self {
22066		 Self::default()
22067	}
22068
22069	pub fn sType(mut self, sType : StructureType) -> Self {
22070		self.sType = sType;
22071		self
22072	}
22073
22074	pub fn pNext(mut self, pNext : *mut void) -> Self {
22075		self.pNext = pNext;
22076		self
22077	}
22078
22079	pub fn maxPerSetDescriptors(mut self, maxPerSetDescriptors : u32) -> Self {
22080		self.maxPerSetDescriptors = maxPerSetDescriptors;
22081		self
22082	}
22083
22084	pub fn maxMemoryAllocationSize(mut self, maxMemoryAllocationSize : DeviceSize) -> Self {
22085		self.maxMemoryAllocationSize = maxMemoryAllocationSize;
22086		self
22087	}
22088
22089}
22090
22091impl DescriptorSetLayoutSupport {
22092
22093	pub fn new() -> Self {
22094		 Self::default()
22095	}
22096
22097	pub fn sType(mut self, sType : StructureType) -> Self {
22098		self.sType = sType;
22099		self
22100	}
22101
22102	pub fn pNext(mut self, pNext : *mut void) -> Self {
22103		self.pNext = pNext;
22104		self
22105	}
22106
22107	pub fn supported(mut self, supported : Bool32) -> Self {
22108		self.supported = supported;
22109		self
22110	}
22111
22112}
22113
22114impl PhysicalDeviceShaderDrawParametersFeatures {
22115
22116	pub fn new() -> Self {
22117		 Self::default()
22118	}
22119
22120	pub fn sType(mut self, sType : StructureType) -> Self {
22121		self.sType = sType;
22122		self
22123	}
22124
22125	pub fn pNext(mut self, pNext : *mut void) -> Self {
22126		self.pNext = pNext;
22127		self
22128	}
22129
22130	pub fn shaderDrawParameters(mut self, shaderDrawParameters : Bool32) -> Self {
22131		self.shaderDrawParameters = shaderDrawParameters;
22132		self
22133	}
22134
22135}
22136
22137impl PhysicalDeviceVulkan11Features {
22138
22139	pub fn new() -> Self {
22140		 Self::default()
22141	}
22142
22143	pub fn sType(mut self, sType : StructureType) -> Self {
22144		self.sType = sType;
22145		self
22146	}
22147
22148	pub fn pNext(mut self, pNext : *mut void) -> Self {
22149		self.pNext = pNext;
22150		self
22151	}
22152
22153	pub fn storageBuffer16BitAccess(mut self, storageBuffer16BitAccess : Bool32) -> Self {
22154		self.storageBuffer16BitAccess = storageBuffer16BitAccess;
22155		self
22156	}
22157
22158	pub fn uniformAndStorageBuffer16BitAccess(mut self, uniformAndStorageBuffer16BitAccess : Bool32) -> Self {
22159		self.uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess;
22160		self
22161	}
22162
22163	pub fn storagePushConstant16(mut self, storagePushConstant16 : Bool32) -> Self {
22164		self.storagePushConstant16 = storagePushConstant16;
22165		self
22166	}
22167
22168	pub fn storageInputOutput16(mut self, storageInputOutput16 : Bool32) -> Self {
22169		self.storageInputOutput16 = storageInputOutput16;
22170		self
22171	}
22172
22173	pub fn multiview(mut self, multiview : Bool32) -> Self {
22174		self.multiview = multiview;
22175		self
22176	}
22177
22178	pub fn multiviewGeometryShader(mut self, multiviewGeometryShader : Bool32) -> Self {
22179		self.multiviewGeometryShader = multiviewGeometryShader;
22180		self
22181	}
22182
22183	pub fn multiviewTessellationShader(mut self, multiviewTessellationShader : Bool32) -> Self {
22184		self.multiviewTessellationShader = multiviewTessellationShader;
22185		self
22186	}
22187
22188	pub fn variablePointersStorageBuffer(mut self, variablePointersStorageBuffer : Bool32) -> Self {
22189		self.variablePointersStorageBuffer = variablePointersStorageBuffer;
22190		self
22191	}
22192
22193	pub fn variablePointers(mut self, variablePointers : Bool32) -> Self {
22194		self.variablePointers = variablePointers;
22195		self
22196	}
22197
22198	pub fn protectedMemory(mut self, protectedMemory : Bool32) -> Self {
22199		self.protectedMemory = protectedMemory;
22200		self
22201	}
22202
22203	pub fn samplerYcbcrConversion(mut self, samplerYcbcrConversion : Bool32) -> Self {
22204		self.samplerYcbcrConversion = samplerYcbcrConversion;
22205		self
22206	}
22207
22208	pub fn shaderDrawParameters(mut self, shaderDrawParameters : Bool32) -> Self {
22209		self.shaderDrawParameters = shaderDrawParameters;
22210		self
22211	}
22212
22213}
22214
22215impl PhysicalDeviceVulkan11Properties {
22216
22217	pub fn new() -> Self {
22218		 Self::default()
22219	}
22220
22221	pub fn sType(mut self, sType : StructureType) -> Self {
22222		self.sType = sType;
22223		self
22224	}
22225
22226	pub fn pNext(mut self, pNext : *mut void) -> Self {
22227		self.pNext = pNext;
22228		self
22229	}
22230
22231	pub fn deviceUUID(mut self, deviceUUID : [u8;UUID_SIZE]) -> Self {
22232		self.deviceUUID = deviceUUID;
22233		self
22234	}
22235
22236	pub fn driverUUID(mut self, driverUUID : [u8;UUID_SIZE]) -> Self {
22237		self.driverUUID = driverUUID;
22238		self
22239	}
22240
22241	pub fn deviceLUID(mut self, deviceLUID : [u8;LUID_SIZE]) -> Self {
22242		self.deviceLUID = deviceLUID;
22243		self
22244	}
22245
22246	pub fn deviceNodeMask(mut self, deviceNodeMask : u32) -> Self {
22247		self.deviceNodeMask = deviceNodeMask;
22248		self
22249	}
22250
22251	pub fn deviceLUIDValid(mut self, deviceLUIDValid : Bool32) -> Self {
22252		self.deviceLUIDValid = deviceLUIDValid;
22253		self
22254	}
22255
22256	pub fn subgroupSize(mut self, subgroupSize : u32) -> Self {
22257		self.subgroupSize = subgroupSize;
22258		self
22259	}
22260
22261	pub fn subgroupSupportedStages(mut self, subgroupSupportedStages : ShaderStageFlags) -> Self {
22262		self.subgroupSupportedStages = subgroupSupportedStages;
22263		self
22264	}
22265
22266	pub fn subgroupSupportedOperations(mut self, subgroupSupportedOperations : SubgroupFeatureFlags) -> Self {
22267		self.subgroupSupportedOperations = subgroupSupportedOperations;
22268		self
22269	}
22270
22271	pub fn subgroupQuadOperationsInAllStages(mut self, subgroupQuadOperationsInAllStages : Bool32) -> Self {
22272		self.subgroupQuadOperationsInAllStages = subgroupQuadOperationsInAllStages;
22273		self
22274	}
22275
22276	pub fn pointClippingBehavior(mut self, pointClippingBehavior : PointClippingBehavior) -> Self {
22277		self.pointClippingBehavior = pointClippingBehavior;
22278		self
22279	}
22280
22281	pub fn maxMultiviewViewCount(mut self, maxMultiviewViewCount : u32) -> Self {
22282		self.maxMultiviewViewCount = maxMultiviewViewCount;
22283		self
22284	}
22285
22286	pub fn maxMultiviewInstanceIndex(mut self, maxMultiviewInstanceIndex : u32) -> Self {
22287		self.maxMultiviewInstanceIndex = maxMultiviewInstanceIndex;
22288		self
22289	}
22290
22291	pub fn protectedNoFault(mut self, protectedNoFault : Bool32) -> Self {
22292		self.protectedNoFault = protectedNoFault;
22293		self
22294	}
22295
22296	pub fn maxPerSetDescriptors(mut self, maxPerSetDescriptors : u32) -> Self {
22297		self.maxPerSetDescriptors = maxPerSetDescriptors;
22298		self
22299	}
22300
22301	pub fn maxMemoryAllocationSize(mut self, maxMemoryAllocationSize : DeviceSize) -> Self {
22302		self.maxMemoryAllocationSize = maxMemoryAllocationSize;
22303		self
22304	}
22305
22306}
22307
22308impl PhysicalDeviceVulkan12Features {
22309
22310	pub fn new() -> Self {
22311		 Self::default()
22312	}
22313
22314	pub fn sType(mut self, sType : StructureType) -> Self {
22315		self.sType = sType;
22316		self
22317	}
22318
22319	pub fn pNext(mut self, pNext : *mut void) -> Self {
22320		self.pNext = pNext;
22321		self
22322	}
22323
22324	pub fn samplerMirrorClampToEdge(mut self, samplerMirrorClampToEdge : Bool32) -> Self {
22325		self.samplerMirrorClampToEdge = samplerMirrorClampToEdge;
22326		self
22327	}
22328
22329	pub fn drawIndirectCount(mut self, drawIndirectCount : Bool32) -> Self {
22330		self.drawIndirectCount = drawIndirectCount;
22331		self
22332	}
22333
22334	pub fn storageBuffer8BitAccess(mut self, storageBuffer8BitAccess : Bool32) -> Self {
22335		self.storageBuffer8BitAccess = storageBuffer8BitAccess;
22336		self
22337	}
22338
22339	pub fn uniformAndStorageBuffer8BitAccess(mut self, uniformAndStorageBuffer8BitAccess : Bool32) -> Self {
22340		self.uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess;
22341		self
22342	}
22343
22344	pub fn storagePushConstant8(mut self, storagePushConstant8 : Bool32) -> Self {
22345		self.storagePushConstant8 = storagePushConstant8;
22346		self
22347	}
22348
22349	pub fn shaderBufferInt64Atomics(mut self, shaderBufferInt64Atomics : Bool32) -> Self {
22350		self.shaderBufferInt64Atomics = shaderBufferInt64Atomics;
22351		self
22352	}
22353
22354	pub fn shaderSharedInt64Atomics(mut self, shaderSharedInt64Atomics : Bool32) -> Self {
22355		self.shaderSharedInt64Atomics = shaderSharedInt64Atomics;
22356		self
22357	}
22358
22359	pub fn shaderFloat16(mut self, shaderFloat16 : Bool32) -> Self {
22360		self.shaderFloat16 = shaderFloat16;
22361		self
22362	}
22363
22364	pub fn shaderInt8(mut self, shaderInt8 : Bool32) -> Self {
22365		self.shaderInt8 = shaderInt8;
22366		self
22367	}
22368
22369	pub fn descriptorIndexing(mut self, descriptorIndexing : Bool32) -> Self {
22370		self.descriptorIndexing = descriptorIndexing;
22371		self
22372	}
22373
22374	pub fn shaderInputAttachmentArrayDynamicIndexing(mut self, shaderInputAttachmentArrayDynamicIndexing : Bool32) -> Self {
22375		self.shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing;
22376		self
22377	}
22378
22379	pub fn shaderUniformTexelBufferArrayDynamicIndexing(mut self, shaderUniformTexelBufferArrayDynamicIndexing : Bool32) -> Self {
22380		self.shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing;
22381		self
22382	}
22383
22384	pub fn shaderStorageTexelBufferArrayDynamicIndexing(mut self, shaderStorageTexelBufferArrayDynamicIndexing : Bool32) -> Self {
22385		self.shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing;
22386		self
22387	}
22388
22389	pub fn shaderUniformBufferArrayNonUniformIndexing(mut self, shaderUniformBufferArrayNonUniformIndexing : Bool32) -> Self {
22390		self.shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing;
22391		self
22392	}
22393
22394	pub fn shaderSampledImageArrayNonUniformIndexing(mut self, shaderSampledImageArrayNonUniformIndexing : Bool32) -> Self {
22395		self.shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing;
22396		self
22397	}
22398
22399	pub fn shaderStorageBufferArrayNonUniformIndexing(mut self, shaderStorageBufferArrayNonUniformIndexing : Bool32) -> Self {
22400		self.shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing;
22401		self
22402	}
22403
22404	pub fn shaderStorageImageArrayNonUniformIndexing(mut self, shaderStorageImageArrayNonUniformIndexing : Bool32) -> Self {
22405		self.shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing;
22406		self
22407	}
22408
22409	pub fn shaderInputAttachmentArrayNonUniformIndexing(mut self, shaderInputAttachmentArrayNonUniformIndexing : Bool32) -> Self {
22410		self.shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing;
22411		self
22412	}
22413
22414	pub fn shaderUniformTexelBufferArrayNonUniformIndexing(mut self, shaderUniformTexelBufferArrayNonUniformIndexing : Bool32) -> Self {
22415		self.shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing;
22416		self
22417	}
22418
22419	pub fn shaderStorageTexelBufferArrayNonUniformIndexing(mut self, shaderStorageTexelBufferArrayNonUniformIndexing : Bool32) -> Self {
22420		self.shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing;
22421		self
22422	}
22423
22424	pub fn descriptorBindingUniformBufferUpdateAfterBind(mut self, descriptorBindingUniformBufferUpdateAfterBind : Bool32) -> Self {
22425		self.descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind;
22426		self
22427	}
22428
22429	pub fn descriptorBindingSampledImageUpdateAfterBind(mut self, descriptorBindingSampledImageUpdateAfterBind : Bool32) -> Self {
22430		self.descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind;
22431		self
22432	}
22433
22434	pub fn descriptorBindingStorageImageUpdateAfterBind(mut self, descriptorBindingStorageImageUpdateAfterBind : Bool32) -> Self {
22435		self.descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind;
22436		self
22437	}
22438
22439	pub fn descriptorBindingStorageBufferUpdateAfterBind(mut self, descriptorBindingStorageBufferUpdateAfterBind : Bool32) -> Self {
22440		self.descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind;
22441		self
22442	}
22443
22444	pub fn descriptorBindingUniformTexelBufferUpdateAfterBind(mut self, descriptorBindingUniformTexelBufferUpdateAfterBind : Bool32) -> Self {
22445		self.descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind;
22446		self
22447	}
22448
22449	pub fn descriptorBindingStorageTexelBufferUpdateAfterBind(mut self, descriptorBindingStorageTexelBufferUpdateAfterBind : Bool32) -> Self {
22450		self.descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind;
22451		self
22452	}
22453
22454	pub fn descriptorBindingUpdateUnusedWhilePending(mut self, descriptorBindingUpdateUnusedWhilePending : Bool32) -> Self {
22455		self.descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending;
22456		self
22457	}
22458
22459	pub fn descriptorBindingPartiallyBound(mut self, descriptorBindingPartiallyBound : Bool32) -> Self {
22460		self.descriptorBindingPartiallyBound = descriptorBindingPartiallyBound;
22461		self
22462	}
22463
22464	pub fn descriptorBindingVariableDescriptorCount(mut self, descriptorBindingVariableDescriptorCount : Bool32) -> Self {
22465		self.descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount;
22466		self
22467	}
22468
22469	pub fn runtimeDescriptorArray(mut self, runtimeDescriptorArray : Bool32) -> Self {
22470		self.runtimeDescriptorArray = runtimeDescriptorArray;
22471		self
22472	}
22473
22474	pub fn samplerFilterMinmax(mut self, samplerFilterMinmax : Bool32) -> Self {
22475		self.samplerFilterMinmax = samplerFilterMinmax;
22476		self
22477	}
22478
22479	pub fn scalarBlockLayout(mut self, scalarBlockLayout : Bool32) -> Self {
22480		self.scalarBlockLayout = scalarBlockLayout;
22481		self
22482	}
22483
22484	pub fn imagelessFramebuffer(mut self, imagelessFramebuffer : Bool32) -> Self {
22485		self.imagelessFramebuffer = imagelessFramebuffer;
22486		self
22487	}
22488
22489	pub fn uniformBufferStandardLayout(mut self, uniformBufferStandardLayout : Bool32) -> Self {
22490		self.uniformBufferStandardLayout = uniformBufferStandardLayout;
22491		self
22492	}
22493
22494	pub fn shaderSubgroupExtendedTypes(mut self, shaderSubgroupExtendedTypes : Bool32) -> Self {
22495		self.shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes;
22496		self
22497	}
22498
22499	pub fn separateDepthStencilLayouts(mut self, separateDepthStencilLayouts : Bool32) -> Self {
22500		self.separateDepthStencilLayouts = separateDepthStencilLayouts;
22501		self
22502	}
22503
22504	pub fn hostQueryReset(mut self, hostQueryReset : Bool32) -> Self {
22505		self.hostQueryReset = hostQueryReset;
22506		self
22507	}
22508
22509	pub fn timelineSemaphore(mut self, timelineSemaphore : Bool32) -> Self {
22510		self.timelineSemaphore = timelineSemaphore;
22511		self
22512	}
22513
22514	pub fn bufferDeviceAddress(mut self, bufferDeviceAddress : Bool32) -> Self {
22515		self.bufferDeviceAddress = bufferDeviceAddress;
22516		self
22517	}
22518
22519	pub fn bufferDeviceAddressCaptureReplay(mut self, bufferDeviceAddressCaptureReplay : Bool32) -> Self {
22520		self.bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay;
22521		self
22522	}
22523
22524	pub fn bufferDeviceAddressMultiDevice(mut self, bufferDeviceAddressMultiDevice : Bool32) -> Self {
22525		self.bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice;
22526		self
22527	}
22528
22529	pub fn vulkanMemoryModel(mut self, vulkanMemoryModel : Bool32) -> Self {
22530		self.vulkanMemoryModel = vulkanMemoryModel;
22531		self
22532	}
22533
22534	pub fn vulkanMemoryModelDeviceScope(mut self, vulkanMemoryModelDeviceScope : Bool32) -> Self {
22535		self.vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope;
22536		self
22537	}
22538
22539	pub fn vulkanMemoryModelAvailabilityVisibilityChains(mut self, vulkanMemoryModelAvailabilityVisibilityChains : Bool32) -> Self {
22540		self.vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains;
22541		self
22542	}
22543
22544	pub fn shaderOutputViewportIndex(mut self, shaderOutputViewportIndex : Bool32) -> Self {
22545		self.shaderOutputViewportIndex = shaderOutputViewportIndex;
22546		self
22547	}
22548
22549	pub fn shaderOutputLayer(mut self, shaderOutputLayer : Bool32) -> Self {
22550		self.shaderOutputLayer = shaderOutputLayer;
22551		self
22552	}
22553
22554	pub fn subgroupBroadcastDynamicId(mut self, subgroupBroadcastDynamicId : Bool32) -> Self {
22555		self.subgroupBroadcastDynamicId = subgroupBroadcastDynamicId;
22556		self
22557	}
22558
22559}
22560
22561impl ConformanceVersion {
22562
22563	pub fn new() -> Self {
22564		 Self::default()
22565	}
22566
22567	pub fn major(mut self, major : u8) -> Self {
22568		self.major = major;
22569		self
22570	}
22571
22572	pub fn minor(mut self, minor : u8) -> Self {
22573		self.minor = minor;
22574		self
22575	}
22576
22577	pub fn subminor(mut self, subminor : u8) -> Self {
22578		self.subminor = subminor;
22579		self
22580	}
22581
22582	pub fn patch(mut self, patch : u8) -> Self {
22583		self.patch = patch;
22584		self
22585	}
22586
22587}
22588
22589impl PhysicalDeviceVulkan12Properties {
22590
22591	pub fn new() -> Self {
22592		 Self::default()
22593	}
22594
22595	pub fn sType(mut self, sType : StructureType) -> Self {
22596		self.sType = sType;
22597		self
22598	}
22599
22600	pub fn pNext(mut self, pNext : *mut void) -> Self {
22601		self.pNext = pNext;
22602		self
22603	}
22604
22605	pub fn driverID(mut self, driverID : DriverId) -> Self {
22606		self.driverID = driverID;
22607		self
22608	}
22609
22610	pub fn driverName(mut self, driverName : [i8;MAX_DRIVER_NAME_SIZE]) -> Self {
22611		self.driverName = driverName;
22612		self
22613	}
22614
22615	pub fn driverInfo(mut self, driverInfo : [i8;MAX_DRIVER_INFO_SIZE]) -> Self {
22616		self.driverInfo = driverInfo;
22617		self
22618	}
22619
22620	pub fn conformanceVersion(mut self, conformanceVersion : ConformanceVersion) -> Self {
22621		self.conformanceVersion = conformanceVersion;
22622		self
22623	}
22624
22625	pub fn denormBehaviorIndependence(mut self, denormBehaviorIndependence : ShaderFloatControlsIndependence) -> Self {
22626		self.denormBehaviorIndependence = denormBehaviorIndependence;
22627		self
22628	}
22629
22630	pub fn roundingModeIndependence(mut self, roundingModeIndependence : ShaderFloatControlsIndependence) -> Self {
22631		self.roundingModeIndependence = roundingModeIndependence;
22632		self
22633	}
22634
22635	pub fn shaderSignedZeroInfNanPreserveFloat16(mut self, shaderSignedZeroInfNanPreserveFloat16 : Bool32) -> Self {
22636		self.shaderSignedZeroInfNanPreserveFloat16 = shaderSignedZeroInfNanPreserveFloat16;
22637		self
22638	}
22639
22640	pub fn shaderSignedZeroInfNanPreserveFloat32(mut self, shaderSignedZeroInfNanPreserveFloat32 : Bool32) -> Self {
22641		self.shaderSignedZeroInfNanPreserveFloat32 = shaderSignedZeroInfNanPreserveFloat32;
22642		self
22643	}
22644
22645	pub fn shaderSignedZeroInfNanPreserveFloat64(mut self, shaderSignedZeroInfNanPreserveFloat64 : Bool32) -> Self {
22646		self.shaderSignedZeroInfNanPreserveFloat64 = shaderSignedZeroInfNanPreserveFloat64;
22647		self
22648	}
22649
22650	pub fn shaderDenormPreserveFloat16(mut self, shaderDenormPreserveFloat16 : Bool32) -> Self {
22651		self.shaderDenormPreserveFloat16 = shaderDenormPreserveFloat16;
22652		self
22653	}
22654
22655	pub fn shaderDenormPreserveFloat32(mut self, shaderDenormPreserveFloat32 : Bool32) -> Self {
22656		self.shaderDenormPreserveFloat32 = shaderDenormPreserveFloat32;
22657		self
22658	}
22659
22660	pub fn shaderDenormPreserveFloat64(mut self, shaderDenormPreserveFloat64 : Bool32) -> Self {
22661		self.shaderDenormPreserveFloat64 = shaderDenormPreserveFloat64;
22662		self
22663	}
22664
22665	pub fn shaderDenormFlushToZeroFloat16(mut self, shaderDenormFlushToZeroFloat16 : Bool32) -> Self {
22666		self.shaderDenormFlushToZeroFloat16 = shaderDenormFlushToZeroFloat16;
22667		self
22668	}
22669
22670	pub fn shaderDenormFlushToZeroFloat32(mut self, shaderDenormFlushToZeroFloat32 : Bool32) -> Self {
22671		self.shaderDenormFlushToZeroFloat32 = shaderDenormFlushToZeroFloat32;
22672		self
22673	}
22674
22675	pub fn shaderDenormFlushToZeroFloat64(mut self, shaderDenormFlushToZeroFloat64 : Bool32) -> Self {
22676		self.shaderDenormFlushToZeroFloat64 = shaderDenormFlushToZeroFloat64;
22677		self
22678	}
22679
22680	pub fn shaderRoundingModeRTEFloat16(mut self, shaderRoundingModeRTEFloat16 : Bool32) -> Self {
22681		self.shaderRoundingModeRTEFloat16 = shaderRoundingModeRTEFloat16;
22682		self
22683	}
22684
22685	pub fn shaderRoundingModeRTEFloat32(mut self, shaderRoundingModeRTEFloat32 : Bool32) -> Self {
22686		self.shaderRoundingModeRTEFloat32 = shaderRoundingModeRTEFloat32;
22687		self
22688	}
22689
22690	pub fn shaderRoundingModeRTEFloat64(mut self, shaderRoundingModeRTEFloat64 : Bool32) -> Self {
22691		self.shaderRoundingModeRTEFloat64 = shaderRoundingModeRTEFloat64;
22692		self
22693	}
22694
22695	pub fn shaderRoundingModeRTZFloat16(mut self, shaderRoundingModeRTZFloat16 : Bool32) -> Self {
22696		self.shaderRoundingModeRTZFloat16 = shaderRoundingModeRTZFloat16;
22697		self
22698	}
22699
22700	pub fn shaderRoundingModeRTZFloat32(mut self, shaderRoundingModeRTZFloat32 : Bool32) -> Self {
22701		self.shaderRoundingModeRTZFloat32 = shaderRoundingModeRTZFloat32;
22702		self
22703	}
22704
22705	pub fn shaderRoundingModeRTZFloat64(mut self, shaderRoundingModeRTZFloat64 : Bool32) -> Self {
22706		self.shaderRoundingModeRTZFloat64 = shaderRoundingModeRTZFloat64;
22707		self
22708	}
22709
22710	pub fn maxUpdateAfterBindDescriptorsInAllPools(mut self, maxUpdateAfterBindDescriptorsInAllPools : u32) -> Self {
22711		self.maxUpdateAfterBindDescriptorsInAllPools = maxUpdateAfterBindDescriptorsInAllPools;
22712		self
22713	}
22714
22715	pub fn shaderUniformBufferArrayNonUniformIndexingNative(mut self, shaderUniformBufferArrayNonUniformIndexingNative : Bool32) -> Self {
22716		self.shaderUniformBufferArrayNonUniformIndexingNative = shaderUniformBufferArrayNonUniformIndexingNative;
22717		self
22718	}
22719
22720	pub fn shaderSampledImageArrayNonUniformIndexingNative(mut self, shaderSampledImageArrayNonUniformIndexingNative : Bool32) -> Self {
22721		self.shaderSampledImageArrayNonUniformIndexingNative = shaderSampledImageArrayNonUniformIndexingNative;
22722		self
22723	}
22724
22725	pub fn shaderStorageBufferArrayNonUniformIndexingNative(mut self, shaderStorageBufferArrayNonUniformIndexingNative : Bool32) -> Self {
22726		self.shaderStorageBufferArrayNonUniformIndexingNative = shaderStorageBufferArrayNonUniformIndexingNative;
22727		self
22728	}
22729
22730	pub fn shaderStorageImageArrayNonUniformIndexingNative(mut self, shaderStorageImageArrayNonUniformIndexingNative : Bool32) -> Self {
22731		self.shaderStorageImageArrayNonUniformIndexingNative = shaderStorageImageArrayNonUniformIndexingNative;
22732		self
22733	}
22734
22735	pub fn shaderInputAttachmentArrayNonUniformIndexingNative(mut self, shaderInputAttachmentArrayNonUniformIndexingNative : Bool32) -> Self {
22736		self.shaderInputAttachmentArrayNonUniformIndexingNative = shaderInputAttachmentArrayNonUniformIndexingNative;
22737		self
22738	}
22739
22740	pub fn robustBufferAccessUpdateAfterBind(mut self, robustBufferAccessUpdateAfterBind : Bool32) -> Self {
22741		self.robustBufferAccessUpdateAfterBind = robustBufferAccessUpdateAfterBind;
22742		self
22743	}
22744
22745	pub fn quadDivergentImplicitLod(mut self, quadDivergentImplicitLod : Bool32) -> Self {
22746		self.quadDivergentImplicitLod = quadDivergentImplicitLod;
22747		self
22748	}
22749
22750	pub fn maxPerStageDescriptorUpdateAfterBindSamplers(mut self, maxPerStageDescriptorUpdateAfterBindSamplers : u32) -> Self {
22751		self.maxPerStageDescriptorUpdateAfterBindSamplers = maxPerStageDescriptorUpdateAfterBindSamplers;
22752		self
22753	}
22754
22755	pub fn maxPerStageDescriptorUpdateAfterBindUniformBuffers(mut self, maxPerStageDescriptorUpdateAfterBindUniformBuffers : u32) -> Self {
22756		self.maxPerStageDescriptorUpdateAfterBindUniformBuffers = maxPerStageDescriptorUpdateAfterBindUniformBuffers;
22757		self
22758	}
22759
22760	pub fn maxPerStageDescriptorUpdateAfterBindStorageBuffers(mut self, maxPerStageDescriptorUpdateAfterBindStorageBuffers : u32) -> Self {
22761		self.maxPerStageDescriptorUpdateAfterBindStorageBuffers = maxPerStageDescriptorUpdateAfterBindStorageBuffers;
22762		self
22763	}
22764
22765	pub fn maxPerStageDescriptorUpdateAfterBindSampledImages(mut self, maxPerStageDescriptorUpdateAfterBindSampledImages : u32) -> Self {
22766		self.maxPerStageDescriptorUpdateAfterBindSampledImages = maxPerStageDescriptorUpdateAfterBindSampledImages;
22767		self
22768	}
22769
22770	pub fn maxPerStageDescriptorUpdateAfterBindStorageImages(mut self, maxPerStageDescriptorUpdateAfterBindStorageImages : u32) -> Self {
22771		self.maxPerStageDescriptorUpdateAfterBindStorageImages = maxPerStageDescriptorUpdateAfterBindStorageImages;
22772		self
22773	}
22774
22775	pub fn maxPerStageDescriptorUpdateAfterBindInputAttachments(mut self, maxPerStageDescriptorUpdateAfterBindInputAttachments : u32) -> Self {
22776		self.maxPerStageDescriptorUpdateAfterBindInputAttachments = maxPerStageDescriptorUpdateAfterBindInputAttachments;
22777		self
22778	}
22779
22780	pub fn maxPerStageUpdateAfterBindResources(mut self, maxPerStageUpdateAfterBindResources : u32) -> Self {
22781		self.maxPerStageUpdateAfterBindResources = maxPerStageUpdateAfterBindResources;
22782		self
22783	}
22784
22785	pub fn maxDescriptorSetUpdateAfterBindSamplers(mut self, maxDescriptorSetUpdateAfterBindSamplers : u32) -> Self {
22786		self.maxDescriptorSetUpdateAfterBindSamplers = maxDescriptorSetUpdateAfterBindSamplers;
22787		self
22788	}
22789
22790	pub fn maxDescriptorSetUpdateAfterBindUniformBuffers(mut self, maxDescriptorSetUpdateAfterBindUniformBuffers : u32) -> Self {
22791		self.maxDescriptorSetUpdateAfterBindUniformBuffers = maxDescriptorSetUpdateAfterBindUniformBuffers;
22792		self
22793	}
22794
22795	pub fn maxDescriptorSetUpdateAfterBindUniformBuffersDynamic(mut self, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic : u32) -> Self {
22796		self.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
22797		self
22798	}
22799
22800	pub fn maxDescriptorSetUpdateAfterBindStorageBuffers(mut self, maxDescriptorSetUpdateAfterBindStorageBuffers : u32) -> Self {
22801		self.maxDescriptorSetUpdateAfterBindStorageBuffers = maxDescriptorSetUpdateAfterBindStorageBuffers;
22802		self
22803	}
22804
22805	pub fn maxDescriptorSetUpdateAfterBindStorageBuffersDynamic(mut self, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic : u32) -> Self {
22806		self.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
22807		self
22808	}
22809
22810	pub fn maxDescriptorSetUpdateAfterBindSampledImages(mut self, maxDescriptorSetUpdateAfterBindSampledImages : u32) -> Self {
22811		self.maxDescriptorSetUpdateAfterBindSampledImages = maxDescriptorSetUpdateAfterBindSampledImages;
22812		self
22813	}
22814
22815	pub fn maxDescriptorSetUpdateAfterBindStorageImages(mut self, maxDescriptorSetUpdateAfterBindStorageImages : u32) -> Self {
22816		self.maxDescriptorSetUpdateAfterBindStorageImages = maxDescriptorSetUpdateAfterBindStorageImages;
22817		self
22818	}
22819
22820	pub fn maxDescriptorSetUpdateAfterBindInputAttachments(mut self, maxDescriptorSetUpdateAfterBindInputAttachments : u32) -> Self {
22821		self.maxDescriptorSetUpdateAfterBindInputAttachments = maxDescriptorSetUpdateAfterBindInputAttachments;
22822		self
22823	}
22824
22825	pub fn supportedDepthResolveModes(mut self, supportedDepthResolveModes : ResolveModeFlags) -> Self {
22826		self.supportedDepthResolveModes = supportedDepthResolveModes;
22827		self
22828	}
22829
22830	pub fn supportedStencilResolveModes(mut self, supportedStencilResolveModes : ResolveModeFlags) -> Self {
22831		self.supportedStencilResolveModes = supportedStencilResolveModes;
22832		self
22833	}
22834
22835	pub fn independentResolveNone(mut self, independentResolveNone : Bool32) -> Self {
22836		self.independentResolveNone = independentResolveNone;
22837		self
22838	}
22839
22840	pub fn independentResolve(mut self, independentResolve : Bool32) -> Self {
22841		self.independentResolve = independentResolve;
22842		self
22843	}
22844
22845	pub fn filterMinmaxSingleComponentFormats(mut self, filterMinmaxSingleComponentFormats : Bool32) -> Self {
22846		self.filterMinmaxSingleComponentFormats = filterMinmaxSingleComponentFormats;
22847		self
22848	}
22849
22850	pub fn filterMinmaxImageComponentMapping(mut self, filterMinmaxImageComponentMapping : Bool32) -> Self {
22851		self.filterMinmaxImageComponentMapping = filterMinmaxImageComponentMapping;
22852		self
22853	}
22854
22855	pub fn maxTimelineSemaphoreValueDifference(mut self, maxTimelineSemaphoreValueDifference : u64) -> Self {
22856		self.maxTimelineSemaphoreValueDifference = maxTimelineSemaphoreValueDifference;
22857		self
22858	}
22859
22860	pub fn framebufferIntegerColorSampleCounts(mut self, framebufferIntegerColorSampleCounts : SampleCountFlags) -> Self {
22861		self.framebufferIntegerColorSampleCounts = framebufferIntegerColorSampleCounts;
22862		self
22863	}
22864
22865}
22866
22867impl ImageFormatListCreateInfo {
22868
22869	pub fn new() -> Self {
22870		 Self::default()
22871	}
22872
22873	pub fn sType(mut self, sType : StructureType) -> Self {
22874		self.sType = sType;
22875		self
22876	}
22877
22878	pub fn pNext(mut self, pNext : *const void) -> Self {
22879		self.pNext = pNext;
22880		self
22881	}
22882
22883	pub fn viewFormatCount(mut self, viewFormatCount : u32) -> Self {
22884		self.viewFormatCount = viewFormatCount;
22885		self
22886	}
22887
22888	pub fn pViewFormats(mut self, pViewFormats : *const Format) -> Self {
22889		self.pViewFormats = pViewFormats;
22890		self
22891	}
22892
22893}
22894
22895impl AttachmentDescription2 {
22896
22897	pub fn new() -> Self {
22898		 Self::default()
22899	}
22900
22901	pub fn sType(mut self, sType : StructureType) -> Self {
22902		self.sType = sType;
22903		self
22904	}
22905
22906	pub fn pNext(mut self, pNext : *const void) -> Self {
22907		self.pNext = pNext;
22908		self
22909	}
22910
22911	pub fn flags(mut self, flags : AttachmentDescriptionFlags) -> Self {
22912		self.flags = flags;
22913		self
22914	}
22915
22916	pub fn format(mut self, format : Format) -> Self {
22917		self.format = format;
22918		self
22919	}
22920
22921	pub fn samples(mut self, samples : SampleCountFlagBits) -> Self {
22922		self.samples = samples;
22923		self
22924	}
22925
22926	pub fn loadOp(mut self, loadOp : AttachmentLoadOp) -> Self {
22927		self.loadOp = loadOp;
22928		self
22929	}
22930
22931	pub fn storeOp(mut self, storeOp : AttachmentStoreOp) -> Self {
22932		self.storeOp = storeOp;
22933		self
22934	}
22935
22936	pub fn stencilLoadOp(mut self, stencilLoadOp : AttachmentLoadOp) -> Self {
22937		self.stencilLoadOp = stencilLoadOp;
22938		self
22939	}
22940
22941	pub fn stencilStoreOp(mut self, stencilStoreOp : AttachmentStoreOp) -> Self {
22942		self.stencilStoreOp = stencilStoreOp;
22943		self
22944	}
22945
22946	pub fn initialLayout(mut self, initialLayout : ImageLayout) -> Self {
22947		self.initialLayout = initialLayout;
22948		self
22949	}
22950
22951	pub fn finalLayout(mut self, finalLayout : ImageLayout) -> Self {
22952		self.finalLayout = finalLayout;
22953		self
22954	}
22955
22956}
22957
22958impl AttachmentReference2 {
22959
22960	pub fn new() -> Self {
22961		 Self::default()
22962	}
22963
22964	pub fn sType(mut self, sType : StructureType) -> Self {
22965		self.sType = sType;
22966		self
22967	}
22968
22969	pub fn pNext(mut self, pNext : *const void) -> Self {
22970		self.pNext = pNext;
22971		self
22972	}
22973
22974	pub fn attachment(mut self, attachment : u32) -> Self {
22975		self.attachment = attachment;
22976		self
22977	}
22978
22979	pub fn layout(mut self, layout : ImageLayout) -> Self {
22980		self.layout = layout;
22981		self
22982	}
22983
22984	pub fn aspectMask(mut self, aspectMask : ImageAspectFlags) -> Self {
22985		self.aspectMask = aspectMask;
22986		self
22987	}
22988
22989}
22990
22991impl SubpassDescription2 {
22992
22993	pub fn new() -> Self {
22994		 Self::default()
22995	}
22996
22997	pub fn sType(mut self, sType : StructureType) -> Self {
22998		self.sType = sType;
22999		self
23000	}
23001
23002	pub fn pNext(mut self, pNext : *const void) -> Self {
23003		self.pNext = pNext;
23004		self
23005	}
23006
23007	pub fn flags(mut self, flags : SubpassDescriptionFlags) -> Self {
23008		self.flags = flags;
23009		self
23010	}
23011
23012	pub fn pipelineBindPoint(mut self, pipelineBindPoint : PipelineBindPoint) -> Self {
23013		self.pipelineBindPoint = pipelineBindPoint;
23014		self
23015	}
23016
23017	pub fn viewMask(mut self, viewMask : u32) -> Self {
23018		self.viewMask = viewMask;
23019		self
23020	}
23021
23022	pub fn inputAttachmentCount(mut self, inputAttachmentCount : u32) -> Self {
23023		self.inputAttachmentCount = inputAttachmentCount;
23024		self
23025	}
23026
23027	pub fn pInputAttachments(mut self, pInputAttachments : *const AttachmentReference2) -> Self {
23028		self.pInputAttachments = pInputAttachments;
23029		self
23030	}
23031
23032	pub fn colorAttachmentCount(mut self, colorAttachmentCount : u32) -> Self {
23033		self.colorAttachmentCount = colorAttachmentCount;
23034		self
23035	}
23036
23037	pub fn pColorAttachments(mut self, pColorAttachments : *const AttachmentReference2) -> Self {
23038		self.pColorAttachments = pColorAttachments;
23039		self
23040	}
23041
23042	pub fn pResolveAttachments(mut self, pResolveAttachments : *const AttachmentReference2) -> Self {
23043		self.pResolveAttachments = pResolveAttachments;
23044		self
23045	}
23046
23047	pub fn pDepthStencilAttachment(mut self, pDepthStencilAttachment : *const AttachmentReference2) -> Self {
23048		self.pDepthStencilAttachment = pDepthStencilAttachment;
23049		self
23050	}
23051
23052	pub fn preserveAttachmentCount(mut self, preserveAttachmentCount : u32) -> Self {
23053		self.preserveAttachmentCount = preserveAttachmentCount;
23054		self
23055	}
23056
23057	pub fn pPreserveAttachments(mut self, pPreserveAttachments : *const u32) -> Self {
23058		self.pPreserveAttachments = pPreserveAttachments;
23059		self
23060	}
23061
23062}
23063
23064impl SubpassDependency2 {
23065
23066	pub fn new() -> Self {
23067		 Self::default()
23068	}
23069
23070	pub fn sType(mut self, sType : StructureType) -> Self {
23071		self.sType = sType;
23072		self
23073	}
23074
23075	pub fn pNext(mut self, pNext : *const void) -> Self {
23076		self.pNext = pNext;
23077		self
23078	}
23079
23080	pub fn srcSubpass(mut self, srcSubpass : u32) -> Self {
23081		self.srcSubpass = srcSubpass;
23082		self
23083	}
23084
23085	pub fn dstSubpass(mut self, dstSubpass : u32) -> Self {
23086		self.dstSubpass = dstSubpass;
23087		self
23088	}
23089
23090	pub fn srcStageMask(mut self, srcStageMask : PipelineStageFlags) -> Self {
23091		self.srcStageMask = srcStageMask;
23092		self
23093	}
23094
23095	pub fn dstStageMask(mut self, dstStageMask : PipelineStageFlags) -> Self {
23096		self.dstStageMask = dstStageMask;
23097		self
23098	}
23099
23100	pub fn srcAccessMask(mut self, srcAccessMask : AccessFlags) -> Self {
23101		self.srcAccessMask = srcAccessMask;
23102		self
23103	}
23104
23105	pub fn dstAccessMask(mut self, dstAccessMask : AccessFlags) -> Self {
23106		self.dstAccessMask = dstAccessMask;
23107		self
23108	}
23109
23110	pub fn dependencyFlags(mut self, dependencyFlags : DependencyFlags) -> Self {
23111		self.dependencyFlags = dependencyFlags;
23112		self
23113	}
23114
23115	pub fn viewOffset(mut self, viewOffset : i32) -> Self {
23116		self.viewOffset = viewOffset;
23117		self
23118	}
23119
23120}
23121
23122impl RenderPassCreateInfo2 {
23123
23124	pub fn new() -> Self {
23125		 Self::default()
23126	}
23127
23128	pub fn sType(mut self, sType : StructureType) -> Self {
23129		self.sType = sType;
23130		self
23131	}
23132
23133	pub fn pNext(mut self, pNext : *const void) -> Self {
23134		self.pNext = pNext;
23135		self
23136	}
23137
23138	pub fn flags(mut self, flags : RenderPassCreateFlags) -> Self {
23139		self.flags = flags;
23140		self
23141	}
23142
23143	pub fn attachmentCount(mut self, attachmentCount : u32) -> Self {
23144		self.attachmentCount = attachmentCount;
23145		self
23146	}
23147
23148	pub fn pAttachments(mut self, pAttachments : *const AttachmentDescription2) -> Self {
23149		self.pAttachments = pAttachments;
23150		self
23151	}
23152
23153	pub fn subpassCount(mut self, subpassCount : u32) -> Self {
23154		self.subpassCount = subpassCount;
23155		self
23156	}
23157
23158	pub fn pSubpasses(mut self, pSubpasses : *const SubpassDescription2) -> Self {
23159		self.pSubpasses = pSubpasses;
23160		self
23161	}
23162
23163	pub fn dependencyCount(mut self, dependencyCount : u32) -> Self {
23164		self.dependencyCount = dependencyCount;
23165		self
23166	}
23167
23168	pub fn pDependencies(mut self, pDependencies : *const SubpassDependency2) -> Self {
23169		self.pDependencies = pDependencies;
23170		self
23171	}
23172
23173	pub fn correlatedViewMaskCount(mut self, correlatedViewMaskCount : u32) -> Self {
23174		self.correlatedViewMaskCount = correlatedViewMaskCount;
23175		self
23176	}
23177
23178	pub fn pCorrelatedViewMasks(mut self, pCorrelatedViewMasks : *const u32) -> Self {
23179		self.pCorrelatedViewMasks = pCorrelatedViewMasks;
23180		self
23181	}
23182
23183}
23184
23185impl SubpassBeginInfo {
23186
23187	pub fn new() -> Self {
23188		 Self::default()
23189	}
23190
23191	pub fn sType(mut self, sType : StructureType) -> Self {
23192		self.sType = sType;
23193		self
23194	}
23195
23196	pub fn pNext(mut self, pNext : *const void) -> Self {
23197		self.pNext = pNext;
23198		self
23199	}
23200
23201	pub fn contents(mut self, contents : SubpassContents) -> Self {
23202		self.contents = contents;
23203		self
23204	}
23205
23206}
23207
23208impl SubpassEndInfo {
23209
23210	pub fn new() -> Self {
23211		 Self::default()
23212	}
23213
23214	pub fn sType(mut self, sType : StructureType) -> Self {
23215		self.sType = sType;
23216		self
23217	}
23218
23219	pub fn pNext(mut self, pNext : *const void) -> Self {
23220		self.pNext = pNext;
23221		self
23222	}
23223
23224}
23225
23226impl PhysicalDevice8BitStorageFeatures {
23227
23228	pub fn new() -> Self {
23229		 Self::default()
23230	}
23231
23232	pub fn sType(mut self, sType : StructureType) -> Self {
23233		self.sType = sType;
23234		self
23235	}
23236
23237	pub fn pNext(mut self, pNext : *mut void) -> Self {
23238		self.pNext = pNext;
23239		self
23240	}
23241
23242	pub fn storageBuffer8BitAccess(mut self, storageBuffer8BitAccess : Bool32) -> Self {
23243		self.storageBuffer8BitAccess = storageBuffer8BitAccess;
23244		self
23245	}
23246
23247	pub fn uniformAndStorageBuffer8BitAccess(mut self, uniformAndStorageBuffer8BitAccess : Bool32) -> Self {
23248		self.uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess;
23249		self
23250	}
23251
23252	pub fn storagePushConstant8(mut self, storagePushConstant8 : Bool32) -> Self {
23253		self.storagePushConstant8 = storagePushConstant8;
23254		self
23255	}
23256
23257}
23258
23259impl PhysicalDeviceDriverProperties {
23260
23261	pub fn new() -> Self {
23262		 Self::default()
23263	}
23264
23265	pub fn sType(mut self, sType : StructureType) -> Self {
23266		self.sType = sType;
23267		self
23268	}
23269
23270	pub fn pNext(mut self, pNext : *mut void) -> Self {
23271		self.pNext = pNext;
23272		self
23273	}
23274
23275	pub fn driverID(mut self, driverID : DriverId) -> Self {
23276		self.driverID = driverID;
23277		self
23278	}
23279
23280	pub fn driverName(mut self, driverName : [i8;MAX_DRIVER_NAME_SIZE]) -> Self {
23281		self.driverName = driverName;
23282		self
23283	}
23284
23285	pub fn driverInfo(mut self, driverInfo : [i8;MAX_DRIVER_INFO_SIZE]) -> Self {
23286		self.driverInfo = driverInfo;
23287		self
23288	}
23289
23290	pub fn conformanceVersion(mut self, conformanceVersion : ConformanceVersion) -> Self {
23291		self.conformanceVersion = conformanceVersion;
23292		self
23293	}
23294
23295}
23296
23297impl PhysicalDeviceShaderAtomicInt64Features {
23298
23299	pub fn new() -> Self {
23300		 Self::default()
23301	}
23302
23303	pub fn sType(mut self, sType : StructureType) -> Self {
23304		self.sType = sType;
23305		self
23306	}
23307
23308	pub fn pNext(mut self, pNext : *mut void) -> Self {
23309		self.pNext = pNext;
23310		self
23311	}
23312
23313	pub fn shaderBufferInt64Atomics(mut self, shaderBufferInt64Atomics : Bool32) -> Self {
23314		self.shaderBufferInt64Atomics = shaderBufferInt64Atomics;
23315		self
23316	}
23317
23318	pub fn shaderSharedInt64Atomics(mut self, shaderSharedInt64Atomics : Bool32) -> Self {
23319		self.shaderSharedInt64Atomics = shaderSharedInt64Atomics;
23320		self
23321	}
23322
23323}
23324
23325impl PhysicalDeviceShaderFloat16Int8Features {
23326
23327	pub fn new() -> Self {
23328		 Self::default()
23329	}
23330
23331	pub fn sType(mut self, sType : StructureType) -> Self {
23332		self.sType = sType;
23333		self
23334	}
23335
23336	pub fn pNext(mut self, pNext : *mut void) -> Self {
23337		self.pNext = pNext;
23338		self
23339	}
23340
23341	pub fn shaderFloat16(mut self, shaderFloat16 : Bool32) -> Self {
23342		self.shaderFloat16 = shaderFloat16;
23343		self
23344	}
23345
23346	pub fn shaderInt8(mut self, shaderInt8 : Bool32) -> Self {
23347		self.shaderInt8 = shaderInt8;
23348		self
23349	}
23350
23351}
23352
23353impl PhysicalDeviceFloatControlsProperties {
23354
23355	pub fn new() -> Self {
23356		 Self::default()
23357	}
23358
23359	pub fn sType(mut self, sType : StructureType) -> Self {
23360		self.sType = sType;
23361		self
23362	}
23363
23364	pub fn pNext(mut self, pNext : *mut void) -> Self {
23365		self.pNext = pNext;
23366		self
23367	}
23368
23369	pub fn denormBehaviorIndependence(mut self, denormBehaviorIndependence : ShaderFloatControlsIndependence) -> Self {
23370		self.denormBehaviorIndependence = denormBehaviorIndependence;
23371		self
23372	}
23373
23374	pub fn roundingModeIndependence(mut self, roundingModeIndependence : ShaderFloatControlsIndependence) -> Self {
23375		self.roundingModeIndependence = roundingModeIndependence;
23376		self
23377	}
23378
23379	pub fn shaderSignedZeroInfNanPreserveFloat16(mut self, shaderSignedZeroInfNanPreserveFloat16 : Bool32) -> Self {
23380		self.shaderSignedZeroInfNanPreserveFloat16 = shaderSignedZeroInfNanPreserveFloat16;
23381		self
23382	}
23383
23384	pub fn shaderSignedZeroInfNanPreserveFloat32(mut self, shaderSignedZeroInfNanPreserveFloat32 : Bool32) -> Self {
23385		self.shaderSignedZeroInfNanPreserveFloat32 = shaderSignedZeroInfNanPreserveFloat32;
23386		self
23387	}
23388
23389	pub fn shaderSignedZeroInfNanPreserveFloat64(mut self, shaderSignedZeroInfNanPreserveFloat64 : Bool32) -> Self {
23390		self.shaderSignedZeroInfNanPreserveFloat64 = shaderSignedZeroInfNanPreserveFloat64;
23391		self
23392	}
23393
23394	pub fn shaderDenormPreserveFloat16(mut self, shaderDenormPreserveFloat16 : Bool32) -> Self {
23395		self.shaderDenormPreserveFloat16 = shaderDenormPreserveFloat16;
23396		self
23397	}
23398
23399	pub fn shaderDenormPreserveFloat32(mut self, shaderDenormPreserveFloat32 : Bool32) -> Self {
23400		self.shaderDenormPreserveFloat32 = shaderDenormPreserveFloat32;
23401		self
23402	}
23403
23404	pub fn shaderDenormPreserveFloat64(mut self, shaderDenormPreserveFloat64 : Bool32) -> Self {
23405		self.shaderDenormPreserveFloat64 = shaderDenormPreserveFloat64;
23406		self
23407	}
23408
23409	pub fn shaderDenormFlushToZeroFloat16(mut self, shaderDenormFlushToZeroFloat16 : Bool32) -> Self {
23410		self.shaderDenormFlushToZeroFloat16 = shaderDenormFlushToZeroFloat16;
23411		self
23412	}
23413
23414	pub fn shaderDenormFlushToZeroFloat32(mut self, shaderDenormFlushToZeroFloat32 : Bool32) -> Self {
23415		self.shaderDenormFlushToZeroFloat32 = shaderDenormFlushToZeroFloat32;
23416		self
23417	}
23418
23419	pub fn shaderDenormFlushToZeroFloat64(mut self, shaderDenormFlushToZeroFloat64 : Bool32) -> Self {
23420		self.shaderDenormFlushToZeroFloat64 = shaderDenormFlushToZeroFloat64;
23421		self
23422	}
23423
23424	pub fn shaderRoundingModeRTEFloat16(mut self, shaderRoundingModeRTEFloat16 : Bool32) -> Self {
23425		self.shaderRoundingModeRTEFloat16 = shaderRoundingModeRTEFloat16;
23426		self
23427	}
23428
23429	pub fn shaderRoundingModeRTEFloat32(mut self, shaderRoundingModeRTEFloat32 : Bool32) -> Self {
23430		self.shaderRoundingModeRTEFloat32 = shaderRoundingModeRTEFloat32;
23431		self
23432	}
23433
23434	pub fn shaderRoundingModeRTEFloat64(mut self, shaderRoundingModeRTEFloat64 : Bool32) -> Self {
23435		self.shaderRoundingModeRTEFloat64 = shaderRoundingModeRTEFloat64;
23436		self
23437	}
23438
23439	pub fn shaderRoundingModeRTZFloat16(mut self, shaderRoundingModeRTZFloat16 : Bool32) -> Self {
23440		self.shaderRoundingModeRTZFloat16 = shaderRoundingModeRTZFloat16;
23441		self
23442	}
23443
23444	pub fn shaderRoundingModeRTZFloat32(mut self, shaderRoundingModeRTZFloat32 : Bool32) -> Self {
23445		self.shaderRoundingModeRTZFloat32 = shaderRoundingModeRTZFloat32;
23446		self
23447	}
23448
23449	pub fn shaderRoundingModeRTZFloat64(mut self, shaderRoundingModeRTZFloat64 : Bool32) -> Self {
23450		self.shaderRoundingModeRTZFloat64 = shaderRoundingModeRTZFloat64;
23451		self
23452	}
23453
23454}
23455
23456impl DescriptorSetLayoutBindingFlagsCreateInfo {
23457
23458	pub fn new() -> Self {
23459		 Self::default()
23460	}
23461
23462	pub fn sType(mut self, sType : StructureType) -> Self {
23463		self.sType = sType;
23464		self
23465	}
23466
23467	pub fn pNext(mut self, pNext : *const void) -> Self {
23468		self.pNext = pNext;
23469		self
23470	}
23471
23472	pub fn bindingCount(mut self, bindingCount : u32) -> Self {
23473		self.bindingCount = bindingCount;
23474		self
23475	}
23476
23477	pub fn pBindingFlags(mut self, pBindingFlags : *const DescriptorBindingFlags) -> Self {
23478		self.pBindingFlags = pBindingFlags;
23479		self
23480	}
23481
23482}
23483
23484impl PhysicalDeviceDescriptorIndexingFeatures {
23485
23486	pub fn new() -> Self {
23487		 Self::default()
23488	}
23489
23490	pub fn sType(mut self, sType : StructureType) -> Self {
23491		self.sType = sType;
23492		self
23493	}
23494
23495	pub fn pNext(mut self, pNext : *mut void) -> Self {
23496		self.pNext = pNext;
23497		self
23498	}
23499
23500	pub fn shaderInputAttachmentArrayDynamicIndexing(mut self, shaderInputAttachmentArrayDynamicIndexing : Bool32) -> Self {
23501		self.shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing;
23502		self
23503	}
23504
23505	pub fn shaderUniformTexelBufferArrayDynamicIndexing(mut self, shaderUniformTexelBufferArrayDynamicIndexing : Bool32) -> Self {
23506		self.shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing;
23507		self
23508	}
23509
23510	pub fn shaderStorageTexelBufferArrayDynamicIndexing(mut self, shaderStorageTexelBufferArrayDynamicIndexing : Bool32) -> Self {
23511		self.shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing;
23512		self
23513	}
23514
23515	pub fn shaderUniformBufferArrayNonUniformIndexing(mut self, shaderUniformBufferArrayNonUniformIndexing : Bool32) -> Self {
23516		self.shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing;
23517		self
23518	}
23519
23520	pub fn shaderSampledImageArrayNonUniformIndexing(mut self, shaderSampledImageArrayNonUniformIndexing : Bool32) -> Self {
23521		self.shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing;
23522		self
23523	}
23524
23525	pub fn shaderStorageBufferArrayNonUniformIndexing(mut self, shaderStorageBufferArrayNonUniformIndexing : Bool32) -> Self {
23526		self.shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing;
23527		self
23528	}
23529
23530	pub fn shaderStorageImageArrayNonUniformIndexing(mut self, shaderStorageImageArrayNonUniformIndexing : Bool32) -> Self {
23531		self.shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing;
23532		self
23533	}
23534
23535	pub fn shaderInputAttachmentArrayNonUniformIndexing(mut self, shaderInputAttachmentArrayNonUniformIndexing : Bool32) -> Self {
23536		self.shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing;
23537		self
23538	}
23539
23540	pub fn shaderUniformTexelBufferArrayNonUniformIndexing(mut self, shaderUniformTexelBufferArrayNonUniformIndexing : Bool32) -> Self {
23541		self.shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing;
23542		self
23543	}
23544
23545	pub fn shaderStorageTexelBufferArrayNonUniformIndexing(mut self, shaderStorageTexelBufferArrayNonUniformIndexing : Bool32) -> Self {
23546		self.shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing;
23547		self
23548	}
23549
23550	pub fn descriptorBindingUniformBufferUpdateAfterBind(mut self, descriptorBindingUniformBufferUpdateAfterBind : Bool32) -> Self {
23551		self.descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind;
23552		self
23553	}
23554
23555	pub fn descriptorBindingSampledImageUpdateAfterBind(mut self, descriptorBindingSampledImageUpdateAfterBind : Bool32) -> Self {
23556		self.descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind;
23557		self
23558	}
23559
23560	pub fn descriptorBindingStorageImageUpdateAfterBind(mut self, descriptorBindingStorageImageUpdateAfterBind : Bool32) -> Self {
23561		self.descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind;
23562		self
23563	}
23564
23565	pub fn descriptorBindingStorageBufferUpdateAfterBind(mut self, descriptorBindingStorageBufferUpdateAfterBind : Bool32) -> Self {
23566		self.descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind;
23567		self
23568	}
23569
23570	pub fn descriptorBindingUniformTexelBufferUpdateAfterBind(mut self, descriptorBindingUniformTexelBufferUpdateAfterBind : Bool32) -> Self {
23571		self.descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind;
23572		self
23573	}
23574
23575	pub fn descriptorBindingStorageTexelBufferUpdateAfterBind(mut self, descriptorBindingStorageTexelBufferUpdateAfterBind : Bool32) -> Self {
23576		self.descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind;
23577		self
23578	}
23579
23580	pub fn descriptorBindingUpdateUnusedWhilePending(mut self, descriptorBindingUpdateUnusedWhilePending : Bool32) -> Self {
23581		self.descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending;
23582		self
23583	}
23584
23585	pub fn descriptorBindingPartiallyBound(mut self, descriptorBindingPartiallyBound : Bool32) -> Self {
23586		self.descriptorBindingPartiallyBound = descriptorBindingPartiallyBound;
23587		self
23588	}
23589
23590	pub fn descriptorBindingVariableDescriptorCount(mut self, descriptorBindingVariableDescriptorCount : Bool32) -> Self {
23591		self.descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount;
23592		self
23593	}
23594
23595	pub fn runtimeDescriptorArray(mut self, runtimeDescriptorArray : Bool32) -> Self {
23596		self.runtimeDescriptorArray = runtimeDescriptorArray;
23597		self
23598	}
23599
23600}
23601
23602impl PhysicalDeviceDescriptorIndexingProperties {
23603
23604	pub fn new() -> Self {
23605		 Self::default()
23606	}
23607
23608	pub fn sType(mut self, sType : StructureType) -> Self {
23609		self.sType = sType;
23610		self
23611	}
23612
23613	pub fn pNext(mut self, pNext : *mut void) -> Self {
23614		self.pNext = pNext;
23615		self
23616	}
23617
23618	pub fn maxUpdateAfterBindDescriptorsInAllPools(mut self, maxUpdateAfterBindDescriptorsInAllPools : u32) -> Self {
23619		self.maxUpdateAfterBindDescriptorsInAllPools = maxUpdateAfterBindDescriptorsInAllPools;
23620		self
23621	}
23622
23623	pub fn shaderUniformBufferArrayNonUniformIndexingNative(mut self, shaderUniformBufferArrayNonUniformIndexingNative : Bool32) -> Self {
23624		self.shaderUniformBufferArrayNonUniformIndexingNative = shaderUniformBufferArrayNonUniformIndexingNative;
23625		self
23626	}
23627
23628	pub fn shaderSampledImageArrayNonUniformIndexingNative(mut self, shaderSampledImageArrayNonUniformIndexingNative : Bool32) -> Self {
23629		self.shaderSampledImageArrayNonUniformIndexingNative = shaderSampledImageArrayNonUniformIndexingNative;
23630		self
23631	}
23632
23633	pub fn shaderStorageBufferArrayNonUniformIndexingNative(mut self, shaderStorageBufferArrayNonUniformIndexingNative : Bool32) -> Self {
23634		self.shaderStorageBufferArrayNonUniformIndexingNative = shaderStorageBufferArrayNonUniformIndexingNative;
23635		self
23636	}
23637
23638	pub fn shaderStorageImageArrayNonUniformIndexingNative(mut self, shaderStorageImageArrayNonUniformIndexingNative : Bool32) -> Self {
23639		self.shaderStorageImageArrayNonUniformIndexingNative = shaderStorageImageArrayNonUniformIndexingNative;
23640		self
23641	}
23642
23643	pub fn shaderInputAttachmentArrayNonUniformIndexingNative(mut self, shaderInputAttachmentArrayNonUniformIndexingNative : Bool32) -> Self {
23644		self.shaderInputAttachmentArrayNonUniformIndexingNative = shaderInputAttachmentArrayNonUniformIndexingNative;
23645		self
23646	}
23647
23648	pub fn robustBufferAccessUpdateAfterBind(mut self, robustBufferAccessUpdateAfterBind : Bool32) -> Self {
23649		self.robustBufferAccessUpdateAfterBind = robustBufferAccessUpdateAfterBind;
23650		self
23651	}
23652
23653	pub fn quadDivergentImplicitLod(mut self, quadDivergentImplicitLod : Bool32) -> Self {
23654		self.quadDivergentImplicitLod = quadDivergentImplicitLod;
23655		self
23656	}
23657
23658	pub fn maxPerStageDescriptorUpdateAfterBindSamplers(mut self, maxPerStageDescriptorUpdateAfterBindSamplers : u32) -> Self {
23659		self.maxPerStageDescriptorUpdateAfterBindSamplers = maxPerStageDescriptorUpdateAfterBindSamplers;
23660		self
23661	}
23662
23663	pub fn maxPerStageDescriptorUpdateAfterBindUniformBuffers(mut self, maxPerStageDescriptorUpdateAfterBindUniformBuffers : u32) -> Self {
23664		self.maxPerStageDescriptorUpdateAfterBindUniformBuffers = maxPerStageDescriptorUpdateAfterBindUniformBuffers;
23665		self
23666	}
23667
23668	pub fn maxPerStageDescriptorUpdateAfterBindStorageBuffers(mut self, maxPerStageDescriptorUpdateAfterBindStorageBuffers : u32) -> Self {
23669		self.maxPerStageDescriptorUpdateAfterBindStorageBuffers = maxPerStageDescriptorUpdateAfterBindStorageBuffers;
23670		self
23671	}
23672
23673	pub fn maxPerStageDescriptorUpdateAfterBindSampledImages(mut self, maxPerStageDescriptorUpdateAfterBindSampledImages : u32) -> Self {
23674		self.maxPerStageDescriptorUpdateAfterBindSampledImages = maxPerStageDescriptorUpdateAfterBindSampledImages;
23675		self
23676	}
23677
23678	pub fn maxPerStageDescriptorUpdateAfterBindStorageImages(mut self, maxPerStageDescriptorUpdateAfterBindStorageImages : u32) -> Self {
23679		self.maxPerStageDescriptorUpdateAfterBindStorageImages = maxPerStageDescriptorUpdateAfterBindStorageImages;
23680		self
23681	}
23682
23683	pub fn maxPerStageDescriptorUpdateAfterBindInputAttachments(mut self, maxPerStageDescriptorUpdateAfterBindInputAttachments : u32) -> Self {
23684		self.maxPerStageDescriptorUpdateAfterBindInputAttachments = maxPerStageDescriptorUpdateAfterBindInputAttachments;
23685		self
23686	}
23687
23688	pub fn maxPerStageUpdateAfterBindResources(mut self, maxPerStageUpdateAfterBindResources : u32) -> Self {
23689		self.maxPerStageUpdateAfterBindResources = maxPerStageUpdateAfterBindResources;
23690		self
23691	}
23692
23693	pub fn maxDescriptorSetUpdateAfterBindSamplers(mut self, maxDescriptorSetUpdateAfterBindSamplers : u32) -> Self {
23694		self.maxDescriptorSetUpdateAfterBindSamplers = maxDescriptorSetUpdateAfterBindSamplers;
23695		self
23696	}
23697
23698	pub fn maxDescriptorSetUpdateAfterBindUniformBuffers(mut self, maxDescriptorSetUpdateAfterBindUniformBuffers : u32) -> Self {
23699		self.maxDescriptorSetUpdateAfterBindUniformBuffers = maxDescriptorSetUpdateAfterBindUniformBuffers;
23700		self
23701	}
23702
23703	pub fn maxDescriptorSetUpdateAfterBindUniformBuffersDynamic(mut self, maxDescriptorSetUpdateAfterBindUniformBuffersDynamic : u32) -> Self {
23704		self.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
23705		self
23706	}
23707
23708	pub fn maxDescriptorSetUpdateAfterBindStorageBuffers(mut self, maxDescriptorSetUpdateAfterBindStorageBuffers : u32) -> Self {
23709		self.maxDescriptorSetUpdateAfterBindStorageBuffers = maxDescriptorSetUpdateAfterBindStorageBuffers;
23710		self
23711	}
23712
23713	pub fn maxDescriptorSetUpdateAfterBindStorageBuffersDynamic(mut self, maxDescriptorSetUpdateAfterBindStorageBuffersDynamic : u32) -> Self {
23714		self.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
23715		self
23716	}
23717
23718	pub fn maxDescriptorSetUpdateAfterBindSampledImages(mut self, maxDescriptorSetUpdateAfterBindSampledImages : u32) -> Self {
23719		self.maxDescriptorSetUpdateAfterBindSampledImages = maxDescriptorSetUpdateAfterBindSampledImages;
23720		self
23721	}
23722
23723	pub fn maxDescriptorSetUpdateAfterBindStorageImages(mut self, maxDescriptorSetUpdateAfterBindStorageImages : u32) -> Self {
23724		self.maxDescriptorSetUpdateAfterBindStorageImages = maxDescriptorSetUpdateAfterBindStorageImages;
23725		self
23726	}
23727
23728	pub fn maxDescriptorSetUpdateAfterBindInputAttachments(mut self, maxDescriptorSetUpdateAfterBindInputAttachments : u32) -> Self {
23729		self.maxDescriptorSetUpdateAfterBindInputAttachments = maxDescriptorSetUpdateAfterBindInputAttachments;
23730		self
23731	}
23732
23733}
23734
23735impl DescriptorSetVariableDescriptorCountAllocateInfo {
23736
23737	pub fn new() -> Self {
23738		 Self::default()
23739	}
23740
23741	pub fn sType(mut self, sType : StructureType) -> Self {
23742		self.sType = sType;
23743		self
23744	}
23745
23746	pub fn pNext(mut self, pNext : *const void) -> Self {
23747		self.pNext = pNext;
23748		self
23749	}
23750
23751	pub fn descriptorSetCount(mut self, descriptorSetCount : u32) -> Self {
23752		self.descriptorSetCount = descriptorSetCount;
23753		self
23754	}
23755
23756	pub fn pDescriptorCounts(mut self, pDescriptorCounts : *const u32) -> Self {
23757		self.pDescriptorCounts = pDescriptorCounts;
23758		self
23759	}
23760
23761}
23762
23763impl DescriptorSetVariableDescriptorCountLayoutSupport {
23764
23765	pub fn new() -> Self {
23766		 Self::default()
23767	}
23768
23769	pub fn sType(mut self, sType : StructureType) -> Self {
23770		self.sType = sType;
23771		self
23772	}
23773
23774	pub fn pNext(mut self, pNext : *mut void) -> Self {
23775		self.pNext = pNext;
23776		self
23777	}
23778
23779	pub fn maxVariableDescriptorCount(mut self, maxVariableDescriptorCount : u32) -> Self {
23780		self.maxVariableDescriptorCount = maxVariableDescriptorCount;
23781		self
23782	}
23783
23784}
23785
23786impl SubpassDescriptionDepthStencilResolve {
23787
23788	pub fn new() -> Self {
23789		 Self::default()
23790	}
23791
23792	pub fn sType(mut self, sType : StructureType) -> Self {
23793		self.sType = sType;
23794		self
23795	}
23796
23797	pub fn pNext(mut self, pNext : *const void) -> Self {
23798		self.pNext = pNext;
23799		self
23800	}
23801
23802	pub fn depthResolveMode(mut self, depthResolveMode : ResolveModeFlagBits) -> Self {
23803		self.depthResolveMode = depthResolveMode;
23804		self
23805	}
23806
23807	pub fn stencilResolveMode(mut self, stencilResolveMode : ResolveModeFlagBits) -> Self {
23808		self.stencilResolveMode = stencilResolveMode;
23809		self
23810	}
23811
23812	pub fn pDepthStencilResolveAttachment(mut self, pDepthStencilResolveAttachment : *const AttachmentReference2) -> Self {
23813		self.pDepthStencilResolveAttachment = pDepthStencilResolveAttachment;
23814		self
23815	}
23816
23817}
23818
23819impl PhysicalDeviceDepthStencilResolveProperties {
23820
23821	pub fn new() -> Self {
23822		 Self::default()
23823	}
23824
23825	pub fn sType(mut self, sType : StructureType) -> Self {
23826		self.sType = sType;
23827		self
23828	}
23829
23830	pub fn pNext(mut self, pNext : *mut void) -> Self {
23831		self.pNext = pNext;
23832		self
23833	}
23834
23835	pub fn supportedDepthResolveModes(mut self, supportedDepthResolveModes : ResolveModeFlags) -> Self {
23836		self.supportedDepthResolveModes = supportedDepthResolveModes;
23837		self
23838	}
23839
23840	pub fn supportedStencilResolveModes(mut self, supportedStencilResolveModes : ResolveModeFlags) -> Self {
23841		self.supportedStencilResolveModes = supportedStencilResolveModes;
23842		self
23843	}
23844
23845	pub fn independentResolveNone(mut self, independentResolveNone : Bool32) -> Self {
23846		self.independentResolveNone = independentResolveNone;
23847		self
23848	}
23849
23850	pub fn independentResolve(mut self, independentResolve : Bool32) -> Self {
23851		self.independentResolve = independentResolve;
23852		self
23853	}
23854
23855}
23856
23857impl PhysicalDeviceScalarBlockLayoutFeatures {
23858
23859	pub fn new() -> Self {
23860		 Self::default()
23861	}
23862
23863	pub fn sType(mut self, sType : StructureType) -> Self {
23864		self.sType = sType;
23865		self
23866	}
23867
23868	pub fn pNext(mut self, pNext : *mut void) -> Self {
23869		self.pNext = pNext;
23870		self
23871	}
23872
23873	pub fn scalarBlockLayout(mut self, scalarBlockLayout : Bool32) -> Self {
23874		self.scalarBlockLayout = scalarBlockLayout;
23875		self
23876	}
23877
23878}
23879
23880impl ImageStencilUsageCreateInfo {
23881
23882	pub fn new() -> Self {
23883		 Self::default()
23884	}
23885
23886	pub fn sType(mut self, sType : StructureType) -> Self {
23887		self.sType = sType;
23888		self
23889	}
23890
23891	pub fn pNext(mut self, pNext : *const void) -> Self {
23892		self.pNext = pNext;
23893		self
23894	}
23895
23896	pub fn stencilUsage(mut self, stencilUsage : ImageUsageFlags) -> Self {
23897		self.stencilUsage = stencilUsage;
23898		self
23899	}
23900
23901}
23902
23903impl SamplerReductionModeCreateInfo {
23904
23905	pub fn new() -> Self {
23906		 Self::default()
23907	}
23908
23909	pub fn sType(mut self, sType : StructureType) -> Self {
23910		self.sType = sType;
23911		self
23912	}
23913
23914	pub fn pNext(mut self, pNext : *const void) -> Self {
23915		self.pNext = pNext;
23916		self
23917	}
23918
23919	pub fn reductionMode(mut self, reductionMode : SamplerReductionMode) -> Self {
23920		self.reductionMode = reductionMode;
23921		self
23922	}
23923
23924}
23925
23926impl PhysicalDeviceSamplerFilterMinmaxProperties {
23927
23928	pub fn new() -> Self {
23929		 Self::default()
23930	}
23931
23932	pub fn sType(mut self, sType : StructureType) -> Self {
23933		self.sType = sType;
23934		self
23935	}
23936
23937	pub fn pNext(mut self, pNext : *mut void) -> Self {
23938		self.pNext = pNext;
23939		self
23940	}
23941
23942	pub fn filterMinmaxSingleComponentFormats(mut self, filterMinmaxSingleComponentFormats : Bool32) -> Self {
23943		self.filterMinmaxSingleComponentFormats = filterMinmaxSingleComponentFormats;
23944		self
23945	}
23946
23947	pub fn filterMinmaxImageComponentMapping(mut self, filterMinmaxImageComponentMapping : Bool32) -> Self {
23948		self.filterMinmaxImageComponentMapping = filterMinmaxImageComponentMapping;
23949		self
23950	}
23951
23952}
23953
23954impl PhysicalDeviceVulkanMemoryModelFeatures {
23955
23956	pub fn new() -> Self {
23957		 Self::default()
23958	}
23959
23960	pub fn sType(mut self, sType : StructureType) -> Self {
23961		self.sType = sType;
23962		self
23963	}
23964
23965	pub fn pNext(mut self, pNext : *mut void) -> Self {
23966		self.pNext = pNext;
23967		self
23968	}
23969
23970	pub fn vulkanMemoryModel(mut self, vulkanMemoryModel : Bool32) -> Self {
23971		self.vulkanMemoryModel = vulkanMemoryModel;
23972		self
23973	}
23974
23975	pub fn vulkanMemoryModelDeviceScope(mut self, vulkanMemoryModelDeviceScope : Bool32) -> Self {
23976		self.vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope;
23977		self
23978	}
23979
23980	pub fn vulkanMemoryModelAvailabilityVisibilityChains(mut self, vulkanMemoryModelAvailabilityVisibilityChains : Bool32) -> Self {
23981		self.vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains;
23982		self
23983	}
23984
23985}
23986
23987impl PhysicalDeviceImagelessFramebufferFeatures {
23988
23989	pub fn new() -> Self {
23990		 Self::default()
23991	}
23992
23993	pub fn sType(mut self, sType : StructureType) -> Self {
23994		self.sType = sType;
23995		self
23996	}
23997
23998	pub fn pNext(mut self, pNext : *mut void) -> Self {
23999		self.pNext = pNext;
24000		self
24001	}
24002
24003	pub fn imagelessFramebuffer(mut self, imagelessFramebuffer : Bool32) -> Self {
24004		self.imagelessFramebuffer = imagelessFramebuffer;
24005		self
24006	}
24007
24008}
24009
24010impl FramebufferAttachmentImageInfo {
24011
24012	pub fn new() -> Self {
24013		 Self::default()
24014	}
24015
24016	pub fn sType(mut self, sType : StructureType) -> Self {
24017		self.sType = sType;
24018		self
24019	}
24020
24021	pub fn pNext(mut self, pNext : *const void) -> Self {
24022		self.pNext = pNext;
24023		self
24024	}
24025
24026	pub fn flags(mut self, flags : ImageCreateFlags) -> Self {
24027		self.flags = flags;
24028		self
24029	}
24030
24031	pub fn usage(mut self, usage : ImageUsageFlags) -> Self {
24032		self.usage = usage;
24033		self
24034	}
24035
24036	pub fn width(mut self, width : u32) -> Self {
24037		self.width = width;
24038		self
24039	}
24040
24041	pub fn height(mut self, height : u32) -> Self {
24042		self.height = height;
24043		self
24044	}
24045
24046	pub fn layerCount(mut self, layerCount : u32) -> Self {
24047		self.layerCount = layerCount;
24048		self
24049	}
24050
24051	pub fn viewFormatCount(mut self, viewFormatCount : u32) -> Self {
24052		self.viewFormatCount = viewFormatCount;
24053		self
24054	}
24055
24056	pub fn pViewFormats(mut self, pViewFormats : *const Format) -> Self {
24057		self.pViewFormats = pViewFormats;
24058		self
24059	}
24060
24061}
24062
24063impl FramebufferAttachmentsCreateInfo {
24064
24065	pub fn new() -> Self {
24066		 Self::default()
24067	}
24068
24069	pub fn sType(mut self, sType : StructureType) -> Self {
24070		self.sType = sType;
24071		self
24072	}
24073
24074	pub fn pNext(mut self, pNext : *const void) -> Self {
24075		self.pNext = pNext;
24076		self
24077	}
24078
24079	pub fn attachmentImageInfoCount(mut self, attachmentImageInfoCount : u32) -> Self {
24080		self.attachmentImageInfoCount = attachmentImageInfoCount;
24081		self
24082	}
24083
24084	pub fn pAttachmentImageInfos(mut self, pAttachmentImageInfos : *const FramebufferAttachmentImageInfo) -> Self {
24085		self.pAttachmentImageInfos = pAttachmentImageInfos;
24086		self
24087	}
24088
24089}
24090
24091impl RenderPassAttachmentBeginInfo {
24092
24093	pub fn new() -> Self {
24094		 Self::default()
24095	}
24096
24097	pub fn sType(mut self, sType : StructureType) -> Self {
24098		self.sType = sType;
24099		self
24100	}
24101
24102	pub fn pNext(mut self, pNext : *const void) -> Self {
24103		self.pNext = pNext;
24104		self
24105	}
24106
24107	pub fn attachmentCount(mut self, attachmentCount : u32) -> Self {
24108		self.attachmentCount = attachmentCount;
24109		self
24110	}
24111
24112	pub fn pAttachments(mut self, pAttachments : *const ImageView) -> Self {
24113		self.pAttachments = pAttachments;
24114		self
24115	}
24116
24117}
24118
24119impl PhysicalDeviceUniformBufferStandardLayoutFeatures {
24120
24121	pub fn new() -> Self {
24122		 Self::default()
24123	}
24124
24125	pub fn sType(mut self, sType : StructureType) -> Self {
24126		self.sType = sType;
24127		self
24128	}
24129
24130	pub fn pNext(mut self, pNext : *mut void) -> Self {
24131		self.pNext = pNext;
24132		self
24133	}
24134
24135	pub fn uniformBufferStandardLayout(mut self, uniformBufferStandardLayout : Bool32) -> Self {
24136		self.uniformBufferStandardLayout = uniformBufferStandardLayout;
24137		self
24138	}
24139
24140}
24141
24142impl PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
24143
24144	pub fn new() -> Self {
24145		 Self::default()
24146	}
24147
24148	pub fn sType(mut self, sType : StructureType) -> Self {
24149		self.sType = sType;
24150		self
24151	}
24152
24153	pub fn pNext(mut self, pNext : *mut void) -> Self {
24154		self.pNext = pNext;
24155		self
24156	}
24157
24158	pub fn shaderSubgroupExtendedTypes(mut self, shaderSubgroupExtendedTypes : Bool32) -> Self {
24159		self.shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes;
24160		self
24161	}
24162
24163}
24164
24165impl PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
24166
24167	pub fn new() -> Self {
24168		 Self::default()
24169	}
24170
24171	pub fn sType(mut self, sType : StructureType) -> Self {
24172		self.sType = sType;
24173		self
24174	}
24175
24176	pub fn pNext(mut self, pNext : *mut void) -> Self {
24177		self.pNext = pNext;
24178		self
24179	}
24180
24181	pub fn separateDepthStencilLayouts(mut self, separateDepthStencilLayouts : Bool32) -> Self {
24182		self.separateDepthStencilLayouts = separateDepthStencilLayouts;
24183		self
24184	}
24185
24186}
24187
24188impl AttachmentReferenceStencilLayout {
24189
24190	pub fn new() -> Self {
24191		 Self::default()
24192	}
24193
24194	pub fn sType(mut self, sType : StructureType) -> Self {
24195		self.sType = sType;
24196		self
24197	}
24198
24199	pub fn pNext(mut self, pNext : *mut void) -> Self {
24200		self.pNext = pNext;
24201		self
24202	}
24203
24204	pub fn stencilLayout(mut self, stencilLayout : ImageLayout) -> Self {
24205		self.stencilLayout = stencilLayout;
24206		self
24207	}
24208
24209}
24210
24211impl AttachmentDescriptionStencilLayout {
24212
24213	pub fn new() -> Self {
24214		 Self::default()
24215	}
24216
24217	pub fn sType(mut self, sType : StructureType) -> Self {
24218		self.sType = sType;
24219		self
24220	}
24221
24222	pub fn pNext(mut self, pNext : *mut void) -> Self {
24223		self.pNext = pNext;
24224		self
24225	}
24226
24227	pub fn stencilInitialLayout(mut self, stencilInitialLayout : ImageLayout) -> Self {
24228		self.stencilInitialLayout = stencilInitialLayout;
24229		self
24230	}
24231
24232	pub fn stencilFinalLayout(mut self, stencilFinalLayout : ImageLayout) -> Self {
24233		self.stencilFinalLayout = stencilFinalLayout;
24234		self
24235	}
24236
24237}
24238
24239impl PhysicalDeviceHostQueryResetFeatures {
24240
24241	pub fn new() -> Self {
24242		 Self::default()
24243	}
24244
24245	pub fn sType(mut self, sType : StructureType) -> Self {
24246		self.sType = sType;
24247		self
24248	}
24249
24250	pub fn pNext(mut self, pNext : *mut void) -> Self {
24251		self.pNext = pNext;
24252		self
24253	}
24254
24255	pub fn hostQueryReset(mut self, hostQueryReset : Bool32) -> Self {
24256		self.hostQueryReset = hostQueryReset;
24257		self
24258	}
24259
24260}
24261
24262impl PhysicalDeviceTimelineSemaphoreFeatures {
24263
24264	pub fn new() -> Self {
24265		 Self::default()
24266	}
24267
24268	pub fn sType(mut self, sType : StructureType) -> Self {
24269		self.sType = sType;
24270		self
24271	}
24272
24273	pub fn pNext(mut self, pNext : *mut void) -> Self {
24274		self.pNext = pNext;
24275		self
24276	}
24277
24278	pub fn timelineSemaphore(mut self, timelineSemaphore : Bool32) -> Self {
24279		self.timelineSemaphore = timelineSemaphore;
24280		self
24281	}
24282
24283}
24284
24285impl PhysicalDeviceTimelineSemaphoreProperties {
24286
24287	pub fn new() -> Self {
24288		 Self::default()
24289	}
24290
24291	pub fn sType(mut self, sType : StructureType) -> Self {
24292		self.sType = sType;
24293		self
24294	}
24295
24296	pub fn pNext(mut self, pNext : *mut void) -> Self {
24297		self.pNext = pNext;
24298		self
24299	}
24300
24301	pub fn maxTimelineSemaphoreValueDifference(mut self, maxTimelineSemaphoreValueDifference : u64) -> Self {
24302		self.maxTimelineSemaphoreValueDifference = maxTimelineSemaphoreValueDifference;
24303		self
24304	}
24305
24306}
24307
24308impl SemaphoreTypeCreateInfo {
24309
24310	pub fn new() -> Self {
24311		 Self::default()
24312	}
24313
24314	pub fn sType(mut self, sType : StructureType) -> Self {
24315		self.sType = sType;
24316		self
24317	}
24318
24319	pub fn pNext(mut self, pNext : *const void) -> Self {
24320		self.pNext = pNext;
24321		self
24322	}
24323
24324	pub fn semaphoreType(mut self, semaphoreType : SemaphoreType) -> Self {
24325		self.semaphoreType = semaphoreType;
24326		self
24327	}
24328
24329	pub fn initialValue(mut self, initialValue : u64) -> Self {
24330		self.initialValue = initialValue;
24331		self
24332	}
24333
24334}
24335
24336impl TimelineSemaphoreSubmitInfo {
24337
24338	pub fn new() -> Self {
24339		 Self::default()
24340	}
24341
24342	pub fn sType(mut self, sType : StructureType) -> Self {
24343		self.sType = sType;
24344		self
24345	}
24346
24347	pub fn pNext(mut self, pNext : *const void) -> Self {
24348		self.pNext = pNext;
24349		self
24350	}
24351
24352	pub fn waitSemaphoreValueCount(mut self, waitSemaphoreValueCount : u32) -> Self {
24353		self.waitSemaphoreValueCount = waitSemaphoreValueCount;
24354		self
24355	}
24356
24357	pub fn pWaitSemaphoreValues(mut self, pWaitSemaphoreValues : *const u64) -> Self {
24358		self.pWaitSemaphoreValues = pWaitSemaphoreValues;
24359		self
24360	}
24361
24362	pub fn signalSemaphoreValueCount(mut self, signalSemaphoreValueCount : u32) -> Self {
24363		self.signalSemaphoreValueCount = signalSemaphoreValueCount;
24364		self
24365	}
24366
24367	pub fn pSignalSemaphoreValues(mut self, pSignalSemaphoreValues : *const u64) -> Self {
24368		self.pSignalSemaphoreValues = pSignalSemaphoreValues;
24369		self
24370	}
24371
24372}
24373
24374impl SemaphoreWaitInfo {
24375
24376	pub fn new() -> Self {
24377		 Self::default()
24378	}
24379
24380	pub fn sType(mut self, sType : StructureType) -> Self {
24381		self.sType = sType;
24382		self
24383	}
24384
24385	pub fn pNext(mut self, pNext : *const void) -> Self {
24386		self.pNext = pNext;
24387		self
24388	}
24389
24390	pub fn flags(mut self, flags : SemaphoreWaitFlags) -> Self {
24391		self.flags = flags;
24392		self
24393	}
24394
24395	pub fn semaphoreCount(mut self, semaphoreCount : u32) -> Self {
24396		self.semaphoreCount = semaphoreCount;
24397		self
24398	}
24399
24400	pub fn pSemaphores(mut self, pSemaphores : *const Semaphore) -> Self {
24401		self.pSemaphores = pSemaphores;
24402		self
24403	}
24404
24405	pub fn pValues(mut self, pValues : *const u64) -> Self {
24406		self.pValues = pValues;
24407		self
24408	}
24409
24410}
24411
24412impl SemaphoreSignalInfo {
24413
24414	pub fn new() -> Self {
24415		 Self::default()
24416	}
24417
24418	pub fn sType(mut self, sType : StructureType) -> Self {
24419		self.sType = sType;
24420		self
24421	}
24422
24423	pub fn pNext(mut self, pNext : *const void) -> Self {
24424		self.pNext = pNext;
24425		self
24426	}
24427
24428	pub fn semaphore(mut self, semaphore : Semaphore) -> Self {
24429		self.semaphore = semaphore;
24430		self
24431	}
24432
24433	pub fn value(mut self, value : u64) -> Self {
24434		self.value = value;
24435		self
24436	}
24437
24438}
24439
24440impl PhysicalDeviceBufferDeviceAddressFeatures {
24441
24442	pub fn new() -> Self {
24443		 Self::default()
24444	}
24445
24446	pub fn sType(mut self, sType : StructureType) -> Self {
24447		self.sType = sType;
24448		self
24449	}
24450
24451	pub fn pNext(mut self, pNext : *mut void) -> Self {
24452		self.pNext = pNext;
24453		self
24454	}
24455
24456	pub fn bufferDeviceAddress(mut self, bufferDeviceAddress : Bool32) -> Self {
24457		self.bufferDeviceAddress = bufferDeviceAddress;
24458		self
24459	}
24460
24461	pub fn bufferDeviceAddressCaptureReplay(mut self, bufferDeviceAddressCaptureReplay : Bool32) -> Self {
24462		self.bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay;
24463		self
24464	}
24465
24466	pub fn bufferDeviceAddressMultiDevice(mut self, bufferDeviceAddressMultiDevice : Bool32) -> Self {
24467		self.bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice;
24468		self
24469	}
24470
24471}
24472
24473impl BufferDeviceAddressInfo {
24474
24475	pub fn new() -> Self {
24476		 Self::default()
24477	}
24478
24479	pub fn sType(mut self, sType : StructureType) -> Self {
24480		self.sType = sType;
24481		self
24482	}
24483
24484	pub fn pNext(mut self, pNext : *const void) -> Self {
24485		self.pNext = pNext;
24486		self
24487	}
24488
24489	pub fn buffer(mut self, buffer : Buffer) -> Self {
24490		self.buffer = buffer;
24491		self
24492	}
24493
24494}
24495
24496impl BufferOpaqueCaptureAddressCreateInfo {
24497
24498	pub fn new() -> Self {
24499		 Self::default()
24500	}
24501
24502	pub fn sType(mut self, sType : StructureType) -> Self {
24503		self.sType = sType;
24504		self
24505	}
24506
24507	pub fn pNext(mut self, pNext : *const void) -> Self {
24508		self.pNext = pNext;
24509		self
24510	}
24511
24512	pub fn opaqueCaptureAddress(mut self, opaqueCaptureAddress : u64) -> Self {
24513		self.opaqueCaptureAddress = opaqueCaptureAddress;
24514		self
24515	}
24516
24517}
24518
24519impl MemoryOpaqueCaptureAddressAllocateInfo {
24520
24521	pub fn new() -> Self {
24522		 Self::default()
24523	}
24524
24525	pub fn sType(mut self, sType : StructureType) -> Self {
24526		self.sType = sType;
24527		self
24528	}
24529
24530	pub fn pNext(mut self, pNext : *const void) -> Self {
24531		self.pNext = pNext;
24532		self
24533	}
24534
24535	pub fn opaqueCaptureAddress(mut self, opaqueCaptureAddress : u64) -> Self {
24536		self.opaqueCaptureAddress = opaqueCaptureAddress;
24537		self
24538	}
24539
24540}
24541
24542impl DeviceMemoryOpaqueCaptureAddressInfo {
24543
24544	pub fn new() -> Self {
24545		 Self::default()
24546	}
24547
24548	pub fn sType(mut self, sType : StructureType) -> Self {
24549		self.sType = sType;
24550		self
24551	}
24552
24553	pub fn pNext(mut self, pNext : *const void) -> Self {
24554		self.pNext = pNext;
24555		self
24556	}
24557
24558	pub fn memory(mut self, memory : DeviceMemory) -> Self {
24559		self.memory = memory;
24560		self
24561	}
24562
24563}
24564
24565impl SurfaceCapabilitiesKHR {
24566
24567	pub fn new() -> Self {
24568		 Self::default()
24569	}
24570
24571	pub fn minImageCount(mut self, minImageCount : u32) -> Self {
24572		self.minImageCount = minImageCount;
24573		self
24574	}
24575
24576	pub fn maxImageCount(mut self, maxImageCount : u32) -> Self {
24577		self.maxImageCount = maxImageCount;
24578		self
24579	}
24580
24581	pub fn currentExtent(mut self, currentExtent : Extent2D) -> Self {
24582		self.currentExtent = currentExtent;
24583		self
24584	}
24585
24586	pub fn minImageExtent(mut self, minImageExtent : Extent2D) -> Self {
24587		self.minImageExtent = minImageExtent;
24588		self
24589	}
24590
24591	pub fn maxImageExtent(mut self, maxImageExtent : Extent2D) -> Self {
24592		self.maxImageExtent = maxImageExtent;
24593		self
24594	}
24595
24596	pub fn maxImageArrayLayers(mut self, maxImageArrayLayers : u32) -> Self {
24597		self.maxImageArrayLayers = maxImageArrayLayers;
24598		self
24599	}
24600
24601	pub fn supportedTransforms(mut self, supportedTransforms : SurfaceTransformFlagsKHR) -> Self {
24602		self.supportedTransforms = supportedTransforms;
24603		self
24604	}
24605
24606	pub fn currentTransform(mut self, currentTransform : SurfaceTransformFlagBitsKHR) -> Self {
24607		self.currentTransform = currentTransform;
24608		self
24609	}
24610
24611	pub fn supportedCompositeAlpha(mut self, supportedCompositeAlpha : CompositeAlphaFlagsKHR) -> Self {
24612		self.supportedCompositeAlpha = supportedCompositeAlpha;
24613		self
24614	}
24615
24616	pub fn supportedUsageFlags(mut self, supportedUsageFlags : ImageUsageFlags) -> Self {
24617		self.supportedUsageFlags = supportedUsageFlags;
24618		self
24619	}
24620
24621}
24622
24623impl SurfaceFormatKHR {
24624
24625	pub fn new() -> Self {
24626		 Self::default()
24627	}
24628
24629	pub fn format(mut self, format : Format) -> Self {
24630		self.format = format;
24631		self
24632	}
24633
24634	pub fn colorSpace(mut self, colorSpace : ColorSpaceKHR) -> Self {
24635		self.colorSpace = colorSpace;
24636		self
24637	}
24638
24639}
24640
24641impl SwapchainCreateInfoKHR {
24642
24643	pub fn new() -> Self {
24644		 Self::default()
24645	}
24646
24647	pub fn sType(mut self, sType : StructureType) -> Self {
24648		self.sType = sType;
24649		self
24650	}
24651
24652	pub fn pNext(mut self, pNext : *const void) -> Self {
24653		self.pNext = pNext;
24654		self
24655	}
24656
24657	pub fn flags(mut self, flags : SwapchainCreateFlagsKHR) -> Self {
24658		self.flags = flags;
24659		self
24660	}
24661
24662	pub fn surface(mut self, surface : SurfaceKHR) -> Self {
24663		self.surface = surface;
24664		self
24665	}
24666
24667	pub fn minImageCount(mut self, minImageCount : u32) -> Self {
24668		self.minImageCount = minImageCount;
24669		self
24670	}
24671
24672	pub fn imageFormat(mut self, imageFormat : Format) -> Self {
24673		self.imageFormat = imageFormat;
24674		self
24675	}
24676
24677	pub fn imageColorSpace(mut self, imageColorSpace : ColorSpaceKHR) -> Self {
24678		self.imageColorSpace = imageColorSpace;
24679		self
24680	}
24681
24682	pub fn imageExtent(mut self, imageExtent : Extent2D) -> Self {
24683		self.imageExtent = imageExtent;
24684		self
24685	}
24686
24687	pub fn imageArrayLayers(mut self, imageArrayLayers : u32) -> Self {
24688		self.imageArrayLayers = imageArrayLayers;
24689		self
24690	}
24691
24692	pub fn imageUsage(mut self, imageUsage : ImageUsageFlags) -> Self {
24693		self.imageUsage = imageUsage;
24694		self
24695	}
24696
24697	pub fn imageSharingMode(mut self, imageSharingMode : SharingMode) -> Self {
24698		self.imageSharingMode = imageSharingMode;
24699		self
24700	}
24701
24702	pub fn queueFamilyIndexCount(mut self, queueFamilyIndexCount : u32) -> Self {
24703		self.queueFamilyIndexCount = queueFamilyIndexCount;
24704		self
24705	}
24706
24707	pub fn pQueueFamilyIndices(mut self, pQueueFamilyIndices : *const u32) -> Self {
24708		self.pQueueFamilyIndices = pQueueFamilyIndices;
24709		self
24710	}
24711
24712	pub fn preTransform(mut self, preTransform : SurfaceTransformFlagBitsKHR) -> Self {
24713		self.preTransform = preTransform;
24714		self
24715	}
24716
24717	pub fn compositeAlpha(mut self, compositeAlpha : CompositeAlphaFlagBitsKHR) -> Self {
24718		self.compositeAlpha = compositeAlpha;
24719		self
24720	}
24721
24722	pub fn presentMode(mut self, presentMode : PresentModeKHR) -> Self {
24723		self.presentMode = presentMode;
24724		self
24725	}
24726
24727	pub fn clipped(mut self, clipped : Bool32) -> Self {
24728		self.clipped = clipped;
24729		self
24730	}
24731
24732	pub fn oldSwapchain(mut self, oldSwapchain : SwapchainKHR) -> Self {
24733		self.oldSwapchain = oldSwapchain;
24734		self
24735	}
24736
24737}
24738
24739impl PresentInfoKHR {
24740
24741	pub fn new() -> Self {
24742		 Self::default()
24743	}
24744
24745	pub fn sType(mut self, sType : StructureType) -> Self {
24746		self.sType = sType;
24747		self
24748	}
24749
24750	pub fn pNext(mut self, pNext : *const void) -> Self {
24751		self.pNext = pNext;
24752		self
24753	}
24754
24755	pub fn waitSemaphoreCount(mut self, waitSemaphoreCount : u32) -> Self {
24756		self.waitSemaphoreCount = waitSemaphoreCount;
24757		self
24758	}
24759
24760	pub fn pWaitSemaphores(mut self, pWaitSemaphores : *const Semaphore) -> Self {
24761		self.pWaitSemaphores = pWaitSemaphores;
24762		self
24763	}
24764
24765	pub fn swapchainCount(mut self, swapchainCount : u32) -> Self {
24766		self.swapchainCount = swapchainCount;
24767		self
24768	}
24769
24770	pub fn pSwapchains(mut self, pSwapchains : *const SwapchainKHR) -> Self {
24771		self.pSwapchains = pSwapchains;
24772		self
24773	}
24774
24775	pub fn pImageIndices(mut self, pImageIndices : *const i32) -> Self {
24776		self.pImageIndices = pImageIndices;
24777		self
24778	}
24779
24780	pub fn pResults(mut self, pResults : *mut VkResult) -> Self {
24781		self.pResults = pResults;
24782		self
24783	}
24784
24785}
24786
24787impl ImageSwapchainCreateInfoKHR {
24788
24789	pub fn new() -> Self {
24790		 Self::default()
24791	}
24792
24793	pub fn sType(mut self, sType : StructureType) -> Self {
24794		self.sType = sType;
24795		self
24796	}
24797
24798	pub fn pNext(mut self, pNext : *const void) -> Self {
24799		self.pNext = pNext;
24800		self
24801	}
24802
24803	pub fn swapchain(mut self, swapchain : SwapchainKHR) -> Self {
24804		self.swapchain = swapchain;
24805		self
24806	}
24807
24808}
24809
24810impl BindImageMemorySwapchainInfoKHR {
24811
24812	pub fn new() -> Self {
24813		 Self::default()
24814	}
24815
24816	pub fn sType(mut self, sType : StructureType) -> Self {
24817		self.sType = sType;
24818		self
24819	}
24820
24821	pub fn pNext(mut self, pNext : *const void) -> Self {
24822		self.pNext = pNext;
24823		self
24824	}
24825
24826	pub fn swapchain(mut self, swapchain : SwapchainKHR) -> Self {
24827		self.swapchain = swapchain;
24828		self
24829	}
24830
24831	pub fn imageIndex(mut self, imageIndex : u32) -> Self {
24832		self.imageIndex = imageIndex;
24833		self
24834	}
24835
24836}
24837
24838impl AcquireNextImageInfoKHR {
24839
24840	pub fn new() -> Self {
24841		 Self::default()
24842	}
24843
24844	pub fn sType(mut self, sType : StructureType) -> Self {
24845		self.sType = sType;
24846		self
24847	}
24848
24849	pub fn pNext(mut self, pNext : *const void) -> Self {
24850		self.pNext = pNext;
24851		self
24852	}
24853
24854	pub fn swapchain(mut self, swapchain : SwapchainKHR) -> Self {
24855		self.swapchain = swapchain;
24856		self
24857	}
24858
24859	pub fn timeout(mut self, timeout : u64) -> Self {
24860		self.timeout = timeout;
24861		self
24862	}
24863
24864	pub fn semaphore(mut self, semaphore : Semaphore) -> Self {
24865		self.semaphore = semaphore;
24866		self
24867	}
24868
24869	pub fn fence(mut self, fence : Fence) -> Self {
24870		self.fence = fence;
24871		self
24872	}
24873
24874	pub fn deviceMask(mut self, deviceMask : u32) -> Self {
24875		self.deviceMask = deviceMask;
24876		self
24877	}
24878
24879}
24880
24881impl DeviceGroupPresentCapabilitiesKHR {
24882
24883	pub fn new() -> Self {
24884		 Self::default()
24885	}
24886
24887	pub fn sType(mut self, sType : StructureType) -> Self {
24888		self.sType = sType;
24889		self
24890	}
24891
24892	pub fn pNext(mut self, pNext : *const void) -> Self {
24893		self.pNext = pNext;
24894		self
24895	}
24896
24897	pub fn presentMask(mut self, presentMask : [u32;MAX_DEVICE_GROUP_SIZE]) -> Self {
24898		self.presentMask = presentMask;
24899		self
24900	}
24901
24902	pub fn modes(mut self, modes : DeviceGroupPresentModeFlagsKHR) -> Self {
24903		self.modes = modes;
24904		self
24905	}
24906
24907}
24908
24909impl DeviceGroupPresentInfoKHR {
24910
24911	pub fn new() -> Self {
24912		 Self::default()
24913	}
24914
24915	pub fn sType(mut self, sType : StructureType) -> Self {
24916		self.sType = sType;
24917		self
24918	}
24919
24920	pub fn pNext(mut self, pNext : *const void) -> Self {
24921		self.pNext = pNext;
24922		self
24923	}
24924
24925	pub fn swapchainCount(mut self, swapchainCount : u32) -> Self {
24926		self.swapchainCount = swapchainCount;
24927		self
24928	}
24929
24930	pub fn pDeviceMasks(mut self, pDeviceMasks : *const u32) -> Self {
24931		self.pDeviceMasks = pDeviceMasks;
24932		self
24933	}
24934
24935	pub fn mode(mut self, mode : DeviceGroupPresentModeFlagBitsKHR) -> Self {
24936		self.mode = mode;
24937		self
24938	}
24939
24940}
24941
24942impl DeviceGroupSwapchainCreateInfoKHR {
24943
24944	pub fn new() -> Self {
24945		 Self::default()
24946	}
24947
24948	pub fn sType(mut self, sType : StructureType) -> Self {
24949		self.sType = sType;
24950		self
24951	}
24952
24953	pub fn pNext(mut self, pNext : *const void) -> Self {
24954		self.pNext = pNext;
24955		self
24956	}
24957
24958	pub fn modes(mut self, modes : DeviceGroupPresentModeFlagsKHR) -> Self {
24959		self.modes = modes;
24960		self
24961	}
24962
24963}
24964
24965impl DisplayPropertiesKHR {
24966
24967	pub fn new() -> Self {
24968		 Self::default()
24969	}
24970
24971	pub fn display(mut self, display : DisplayKHR) -> Self {
24972		self.display = display;
24973		self
24974	}
24975
24976	pub fn displayName(mut self, displayName : *const i8) -> Self {
24977		self.displayName = displayName;
24978		self
24979	}
24980
24981	pub fn physicalDimensions(mut self, physicalDimensions : Extent2D) -> Self {
24982		self.physicalDimensions = physicalDimensions;
24983		self
24984	}
24985
24986	pub fn physicalResolution(mut self, physicalResolution : Extent2D) -> Self {
24987		self.physicalResolution = physicalResolution;
24988		self
24989	}
24990
24991	pub fn supportedTransforms(mut self, supportedTransforms : SurfaceTransformFlagsKHR) -> Self {
24992		self.supportedTransforms = supportedTransforms;
24993		self
24994	}
24995
24996	pub fn planeReorderPossible(mut self, planeReorderPossible : Bool32) -> Self {
24997		self.planeReorderPossible = planeReorderPossible;
24998		self
24999	}
25000
25001	pub fn persistentContent(mut self, persistentContent : Bool32) -> Self {
25002		self.persistentContent = persistentContent;
25003		self
25004	}
25005
25006}
25007
25008impl DisplayModeParametersKHR {
25009
25010	pub fn new() -> Self {
25011		 Self::default()
25012	}
25013
25014	pub fn visibleRegion(mut self, visibleRegion : Extent2D) -> Self {
25015		self.visibleRegion = visibleRegion;
25016		self
25017	}
25018
25019	pub fn refreshRate(mut self, refreshRate : u32) -> Self {
25020		self.refreshRate = refreshRate;
25021		self
25022	}
25023
25024}
25025
25026impl DisplayModePropertiesKHR {
25027
25028	pub fn new() -> Self {
25029		 Self::default()
25030	}
25031
25032	pub fn displayMode(mut self, displayMode : DisplayModeKHR) -> Self {
25033		self.displayMode = displayMode;
25034		self
25035	}
25036
25037	pub fn parameters(mut self, parameters : DisplayModeParametersKHR) -> Self {
25038		self.parameters = parameters;
25039		self
25040	}
25041
25042}
25043
25044impl DisplayModeCreateInfoKHR {
25045
25046	pub fn new() -> Self {
25047		 Self::default()
25048	}
25049
25050	pub fn sType(mut self, sType : StructureType) -> Self {
25051		self.sType = sType;
25052		self
25053	}
25054
25055	pub fn pNext(mut self, pNext : *const void) -> Self {
25056		self.pNext = pNext;
25057		self
25058	}
25059
25060	pub fn flags(mut self, flags : DisplayModeCreateFlagsKHR) -> Self {
25061		self.flags = flags;
25062		self
25063	}
25064
25065	pub fn parameters(mut self, parameters : DisplayModeParametersKHR) -> Self {
25066		self.parameters = parameters;
25067		self
25068	}
25069
25070}
25071
25072impl DisplayPlaneCapabilitiesKHR {
25073
25074	pub fn new() -> Self {
25075		 Self::default()
25076	}
25077
25078	pub fn supportedAlpha(mut self, supportedAlpha : DisplayPlaneAlphaFlagsKHR) -> Self {
25079		self.supportedAlpha = supportedAlpha;
25080		self
25081	}
25082
25083	pub fn minSrcPosition(mut self, minSrcPosition : Offset2D) -> Self {
25084		self.minSrcPosition = minSrcPosition;
25085		self
25086	}
25087
25088	pub fn maxSrcPosition(mut self, maxSrcPosition : Offset2D) -> Self {
25089		self.maxSrcPosition = maxSrcPosition;
25090		self
25091	}
25092
25093	pub fn minSrcExtent(mut self, minSrcExtent : Extent2D) -> Self {
25094		self.minSrcExtent = minSrcExtent;
25095		self
25096	}
25097
25098	pub fn maxSrcExtent(mut self, maxSrcExtent : Extent2D) -> Self {
25099		self.maxSrcExtent = maxSrcExtent;
25100		self
25101	}
25102
25103	pub fn minDstPosition(mut self, minDstPosition : Offset2D) -> Self {
25104		self.minDstPosition = minDstPosition;
25105		self
25106	}
25107
25108	pub fn maxDstPosition(mut self, maxDstPosition : Offset2D) -> Self {
25109		self.maxDstPosition = maxDstPosition;
25110		self
25111	}
25112
25113	pub fn minDstExtent(mut self, minDstExtent : Extent2D) -> Self {
25114		self.minDstExtent = minDstExtent;
25115		self
25116	}
25117
25118	pub fn maxDstExtent(mut self, maxDstExtent : Extent2D) -> Self {
25119		self.maxDstExtent = maxDstExtent;
25120		self
25121	}
25122
25123}
25124
25125impl DisplayPlanePropertiesKHR {
25126
25127	pub fn new() -> Self {
25128		 Self::default()
25129	}
25130
25131	pub fn currentDisplay(mut self, currentDisplay : DisplayKHR) -> Self {
25132		self.currentDisplay = currentDisplay;
25133		self
25134	}
25135
25136	pub fn currentStackIndex(mut self, currentStackIndex : u32) -> Self {
25137		self.currentStackIndex = currentStackIndex;
25138		self
25139	}
25140
25141}
25142
25143impl DisplaySurfaceCreateInfoKHR {
25144
25145	pub fn new() -> Self {
25146		 Self::default()
25147	}
25148
25149	pub fn sType(mut self, sType : StructureType) -> Self {
25150		self.sType = sType;
25151		self
25152	}
25153
25154	pub fn pNext(mut self, pNext : *const void) -> Self {
25155		self.pNext = pNext;
25156		self
25157	}
25158
25159	pub fn flags(mut self, flags : DisplaySurfaceCreateFlagsKHR) -> Self {
25160		self.flags = flags;
25161		self
25162	}
25163
25164	pub fn displayMode(mut self, displayMode : DisplayModeKHR) -> Self {
25165		self.displayMode = displayMode;
25166		self
25167	}
25168
25169	pub fn planeIndex(mut self, planeIndex : u32) -> Self {
25170		self.planeIndex = planeIndex;
25171		self
25172	}
25173
25174	pub fn planeStackIndex(mut self, planeStackIndex : u32) -> Self {
25175		self.planeStackIndex = planeStackIndex;
25176		self
25177	}
25178
25179	pub fn transform(mut self, transform : SurfaceTransformFlagBitsKHR) -> Self {
25180		self.transform = transform;
25181		self
25182	}
25183
25184	pub fn globalAlpha(mut self, globalAlpha : f32) -> Self {
25185		self.globalAlpha = globalAlpha;
25186		self
25187	}
25188
25189	pub fn alphaMode(mut self, alphaMode : DisplayPlaneAlphaFlagBitsKHR) -> Self {
25190		self.alphaMode = alphaMode;
25191		self
25192	}
25193
25194	pub fn imageExtent(mut self, imageExtent : Extent2D) -> Self {
25195		self.imageExtent = imageExtent;
25196		self
25197	}
25198
25199}
25200
25201impl DisplayPresentInfoKHR {
25202
25203	pub fn new() -> Self {
25204		 Self::default()
25205	}
25206
25207	pub fn sType(mut self, sType : StructureType) -> Self {
25208		self.sType = sType;
25209		self
25210	}
25211
25212	pub fn pNext(mut self, pNext : *const void) -> Self {
25213		self.pNext = pNext;
25214		self
25215	}
25216
25217	pub fn srcRect(mut self, srcRect : Rect2D) -> Self {
25218		self.srcRect = srcRect;
25219		self
25220	}
25221
25222	pub fn dstRect(mut self, dstRect : Rect2D) -> Self {
25223		self.dstRect = dstRect;
25224		self
25225	}
25226
25227	pub fn persistent(mut self, persistent : Bool32) -> Self {
25228		self.persistent = persistent;
25229		self
25230	}
25231
25232}
25233
25234impl ImportMemoryFdInfoKHR {
25235
25236	pub fn new() -> Self {
25237		 Self::default()
25238	}
25239
25240	pub fn sType(mut self, sType : StructureType) -> Self {
25241		self.sType = sType;
25242		self
25243	}
25244
25245	pub fn pNext(mut self, pNext : *const void) -> Self {
25246		self.pNext = pNext;
25247		self
25248	}
25249
25250	pub fn handleType(mut self, handleType : ExternalMemoryHandleTypeFlagBits) -> Self {
25251		self.handleType = handleType;
25252		self
25253	}
25254
25255	pub fn fd(mut self, fd : i32) -> Self {
25256		self.fd = fd;
25257		self
25258	}
25259
25260}
25261
25262impl MemoryFdPropertiesKHR {
25263
25264	pub fn new() -> Self {
25265		 Self::default()
25266	}
25267
25268	pub fn sType(mut self, sType : StructureType) -> Self {
25269		self.sType = sType;
25270		self
25271	}
25272
25273	pub fn pNext(mut self, pNext : *mut void) -> Self {
25274		self.pNext = pNext;
25275		self
25276	}
25277
25278	pub fn memoryTypeBits(mut self, memoryTypeBits : u32) -> Self {
25279		self.memoryTypeBits = memoryTypeBits;
25280		self
25281	}
25282
25283}
25284
25285impl MemoryGetFdInfoKHR {
25286
25287	pub fn new() -> Self {
25288		 Self::default()
25289	}
25290
25291	pub fn sType(mut self, sType : StructureType) -> Self {
25292		self.sType = sType;
25293		self
25294	}
25295
25296	pub fn pNext(mut self, pNext : *const void) -> Self {
25297		self.pNext = pNext;
25298		self
25299	}
25300
25301	pub fn memory(mut self, memory : DeviceMemory) -> Self {
25302		self.memory = memory;
25303		self
25304	}
25305
25306	pub fn handleType(mut self, handleType : ExternalMemoryHandleTypeFlagBits) -> Self {
25307		self.handleType = handleType;
25308		self
25309	}
25310
25311}
25312
25313impl ImportSemaphoreFdInfoKHR {
25314
25315	pub fn new() -> Self {
25316		 Self::default()
25317	}
25318
25319	pub fn sType(mut self, sType : StructureType) -> Self {
25320		self.sType = sType;
25321		self
25322	}
25323
25324	pub fn pNext(mut self, pNext : *const void) -> Self {
25325		self.pNext = pNext;
25326		self
25327	}
25328
25329	pub fn semaphore(mut self, semaphore : Semaphore) -> Self {
25330		self.semaphore = semaphore;
25331		self
25332	}
25333
25334	pub fn flags(mut self, flags : SemaphoreImportFlags) -> Self {
25335		self.flags = flags;
25336		self
25337	}
25338
25339	pub fn handleType(mut self, handleType : ExternalSemaphoreHandleTypeFlagBits) -> Self {
25340		self.handleType = handleType;
25341		self
25342	}
25343
25344	pub fn fd(mut self, fd : i32) -> Self {
25345		self.fd = fd;
25346		self
25347	}
25348
25349}
25350
25351impl SemaphoreGetFdInfoKHR {
25352
25353	pub fn new() -> Self {
25354		 Self::default()
25355	}
25356
25357	pub fn sType(mut self, sType : StructureType) -> Self {
25358		self.sType = sType;
25359		self
25360	}
25361
25362	pub fn pNext(mut self, pNext : *const void) -> Self {
25363		self.pNext = pNext;
25364		self
25365	}
25366
25367	pub fn semaphore(mut self, semaphore : Semaphore) -> Self {
25368		self.semaphore = semaphore;
25369		self
25370	}
25371
25372	pub fn handleType(mut self, handleType : ExternalSemaphoreHandleTypeFlagBits) -> Self {
25373		self.handleType = handleType;
25374		self
25375	}
25376
25377}
25378
25379impl PhysicalDevicePushDescriptorPropertiesKHR {
25380
25381	pub fn new() -> Self {
25382		 Self::default()
25383	}
25384
25385	pub fn sType(mut self, sType : StructureType) -> Self {
25386		self.sType = sType;
25387		self
25388	}
25389
25390	pub fn pNext(mut self, pNext : *mut void) -> Self {
25391		self.pNext = pNext;
25392		self
25393	}
25394
25395	pub fn maxPushDescriptors(mut self, maxPushDescriptors : u32) -> Self {
25396		self.maxPushDescriptors = maxPushDescriptors;
25397		self
25398	}
25399
25400}
25401
25402impl RectLayerKHR {
25403
25404	pub fn new() -> Self {
25405		 Self::default()
25406	}
25407
25408	pub fn offset(mut self, offset : Offset2D) -> Self {
25409		self.offset = offset;
25410		self
25411	}
25412
25413	pub fn extent(mut self, extent : Extent2D) -> Self {
25414		self.extent = extent;
25415		self
25416	}
25417
25418	pub fn layer(mut self, layer : u32) -> Self {
25419		self.layer = layer;
25420		self
25421	}
25422
25423}
25424
25425impl PresentRegionKHR {
25426
25427	pub fn new() -> Self {
25428		 Self::default()
25429	}
25430
25431	pub fn rectangleCount(mut self, rectangleCount : u32) -> Self {
25432		self.rectangleCount = rectangleCount;
25433		self
25434	}
25435
25436	pub fn pRectangles(mut self, pRectangles : *const RectLayerKHR) -> Self {
25437		self.pRectangles = pRectangles;
25438		self
25439	}
25440
25441}
25442
25443impl PresentRegionsKHR {
25444
25445	pub fn new() -> Self {
25446		 Self::default()
25447	}
25448
25449	pub fn sType(mut self, sType : StructureType) -> Self {
25450		self.sType = sType;
25451		self
25452	}
25453
25454	pub fn pNext(mut self, pNext : *const void) -> Self {
25455		self.pNext = pNext;
25456		self
25457	}
25458
25459	pub fn swapchainCount(mut self, swapchainCount : u32) -> Self {
25460		self.swapchainCount = swapchainCount;
25461		self
25462	}
25463
25464	pub fn pRegions(mut self, pRegions : *const PresentRegionKHR) -> Self {
25465		self.pRegions = pRegions;
25466		self
25467	}
25468
25469}
25470
25471impl SharedPresentSurfaceCapabilitiesKHR {
25472
25473	pub fn new() -> Self {
25474		 Self::default()
25475	}
25476
25477	pub fn sType(mut self, sType : StructureType) -> Self {
25478		self.sType = sType;
25479		self
25480	}
25481
25482	pub fn pNext(mut self, pNext : *mut void) -> Self {
25483		self.pNext = pNext;
25484		self
25485	}
25486
25487	pub fn sharedPresentSupportedUsageFlags(mut self, sharedPresentSupportedUsageFlags : ImageUsageFlags) -> Self {
25488		self.sharedPresentSupportedUsageFlags = sharedPresentSupportedUsageFlags;
25489		self
25490	}
25491
25492}
25493
25494impl ImportFenceFdInfoKHR {
25495
25496	pub fn new() -> Self {
25497		 Self::default()
25498	}
25499
25500	pub fn sType(mut self, sType : StructureType) -> Self {
25501		self.sType = sType;
25502		self
25503	}
25504
25505	pub fn pNext(mut self, pNext : *const void) -> Self {
25506		self.pNext = pNext;
25507		self
25508	}
25509
25510	pub fn fence(mut self, fence : Fence) -> Self {
25511		self.fence = fence;
25512		self
25513	}
25514
25515	pub fn flags(mut self, flags : FenceImportFlags) -> Self {
25516		self.flags = flags;
25517		self
25518	}
25519
25520	pub fn handleType(mut self, handleType : ExternalFenceHandleTypeFlagBits) -> Self {
25521		self.handleType = handleType;
25522		self
25523	}
25524
25525	pub fn fd(mut self, fd : i32) -> Self {
25526		self.fd = fd;
25527		self
25528	}
25529
25530}
25531
25532impl FenceGetFdInfoKHR {
25533
25534	pub fn new() -> Self {
25535		 Self::default()
25536	}
25537
25538	pub fn sType(mut self, sType : StructureType) -> Self {
25539		self.sType = sType;
25540		self
25541	}
25542
25543	pub fn pNext(mut self, pNext : *const void) -> Self {
25544		self.pNext = pNext;
25545		self
25546	}
25547
25548	pub fn fence(mut self, fence : Fence) -> Self {
25549		self.fence = fence;
25550		self
25551	}
25552
25553	pub fn handleType(mut self, handleType : ExternalFenceHandleTypeFlagBits) -> Self {
25554		self.handleType = handleType;
25555		self
25556	}
25557
25558}
25559
25560impl PhysicalDevicePerformanceQueryFeaturesKHR {
25561
25562	pub fn new() -> Self {
25563		 Self::default()
25564	}
25565
25566	pub fn sType(mut self, sType : StructureType) -> Self {
25567		self.sType = sType;
25568		self
25569	}
25570
25571	pub fn pNext(mut self, pNext : *mut void) -> Self {
25572		self.pNext = pNext;
25573		self
25574	}
25575
25576	pub fn performanceCounterQueryPools(mut self, performanceCounterQueryPools : Bool32) -> Self {
25577		self.performanceCounterQueryPools = performanceCounterQueryPools;
25578		self
25579	}
25580
25581	pub fn performanceCounterMultipleQueryPools(mut self, performanceCounterMultipleQueryPools : Bool32) -> Self {
25582		self.performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools;
25583		self
25584	}
25585
25586}
25587
25588impl PhysicalDevicePerformanceQueryPropertiesKHR {
25589
25590	pub fn new() -> Self {
25591		 Self::default()
25592	}
25593
25594	pub fn sType(mut self, sType : StructureType) -> Self {
25595		self.sType = sType;
25596		self
25597	}
25598
25599	pub fn pNext(mut self, pNext : *mut void) -> Self {
25600		self.pNext = pNext;
25601		self
25602	}
25603
25604	pub fn allowCommandBufferQueryCopies(mut self, allowCommandBufferQueryCopies : Bool32) -> Self {
25605		self.allowCommandBufferQueryCopies = allowCommandBufferQueryCopies;
25606		self
25607	}
25608
25609}
25610
25611impl PerformanceCounterKHR {
25612
25613	pub fn new() -> Self {
25614		 Self::default()
25615	}
25616
25617	pub fn sType(mut self, sType : StructureType) -> Self {
25618		self.sType = sType;
25619		self
25620	}
25621
25622	pub fn pNext(mut self, pNext : *const void) -> Self {
25623		self.pNext = pNext;
25624		self
25625	}
25626
25627	pub fn unit(mut self, unit : PerformanceCounterUnitKHR) -> Self {
25628		self.unit = unit;
25629		self
25630	}
25631
25632	pub fn scope(mut self, scope : PerformanceCounterScopeKHR) -> Self {
25633		self.scope = scope;
25634		self
25635	}
25636
25637	pub fn storage(mut self, storage : PerformanceCounterStorageKHR) -> Self {
25638		self.storage = storage;
25639		self
25640	}
25641
25642	pub fn uuid(mut self, uuid : [u8;UUID_SIZE]) -> Self {
25643		self.uuid = uuid;
25644		self
25645	}
25646
25647}
25648
25649impl PerformanceCounterDescriptionKHR {
25650
25651	pub fn new() -> Self {
25652		 Self::default()
25653	}
25654
25655	pub fn sType(mut self, sType : StructureType) -> Self {
25656		self.sType = sType;
25657		self
25658	}
25659
25660	pub fn pNext(mut self, pNext : *const void) -> Self {
25661		self.pNext = pNext;
25662		self
25663	}
25664
25665	pub fn flags(mut self, flags : PerformanceCounterDescriptionFlagsKHR) -> Self {
25666		self.flags = flags;
25667		self
25668	}
25669
25670	pub fn name(mut self, name : [i8;MAX_DESCRIPTION_SIZE]) -> Self {
25671		self.name = name;
25672		self
25673	}
25674
25675	pub fn category(mut self, category : [i8;MAX_DESCRIPTION_SIZE]) -> Self {
25676		self.category = category;
25677		self
25678	}
25679
25680	pub fn description(mut self, description : [i8;MAX_DESCRIPTION_SIZE]) -> Self {
25681		self.description = description;
25682		self
25683	}
25684
25685}
25686
25687impl QueryPoolPerformanceCreateInfoKHR {
25688
25689	pub fn new() -> Self {
25690		 Self::default()
25691	}
25692
25693	pub fn sType(mut self, sType : StructureType) -> Self {
25694		self.sType = sType;
25695		self
25696	}
25697
25698	pub fn pNext(mut self, pNext : *const void) -> Self {
25699		self.pNext = pNext;
25700		self
25701	}
25702
25703	pub fn queueFamilyIndex(mut self, queueFamilyIndex : u32) -> Self {
25704		self.queueFamilyIndex = queueFamilyIndex;
25705		self
25706	}
25707
25708	pub fn counterIndexCount(mut self, counterIndexCount : u32) -> Self {
25709		self.counterIndexCount = counterIndexCount;
25710		self
25711	}
25712
25713	pub fn pCounterIndices(mut self, pCounterIndices : *const u32) -> Self {
25714		self.pCounterIndices = pCounterIndices;
25715		self
25716	}
25717
25718}
25719
25720impl AcquireProfilingLockInfoKHR {
25721
25722	pub fn new() -> Self {
25723		 Self::default()
25724	}
25725
25726	pub fn sType(mut self, sType : StructureType) -> Self {
25727		self.sType = sType;
25728		self
25729	}
25730
25731	pub fn pNext(mut self, pNext : *const void) -> Self {
25732		self.pNext = pNext;
25733		self
25734	}
25735
25736	pub fn flags(mut self, flags : AcquireProfilingLockFlagsKHR) -> Self {
25737		self.flags = flags;
25738		self
25739	}
25740
25741	pub fn timeout(mut self, timeout : u64) -> Self {
25742		self.timeout = timeout;
25743		self
25744	}
25745
25746}
25747
25748impl PerformanceQuerySubmitInfoKHR {
25749
25750	pub fn new() -> Self {
25751		 Self::default()
25752	}
25753
25754	pub fn sType(mut self, sType : StructureType) -> Self {
25755		self.sType = sType;
25756		self
25757	}
25758
25759	pub fn pNext(mut self, pNext : *const void) -> Self {
25760		self.pNext = pNext;
25761		self
25762	}
25763
25764	pub fn counterPassIndex(mut self, counterPassIndex : u32) -> Self {
25765		self.counterPassIndex = counterPassIndex;
25766		self
25767	}
25768
25769}
25770
25771impl PhysicalDeviceSurfaceInfo2KHR {
25772
25773	pub fn new() -> Self {
25774		 Self::default()
25775	}
25776
25777	pub fn sType(mut self, sType : StructureType) -> Self {
25778		self.sType = sType;
25779		self
25780	}
25781
25782	pub fn pNext(mut self, pNext : *const void) -> Self {
25783		self.pNext = pNext;
25784		self
25785	}
25786
25787	pub fn surface(mut self, surface : SurfaceKHR) -> Self {
25788		self.surface = surface;
25789		self
25790	}
25791
25792}
25793
25794impl SurfaceCapabilities2KHR {
25795
25796	pub fn new() -> Self {
25797		 Self::default()
25798	}
25799
25800	pub fn sType(mut self, sType : StructureType) -> Self {
25801		self.sType = sType;
25802		self
25803	}
25804
25805	pub fn pNext(mut self, pNext : *mut void) -> Self {
25806		self.pNext = pNext;
25807		self
25808	}
25809
25810	pub fn surfaceCapabilities(mut self, surfaceCapabilities : SurfaceCapabilitiesKHR) -> Self {
25811		self.surfaceCapabilities = surfaceCapabilities;
25812		self
25813	}
25814
25815}
25816
25817impl SurfaceFormat2KHR {
25818
25819	pub fn new() -> Self {
25820		 Self::default()
25821	}
25822
25823	pub fn sType(mut self, sType : StructureType) -> Self {
25824		self.sType = sType;
25825		self
25826	}
25827
25828	pub fn pNext(mut self, pNext : *mut void) -> Self {
25829		self.pNext = pNext;
25830		self
25831	}
25832
25833	pub fn surfaceFormat(mut self, surfaceFormat : SurfaceFormatKHR) -> Self {
25834		self.surfaceFormat = surfaceFormat;
25835		self
25836	}
25837
25838}
25839
25840impl DisplayProperties2KHR {
25841
25842	pub fn new() -> Self {
25843		 Self::default()
25844	}
25845
25846	pub fn sType(mut self, sType : StructureType) -> Self {
25847		self.sType = sType;
25848		self
25849	}
25850
25851	pub fn pNext(mut self, pNext : *mut void) -> Self {
25852		self.pNext = pNext;
25853		self
25854	}
25855
25856	pub fn displayProperties(mut self, displayProperties : DisplayPropertiesKHR) -> Self {
25857		self.displayProperties = displayProperties;
25858		self
25859	}
25860
25861}
25862
25863impl DisplayPlaneProperties2KHR {
25864
25865	pub fn new() -> Self {
25866		 Self::default()
25867	}
25868
25869	pub fn sType(mut self, sType : StructureType) -> Self {
25870		self.sType = sType;
25871		self
25872	}
25873
25874	pub fn pNext(mut self, pNext : *mut void) -> Self {
25875		self.pNext = pNext;
25876		self
25877	}
25878
25879	pub fn displayPlaneProperties(mut self, displayPlaneProperties : DisplayPlanePropertiesKHR) -> Self {
25880		self.displayPlaneProperties = displayPlaneProperties;
25881		self
25882	}
25883
25884}
25885
25886impl DisplayModeProperties2KHR {
25887
25888	pub fn new() -> Self {
25889		 Self::default()
25890	}
25891
25892	pub fn sType(mut self, sType : StructureType) -> Self {
25893		self.sType = sType;
25894		self
25895	}
25896
25897	pub fn pNext(mut self, pNext : *mut void) -> Self {
25898		self.pNext = pNext;
25899		self
25900	}
25901
25902	pub fn displayModeProperties(mut self, displayModeProperties : DisplayModePropertiesKHR) -> Self {
25903		self.displayModeProperties = displayModeProperties;
25904		self
25905	}
25906
25907}
25908
25909impl DisplayPlaneInfo2KHR {
25910
25911	pub fn new() -> Self {
25912		 Self::default()
25913	}
25914
25915	pub fn sType(mut self, sType : StructureType) -> Self {
25916		self.sType = sType;
25917		self
25918	}
25919
25920	pub fn pNext(mut self, pNext : *const void) -> Self {
25921		self.pNext = pNext;
25922		self
25923	}
25924
25925	pub fn mode(mut self, mode : DisplayModeKHR) -> Self {
25926		self.mode = mode;
25927		self
25928	}
25929
25930	pub fn planeIndex(mut self, planeIndex : u32) -> Self {
25931		self.planeIndex = planeIndex;
25932		self
25933	}
25934
25935}
25936
25937impl DisplayPlaneCapabilities2KHR {
25938
25939	pub fn new() -> Self {
25940		 Self::default()
25941	}
25942
25943	pub fn sType(mut self, sType : StructureType) -> Self {
25944		self.sType = sType;
25945		self
25946	}
25947
25948	pub fn pNext(mut self, pNext : *mut void) -> Self {
25949		self.pNext = pNext;
25950		self
25951	}
25952
25953	pub fn capabilities(mut self, capabilities : DisplayPlaneCapabilitiesKHR) -> Self {
25954		self.capabilities = capabilities;
25955		self
25956	}
25957
25958}
25959
25960impl PhysicalDeviceShaderClockFeaturesKHR {
25961
25962	pub fn new() -> Self {
25963		 Self::default()
25964	}
25965
25966	pub fn sType(mut self, sType : StructureType) -> Self {
25967		self.sType = sType;
25968		self
25969	}
25970
25971	pub fn pNext(mut self, pNext : *mut void) -> Self {
25972		self.pNext = pNext;
25973		self
25974	}
25975
25976	pub fn shaderSubgroupClock(mut self, shaderSubgroupClock : Bool32) -> Self {
25977		self.shaderSubgroupClock = shaderSubgroupClock;
25978		self
25979	}
25980
25981	pub fn shaderDeviceClock(mut self, shaderDeviceClock : Bool32) -> Self {
25982		self.shaderDeviceClock = shaderDeviceClock;
25983		self
25984	}
25985
25986}
25987
25988impl SurfaceProtectedCapabilitiesKHR {
25989
25990	pub fn new() -> Self {
25991		 Self::default()
25992	}
25993
25994	pub fn sType(mut self, sType : StructureType) -> Self {
25995		self.sType = sType;
25996		self
25997	}
25998
25999	pub fn pNext(mut self, pNext : *const void) -> Self {
26000		self.pNext = pNext;
26001		self
26002	}
26003
26004	pub fn supportsProtected(mut self, supportsProtected : Bool32) -> Self {
26005		self.supportsProtected = supportsProtected;
26006		self
26007	}
26008
26009}
26010
26011impl PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
26012
26013	pub fn new() -> Self {
26014		 Self::default()
26015	}
26016
26017	pub fn sType(mut self, sType : StructureType) -> Self {
26018		self.sType = sType;
26019		self
26020	}
26021
26022	pub fn pNext(mut self, pNext : *mut void) -> Self {
26023		self.pNext = pNext;
26024		self
26025	}
26026
26027	pub fn pipelineExecutableInfo(mut self, pipelineExecutableInfo : Bool32) -> Self {
26028		self.pipelineExecutableInfo = pipelineExecutableInfo;
26029		self
26030	}
26031
26032}
26033
26034impl PipelineInfoKHR {
26035
26036	pub fn new() -> Self {
26037		 Self::default()
26038	}
26039
26040	pub fn sType(mut self, sType : StructureType) -> Self {
26041		self.sType = sType;
26042		self
26043	}
26044
26045	pub fn pNext(mut self, pNext : *const void) -> Self {
26046		self.pNext = pNext;
26047		self
26048	}
26049
26050	pub fn pipeline(mut self, pipeline : Pipeline) -> Self {
26051		self.pipeline = pipeline;
26052		self
26053	}
26054
26055}
26056
26057impl PipelineExecutablePropertiesKHR {
26058
26059	pub fn new() -> Self {
26060		 Self::default()
26061	}
26062
26063	pub fn sType(mut self, sType : StructureType) -> Self {
26064		self.sType = sType;
26065		self
26066	}
26067
26068	pub fn pNext(mut self, pNext : *mut void) -> Self {
26069		self.pNext = pNext;
26070		self
26071	}
26072
26073	pub fn stages(mut self, stages : ShaderStageFlags) -> Self {
26074		self.stages = stages;
26075		self
26076	}
26077
26078	pub fn name(mut self, name : [i8;MAX_DESCRIPTION_SIZE]) -> Self {
26079		self.name = name;
26080		self
26081	}
26082
26083	pub fn description(mut self, description : [i8;MAX_DESCRIPTION_SIZE]) -> Self {
26084		self.description = description;
26085		self
26086	}
26087
26088	pub fn subgroupSize(mut self, subgroupSize : u32) -> Self {
26089		self.subgroupSize = subgroupSize;
26090		self
26091	}
26092
26093}
26094
26095impl PipelineExecutableInfoKHR {
26096
26097	pub fn new() -> Self {
26098		 Self::default()
26099	}
26100
26101	pub fn sType(mut self, sType : StructureType) -> Self {
26102		self.sType = sType;
26103		self
26104	}
26105
26106	pub fn pNext(mut self, pNext : *const void) -> Self {
26107		self.pNext = pNext;
26108		self
26109	}
26110
26111	pub fn pipeline(mut self, pipeline : Pipeline) -> Self {
26112		self.pipeline = pipeline;
26113		self
26114	}
26115
26116	pub fn executableIndex(mut self, executableIndex : u32) -> Self {
26117		self.executableIndex = executableIndex;
26118		self
26119	}
26120
26121}
26122
26123impl PipelineExecutableInternalRepresentationKHR {
26124
26125	pub fn new() -> Self {
26126		 Self::default()
26127	}
26128
26129	pub fn sType(mut self, sType : StructureType) -> Self {
26130		self.sType = sType;
26131		self
26132	}
26133
26134	pub fn pNext(mut self, pNext : *mut void) -> Self {
26135		self.pNext = pNext;
26136		self
26137	}
26138
26139	pub fn name(mut self, name : [i8;MAX_DESCRIPTION_SIZE]) -> Self {
26140		self.name = name;
26141		self
26142	}
26143
26144	pub fn description(mut self, description : [i8;MAX_DESCRIPTION_SIZE]) -> Self {
26145		self.description = description;
26146		self
26147	}
26148
26149	pub fn isText(mut self, isText : Bool32) -> Self {
26150		self.isText = isText;
26151		self
26152	}
26153
26154	pub fn dataSize(mut self, dataSize : usize) -> Self {
26155		self.dataSize = dataSize;
26156		self
26157	}
26158
26159	pub fn pData(mut self, pData : *mut void) -> Self {
26160		self.pData = pData;
26161		self
26162	}
26163
26164}
26165
26166impl DebugReportCallbackCreateInfoEXT {
26167
26168	pub fn new() -> Self {
26169		 Self::default()
26170	}
26171
26172	pub fn sType(mut self, sType : StructureType) -> Self {
26173		self.sType = sType;
26174		self
26175	}
26176
26177	pub fn pNext(mut self, pNext : *const void) -> Self {
26178		self.pNext = pNext;
26179		self
26180	}
26181
26182	pub fn flags(mut self, flags : DebugReportFlagsEXT) -> Self {
26183		self.flags = flags;
26184		self
26185	}
26186
26187	pub fn pfnCallback(mut self, pfnCallback : u64) -> Self {
26188		self.pfnCallback = pfnCallback;
26189		self
26190	}
26191
26192	pub fn pUserData(mut self, pUserData : *mut void) -> Self {
26193		self.pUserData = pUserData;
26194		self
26195	}
26196
26197}
26198
26199impl PipelineRasterizationStateRasterizationOrderAMD {
26200
26201	pub fn new() -> Self {
26202		 Self::default()
26203	}
26204
26205	pub fn sType(mut self, sType : StructureType) -> Self {
26206		self.sType = sType;
26207		self
26208	}
26209
26210	pub fn pNext(mut self, pNext : *const void) -> Self {
26211		self.pNext = pNext;
26212		self
26213	}
26214
26215	pub fn rasterizationOrder(mut self, rasterizationOrder : RasterizationOrderAMD) -> Self {
26216		self.rasterizationOrder = rasterizationOrder;
26217		self
26218	}
26219
26220}
26221
26222impl DebugMarkerObjectNameInfoEXT {
26223
26224	pub fn new() -> Self {
26225		 Self::default()
26226	}
26227
26228	pub fn sType(mut self, sType : StructureType) -> Self {
26229		self.sType = sType;
26230		self
26231	}
26232
26233	pub fn pNext(mut self, pNext : *const void) -> Self {
26234		self.pNext = pNext;
26235		self
26236	}
26237
26238	pub fn objectType(mut self, objectType : DebugReportObjectTypeEXT) -> Self {
26239		self.objectType = objectType;
26240		self
26241	}
26242
26243	pub fn object(mut self, object : u64) -> Self {
26244		self.object = object;
26245		self
26246	}
26247
26248	pub fn pObjectName(mut self, pObjectName : *const i8) -> Self {
26249		self.pObjectName = pObjectName;
26250		self
26251	}
26252
26253}
26254
26255impl DebugMarkerObjectTagInfoEXT {
26256
26257	pub fn new() -> Self {
26258		 Self::default()
26259	}
26260
26261	pub fn sType(mut self, sType : StructureType) -> Self {
26262		self.sType = sType;
26263		self
26264	}
26265
26266	pub fn pNext(mut self, pNext : *const void) -> Self {
26267		self.pNext = pNext;
26268		self
26269	}
26270
26271	pub fn objectType(mut self, objectType : DebugReportObjectTypeEXT) -> Self {
26272		self.objectType = objectType;
26273		self
26274	}
26275
26276	pub fn object(mut self, object : u64) -> Self {
26277		self.object = object;
26278		self
26279	}
26280
26281	pub fn tagName(mut self, tagName : u64) -> Self {
26282		self.tagName = tagName;
26283		self
26284	}
26285
26286	pub fn tagSize(mut self, tagSize : usize) -> Self {
26287		self.tagSize = tagSize;
26288		self
26289	}
26290
26291	pub fn pTag(mut self, pTag : *const void) -> Self {
26292		self.pTag = pTag;
26293		self
26294	}
26295
26296}
26297
26298impl DebugMarkerMarkerInfoEXT {
26299
26300	pub fn new() -> Self {
26301		 Self::default()
26302	}
26303
26304	pub fn sType(mut self, sType : StructureType) -> Self {
26305		self.sType = sType;
26306		self
26307	}
26308
26309	pub fn pNext(mut self, pNext : *const void) -> Self {
26310		self.pNext = pNext;
26311		self
26312	}
26313
26314	pub fn pMarkerName(mut self, pMarkerName : *const i8) -> Self {
26315		self.pMarkerName = pMarkerName;
26316		self
26317	}
26318
26319	pub fn color(mut self, color : [f32;4]) -> Self {
26320		self.color = color;
26321		self
26322	}
26323
26324}
26325
26326impl DedicatedAllocationImageCreateInfoNV {
26327
26328	pub fn new() -> Self {
26329		 Self::default()
26330	}
26331
26332	pub fn sType(mut self, sType : StructureType) -> Self {
26333		self.sType = sType;
26334		self
26335	}
26336
26337	pub fn pNext(mut self, pNext : *const void) -> Self {
26338		self.pNext = pNext;
26339		self
26340	}
26341
26342	pub fn dedicatedAllocation(mut self, dedicatedAllocation : Bool32) -> Self {
26343		self.dedicatedAllocation = dedicatedAllocation;
26344		self
26345	}
26346
26347}
26348
26349impl DedicatedAllocationBufferCreateInfoNV {
26350
26351	pub fn new() -> Self {
26352		 Self::default()
26353	}
26354
26355	pub fn sType(mut self, sType : StructureType) -> Self {
26356		self.sType = sType;
26357		self
26358	}
26359
26360	pub fn pNext(mut self, pNext : *const void) -> Self {
26361		self.pNext = pNext;
26362		self
26363	}
26364
26365	pub fn dedicatedAllocation(mut self, dedicatedAllocation : Bool32) -> Self {
26366		self.dedicatedAllocation = dedicatedAllocation;
26367		self
26368	}
26369
26370}
26371
26372impl DedicatedAllocationMemoryAllocateInfoNV {
26373
26374	pub fn new() -> Self {
26375		 Self::default()
26376	}
26377
26378	pub fn sType(mut self, sType : StructureType) -> Self {
26379		self.sType = sType;
26380		self
26381	}
26382
26383	pub fn pNext(mut self, pNext : *const void) -> Self {
26384		self.pNext = pNext;
26385		self
26386	}
26387
26388	pub fn image(mut self, image : Image) -> Self {
26389		self.image = image;
26390		self
26391	}
26392
26393	pub fn buffer(mut self, buffer : Buffer) -> Self {
26394		self.buffer = buffer;
26395		self
26396	}
26397
26398}
26399
26400impl PhysicalDeviceTransformFeedbackFeaturesEXT {
26401
26402	pub fn new() -> Self {
26403		 Self::default()
26404	}
26405
26406	pub fn sType(mut self, sType : StructureType) -> Self {
26407		self.sType = sType;
26408		self
26409	}
26410
26411	pub fn pNext(mut self, pNext : *mut void) -> Self {
26412		self.pNext = pNext;
26413		self
26414	}
26415
26416	pub fn transformFeedback(mut self, transformFeedback : Bool32) -> Self {
26417		self.transformFeedback = transformFeedback;
26418		self
26419	}
26420
26421	pub fn geometryStreams(mut self, geometryStreams : Bool32) -> Self {
26422		self.geometryStreams = geometryStreams;
26423		self
26424	}
26425
26426}
26427
26428impl PhysicalDeviceTransformFeedbackPropertiesEXT {
26429
26430	pub fn new() -> Self {
26431		 Self::default()
26432	}
26433
26434	pub fn sType(mut self, sType : StructureType) -> Self {
26435		self.sType = sType;
26436		self
26437	}
26438
26439	pub fn pNext(mut self, pNext : *mut void) -> Self {
26440		self.pNext = pNext;
26441		self
26442	}
26443
26444	pub fn maxTransformFeedbackStreams(mut self, maxTransformFeedbackStreams : u32) -> Self {
26445		self.maxTransformFeedbackStreams = maxTransformFeedbackStreams;
26446		self
26447	}
26448
26449	pub fn maxTransformFeedbackBuffers(mut self, maxTransformFeedbackBuffers : u32) -> Self {
26450		self.maxTransformFeedbackBuffers = maxTransformFeedbackBuffers;
26451		self
26452	}
26453
26454	pub fn maxTransformFeedbackBufferSize(mut self, maxTransformFeedbackBufferSize : DeviceSize) -> Self {
26455		self.maxTransformFeedbackBufferSize = maxTransformFeedbackBufferSize;
26456		self
26457	}
26458
26459	pub fn maxTransformFeedbackStreamDataSize(mut self, maxTransformFeedbackStreamDataSize : u32) -> Self {
26460		self.maxTransformFeedbackStreamDataSize = maxTransformFeedbackStreamDataSize;
26461		self
26462	}
26463
26464	pub fn maxTransformFeedbackBufferDataSize(mut self, maxTransformFeedbackBufferDataSize : u32) -> Self {
26465		self.maxTransformFeedbackBufferDataSize = maxTransformFeedbackBufferDataSize;
26466		self
26467	}
26468
26469	pub fn maxTransformFeedbackBufferDataStride(mut self, maxTransformFeedbackBufferDataStride : u32) -> Self {
26470		self.maxTransformFeedbackBufferDataStride = maxTransformFeedbackBufferDataStride;
26471		self
26472	}
26473
26474	pub fn transformFeedbackQueries(mut self, transformFeedbackQueries : Bool32) -> Self {
26475		self.transformFeedbackQueries = transformFeedbackQueries;
26476		self
26477	}
26478
26479	pub fn transformFeedbackStreamsLinesTriangles(mut self, transformFeedbackStreamsLinesTriangles : Bool32) -> Self {
26480		self.transformFeedbackStreamsLinesTriangles = transformFeedbackStreamsLinesTriangles;
26481		self
26482	}
26483
26484	pub fn transformFeedbackRasterizationStreamSelect(mut self, transformFeedbackRasterizationStreamSelect : Bool32) -> Self {
26485		self.transformFeedbackRasterizationStreamSelect = transformFeedbackRasterizationStreamSelect;
26486		self
26487	}
26488
26489	pub fn transformFeedbackDraw(mut self, transformFeedbackDraw : Bool32) -> Self {
26490		self.transformFeedbackDraw = transformFeedbackDraw;
26491		self
26492	}
26493
26494}
26495
26496impl PipelineRasterizationStateStreamCreateInfoEXT {
26497
26498	pub fn new() -> Self {
26499		 Self::default()
26500	}
26501
26502	pub fn sType(mut self, sType : StructureType) -> Self {
26503		self.sType = sType;
26504		self
26505	}
26506
26507	pub fn pNext(mut self, pNext : *const void) -> Self {
26508		self.pNext = pNext;
26509		self
26510	}
26511
26512	pub fn flags(mut self, flags : PipelineRasterizationStateStreamCreateFlagsEXT) -> Self {
26513		self.flags = flags;
26514		self
26515	}
26516
26517	pub fn rasterizationStream(mut self, rasterizationStream : u32) -> Self {
26518		self.rasterizationStream = rasterizationStream;
26519		self
26520	}
26521
26522}
26523
26524impl ImageViewHandleInfoNVX {
26525
26526	pub fn new() -> Self {
26527		 Self::default()
26528	}
26529
26530	pub fn sType(mut self, sType : StructureType) -> Self {
26531		self.sType = sType;
26532		self
26533	}
26534
26535	pub fn pNext(mut self, pNext : *const void) -> Self {
26536		self.pNext = pNext;
26537		self
26538	}
26539
26540	pub fn imageView(mut self, imageView : ImageView) -> Self {
26541		self.imageView = imageView;
26542		self
26543	}
26544
26545	pub fn descriptorType(mut self, descriptorType : DescriptorType) -> Self {
26546		self.descriptorType = descriptorType;
26547		self
26548	}
26549
26550	pub fn sampler(mut self, sampler : Sampler) -> Self {
26551		self.sampler = sampler;
26552		self
26553	}
26554
26555}
26556
26557impl ImageViewAddressPropertiesNVX {
26558
26559	pub fn new() -> Self {
26560		 Self::default()
26561	}
26562
26563	pub fn sType(mut self, sType : StructureType) -> Self {
26564		self.sType = sType;
26565		self
26566	}
26567
26568	pub fn pNext(mut self, pNext : *mut void) -> Self {
26569		self.pNext = pNext;
26570		self
26571	}
26572
26573	pub fn deviceAddress(mut self, deviceAddress : DeviceAddress) -> Self {
26574		self.deviceAddress = deviceAddress;
26575		self
26576	}
26577
26578	pub fn size(mut self, size : DeviceSize) -> Self {
26579		self.size = size;
26580		self
26581	}
26582
26583}
26584
26585impl TextureLODGatherFormatPropertiesAMD {
26586
26587	pub fn new() -> Self {
26588		 Self::default()
26589	}
26590
26591	pub fn sType(mut self, sType : StructureType) -> Self {
26592		self.sType = sType;
26593		self
26594	}
26595
26596	pub fn pNext(mut self, pNext : *mut void) -> Self {
26597		self.pNext = pNext;
26598		self
26599	}
26600
26601	pub fn supportsTextureGatherLODBiasAMD(mut self, supportsTextureGatherLODBiasAMD : Bool32) -> Self {
26602		self.supportsTextureGatherLODBiasAMD = supportsTextureGatherLODBiasAMD;
26603		self
26604	}
26605
26606}
26607
26608impl ShaderResourceUsageAMD {
26609
26610	pub fn new() -> Self {
26611		 Self::default()
26612	}
26613
26614	pub fn numUsedVgprs(mut self, numUsedVgprs : u32) -> Self {
26615		self.numUsedVgprs = numUsedVgprs;
26616		self
26617	}
26618
26619	pub fn numUsedSgprs(mut self, numUsedSgprs : u32) -> Self {
26620		self.numUsedSgprs = numUsedSgprs;
26621		self
26622	}
26623
26624	pub fn ldsSizePerLocalWorkGroup(mut self, ldsSizePerLocalWorkGroup : u32) -> Self {
26625		self.ldsSizePerLocalWorkGroup = ldsSizePerLocalWorkGroup;
26626		self
26627	}
26628
26629	pub fn ldsUsageSizeInBytes(mut self, ldsUsageSizeInBytes : usize) -> Self {
26630		self.ldsUsageSizeInBytes = ldsUsageSizeInBytes;
26631		self
26632	}
26633
26634	pub fn scratchMemUsageInBytes(mut self, scratchMemUsageInBytes : usize) -> Self {
26635		self.scratchMemUsageInBytes = scratchMemUsageInBytes;
26636		self
26637	}
26638
26639}
26640
26641impl ShaderStatisticsInfoAMD {
26642
26643	pub fn new() -> Self {
26644		 Self::default()
26645	}
26646
26647	pub fn shaderStageMask(mut self, shaderStageMask : ShaderStageFlags) -> Self {
26648		self.shaderStageMask = shaderStageMask;
26649		self
26650	}
26651
26652	pub fn resourceUsage(mut self, resourceUsage : ShaderResourceUsageAMD) -> Self {
26653		self.resourceUsage = resourceUsage;
26654		self
26655	}
26656
26657	pub fn numPhysicalVgprs(mut self, numPhysicalVgprs : u32) -> Self {
26658		self.numPhysicalVgprs = numPhysicalVgprs;
26659		self
26660	}
26661
26662	pub fn numPhysicalSgprs(mut self, numPhysicalSgprs : u32) -> Self {
26663		self.numPhysicalSgprs = numPhysicalSgprs;
26664		self
26665	}
26666
26667	pub fn numAvailableVgprs(mut self, numAvailableVgprs : u32) -> Self {
26668		self.numAvailableVgprs = numAvailableVgprs;
26669		self
26670	}
26671
26672	pub fn numAvailableSgprs(mut self, numAvailableSgprs : u32) -> Self {
26673		self.numAvailableSgprs = numAvailableSgprs;
26674		self
26675	}
26676
26677	pub fn computeWorkGroupSize(mut self, computeWorkGroupSize : [u32;3]) -> Self {
26678		self.computeWorkGroupSize = computeWorkGroupSize;
26679		self
26680	}
26681
26682}
26683
26684impl PhysicalDeviceCornerSampledImageFeaturesNV {
26685
26686	pub fn new() -> Self {
26687		 Self::default()
26688	}
26689
26690	pub fn sType(mut self, sType : StructureType) -> Self {
26691		self.sType = sType;
26692		self
26693	}
26694
26695	pub fn pNext(mut self, pNext : *mut void) -> Self {
26696		self.pNext = pNext;
26697		self
26698	}
26699
26700	pub fn cornerSampledImage(mut self, cornerSampledImage : Bool32) -> Self {
26701		self.cornerSampledImage = cornerSampledImage;
26702		self
26703	}
26704
26705}
26706
26707impl ExternalImageFormatPropertiesNV {
26708
26709	pub fn new() -> Self {
26710		 Self::default()
26711	}
26712
26713	pub fn imageFormatProperties(mut self, imageFormatProperties : ImageFormatProperties) -> Self {
26714		self.imageFormatProperties = imageFormatProperties;
26715		self
26716	}
26717
26718	pub fn externalMemoryFeatures(mut self, externalMemoryFeatures : ExternalMemoryFeatureFlagsNV) -> Self {
26719		self.externalMemoryFeatures = externalMemoryFeatures;
26720		self
26721	}
26722
26723	pub fn exportFromImportedHandleTypes(mut self, exportFromImportedHandleTypes : ExternalMemoryHandleTypeFlagsNV) -> Self {
26724		self.exportFromImportedHandleTypes = exportFromImportedHandleTypes;
26725		self
26726	}
26727
26728	pub fn compatibleHandleTypes(mut self, compatibleHandleTypes : ExternalMemoryHandleTypeFlagsNV) -> Self {
26729		self.compatibleHandleTypes = compatibleHandleTypes;
26730		self
26731	}
26732
26733}
26734
26735impl ExternalMemoryImageCreateInfoNV {
26736
26737	pub fn new() -> Self {
26738		 Self::default()
26739	}
26740
26741	pub fn sType(mut self, sType : StructureType) -> Self {
26742		self.sType = sType;
26743		self
26744	}
26745
26746	pub fn pNext(mut self, pNext : *const void) -> Self {
26747		self.pNext = pNext;
26748		self
26749	}
26750
26751	pub fn handleTypes(mut self, handleTypes : ExternalMemoryHandleTypeFlagsNV) -> Self {
26752		self.handleTypes = handleTypes;
26753		self
26754	}
26755
26756}
26757
26758impl ExportMemoryAllocateInfoNV {
26759
26760	pub fn new() -> Self {
26761		 Self::default()
26762	}
26763
26764	pub fn sType(mut self, sType : StructureType) -> Self {
26765		self.sType = sType;
26766		self
26767	}
26768
26769	pub fn pNext(mut self, pNext : *const void) -> Self {
26770		self.pNext = pNext;
26771		self
26772	}
26773
26774	pub fn handleTypes(mut self, handleTypes : ExternalMemoryHandleTypeFlagsNV) -> Self {
26775		self.handleTypes = handleTypes;
26776		self
26777	}
26778
26779}
26780
26781impl ValidationFlagsEXT {
26782
26783	pub fn new() -> Self {
26784		 Self::default()
26785	}
26786
26787	pub fn sType(mut self, sType : StructureType) -> Self {
26788		self.sType = sType;
26789		self
26790	}
26791
26792	pub fn pNext(mut self, pNext : *const void) -> Self {
26793		self.pNext = pNext;
26794		self
26795	}
26796
26797	pub fn disabledValidationCheckCount(mut self, disabledValidationCheckCount : u32) -> Self {
26798		self.disabledValidationCheckCount = disabledValidationCheckCount;
26799		self
26800	}
26801
26802	pub fn pDisabledValidationChecks(mut self, pDisabledValidationChecks : *const ValidationCheckEXT) -> Self {
26803		self.pDisabledValidationChecks = pDisabledValidationChecks;
26804		self
26805	}
26806
26807}
26808
26809impl PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT {
26810
26811	pub fn new() -> Self {
26812		 Self::default()
26813	}
26814
26815	pub fn sType(mut self, sType : StructureType) -> Self {
26816		self.sType = sType;
26817		self
26818	}
26819
26820	pub fn pNext(mut self, pNext : *mut void) -> Self {
26821		self.pNext = pNext;
26822		self
26823	}
26824
26825	pub fn textureCompressionASTC_HDR(mut self, textureCompressionASTC_HDR : Bool32) -> Self {
26826		self.textureCompressionASTC_HDR = textureCompressionASTC_HDR;
26827		self
26828	}
26829
26830}
26831
26832impl ImageViewASTCDecodeModeEXT {
26833
26834	pub fn new() -> Self {
26835		 Self::default()
26836	}
26837
26838	pub fn sType(mut self, sType : StructureType) -> Self {
26839		self.sType = sType;
26840		self
26841	}
26842
26843	pub fn pNext(mut self, pNext : *const void) -> Self {
26844		self.pNext = pNext;
26845		self
26846	}
26847
26848	pub fn decodeMode(mut self, decodeMode : Format) -> Self {
26849		self.decodeMode = decodeMode;
26850		self
26851	}
26852
26853}
26854
26855impl PhysicalDeviceASTCDecodeFeaturesEXT {
26856
26857	pub fn new() -> Self {
26858		 Self::default()
26859	}
26860
26861	pub fn sType(mut self, sType : StructureType) -> Self {
26862		self.sType = sType;
26863		self
26864	}
26865
26866	pub fn pNext(mut self, pNext : *mut void) -> Self {
26867		self.pNext = pNext;
26868		self
26869	}
26870
26871	pub fn decodeModeSharedExponent(mut self, decodeModeSharedExponent : Bool32) -> Self {
26872		self.decodeModeSharedExponent = decodeModeSharedExponent;
26873		self
26874	}
26875
26876}
26877
26878impl ConditionalRenderingBeginInfoEXT {
26879
26880	pub fn new() -> Self {
26881		 Self::default()
26882	}
26883
26884	pub fn sType(mut self, sType : StructureType) -> Self {
26885		self.sType = sType;
26886		self
26887	}
26888
26889	pub fn pNext(mut self, pNext : *const void) -> Self {
26890		self.pNext = pNext;
26891		self
26892	}
26893
26894	pub fn buffer(mut self, buffer : Buffer) -> Self {
26895		self.buffer = buffer;
26896		self
26897	}
26898
26899	pub fn offset(mut self, offset : DeviceSize) -> Self {
26900		self.offset = offset;
26901		self
26902	}
26903
26904	pub fn flags(mut self, flags : ConditionalRenderingFlagsEXT) -> Self {
26905		self.flags = flags;
26906		self
26907	}
26908
26909}
26910
26911impl PhysicalDeviceConditionalRenderingFeaturesEXT {
26912
26913	pub fn new() -> Self {
26914		 Self::default()
26915	}
26916
26917	pub fn sType(mut self, sType : StructureType) -> Self {
26918		self.sType = sType;
26919		self
26920	}
26921
26922	pub fn pNext(mut self, pNext : *mut void) -> Self {
26923		self.pNext = pNext;
26924		self
26925	}
26926
26927	pub fn conditionalRendering(mut self, conditionalRendering : Bool32) -> Self {
26928		self.conditionalRendering = conditionalRendering;
26929		self
26930	}
26931
26932	pub fn inheritedConditionalRendering(mut self, inheritedConditionalRendering : Bool32) -> Self {
26933		self.inheritedConditionalRendering = inheritedConditionalRendering;
26934		self
26935	}
26936
26937}
26938
26939impl CommandBufferInheritanceConditionalRenderingInfoEXT {
26940
26941	pub fn new() -> Self {
26942		 Self::default()
26943	}
26944
26945	pub fn sType(mut self, sType : StructureType) -> Self {
26946		self.sType = sType;
26947		self
26948	}
26949
26950	pub fn pNext(mut self, pNext : *const void) -> Self {
26951		self.pNext = pNext;
26952		self
26953	}
26954
26955	pub fn conditionalRenderingEnable(mut self, conditionalRenderingEnable : Bool32) -> Self {
26956		self.conditionalRenderingEnable = conditionalRenderingEnable;
26957		self
26958	}
26959
26960}
26961
26962impl ViewportWScalingNV {
26963
26964	pub fn new() -> Self {
26965		 Self::default()
26966	}
26967
26968	pub fn xcoeff(mut self, xcoeff : f32) -> Self {
26969		self.xcoeff = xcoeff;
26970		self
26971	}
26972
26973	pub fn ycoeff(mut self, ycoeff : f32) -> Self {
26974		self.ycoeff = ycoeff;
26975		self
26976	}
26977
26978}
26979
26980impl PipelineViewportWScalingStateCreateInfoNV {
26981
26982	pub fn new() -> Self {
26983		 Self::default()
26984	}
26985
26986	pub fn sType(mut self, sType : StructureType) -> Self {
26987		self.sType = sType;
26988		self
26989	}
26990
26991	pub fn pNext(mut self, pNext : *const void) -> Self {
26992		self.pNext = pNext;
26993		self
26994	}
26995
26996	pub fn viewportWScalingEnable(mut self, viewportWScalingEnable : Bool32) -> Self {
26997		self.viewportWScalingEnable = viewportWScalingEnable;
26998		self
26999	}
27000
27001	pub fn viewportCount(mut self, viewportCount : u32) -> Self {
27002		self.viewportCount = viewportCount;
27003		self
27004	}
27005
27006	pub fn pViewportWScalings(mut self, pViewportWScalings : *const ViewportWScalingNV) -> Self {
27007		self.pViewportWScalings = pViewportWScalings;
27008		self
27009	}
27010
27011}
27012
27013impl SurfaceCapabilities2EXT {
27014
27015	pub fn new() -> Self {
27016		 Self::default()
27017	}
27018
27019	pub fn sType(mut self, sType : StructureType) -> Self {
27020		self.sType = sType;
27021		self
27022	}
27023
27024	pub fn pNext(mut self, pNext : *mut void) -> Self {
27025		self.pNext = pNext;
27026		self
27027	}
27028
27029	pub fn minImageCount(mut self, minImageCount : u32) -> Self {
27030		self.minImageCount = minImageCount;
27031		self
27032	}
27033
27034	pub fn maxImageCount(mut self, maxImageCount : u32) -> Self {
27035		self.maxImageCount = maxImageCount;
27036		self
27037	}
27038
27039	pub fn currentExtent(mut self, currentExtent : Extent2D) -> Self {
27040		self.currentExtent = currentExtent;
27041		self
27042	}
27043
27044	pub fn minImageExtent(mut self, minImageExtent : Extent2D) -> Self {
27045		self.minImageExtent = minImageExtent;
27046		self
27047	}
27048
27049	pub fn maxImageExtent(mut self, maxImageExtent : Extent2D) -> Self {
27050		self.maxImageExtent = maxImageExtent;
27051		self
27052	}
27053
27054	pub fn maxImageArrayLayers(mut self, maxImageArrayLayers : u32) -> Self {
27055		self.maxImageArrayLayers = maxImageArrayLayers;
27056		self
27057	}
27058
27059	pub fn supportedTransforms(mut self, supportedTransforms : SurfaceTransformFlagsKHR) -> Self {
27060		self.supportedTransforms = supportedTransforms;
27061		self
27062	}
27063
27064	pub fn currentTransform(mut self, currentTransform : SurfaceTransformFlagBitsKHR) -> Self {
27065		self.currentTransform = currentTransform;
27066		self
27067	}
27068
27069	pub fn supportedCompositeAlpha(mut self, supportedCompositeAlpha : CompositeAlphaFlagsKHR) -> Self {
27070		self.supportedCompositeAlpha = supportedCompositeAlpha;
27071		self
27072	}
27073
27074	pub fn supportedUsageFlags(mut self, supportedUsageFlags : ImageUsageFlags) -> Self {
27075		self.supportedUsageFlags = supportedUsageFlags;
27076		self
27077	}
27078
27079	pub fn supportedSurfaceCounters(mut self, supportedSurfaceCounters : SurfaceCounterFlagsEXT) -> Self {
27080		self.supportedSurfaceCounters = supportedSurfaceCounters;
27081		self
27082	}
27083
27084}
27085
27086impl DisplayPowerInfoEXT {
27087
27088	pub fn new() -> Self {
27089		 Self::default()
27090	}
27091
27092	pub fn sType(mut self, sType : StructureType) -> Self {
27093		self.sType = sType;
27094		self
27095	}
27096
27097	pub fn pNext(mut self, pNext : *const void) -> Self {
27098		self.pNext = pNext;
27099		self
27100	}
27101
27102	pub fn powerState(mut self, powerState : DisplayPowerStateEXT) -> Self {
27103		self.powerState = powerState;
27104		self
27105	}
27106
27107}
27108
27109impl DeviceEventInfoEXT {
27110
27111	pub fn new() -> Self {
27112		 Self::default()
27113	}
27114
27115	pub fn sType(mut self, sType : StructureType) -> Self {
27116		self.sType = sType;
27117		self
27118	}
27119
27120	pub fn pNext(mut self, pNext : *const void) -> Self {
27121		self.pNext = pNext;
27122		self
27123	}
27124
27125	pub fn deviceEvent(mut self, deviceEvent : DeviceEventTypeEXT) -> Self {
27126		self.deviceEvent = deviceEvent;
27127		self
27128	}
27129
27130}
27131
27132impl DisplayEventInfoEXT {
27133
27134	pub fn new() -> Self {
27135		 Self::default()
27136	}
27137
27138	pub fn sType(mut self, sType : StructureType) -> Self {
27139		self.sType = sType;
27140		self
27141	}
27142
27143	pub fn pNext(mut self, pNext : *const void) -> Self {
27144		self.pNext = pNext;
27145		self
27146	}
27147
27148	pub fn displayEvent(mut self, displayEvent : DisplayEventTypeEXT) -> Self {
27149		self.displayEvent = displayEvent;
27150		self
27151	}
27152
27153}
27154
27155impl SwapchainCounterCreateInfoEXT {
27156
27157	pub fn new() -> Self {
27158		 Self::default()
27159	}
27160
27161	pub fn sType(mut self, sType : StructureType) -> Self {
27162		self.sType = sType;
27163		self
27164	}
27165
27166	pub fn pNext(mut self, pNext : *const void) -> Self {
27167		self.pNext = pNext;
27168		self
27169	}
27170
27171	pub fn surfaceCounters(mut self, surfaceCounters : SurfaceCounterFlagsEXT) -> Self {
27172		self.surfaceCounters = surfaceCounters;
27173		self
27174	}
27175
27176}
27177
27178impl RefreshCycleDurationGOOGLE {
27179
27180	pub fn new() -> Self {
27181		 Self::default()
27182	}
27183
27184	pub fn refreshDuration(mut self, refreshDuration : u64) -> Self {
27185		self.refreshDuration = refreshDuration;
27186		self
27187	}
27188
27189}
27190
27191impl PastPresentationTimingGOOGLE {
27192
27193	pub fn new() -> Self {
27194		 Self::default()
27195	}
27196
27197	pub fn presentID(mut self, presentID : u32) -> Self {
27198		self.presentID = presentID;
27199		self
27200	}
27201
27202	pub fn desiredPresentTime(mut self, desiredPresentTime : u64) -> Self {
27203		self.desiredPresentTime = desiredPresentTime;
27204		self
27205	}
27206
27207	pub fn actualPresentTime(mut self, actualPresentTime : u64) -> Self {
27208		self.actualPresentTime = actualPresentTime;
27209		self
27210	}
27211
27212	pub fn earliestPresentTime(mut self, earliestPresentTime : u64) -> Self {
27213		self.earliestPresentTime = earliestPresentTime;
27214		self
27215	}
27216
27217	pub fn presentMargin(mut self, presentMargin : u64) -> Self {
27218		self.presentMargin = presentMargin;
27219		self
27220	}
27221
27222}
27223
27224impl PresentTimeGOOGLE {
27225
27226	pub fn new() -> Self {
27227		 Self::default()
27228	}
27229
27230	pub fn presentID(mut self, presentID : u32) -> Self {
27231		self.presentID = presentID;
27232		self
27233	}
27234
27235	pub fn desiredPresentTime(mut self, desiredPresentTime : u64) -> Self {
27236		self.desiredPresentTime = desiredPresentTime;
27237		self
27238	}
27239
27240}
27241
27242impl PresentTimesInfoGOOGLE {
27243
27244	pub fn new() -> Self {
27245		 Self::default()
27246	}
27247
27248	pub fn sType(mut self, sType : StructureType) -> Self {
27249		self.sType = sType;
27250		self
27251	}
27252
27253	pub fn pNext(mut self, pNext : *const void) -> Self {
27254		self.pNext = pNext;
27255		self
27256	}
27257
27258	pub fn swapchainCount(mut self, swapchainCount : u32) -> Self {
27259		self.swapchainCount = swapchainCount;
27260		self
27261	}
27262
27263	pub fn pTimes(mut self, pTimes : *const PresentTimeGOOGLE) -> Self {
27264		self.pTimes = pTimes;
27265		self
27266	}
27267
27268}
27269
27270impl PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
27271
27272	pub fn new() -> Self {
27273		 Self::default()
27274	}
27275
27276	pub fn sType(mut self, sType : StructureType) -> Self {
27277		self.sType = sType;
27278		self
27279	}
27280
27281	pub fn pNext(mut self, pNext : *mut void) -> Self {
27282		self.pNext = pNext;
27283		self
27284	}
27285
27286	pub fn perViewPositionAllComponents(mut self, perViewPositionAllComponents : Bool32) -> Self {
27287		self.perViewPositionAllComponents = perViewPositionAllComponents;
27288		self
27289	}
27290
27291}
27292
27293impl ViewportSwizzleNV {
27294
27295	pub fn new() -> Self {
27296		 Self::default()
27297	}
27298
27299	pub fn x(mut self, x : ViewportCoordinateSwizzleNV) -> Self {
27300		self.x = x;
27301		self
27302	}
27303
27304	pub fn y(mut self, y : ViewportCoordinateSwizzleNV) -> Self {
27305		self.y = y;
27306		self
27307	}
27308
27309	pub fn z(mut self, z : ViewportCoordinateSwizzleNV) -> Self {
27310		self.z = z;
27311		self
27312	}
27313
27314	pub fn w(mut self, w : ViewportCoordinateSwizzleNV) -> Self {
27315		self.w = w;
27316		self
27317	}
27318
27319}
27320
27321impl PipelineViewportSwizzleStateCreateInfoNV {
27322
27323	pub fn new() -> Self {
27324		 Self::default()
27325	}
27326
27327	pub fn sType(mut self, sType : StructureType) -> Self {
27328		self.sType = sType;
27329		self
27330	}
27331
27332	pub fn pNext(mut self, pNext : *const void) -> Self {
27333		self.pNext = pNext;
27334		self
27335	}
27336
27337	pub fn flags(mut self, flags : PipelineViewportSwizzleStateCreateFlagsNV) -> Self {
27338		self.flags = flags;
27339		self
27340	}
27341
27342	pub fn viewportCount(mut self, viewportCount : u32) -> Self {
27343		self.viewportCount = viewportCount;
27344		self
27345	}
27346
27347	pub fn pViewportSwizzles(mut self, pViewportSwizzles : *const ViewportSwizzleNV) -> Self {
27348		self.pViewportSwizzles = pViewportSwizzles;
27349		self
27350	}
27351
27352}
27353
27354impl PhysicalDeviceDiscardRectanglePropertiesEXT {
27355
27356	pub fn new() -> Self {
27357		 Self::default()
27358	}
27359
27360	pub fn sType(mut self, sType : StructureType) -> Self {
27361		self.sType = sType;
27362		self
27363	}
27364
27365	pub fn pNext(mut self, pNext : *mut void) -> Self {
27366		self.pNext = pNext;
27367		self
27368	}
27369
27370	pub fn maxDiscardRectangles(mut self, maxDiscardRectangles : u32) -> Self {
27371		self.maxDiscardRectangles = maxDiscardRectangles;
27372		self
27373	}
27374
27375}
27376
27377impl PipelineDiscardRectangleStateCreateInfoEXT {
27378
27379	pub fn new() -> Self {
27380		 Self::default()
27381	}
27382
27383	pub fn sType(mut self, sType : StructureType) -> Self {
27384		self.sType = sType;
27385		self
27386	}
27387
27388	pub fn pNext(mut self, pNext : *const void) -> Self {
27389		self.pNext = pNext;
27390		self
27391	}
27392
27393	pub fn flags(mut self, flags : PipelineDiscardRectangleStateCreateFlagsEXT) -> Self {
27394		self.flags = flags;
27395		self
27396	}
27397
27398	pub fn discardRectangleMode(mut self, discardRectangleMode : DiscardRectangleModeEXT) -> Self {
27399		self.discardRectangleMode = discardRectangleMode;
27400		self
27401	}
27402
27403	pub fn discardRectangleCount(mut self, discardRectangleCount : u32) -> Self {
27404		self.discardRectangleCount = discardRectangleCount;
27405		self
27406	}
27407
27408	pub fn pDiscardRectangles(mut self, pDiscardRectangles : *const Rect2D) -> Self {
27409		self.pDiscardRectangles = pDiscardRectangles;
27410		self
27411	}
27412
27413}
27414
27415impl PhysicalDeviceConservativeRasterizationPropertiesEXT {
27416
27417	pub fn new() -> Self {
27418		 Self::default()
27419	}
27420
27421	pub fn sType(mut self, sType : StructureType) -> Self {
27422		self.sType = sType;
27423		self
27424	}
27425
27426	pub fn pNext(mut self, pNext : *mut void) -> Self {
27427		self.pNext = pNext;
27428		self
27429	}
27430
27431	pub fn primitiveOverestimationSize(mut self, primitiveOverestimationSize : f32) -> Self {
27432		self.primitiveOverestimationSize = primitiveOverestimationSize;
27433		self
27434	}
27435
27436	pub fn maxExtraPrimitiveOverestimationSize(mut self, maxExtraPrimitiveOverestimationSize : f32) -> Self {
27437		self.maxExtraPrimitiveOverestimationSize = maxExtraPrimitiveOverestimationSize;
27438		self
27439	}
27440
27441	pub fn extraPrimitiveOverestimationSizeGranularity(mut self, extraPrimitiveOverestimationSizeGranularity : f32) -> Self {
27442		self.extraPrimitiveOverestimationSizeGranularity = extraPrimitiveOverestimationSizeGranularity;
27443		self
27444	}
27445
27446	pub fn primitiveUnderestimation(mut self, primitiveUnderestimation : Bool32) -> Self {
27447		self.primitiveUnderestimation = primitiveUnderestimation;
27448		self
27449	}
27450
27451	pub fn conservativePointAndLineRasterization(mut self, conservativePointAndLineRasterization : Bool32) -> Self {
27452		self.conservativePointAndLineRasterization = conservativePointAndLineRasterization;
27453		self
27454	}
27455
27456	pub fn degenerateTrianglesRasterized(mut self, degenerateTrianglesRasterized : Bool32) -> Self {
27457		self.degenerateTrianglesRasterized = degenerateTrianglesRasterized;
27458		self
27459	}
27460
27461	pub fn degenerateLinesRasterized(mut self, degenerateLinesRasterized : Bool32) -> Self {
27462		self.degenerateLinesRasterized = degenerateLinesRasterized;
27463		self
27464	}
27465
27466	pub fn fullyCoveredFragmentShaderInputVariable(mut self, fullyCoveredFragmentShaderInputVariable : Bool32) -> Self {
27467		self.fullyCoveredFragmentShaderInputVariable = fullyCoveredFragmentShaderInputVariable;
27468		self
27469	}
27470
27471	pub fn conservativeRasterizationPostDepthCoverage(mut self, conservativeRasterizationPostDepthCoverage : Bool32) -> Self {
27472		self.conservativeRasterizationPostDepthCoverage = conservativeRasterizationPostDepthCoverage;
27473		self
27474	}
27475
27476}
27477
27478impl PipelineRasterizationConservativeStateCreateInfoEXT {
27479
27480	pub fn new() -> Self {
27481		 Self::default()
27482	}
27483
27484	pub fn sType(mut self, sType : StructureType) -> Self {
27485		self.sType = sType;
27486		self
27487	}
27488
27489	pub fn pNext(mut self, pNext : *const void) -> Self {
27490		self.pNext = pNext;
27491		self
27492	}
27493
27494	pub fn flags(mut self, flags : PipelineRasterizationConservativeStateCreateFlagsEXT) -> Self {
27495		self.flags = flags;
27496		self
27497	}
27498
27499	pub fn conservativeRasterizationMode(mut self, conservativeRasterizationMode : ConservativeRasterizationModeEXT) -> Self {
27500		self.conservativeRasterizationMode = conservativeRasterizationMode;
27501		self
27502	}
27503
27504	pub fn extraPrimitiveOverestimationSize(mut self, extraPrimitiveOverestimationSize : f32) -> Self {
27505		self.extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize;
27506		self
27507	}
27508
27509}
27510
27511impl PhysicalDeviceDepthClipEnableFeaturesEXT {
27512
27513	pub fn new() -> Self {
27514		 Self::default()
27515	}
27516
27517	pub fn sType(mut self, sType : StructureType) -> Self {
27518		self.sType = sType;
27519		self
27520	}
27521
27522	pub fn pNext(mut self, pNext : *mut void) -> Self {
27523		self.pNext = pNext;
27524		self
27525	}
27526
27527	pub fn depthClipEnable(mut self, depthClipEnable : Bool32) -> Self {
27528		self.depthClipEnable = depthClipEnable;
27529		self
27530	}
27531
27532}
27533
27534impl PipelineRasterizationDepthClipStateCreateInfoEXT {
27535
27536	pub fn new() -> Self {
27537		 Self::default()
27538	}
27539
27540	pub fn sType(mut self, sType : StructureType) -> Self {
27541		self.sType = sType;
27542		self
27543	}
27544
27545	pub fn pNext(mut self, pNext : *const void) -> Self {
27546		self.pNext = pNext;
27547		self
27548	}
27549
27550	pub fn flags(mut self, flags : PipelineRasterizationDepthClipStateCreateFlagsEXT) -> Self {
27551		self.flags = flags;
27552		self
27553	}
27554
27555	pub fn depthClipEnable(mut self, depthClipEnable : Bool32) -> Self {
27556		self.depthClipEnable = depthClipEnable;
27557		self
27558	}
27559
27560}
27561
27562impl XYColorEXT {
27563
27564	pub fn new() -> Self {
27565		 Self::default()
27566	}
27567
27568	pub fn x(mut self, x : f32) -> Self {
27569		self.x = x;
27570		self
27571	}
27572
27573	pub fn y(mut self, y : f32) -> Self {
27574		self.y = y;
27575		self
27576	}
27577
27578}
27579
27580impl HdrMetadataEXT {
27581
27582	pub fn new() -> Self {
27583		 Self::default()
27584	}
27585
27586	pub fn sType(mut self, sType : StructureType) -> Self {
27587		self.sType = sType;
27588		self
27589	}
27590
27591	pub fn pNext(mut self, pNext : *const void) -> Self {
27592		self.pNext = pNext;
27593		self
27594	}
27595
27596	pub fn displayPrimaryRed(mut self, displayPrimaryRed : XYColorEXT) -> Self {
27597		self.displayPrimaryRed = displayPrimaryRed;
27598		self
27599	}
27600
27601	pub fn displayPrimaryGreen(mut self, displayPrimaryGreen : XYColorEXT) -> Self {
27602		self.displayPrimaryGreen = displayPrimaryGreen;
27603		self
27604	}
27605
27606	pub fn displayPrimaryBlue(mut self, displayPrimaryBlue : XYColorEXT) -> Self {
27607		self.displayPrimaryBlue = displayPrimaryBlue;
27608		self
27609	}
27610
27611	pub fn whitePoint(mut self, whitePoint : XYColorEXT) -> Self {
27612		self.whitePoint = whitePoint;
27613		self
27614	}
27615
27616	pub fn maxLuminance(mut self, maxLuminance : f32) -> Self {
27617		self.maxLuminance = maxLuminance;
27618		self
27619	}
27620
27621	pub fn minLuminance(mut self, minLuminance : f32) -> Self {
27622		self.minLuminance = minLuminance;
27623		self
27624	}
27625
27626	pub fn maxContentLightLevel(mut self, maxContentLightLevel : f32) -> Self {
27627		self.maxContentLightLevel = maxContentLightLevel;
27628		self
27629	}
27630
27631	pub fn maxFrameAverageLightLevel(mut self, maxFrameAverageLightLevel : f32) -> Self {
27632		self.maxFrameAverageLightLevel = maxFrameAverageLightLevel;
27633		self
27634	}
27635
27636}
27637
27638impl DebugUtilsLabelEXT {
27639
27640	pub fn new() -> Self {
27641		 Self::default()
27642	}
27643
27644	pub fn sType(mut self, sType : StructureType) -> Self {
27645		self.sType = sType;
27646		self
27647	}
27648
27649	pub fn pNext(mut self, pNext : *const void) -> Self {
27650		self.pNext = pNext;
27651		self
27652	}
27653
27654	pub fn pLabelName(mut self, pLabelName : *const i8) -> Self {
27655		self.pLabelName = pLabelName;
27656		self
27657	}
27658
27659	pub fn color(mut self, color : [f32;4]) -> Self {
27660		self.color = color;
27661		self
27662	}
27663
27664}
27665
27666impl DebugUtilsObjectNameInfoEXT {
27667
27668	pub fn new() -> Self {
27669		 Self::default()
27670	}
27671
27672	pub fn sType(mut self, sType : StructureType) -> Self {
27673		self.sType = sType;
27674		self
27675	}
27676
27677	pub fn pNext(mut self, pNext : *const void) -> Self {
27678		self.pNext = pNext;
27679		self
27680	}
27681
27682	pub fn objectType(mut self, objectType : ObjectType) -> Self {
27683		self.objectType = objectType;
27684		self
27685	}
27686
27687	pub fn objectHandle(mut self, objectHandle : u64) -> Self {
27688		self.objectHandle = objectHandle;
27689		self
27690	}
27691
27692	pub fn pObjectName(mut self, pObjectName : *const i8) -> Self {
27693		self.pObjectName = pObjectName;
27694		self
27695	}
27696
27697}
27698
27699impl DebugUtilsMessengerCallbackDataEXT {
27700
27701	pub fn new() -> Self {
27702		 Self::default()
27703	}
27704
27705	pub fn sType(mut self, sType : StructureType) -> Self {
27706		self.sType = sType;
27707		self
27708	}
27709
27710	pub fn pNext(mut self, pNext : *const void) -> Self {
27711		self.pNext = pNext;
27712		self
27713	}
27714
27715	pub fn flags(mut self, flags : DebugUtilsMessengerCallbackDataFlagsEXT) -> Self {
27716		self.flags = flags;
27717		self
27718	}
27719
27720	pub fn pMessageIdName(mut self, pMessageIdName : *const i8) -> Self {
27721		self.pMessageIdName = pMessageIdName;
27722		self
27723	}
27724
27725	pub fn messageIdNumber(mut self, messageIdNumber : i32) -> Self {
27726		self.messageIdNumber = messageIdNumber;
27727		self
27728	}
27729
27730	pub fn pMessage(mut self, pMessage : *const i8) -> Self {
27731		self.pMessage = pMessage;
27732		self
27733	}
27734
27735	pub fn queueLabelCount(mut self, queueLabelCount : u32) -> Self {
27736		self.queueLabelCount = queueLabelCount;
27737		self
27738	}
27739
27740	pub fn pQueueLabels(mut self, pQueueLabels : *const DebugUtilsLabelEXT) -> Self {
27741		self.pQueueLabels = pQueueLabels;
27742		self
27743	}
27744
27745	pub fn cmdBufLabelCount(mut self, cmdBufLabelCount : u32) -> Self {
27746		self.cmdBufLabelCount = cmdBufLabelCount;
27747		self
27748	}
27749
27750	pub fn pCmdBufLabels(mut self, pCmdBufLabels : *const DebugUtilsLabelEXT) -> Self {
27751		self.pCmdBufLabels = pCmdBufLabels;
27752		self
27753	}
27754
27755	pub fn objectCount(mut self, objectCount : u32) -> Self {
27756		self.objectCount = objectCount;
27757		self
27758	}
27759
27760	pub fn pObjects(mut self, pObjects : *const DebugUtilsObjectNameInfoEXT) -> Self {
27761		self.pObjects = pObjects;
27762		self
27763	}
27764
27765}
27766
27767impl DebugUtilsObjectTagInfoEXT {
27768
27769	pub fn new() -> Self {
27770		 Self::default()
27771	}
27772
27773	pub fn sType(mut self, sType : StructureType) -> Self {
27774		self.sType = sType;
27775		self
27776	}
27777
27778	pub fn pNext(mut self, pNext : *const void) -> Self {
27779		self.pNext = pNext;
27780		self
27781	}
27782
27783	pub fn objectType(mut self, objectType : ObjectType) -> Self {
27784		self.objectType = objectType;
27785		self
27786	}
27787
27788	pub fn objectHandle(mut self, objectHandle : u64) -> Self {
27789		self.objectHandle = objectHandle;
27790		self
27791	}
27792
27793	pub fn tagName(mut self, tagName : u64) -> Self {
27794		self.tagName = tagName;
27795		self
27796	}
27797
27798	pub fn tagSize(mut self, tagSize : usize) -> Self {
27799		self.tagSize = tagSize;
27800		self
27801	}
27802
27803	pub fn pTag(mut self, pTag : *const void) -> Self {
27804		self.pTag = pTag;
27805		self
27806	}
27807
27808}
27809
27810impl DebugUtilsMessengerCreateInfoEXT {
27811
27812	pub fn new() -> Self {
27813		 Self::default()
27814	}
27815
27816	pub fn sType(mut self, sType : StructureType) -> Self {
27817		self.sType = sType;
27818		self
27819	}
27820
27821	pub fn pNext(mut self, pNext : *const void) -> Self {
27822		self.pNext = pNext;
27823		self
27824	}
27825
27826	pub fn flags(mut self, flags : DebugUtilsMessengerCreateFlagsEXT) -> Self {
27827		self.flags = flags;
27828		self
27829	}
27830
27831	pub fn messageSeverity(mut self, messageSeverity : DebugUtilsMessageSeverityFlagsEXT) -> Self {
27832		self.messageSeverity = messageSeverity;
27833		self
27834	}
27835
27836	pub fn messageType(mut self, messageType : DebugUtilsMessageTypeFlagsEXT) -> Self {
27837		self.messageType = messageType;
27838		self
27839	}
27840
27841	pub fn pfnUserCallback(mut self, pfnUserCallback : u64) -> Self {
27842		self.pfnUserCallback = pfnUserCallback;
27843		self
27844	}
27845
27846	pub fn pUserData(mut self, pUserData : *mut void) -> Self {
27847		self.pUserData = pUserData;
27848		self
27849	}
27850
27851}
27852
27853impl PhysicalDeviceInlineUniformBlockFeaturesEXT {
27854
27855	pub fn new() -> Self {
27856		 Self::default()
27857	}
27858
27859	pub fn sType(mut self, sType : StructureType) -> Self {
27860		self.sType = sType;
27861		self
27862	}
27863
27864	pub fn pNext(mut self, pNext : *mut void) -> Self {
27865		self.pNext = pNext;
27866		self
27867	}
27868
27869	pub fn inlineUniformBlock(mut self, inlineUniformBlock : Bool32) -> Self {
27870		self.inlineUniformBlock = inlineUniformBlock;
27871		self
27872	}
27873
27874	pub fn descriptorBindingInlineUniformBlockUpdateAfterBind(mut self, descriptorBindingInlineUniformBlockUpdateAfterBind : Bool32) -> Self {
27875		self.descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind;
27876		self
27877	}
27878
27879}
27880
27881impl PhysicalDeviceInlineUniformBlockPropertiesEXT {
27882
27883	pub fn new() -> Self {
27884		 Self::default()
27885	}
27886
27887	pub fn sType(mut self, sType : StructureType) -> Self {
27888		self.sType = sType;
27889		self
27890	}
27891
27892	pub fn pNext(mut self, pNext : *mut void) -> Self {
27893		self.pNext = pNext;
27894		self
27895	}
27896
27897	pub fn maxInlineUniformBlockSize(mut self, maxInlineUniformBlockSize : u32) -> Self {
27898		self.maxInlineUniformBlockSize = maxInlineUniformBlockSize;
27899		self
27900	}
27901
27902	pub fn maxPerStageDescriptorInlineUniformBlocks(mut self, maxPerStageDescriptorInlineUniformBlocks : u32) -> Self {
27903		self.maxPerStageDescriptorInlineUniformBlocks = maxPerStageDescriptorInlineUniformBlocks;
27904		self
27905	}
27906
27907	pub fn maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks(mut self, maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks : u32) -> Self {
27908		self.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
27909		self
27910	}
27911
27912	pub fn maxDescriptorSetInlineUniformBlocks(mut self, maxDescriptorSetInlineUniformBlocks : u32) -> Self {
27913		self.maxDescriptorSetInlineUniformBlocks = maxDescriptorSetInlineUniformBlocks;
27914		self
27915	}
27916
27917	pub fn maxDescriptorSetUpdateAfterBindInlineUniformBlocks(mut self, maxDescriptorSetUpdateAfterBindInlineUniformBlocks : u32) -> Self {
27918		self.maxDescriptorSetUpdateAfterBindInlineUniformBlocks = maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
27919		self
27920	}
27921
27922}
27923
27924impl WriteDescriptorSetInlineUniformBlockEXT {
27925
27926	pub fn new() -> Self {
27927		 Self::default()
27928	}
27929
27930	pub fn sType(mut self, sType : StructureType) -> Self {
27931		self.sType = sType;
27932		self
27933	}
27934
27935	pub fn pNext(mut self, pNext : *const void) -> Self {
27936		self.pNext = pNext;
27937		self
27938	}
27939
27940	pub fn dataSize(mut self, dataSize : u32) -> Self {
27941		self.dataSize = dataSize;
27942		self
27943	}
27944
27945	pub fn pData(mut self, pData : *const void) -> Self {
27946		self.pData = pData;
27947		self
27948	}
27949
27950}
27951
27952impl DescriptorPoolInlineUniformBlockCreateInfoEXT {
27953
27954	pub fn new() -> Self {
27955		 Self::default()
27956	}
27957
27958	pub fn sType(mut self, sType : StructureType) -> Self {
27959		self.sType = sType;
27960		self
27961	}
27962
27963	pub fn pNext(mut self, pNext : *const void) -> Self {
27964		self.pNext = pNext;
27965		self
27966	}
27967
27968	pub fn maxInlineUniformBlockBindings(mut self, maxInlineUniformBlockBindings : u32) -> Self {
27969		self.maxInlineUniformBlockBindings = maxInlineUniformBlockBindings;
27970		self
27971	}
27972
27973}
27974
27975impl SampleLocationEXT {
27976
27977	pub fn new() -> Self {
27978		 Self::default()
27979	}
27980
27981	pub fn x(mut self, x : f32) -> Self {
27982		self.x = x;
27983		self
27984	}
27985
27986	pub fn y(mut self, y : f32) -> Self {
27987		self.y = y;
27988		self
27989	}
27990
27991}
27992
27993impl SampleLocationsInfoEXT {
27994
27995	pub fn new() -> Self {
27996		 Self::default()
27997	}
27998
27999	pub fn sType(mut self, sType : StructureType) -> Self {
28000		self.sType = sType;
28001		self
28002	}
28003
28004	pub fn pNext(mut self, pNext : *const void) -> Self {
28005		self.pNext = pNext;
28006		self
28007	}
28008
28009	pub fn sampleLocationsPerPixel(mut self, sampleLocationsPerPixel : SampleCountFlagBits) -> Self {
28010		self.sampleLocationsPerPixel = sampleLocationsPerPixel;
28011		self
28012	}
28013
28014	pub fn sampleLocationGridSize(mut self, sampleLocationGridSize : Extent2D) -> Self {
28015		self.sampleLocationGridSize = sampleLocationGridSize;
28016		self
28017	}
28018
28019	pub fn sampleLocationsCount(mut self, sampleLocationsCount : u32) -> Self {
28020		self.sampleLocationsCount = sampleLocationsCount;
28021		self
28022	}
28023
28024	pub fn pSampleLocations(mut self, pSampleLocations : *const SampleLocationEXT) -> Self {
28025		self.pSampleLocations = pSampleLocations;
28026		self
28027	}
28028
28029}
28030
28031impl AttachmentSampleLocationsEXT {
28032
28033	pub fn new() -> Self {
28034		 Self::default()
28035	}
28036
28037	pub fn attachmentIndex(mut self, attachmentIndex : u32) -> Self {
28038		self.attachmentIndex = attachmentIndex;
28039		self
28040	}
28041
28042	pub fn sampleLocationsInfo(mut self, sampleLocationsInfo : SampleLocationsInfoEXT) -> Self {
28043		self.sampleLocationsInfo = sampleLocationsInfo;
28044		self
28045	}
28046
28047}
28048
28049impl SubpassSampleLocationsEXT {
28050
28051	pub fn new() -> Self {
28052		 Self::default()
28053	}
28054
28055	pub fn subpassIndex(mut self, subpassIndex : u32) -> Self {
28056		self.subpassIndex = subpassIndex;
28057		self
28058	}
28059
28060	pub fn sampleLocationsInfo(mut self, sampleLocationsInfo : SampleLocationsInfoEXT) -> Self {
28061		self.sampleLocationsInfo = sampleLocationsInfo;
28062		self
28063	}
28064
28065}
28066
28067impl RenderPassSampleLocationsBeginInfoEXT {
28068
28069	pub fn new() -> Self {
28070		 Self::default()
28071	}
28072
28073	pub fn sType(mut self, sType : StructureType) -> Self {
28074		self.sType = sType;
28075		self
28076	}
28077
28078	pub fn pNext(mut self, pNext : *const void) -> Self {
28079		self.pNext = pNext;
28080		self
28081	}
28082
28083	pub fn attachmentInitialSampleLocationsCount(mut self, attachmentInitialSampleLocationsCount : u32) -> Self {
28084		self.attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount;
28085		self
28086	}
28087
28088	pub fn pAttachmentInitialSampleLocations(mut self, pAttachmentInitialSampleLocations : *const AttachmentSampleLocationsEXT) -> Self {
28089		self.pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations;
28090		self
28091	}
28092
28093	pub fn postSubpassSampleLocationsCount(mut self, postSubpassSampleLocationsCount : u32) -> Self {
28094		self.postSubpassSampleLocationsCount = postSubpassSampleLocationsCount;
28095		self
28096	}
28097
28098	pub fn pPostSubpassSampleLocations(mut self, pPostSubpassSampleLocations : *const SubpassSampleLocationsEXT) -> Self {
28099		self.pPostSubpassSampleLocations = pPostSubpassSampleLocations;
28100		self
28101	}
28102
28103}
28104
28105impl PipelineSampleLocationsStateCreateInfoEXT {
28106
28107	pub fn new() -> Self {
28108		 Self::default()
28109	}
28110
28111	pub fn sType(mut self, sType : StructureType) -> Self {
28112		self.sType = sType;
28113		self
28114	}
28115
28116	pub fn pNext(mut self, pNext : *const void) -> Self {
28117		self.pNext = pNext;
28118		self
28119	}
28120
28121	pub fn sampleLocationsEnable(mut self, sampleLocationsEnable : Bool32) -> Self {
28122		self.sampleLocationsEnable = sampleLocationsEnable;
28123		self
28124	}
28125
28126	pub fn sampleLocationsInfo(mut self, sampleLocationsInfo : SampleLocationsInfoEXT) -> Self {
28127		self.sampleLocationsInfo = sampleLocationsInfo;
28128		self
28129	}
28130
28131}
28132
28133impl PhysicalDeviceSampleLocationsPropertiesEXT {
28134
28135	pub fn new() -> Self {
28136		 Self::default()
28137	}
28138
28139	pub fn sType(mut self, sType : StructureType) -> Self {
28140		self.sType = sType;
28141		self
28142	}
28143
28144	pub fn pNext(mut self, pNext : *mut void) -> Self {
28145		self.pNext = pNext;
28146		self
28147	}
28148
28149	pub fn sampleLocationSampleCounts(mut self, sampleLocationSampleCounts : SampleCountFlags) -> Self {
28150		self.sampleLocationSampleCounts = sampleLocationSampleCounts;
28151		self
28152	}
28153
28154	pub fn maxSampleLocationGridSize(mut self, maxSampleLocationGridSize : Extent2D) -> Self {
28155		self.maxSampleLocationGridSize = maxSampleLocationGridSize;
28156		self
28157	}
28158
28159	pub fn sampleLocationCoordinateRange(mut self, sampleLocationCoordinateRange : [f32;2]) -> Self {
28160		self.sampleLocationCoordinateRange = sampleLocationCoordinateRange;
28161		self
28162	}
28163
28164	pub fn sampleLocationSubPixelBits(mut self, sampleLocationSubPixelBits : u32) -> Self {
28165		self.sampleLocationSubPixelBits = sampleLocationSubPixelBits;
28166		self
28167	}
28168
28169	pub fn variableSampleLocations(mut self, variableSampleLocations : Bool32) -> Self {
28170		self.variableSampleLocations = variableSampleLocations;
28171		self
28172	}
28173
28174}
28175
28176impl MultisamplePropertiesEXT {
28177
28178	pub fn new() -> Self {
28179		 Self::default()
28180	}
28181
28182	pub fn sType(mut self, sType : StructureType) -> Self {
28183		self.sType = sType;
28184		self
28185	}
28186
28187	pub fn pNext(mut self, pNext : *mut void) -> Self {
28188		self.pNext = pNext;
28189		self
28190	}
28191
28192	pub fn maxSampleLocationGridSize(mut self, maxSampleLocationGridSize : Extent2D) -> Self {
28193		self.maxSampleLocationGridSize = maxSampleLocationGridSize;
28194		self
28195	}
28196
28197}
28198
28199impl PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
28200
28201	pub fn new() -> Self {
28202		 Self::default()
28203	}
28204
28205	pub fn sType(mut self, sType : StructureType) -> Self {
28206		self.sType = sType;
28207		self
28208	}
28209
28210	pub fn pNext(mut self, pNext : *mut void) -> Self {
28211		self.pNext = pNext;
28212		self
28213	}
28214
28215	pub fn advancedBlendCoherentOperations(mut self, advancedBlendCoherentOperations : Bool32) -> Self {
28216		self.advancedBlendCoherentOperations = advancedBlendCoherentOperations;
28217		self
28218	}
28219
28220}
28221
28222impl PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
28223
28224	pub fn new() -> Self {
28225		 Self::default()
28226	}
28227
28228	pub fn sType(mut self, sType : StructureType) -> Self {
28229		self.sType = sType;
28230		self
28231	}
28232
28233	pub fn pNext(mut self, pNext : *mut void) -> Self {
28234		self.pNext = pNext;
28235		self
28236	}
28237
28238	pub fn advancedBlendMaxColorAttachments(mut self, advancedBlendMaxColorAttachments : u32) -> Self {
28239		self.advancedBlendMaxColorAttachments = advancedBlendMaxColorAttachments;
28240		self
28241	}
28242
28243	pub fn advancedBlendIndependentBlend(mut self, advancedBlendIndependentBlend : Bool32) -> Self {
28244		self.advancedBlendIndependentBlend = advancedBlendIndependentBlend;
28245		self
28246	}
28247
28248	pub fn advancedBlendNonPremultipliedSrcColor(mut self, advancedBlendNonPremultipliedSrcColor : Bool32) -> Self {
28249		self.advancedBlendNonPremultipliedSrcColor = advancedBlendNonPremultipliedSrcColor;
28250		self
28251	}
28252
28253	pub fn advancedBlendNonPremultipliedDstColor(mut self, advancedBlendNonPremultipliedDstColor : Bool32) -> Self {
28254		self.advancedBlendNonPremultipliedDstColor = advancedBlendNonPremultipliedDstColor;
28255		self
28256	}
28257
28258	pub fn advancedBlendCorrelatedOverlap(mut self, advancedBlendCorrelatedOverlap : Bool32) -> Self {
28259		self.advancedBlendCorrelatedOverlap = advancedBlendCorrelatedOverlap;
28260		self
28261	}
28262
28263	pub fn advancedBlendAllOperations(mut self, advancedBlendAllOperations : Bool32) -> Self {
28264		self.advancedBlendAllOperations = advancedBlendAllOperations;
28265		self
28266	}
28267
28268}
28269
28270impl PipelineColorBlendAdvancedStateCreateInfoEXT {
28271
28272	pub fn new() -> Self {
28273		 Self::default()
28274	}
28275
28276	pub fn sType(mut self, sType : StructureType) -> Self {
28277		self.sType = sType;
28278		self
28279	}
28280
28281	pub fn pNext(mut self, pNext : *const void) -> Self {
28282		self.pNext = pNext;
28283		self
28284	}
28285
28286	pub fn srcPremultiplied(mut self, srcPremultiplied : Bool32) -> Self {
28287		self.srcPremultiplied = srcPremultiplied;
28288		self
28289	}
28290
28291	pub fn dstPremultiplied(mut self, dstPremultiplied : Bool32) -> Self {
28292		self.dstPremultiplied = dstPremultiplied;
28293		self
28294	}
28295
28296	pub fn blendOverlap(mut self, blendOverlap : BlendOverlapEXT) -> Self {
28297		self.blendOverlap = blendOverlap;
28298		self
28299	}
28300
28301}
28302
28303impl PipelineCoverageToColorStateCreateInfoNV {
28304
28305	pub fn new() -> Self {
28306		 Self::default()
28307	}
28308
28309	pub fn sType(mut self, sType : StructureType) -> Self {
28310		self.sType = sType;
28311		self
28312	}
28313
28314	pub fn pNext(mut self, pNext : *const void) -> Self {
28315		self.pNext = pNext;
28316		self
28317	}
28318
28319	pub fn flags(mut self, flags : PipelineCoverageToColorStateCreateFlagsNV) -> Self {
28320		self.flags = flags;
28321		self
28322	}
28323
28324	pub fn coverageToColorEnable(mut self, coverageToColorEnable : Bool32) -> Self {
28325		self.coverageToColorEnable = coverageToColorEnable;
28326		self
28327	}
28328
28329	pub fn coverageToColorLocation(mut self, coverageToColorLocation : u32) -> Self {
28330		self.coverageToColorLocation = coverageToColorLocation;
28331		self
28332	}
28333
28334}
28335
28336impl PipelineCoverageModulationStateCreateInfoNV {
28337
28338	pub fn new() -> Self {
28339		 Self::default()
28340	}
28341
28342	pub fn sType(mut self, sType : StructureType) -> Self {
28343		self.sType = sType;
28344		self
28345	}
28346
28347	pub fn pNext(mut self, pNext : *const void) -> Self {
28348		self.pNext = pNext;
28349		self
28350	}
28351
28352	pub fn flags(mut self, flags : PipelineCoverageModulationStateCreateFlagsNV) -> Self {
28353		self.flags = flags;
28354		self
28355	}
28356
28357	pub fn coverageModulationMode(mut self, coverageModulationMode : CoverageModulationModeNV) -> Self {
28358		self.coverageModulationMode = coverageModulationMode;
28359		self
28360	}
28361
28362	pub fn coverageModulationTableEnable(mut self, coverageModulationTableEnable : Bool32) -> Self {
28363		self.coverageModulationTableEnable = coverageModulationTableEnable;
28364		self
28365	}
28366
28367	pub fn coverageModulationTableCount(mut self, coverageModulationTableCount : u32) -> Self {
28368		self.coverageModulationTableCount = coverageModulationTableCount;
28369		self
28370	}
28371
28372	pub fn pCoverageModulationTable(mut self, pCoverageModulationTable : *const f32) -> Self {
28373		self.pCoverageModulationTable = pCoverageModulationTable;
28374		self
28375	}
28376
28377}
28378
28379impl PhysicalDeviceShaderSMBuiltinsPropertiesNV {
28380
28381	pub fn new() -> Self {
28382		 Self::default()
28383	}
28384
28385	pub fn sType(mut self, sType : StructureType) -> Self {
28386		self.sType = sType;
28387		self
28388	}
28389
28390	pub fn pNext(mut self, pNext : *mut void) -> Self {
28391		self.pNext = pNext;
28392		self
28393	}
28394
28395	pub fn shaderSMCount(mut self, shaderSMCount : u32) -> Self {
28396		self.shaderSMCount = shaderSMCount;
28397		self
28398	}
28399
28400	pub fn shaderWarpsPerSM(mut self, shaderWarpsPerSM : u32) -> Self {
28401		self.shaderWarpsPerSM = shaderWarpsPerSM;
28402		self
28403	}
28404
28405}
28406
28407impl PhysicalDeviceShaderSMBuiltinsFeaturesNV {
28408
28409	pub fn new() -> Self {
28410		 Self::default()
28411	}
28412
28413	pub fn sType(mut self, sType : StructureType) -> Self {
28414		self.sType = sType;
28415		self
28416	}
28417
28418	pub fn pNext(mut self, pNext : *mut void) -> Self {
28419		self.pNext = pNext;
28420		self
28421	}
28422
28423	pub fn shaderSMBuiltins(mut self, shaderSMBuiltins : Bool32) -> Self {
28424		self.shaderSMBuiltins = shaderSMBuiltins;
28425		self
28426	}
28427
28428}
28429
28430impl DrmFormatModifierPropertiesEXT {
28431
28432	pub fn new() -> Self {
28433		 Self::default()
28434	}
28435
28436	pub fn drmFormatModifier(mut self, drmFormatModifier : u64) -> Self {
28437		self.drmFormatModifier = drmFormatModifier;
28438		self
28439	}
28440
28441	pub fn drmFormatModifierPlaneCount(mut self, drmFormatModifierPlaneCount : u32) -> Self {
28442		self.drmFormatModifierPlaneCount = drmFormatModifierPlaneCount;
28443		self
28444	}
28445
28446	pub fn drmFormatModifierTilingFeatures(mut self, drmFormatModifierTilingFeatures : FormatFeatureFlags) -> Self {
28447		self.drmFormatModifierTilingFeatures = drmFormatModifierTilingFeatures;
28448		self
28449	}
28450
28451}
28452
28453impl DrmFormatModifierPropertiesListEXT {
28454
28455	pub fn new() -> Self {
28456		 Self::default()
28457	}
28458
28459	pub fn sType(mut self, sType : StructureType) -> Self {
28460		self.sType = sType;
28461		self
28462	}
28463
28464	pub fn pNext(mut self, pNext : *mut void) -> Self {
28465		self.pNext = pNext;
28466		self
28467	}
28468
28469	pub fn drmFormatModifierCount(mut self, drmFormatModifierCount : u32) -> Self {
28470		self.drmFormatModifierCount = drmFormatModifierCount;
28471		self
28472	}
28473
28474	pub fn pDrmFormatModifierProperties(mut self, pDrmFormatModifierProperties : *mut DrmFormatModifierPropertiesEXT) -> Self {
28475		self.pDrmFormatModifierProperties = pDrmFormatModifierProperties;
28476		self
28477	}
28478
28479}
28480
28481impl PhysicalDeviceImageDrmFormatModifierInfoEXT {
28482
28483	pub fn new() -> Self {
28484		 Self::default()
28485	}
28486
28487	pub fn sType(mut self, sType : StructureType) -> Self {
28488		self.sType = sType;
28489		self
28490	}
28491
28492	pub fn pNext(mut self, pNext : *const void) -> Self {
28493		self.pNext = pNext;
28494		self
28495	}
28496
28497	pub fn drmFormatModifier(mut self, drmFormatModifier : u64) -> Self {
28498		self.drmFormatModifier = drmFormatModifier;
28499		self
28500	}
28501
28502	pub fn sharingMode(mut self, sharingMode : SharingMode) -> Self {
28503		self.sharingMode = sharingMode;
28504		self
28505	}
28506
28507	pub fn queueFamilyIndexCount(mut self, queueFamilyIndexCount : u32) -> Self {
28508		self.queueFamilyIndexCount = queueFamilyIndexCount;
28509		self
28510	}
28511
28512	pub fn pQueueFamilyIndices(mut self, pQueueFamilyIndices : *const u32) -> Self {
28513		self.pQueueFamilyIndices = pQueueFamilyIndices;
28514		self
28515	}
28516
28517}
28518
28519impl ImageDrmFormatModifierListCreateInfoEXT {
28520
28521	pub fn new() -> Self {
28522		 Self::default()
28523	}
28524
28525	pub fn sType(mut self, sType : StructureType) -> Self {
28526		self.sType = sType;
28527		self
28528	}
28529
28530	pub fn pNext(mut self, pNext : *const void) -> Self {
28531		self.pNext = pNext;
28532		self
28533	}
28534
28535	pub fn drmFormatModifierCount(mut self, drmFormatModifierCount : u32) -> Self {
28536		self.drmFormatModifierCount = drmFormatModifierCount;
28537		self
28538	}
28539
28540	pub fn pDrmFormatModifiers(mut self, pDrmFormatModifiers : *const u64) -> Self {
28541		self.pDrmFormatModifiers = pDrmFormatModifiers;
28542		self
28543	}
28544
28545}
28546
28547impl ImageDrmFormatModifierExplicitCreateInfoEXT {
28548
28549	pub fn new() -> Self {
28550		 Self::default()
28551	}
28552
28553	pub fn sType(mut self, sType : StructureType) -> Self {
28554		self.sType = sType;
28555		self
28556	}
28557
28558	pub fn pNext(mut self, pNext : *const void) -> Self {
28559		self.pNext = pNext;
28560		self
28561	}
28562
28563	pub fn drmFormatModifier(mut self, drmFormatModifier : u64) -> Self {
28564		self.drmFormatModifier = drmFormatModifier;
28565		self
28566	}
28567
28568	pub fn drmFormatModifierPlaneCount(mut self, drmFormatModifierPlaneCount : u32) -> Self {
28569		self.drmFormatModifierPlaneCount = drmFormatModifierPlaneCount;
28570		self
28571	}
28572
28573	pub fn pPlaneLayouts(mut self, pPlaneLayouts : *const SubresourceLayout) -> Self {
28574		self.pPlaneLayouts = pPlaneLayouts;
28575		self
28576	}
28577
28578}
28579
28580impl ImageDrmFormatModifierPropertiesEXT {
28581
28582	pub fn new() -> Self {
28583		 Self::default()
28584	}
28585
28586	pub fn sType(mut self, sType : StructureType) -> Self {
28587		self.sType = sType;
28588		self
28589	}
28590
28591	pub fn pNext(mut self, pNext : *mut void) -> Self {
28592		self.pNext = pNext;
28593		self
28594	}
28595
28596	pub fn drmFormatModifier(mut self, drmFormatModifier : u64) -> Self {
28597		self.drmFormatModifier = drmFormatModifier;
28598		self
28599	}
28600
28601}
28602
28603impl ValidationCacheCreateInfoEXT {
28604
28605	pub fn new() -> Self {
28606		 Self::default()
28607	}
28608
28609	pub fn sType(mut self, sType : StructureType) -> Self {
28610		self.sType = sType;
28611		self
28612	}
28613
28614	pub fn pNext(mut self, pNext : *const void) -> Self {
28615		self.pNext = pNext;
28616		self
28617	}
28618
28619	pub fn flags(mut self, flags : ValidationCacheCreateFlagsEXT) -> Self {
28620		self.flags = flags;
28621		self
28622	}
28623
28624	pub fn initialDataSize(mut self, initialDataSize : usize) -> Self {
28625		self.initialDataSize = initialDataSize;
28626		self
28627	}
28628
28629	pub fn pInitialData(mut self, pInitialData : *const void) -> Self {
28630		self.pInitialData = pInitialData;
28631		self
28632	}
28633
28634}
28635
28636impl ShaderModuleValidationCacheCreateInfoEXT {
28637
28638	pub fn new() -> Self {
28639		 Self::default()
28640	}
28641
28642	pub fn sType(mut self, sType : StructureType) -> Self {
28643		self.sType = sType;
28644		self
28645	}
28646
28647	pub fn pNext(mut self, pNext : *const void) -> Self {
28648		self.pNext = pNext;
28649		self
28650	}
28651
28652	pub fn validationCache(mut self, validationCache : ValidationCacheEXT) -> Self {
28653		self.validationCache = validationCache;
28654		self
28655	}
28656
28657}
28658
28659impl ShadingRatePaletteNV {
28660
28661	pub fn new() -> Self {
28662		 Self::default()
28663	}
28664
28665	pub fn shadingRatePaletteEntryCount(mut self, shadingRatePaletteEntryCount : u32) -> Self {
28666		self.shadingRatePaletteEntryCount = shadingRatePaletteEntryCount;
28667		self
28668	}
28669
28670	pub fn pShadingRatePaletteEntries(mut self, pShadingRatePaletteEntries : *const ShadingRatePaletteEntryNV) -> Self {
28671		self.pShadingRatePaletteEntries = pShadingRatePaletteEntries;
28672		self
28673	}
28674
28675}
28676
28677impl PipelineViewportShadingRateImageStateCreateInfoNV {
28678
28679	pub fn new() -> Self {
28680		 Self::default()
28681	}
28682
28683	pub fn sType(mut self, sType : StructureType) -> Self {
28684		self.sType = sType;
28685		self
28686	}
28687
28688	pub fn pNext(mut self, pNext : *const void) -> Self {
28689		self.pNext = pNext;
28690		self
28691	}
28692
28693	pub fn shadingRateImageEnable(mut self, shadingRateImageEnable : Bool32) -> Self {
28694		self.shadingRateImageEnable = shadingRateImageEnable;
28695		self
28696	}
28697
28698	pub fn viewportCount(mut self, viewportCount : u32) -> Self {
28699		self.viewportCount = viewportCount;
28700		self
28701	}
28702
28703	pub fn pShadingRatePalettes(mut self, pShadingRatePalettes : *const ShadingRatePaletteNV) -> Self {
28704		self.pShadingRatePalettes = pShadingRatePalettes;
28705		self
28706	}
28707
28708}
28709
28710impl PhysicalDeviceShadingRateImageFeaturesNV {
28711
28712	pub fn new() -> Self {
28713		 Self::default()
28714	}
28715
28716	pub fn sType(mut self, sType : StructureType) -> Self {
28717		self.sType = sType;
28718		self
28719	}
28720
28721	pub fn pNext(mut self, pNext : *mut void) -> Self {
28722		self.pNext = pNext;
28723		self
28724	}
28725
28726	pub fn shadingRateImage(mut self, shadingRateImage : Bool32) -> Self {
28727		self.shadingRateImage = shadingRateImage;
28728		self
28729	}
28730
28731	pub fn shadingRateCoarseSampleOrder(mut self, shadingRateCoarseSampleOrder : Bool32) -> Self {
28732		self.shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder;
28733		self
28734	}
28735
28736}
28737
28738impl PhysicalDeviceShadingRateImagePropertiesNV {
28739
28740	pub fn new() -> Self {
28741		 Self::default()
28742	}
28743
28744	pub fn sType(mut self, sType : StructureType) -> Self {
28745		self.sType = sType;
28746		self
28747	}
28748
28749	pub fn pNext(mut self, pNext : *mut void) -> Self {
28750		self.pNext = pNext;
28751		self
28752	}
28753
28754	pub fn shadingRateTexelSize(mut self, shadingRateTexelSize : Extent2D) -> Self {
28755		self.shadingRateTexelSize = shadingRateTexelSize;
28756		self
28757	}
28758
28759	pub fn shadingRatePaletteSize(mut self, shadingRatePaletteSize : u32) -> Self {
28760		self.shadingRatePaletteSize = shadingRatePaletteSize;
28761		self
28762	}
28763
28764	pub fn shadingRateMaxCoarseSamples(mut self, shadingRateMaxCoarseSamples : u32) -> Self {
28765		self.shadingRateMaxCoarseSamples = shadingRateMaxCoarseSamples;
28766		self
28767	}
28768
28769}
28770
28771impl CoarseSampleLocationNV {
28772
28773	pub fn new() -> Self {
28774		 Self::default()
28775	}
28776
28777	pub fn pixelX(mut self, pixelX : u32) -> Self {
28778		self.pixelX = pixelX;
28779		self
28780	}
28781
28782	pub fn pixelY(mut self, pixelY : u32) -> Self {
28783		self.pixelY = pixelY;
28784		self
28785	}
28786
28787	pub fn sample(mut self, sample : u32) -> Self {
28788		self.sample = sample;
28789		self
28790	}
28791
28792}
28793
28794impl CoarseSampleOrderCustomNV {
28795
28796	pub fn new() -> Self {
28797		 Self::default()
28798	}
28799
28800	pub fn shadingRate(mut self, shadingRate : ShadingRatePaletteEntryNV) -> Self {
28801		self.shadingRate = shadingRate;
28802		self
28803	}
28804
28805	pub fn sampleCount(mut self, sampleCount : u32) -> Self {
28806		self.sampleCount = sampleCount;
28807		self
28808	}
28809
28810	pub fn sampleLocationCount(mut self, sampleLocationCount : u32) -> Self {
28811		self.sampleLocationCount = sampleLocationCount;
28812		self
28813	}
28814
28815	pub fn pSampleLocations(mut self, pSampleLocations : *const CoarseSampleLocationNV) -> Self {
28816		self.pSampleLocations = pSampleLocations;
28817		self
28818	}
28819
28820}
28821
28822impl PipelineViewportCoarseSampleOrderStateCreateInfoNV {
28823
28824	pub fn new() -> Self {
28825		 Self::default()
28826	}
28827
28828	pub fn sType(mut self, sType : StructureType) -> Self {
28829		self.sType = sType;
28830		self
28831	}
28832
28833	pub fn pNext(mut self, pNext : *const void) -> Self {
28834		self.pNext = pNext;
28835		self
28836	}
28837
28838	pub fn sampleOrderType(mut self, sampleOrderType : CoarseSampleOrderTypeNV) -> Self {
28839		self.sampleOrderType = sampleOrderType;
28840		self
28841	}
28842
28843	pub fn customSampleOrderCount(mut self, customSampleOrderCount : u32) -> Self {
28844		self.customSampleOrderCount = customSampleOrderCount;
28845		self
28846	}
28847
28848	pub fn pCustomSampleOrders(mut self, pCustomSampleOrders : *const CoarseSampleOrderCustomNV) -> Self {
28849		self.pCustomSampleOrders = pCustomSampleOrders;
28850		self
28851	}
28852
28853}
28854
28855impl RayTracingShaderGroupCreateInfoNV {
28856
28857	pub fn new() -> Self {
28858		 Self::default()
28859	}
28860
28861	pub fn sType(mut self, sType : StructureType) -> Self {
28862		self.sType = sType;
28863		self
28864	}
28865
28866	pub fn pNext(mut self, pNext : *const void) -> Self {
28867		self.pNext = pNext;
28868		self
28869	}
28870
28871	pub fn r#type(mut self, r#type : RayTracingShaderGroupTypeKHR) -> Self {
28872		self.r#type = r#type;
28873		self
28874	}
28875
28876	pub fn generalShader(mut self, generalShader : u32) -> Self {
28877		self.generalShader = generalShader;
28878		self
28879	}
28880
28881	pub fn closestHitShader(mut self, closestHitShader : u32) -> Self {
28882		self.closestHitShader = closestHitShader;
28883		self
28884	}
28885
28886	pub fn anyHitShader(mut self, anyHitShader : u32) -> Self {
28887		self.anyHitShader = anyHitShader;
28888		self
28889	}
28890
28891	pub fn intersectionShader(mut self, intersectionShader : u32) -> Self {
28892		self.intersectionShader = intersectionShader;
28893		self
28894	}
28895
28896}
28897
28898impl RayTracingPipelineCreateInfoNV {
28899
28900	pub fn new() -> Self {
28901		 Self::default()
28902	}
28903
28904	pub fn sType(mut self, sType : StructureType) -> Self {
28905		self.sType = sType;
28906		self
28907	}
28908
28909	pub fn pNext(mut self, pNext : *const void) -> Self {
28910		self.pNext = pNext;
28911		self
28912	}
28913
28914	pub fn flags(mut self, flags : PipelineCreateFlags) -> Self {
28915		self.flags = flags;
28916		self
28917	}
28918
28919	pub fn stageCount(mut self, stageCount : u32) -> Self {
28920		self.stageCount = stageCount;
28921		self
28922	}
28923
28924	pub fn pStages(mut self, pStages : *const PipelineShaderStageCreateInfo) -> Self {
28925		self.pStages = pStages;
28926		self
28927	}
28928
28929	pub fn groupCount(mut self, groupCount : u32) -> Self {
28930		self.groupCount = groupCount;
28931		self
28932	}
28933
28934	pub fn pGroups(mut self, pGroups : *const RayTracingShaderGroupCreateInfoNV) -> Self {
28935		self.pGroups = pGroups;
28936		self
28937	}
28938
28939	pub fn maxRecursionDepth(mut self, maxRecursionDepth : u32) -> Self {
28940		self.maxRecursionDepth = maxRecursionDepth;
28941		self
28942	}
28943
28944	pub fn layout(mut self, layout : PipelineLayout) -> Self {
28945		self.layout = layout;
28946		self
28947	}
28948
28949	pub fn basePipelineHandle(mut self, basePipelineHandle : Pipeline) -> Self {
28950		self.basePipelineHandle = basePipelineHandle;
28951		self
28952	}
28953
28954	pub fn basePipelineIndex(mut self, basePipelineIndex : i32) -> Self {
28955		self.basePipelineIndex = basePipelineIndex;
28956		self
28957	}
28958
28959}
28960
28961impl GeometryTrianglesNV {
28962
28963	pub fn new() -> Self {
28964		 Self::default()
28965	}
28966
28967	pub fn sType(mut self, sType : StructureType) -> Self {
28968		self.sType = sType;
28969		self
28970	}
28971
28972	pub fn pNext(mut self, pNext : *const void) -> Self {
28973		self.pNext = pNext;
28974		self
28975	}
28976
28977	pub fn vertexData(mut self, vertexData : Buffer) -> Self {
28978		self.vertexData = vertexData;
28979		self
28980	}
28981
28982	pub fn vertexOffset(mut self, vertexOffset : DeviceSize) -> Self {
28983		self.vertexOffset = vertexOffset;
28984		self
28985	}
28986
28987	pub fn vertexCount(mut self, vertexCount : u32) -> Self {
28988		self.vertexCount = vertexCount;
28989		self
28990	}
28991
28992	pub fn vertexStride(mut self, vertexStride : DeviceSize) -> Self {
28993		self.vertexStride = vertexStride;
28994		self
28995	}
28996
28997	pub fn vertexFormat(mut self, vertexFormat : Format) -> Self {
28998		self.vertexFormat = vertexFormat;
28999		self
29000	}
29001
29002	pub fn indexData(mut self, indexData : Buffer) -> Self {
29003		self.indexData = indexData;
29004		self
29005	}
29006
29007	pub fn indexOffset(mut self, indexOffset : DeviceSize) -> Self {
29008		self.indexOffset = indexOffset;
29009		self
29010	}
29011
29012	pub fn indexCount(mut self, indexCount : u32) -> Self {
29013		self.indexCount = indexCount;
29014		self
29015	}
29016
29017	pub fn indexType(mut self, indexType : IndexType) -> Self {
29018		self.indexType = indexType;
29019		self
29020	}
29021
29022	pub fn transformData(mut self, transformData : Buffer) -> Self {
29023		self.transformData = transformData;
29024		self
29025	}
29026
29027	pub fn transformOffset(mut self, transformOffset : DeviceSize) -> Self {
29028		self.transformOffset = transformOffset;
29029		self
29030	}
29031
29032}
29033
29034impl GeometryAABBNV {
29035
29036	pub fn new() -> Self {
29037		 Self::default()
29038	}
29039
29040	pub fn sType(mut self, sType : StructureType) -> Self {
29041		self.sType = sType;
29042		self
29043	}
29044
29045	pub fn pNext(mut self, pNext : *const void) -> Self {
29046		self.pNext = pNext;
29047		self
29048	}
29049
29050	pub fn aabbData(mut self, aabbData : Buffer) -> Self {
29051		self.aabbData = aabbData;
29052		self
29053	}
29054
29055	pub fn numAABBs(mut self, numAABBs : u32) -> Self {
29056		self.numAABBs = numAABBs;
29057		self
29058	}
29059
29060	pub fn stride(mut self, stride : u32) -> Self {
29061		self.stride = stride;
29062		self
29063	}
29064
29065	pub fn offset(mut self, offset : DeviceSize) -> Self {
29066		self.offset = offset;
29067		self
29068	}
29069
29070}
29071
29072impl GeometryDataNV {
29073
29074	pub fn new() -> Self {
29075		 Self::default()
29076	}
29077
29078	pub fn triangles(mut self, triangles : GeometryTrianglesNV) -> Self {
29079		self.triangles = triangles;
29080		self
29081	}
29082
29083	pub fn aabbs(mut self, aabbs : GeometryAABBNV) -> Self {
29084		self.aabbs = aabbs;
29085		self
29086	}
29087
29088}
29089
29090impl GeometryNV {
29091
29092	pub fn new() -> Self {
29093		 Self::default()
29094	}
29095
29096	pub fn sType(mut self, sType : StructureType) -> Self {
29097		self.sType = sType;
29098		self
29099	}
29100
29101	pub fn pNext(mut self, pNext : *const void) -> Self {
29102		self.pNext = pNext;
29103		self
29104	}
29105
29106	pub fn geometryType(mut self, geometryType : GeometryTypeKHR) -> Self {
29107		self.geometryType = geometryType;
29108		self
29109	}
29110
29111	pub fn geometry(mut self, geometry : GeometryDataNV) -> Self {
29112		self.geometry = geometry;
29113		self
29114	}
29115
29116	pub fn flags(mut self, flags : GeometryFlagsKHR) -> Self {
29117		self.flags = flags;
29118		self
29119	}
29120
29121}
29122
29123impl AccelerationStructureInfoNV {
29124
29125	pub fn new() -> Self {
29126		 Self::default()
29127	}
29128
29129	pub fn sType(mut self, sType : StructureType) -> Self {
29130		self.sType = sType;
29131		self
29132	}
29133
29134	pub fn pNext(mut self, pNext : *const void) -> Self {
29135		self.pNext = pNext;
29136		self
29137	}
29138
29139	pub fn r#type(mut self, r#type : AccelerationStructureTypeNV) -> Self {
29140		self.r#type = r#type;
29141		self
29142	}
29143
29144	pub fn flags(mut self, flags : BuildAccelerationStructureFlagsNV) -> Self {
29145		self.flags = flags;
29146		self
29147	}
29148
29149	pub fn instanceCount(mut self, instanceCount : u32) -> Self {
29150		self.instanceCount = instanceCount;
29151		self
29152	}
29153
29154	pub fn geometryCount(mut self, geometryCount : u32) -> Self {
29155		self.geometryCount = geometryCount;
29156		self
29157	}
29158
29159	pub fn pGeometries(mut self, pGeometries : *const GeometryNV) -> Self {
29160		self.pGeometries = pGeometries;
29161		self
29162	}
29163
29164}
29165
29166impl AccelerationStructureCreateInfoNV {
29167
29168	pub fn new() -> Self {
29169		 Self::default()
29170	}
29171
29172	pub fn sType(mut self, sType : StructureType) -> Self {
29173		self.sType = sType;
29174		self
29175	}
29176
29177	pub fn pNext(mut self, pNext : *const void) -> Self {
29178		self.pNext = pNext;
29179		self
29180	}
29181
29182	pub fn compactedSize(mut self, compactedSize : DeviceSize) -> Self {
29183		self.compactedSize = compactedSize;
29184		self
29185	}
29186
29187	pub fn info(mut self, info : AccelerationStructureInfoNV) -> Self {
29188		self.info = info;
29189		self
29190	}
29191
29192}
29193
29194impl BindAccelerationStructureMemoryInfoKHR {
29195
29196	pub fn new() -> Self {
29197		 Self::default()
29198	}
29199
29200	pub fn sType(mut self, sType : StructureType) -> Self {
29201		self.sType = sType;
29202		self
29203	}
29204
29205	pub fn pNext(mut self, pNext : *const void) -> Self {
29206		self.pNext = pNext;
29207		self
29208	}
29209
29210	pub fn accelerationStructure(mut self, accelerationStructure : AccelerationStructureKHR) -> Self {
29211		self.accelerationStructure = accelerationStructure;
29212		self
29213	}
29214
29215	pub fn memory(mut self, memory : DeviceMemory) -> Self {
29216		self.memory = memory;
29217		self
29218	}
29219
29220	pub fn memoryOffset(mut self, memoryOffset : DeviceSize) -> Self {
29221		self.memoryOffset = memoryOffset;
29222		self
29223	}
29224
29225	pub fn deviceIndexCount(mut self, deviceIndexCount : u32) -> Self {
29226		self.deviceIndexCount = deviceIndexCount;
29227		self
29228	}
29229
29230	pub fn pDeviceIndices(mut self, pDeviceIndices : *const u32) -> Self {
29231		self.pDeviceIndices = pDeviceIndices;
29232		self
29233	}
29234
29235}
29236
29237impl WriteDescriptorSetAccelerationStructureKHR {
29238
29239	pub fn new() -> Self {
29240		 Self::default()
29241	}
29242
29243	pub fn sType(mut self, sType : StructureType) -> Self {
29244		self.sType = sType;
29245		self
29246	}
29247
29248	pub fn pNext(mut self, pNext : *const void) -> Self {
29249		self.pNext = pNext;
29250		self
29251	}
29252
29253	pub fn accelerationStructureCount(mut self, accelerationStructureCount : u32) -> Self {
29254		self.accelerationStructureCount = accelerationStructureCount;
29255		self
29256	}
29257
29258	pub fn pAccelerationStructures(mut self, pAccelerationStructures : *const AccelerationStructureKHR) -> Self {
29259		self.pAccelerationStructures = pAccelerationStructures;
29260		self
29261	}
29262
29263}
29264
29265impl AccelerationStructureMemoryRequirementsInfoNV {
29266
29267	pub fn new() -> Self {
29268		 Self::default()
29269	}
29270
29271	pub fn sType(mut self, sType : StructureType) -> Self {
29272		self.sType = sType;
29273		self
29274	}
29275
29276	pub fn pNext(mut self, pNext : *const void) -> Self {
29277		self.pNext = pNext;
29278		self
29279	}
29280
29281	pub fn r#type(mut self, r#type : AccelerationStructureMemoryRequirementsTypeNV) -> Self {
29282		self.r#type = r#type;
29283		self
29284	}
29285
29286	pub fn accelerationStructure(mut self, accelerationStructure : AccelerationStructureNV) -> Self {
29287		self.accelerationStructure = accelerationStructure;
29288		self
29289	}
29290
29291}
29292
29293impl PhysicalDeviceRayTracingPropertiesNV {
29294
29295	pub fn new() -> Self {
29296		 Self::default()
29297	}
29298
29299	pub fn sType(mut self, sType : StructureType) -> Self {
29300		self.sType = sType;
29301		self
29302	}
29303
29304	pub fn pNext(mut self, pNext : *mut void) -> Self {
29305		self.pNext = pNext;
29306		self
29307	}
29308
29309	pub fn shaderGroupHandleSize(mut self, shaderGroupHandleSize : u32) -> Self {
29310		self.shaderGroupHandleSize = shaderGroupHandleSize;
29311		self
29312	}
29313
29314	pub fn maxRecursionDepth(mut self, maxRecursionDepth : u32) -> Self {
29315		self.maxRecursionDepth = maxRecursionDepth;
29316		self
29317	}
29318
29319	pub fn maxShaderGroupStride(mut self, maxShaderGroupStride : u32) -> Self {
29320		self.maxShaderGroupStride = maxShaderGroupStride;
29321		self
29322	}
29323
29324	pub fn shaderGroupBaseAlignment(mut self, shaderGroupBaseAlignment : u32) -> Self {
29325		self.shaderGroupBaseAlignment = shaderGroupBaseAlignment;
29326		self
29327	}
29328
29329	pub fn maxGeometryCount(mut self, maxGeometryCount : u64) -> Self {
29330		self.maxGeometryCount = maxGeometryCount;
29331		self
29332	}
29333
29334	pub fn maxInstanceCount(mut self, maxInstanceCount : u64) -> Self {
29335		self.maxInstanceCount = maxInstanceCount;
29336		self
29337	}
29338
29339	pub fn maxTriangleCount(mut self, maxTriangleCount : u64) -> Self {
29340		self.maxTriangleCount = maxTriangleCount;
29341		self
29342	}
29343
29344	pub fn maxDescriptorSetAccelerationStructures(mut self, maxDescriptorSetAccelerationStructures : u32) -> Self {
29345		self.maxDescriptorSetAccelerationStructures = maxDescriptorSetAccelerationStructures;
29346		self
29347	}
29348
29349}
29350
29351impl TransformMatrixKHR {
29352
29353	pub fn new() -> Self {
29354		 Self::default()
29355	}
29356
29357	pub fn matrix(mut self, matrix : [f32;12]) -> Self {
29358		self.matrix = matrix;
29359		self
29360	}
29361
29362}
29363
29364impl AabbPositionsKHR {
29365
29366	pub fn new() -> Self {
29367		 Self::default()
29368	}
29369
29370	pub fn minX(mut self, minX : f32) -> Self {
29371		self.minX = minX;
29372		self
29373	}
29374
29375	pub fn minY(mut self, minY : f32) -> Self {
29376		self.minY = minY;
29377		self
29378	}
29379
29380	pub fn minZ(mut self, minZ : f32) -> Self {
29381		self.minZ = minZ;
29382		self
29383	}
29384
29385	pub fn maxX(mut self, maxX : f32) -> Self {
29386		self.maxX = maxX;
29387		self
29388	}
29389
29390	pub fn maxY(mut self, maxY : f32) -> Self {
29391		self.maxY = maxY;
29392		self
29393	}
29394
29395	pub fn maxZ(mut self, maxZ : f32) -> Self {
29396		self.maxZ = maxZ;
29397		self
29398	}
29399
29400}
29401
29402impl PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
29403
29404	pub fn new() -> Self {
29405		 Self::default()
29406	}
29407
29408	pub fn sType(mut self, sType : StructureType) -> Self {
29409		self.sType = sType;
29410		self
29411	}
29412
29413	pub fn pNext(mut self, pNext : *mut void) -> Self {
29414		self.pNext = pNext;
29415		self
29416	}
29417
29418	pub fn representativeFragmentTest(mut self, representativeFragmentTest : Bool32) -> Self {
29419		self.representativeFragmentTest = representativeFragmentTest;
29420		self
29421	}
29422
29423}
29424
29425impl PipelineRepresentativeFragmentTestStateCreateInfoNV {
29426
29427	pub fn new() -> Self {
29428		 Self::default()
29429	}
29430
29431	pub fn sType(mut self, sType : StructureType) -> Self {
29432		self.sType = sType;
29433		self
29434	}
29435
29436	pub fn pNext(mut self, pNext : *const void) -> Self {
29437		self.pNext = pNext;
29438		self
29439	}
29440
29441	pub fn representativeFragmentTestEnable(mut self, representativeFragmentTestEnable : Bool32) -> Self {
29442		self.representativeFragmentTestEnable = representativeFragmentTestEnable;
29443		self
29444	}
29445
29446}
29447
29448impl PhysicalDeviceImageViewImageFormatInfoEXT {
29449
29450	pub fn new() -> Self {
29451		 Self::default()
29452	}
29453
29454	pub fn sType(mut self, sType : StructureType) -> Self {
29455		self.sType = sType;
29456		self
29457	}
29458
29459	pub fn pNext(mut self, pNext : *mut void) -> Self {
29460		self.pNext = pNext;
29461		self
29462	}
29463
29464	pub fn imageViewType(mut self, imageViewType : ImageViewType) -> Self {
29465		self.imageViewType = imageViewType;
29466		self
29467	}
29468
29469}
29470
29471impl FilterCubicImageViewImageFormatPropertiesEXT {
29472
29473	pub fn new() -> Self {
29474		 Self::default()
29475	}
29476
29477	pub fn sType(mut self, sType : StructureType) -> Self {
29478		self.sType = sType;
29479		self
29480	}
29481
29482	pub fn pNext(mut self, pNext : *mut void) -> Self {
29483		self.pNext = pNext;
29484		self
29485	}
29486
29487	pub fn filterCubic(mut self, filterCubic : Bool32) -> Self {
29488		self.filterCubic = filterCubic;
29489		self
29490	}
29491
29492	pub fn filterCubicMinmax(mut self, filterCubicMinmax : Bool32) -> Self {
29493		self.filterCubicMinmax = filterCubicMinmax;
29494		self
29495	}
29496
29497}
29498
29499impl DeviceQueueGlobalPriorityCreateInfoEXT {
29500
29501	pub fn new() -> Self {
29502		 Self::default()
29503	}
29504
29505	pub fn sType(mut self, sType : StructureType) -> Self {
29506		self.sType = sType;
29507		self
29508	}
29509
29510	pub fn pNext(mut self, pNext : *const void) -> Self {
29511		self.pNext = pNext;
29512		self
29513	}
29514
29515	pub fn globalPriority(mut self, globalPriority : QueueGlobalPriorityEXT) -> Self {
29516		self.globalPriority = globalPriority;
29517		self
29518	}
29519
29520}
29521
29522impl ImportMemoryHostPointerInfoEXT {
29523
29524	pub fn new() -> Self {
29525		 Self::default()
29526	}
29527
29528	pub fn sType(mut self, sType : StructureType) -> Self {
29529		self.sType = sType;
29530		self
29531	}
29532
29533	pub fn pNext(mut self, pNext : *const void) -> Self {
29534		self.pNext = pNext;
29535		self
29536	}
29537
29538	pub fn handleType(mut self, handleType : ExternalMemoryHandleTypeFlagBits) -> Self {
29539		self.handleType = handleType;
29540		self
29541	}
29542
29543	pub fn pHostPointer(mut self, pHostPointer : *mut void) -> Self {
29544		self.pHostPointer = pHostPointer;
29545		self
29546	}
29547
29548}
29549
29550impl MemoryHostPointerPropertiesEXT {
29551
29552	pub fn new() -> Self {
29553		 Self::default()
29554	}
29555
29556	pub fn sType(mut self, sType : StructureType) -> Self {
29557		self.sType = sType;
29558		self
29559	}
29560
29561	pub fn pNext(mut self, pNext : *mut void) -> Self {
29562		self.pNext = pNext;
29563		self
29564	}
29565
29566	pub fn memoryTypeBits(mut self, memoryTypeBits : u32) -> Self {
29567		self.memoryTypeBits = memoryTypeBits;
29568		self
29569	}
29570
29571}
29572
29573impl PhysicalDeviceExternalMemoryHostPropertiesEXT {
29574
29575	pub fn new() -> Self {
29576		 Self::default()
29577	}
29578
29579	pub fn sType(mut self, sType : StructureType) -> Self {
29580		self.sType = sType;
29581		self
29582	}
29583
29584	pub fn pNext(mut self, pNext : *mut void) -> Self {
29585		self.pNext = pNext;
29586		self
29587	}
29588
29589	pub fn minImportedHostPointerAlignment(mut self, minImportedHostPointerAlignment : DeviceSize) -> Self {
29590		self.minImportedHostPointerAlignment = minImportedHostPointerAlignment;
29591		self
29592	}
29593
29594}
29595
29596impl PipelineCompilerControlCreateInfoAMD {
29597
29598	pub fn new() -> Self {
29599		 Self::default()
29600	}
29601
29602	pub fn sType(mut self, sType : StructureType) -> Self {
29603		self.sType = sType;
29604		self
29605	}
29606
29607	pub fn pNext(mut self, pNext : *const void) -> Self {
29608		self.pNext = pNext;
29609		self
29610	}
29611
29612	pub fn compilerControlFlags(mut self, compilerControlFlags : PipelineCompilerControlFlagsAMD) -> Self {
29613		self.compilerControlFlags = compilerControlFlags;
29614		self
29615	}
29616
29617}
29618
29619impl CalibratedTimestampInfoEXT {
29620
29621	pub fn new() -> Self {
29622		 Self::default()
29623	}
29624
29625	pub fn sType(mut self, sType : StructureType) -> Self {
29626		self.sType = sType;
29627		self
29628	}
29629
29630	pub fn pNext(mut self, pNext : *const void) -> Self {
29631		self.pNext = pNext;
29632		self
29633	}
29634
29635	pub fn timeDomain(mut self, timeDomain : TimeDomainEXT) -> Self {
29636		self.timeDomain = timeDomain;
29637		self
29638	}
29639
29640}
29641
29642impl PhysicalDeviceShaderCorePropertiesAMD {
29643
29644	pub fn new() -> Self {
29645		 Self::default()
29646	}
29647
29648	pub fn sType(mut self, sType : StructureType) -> Self {
29649		self.sType = sType;
29650		self
29651	}
29652
29653	pub fn pNext(mut self, pNext : *mut void) -> Self {
29654		self.pNext = pNext;
29655		self
29656	}
29657
29658	pub fn shaderEngineCount(mut self, shaderEngineCount : u32) -> Self {
29659		self.shaderEngineCount = shaderEngineCount;
29660		self
29661	}
29662
29663	pub fn shaderArraysPerEngineCount(mut self, shaderArraysPerEngineCount : u32) -> Self {
29664		self.shaderArraysPerEngineCount = shaderArraysPerEngineCount;
29665		self
29666	}
29667
29668	pub fn computeUnitsPerShaderArray(mut self, computeUnitsPerShaderArray : u32) -> Self {
29669		self.computeUnitsPerShaderArray = computeUnitsPerShaderArray;
29670		self
29671	}
29672
29673	pub fn simdPerComputeUnit(mut self, simdPerComputeUnit : u32) -> Self {
29674		self.simdPerComputeUnit = simdPerComputeUnit;
29675		self
29676	}
29677
29678	pub fn wavefrontsPerSimd(mut self, wavefrontsPerSimd : u32) -> Self {
29679		self.wavefrontsPerSimd = wavefrontsPerSimd;
29680		self
29681	}
29682
29683	pub fn wavefrontSize(mut self, wavefrontSize : u32) -> Self {
29684		self.wavefrontSize = wavefrontSize;
29685		self
29686	}
29687
29688	pub fn sgprsPerSimd(mut self, sgprsPerSimd : u32) -> Self {
29689		self.sgprsPerSimd = sgprsPerSimd;
29690		self
29691	}
29692
29693	pub fn minSgprAllocation(mut self, minSgprAllocation : u32) -> Self {
29694		self.minSgprAllocation = minSgprAllocation;
29695		self
29696	}
29697
29698	pub fn maxSgprAllocation(mut self, maxSgprAllocation : u32) -> Self {
29699		self.maxSgprAllocation = maxSgprAllocation;
29700		self
29701	}
29702
29703	pub fn sgprAllocationGranularity(mut self, sgprAllocationGranularity : u32) -> Self {
29704		self.sgprAllocationGranularity = sgprAllocationGranularity;
29705		self
29706	}
29707
29708	pub fn vgprsPerSimd(mut self, vgprsPerSimd : u32) -> Self {
29709		self.vgprsPerSimd = vgprsPerSimd;
29710		self
29711	}
29712
29713	pub fn minVgprAllocation(mut self, minVgprAllocation : u32) -> Self {
29714		self.minVgprAllocation = minVgprAllocation;
29715		self
29716	}
29717
29718	pub fn maxVgprAllocation(mut self, maxVgprAllocation : u32) -> Self {
29719		self.maxVgprAllocation = maxVgprAllocation;
29720		self
29721	}
29722
29723	pub fn vgprAllocationGranularity(mut self, vgprAllocationGranularity : u32) -> Self {
29724		self.vgprAllocationGranularity = vgprAllocationGranularity;
29725		self
29726	}
29727
29728}
29729
29730impl DeviceMemoryOverallocationCreateInfoAMD {
29731
29732	pub fn new() -> Self {
29733		 Self::default()
29734	}
29735
29736	pub fn sType(mut self, sType : StructureType) -> Self {
29737		self.sType = sType;
29738		self
29739	}
29740
29741	pub fn pNext(mut self, pNext : *const void) -> Self {
29742		self.pNext = pNext;
29743		self
29744	}
29745
29746	pub fn overallocationBehavior(mut self, overallocationBehavior : MemoryOverallocationBehaviorAMD) -> Self {
29747		self.overallocationBehavior = overallocationBehavior;
29748		self
29749	}
29750
29751}
29752
29753impl PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
29754
29755	pub fn new() -> Self {
29756		 Self::default()
29757	}
29758
29759	pub fn sType(mut self, sType : StructureType) -> Self {
29760		self.sType = sType;
29761		self
29762	}
29763
29764	pub fn pNext(mut self, pNext : *mut void) -> Self {
29765		self.pNext = pNext;
29766		self
29767	}
29768
29769	pub fn maxVertexAttribDivisor(mut self, maxVertexAttribDivisor : u32) -> Self {
29770		self.maxVertexAttribDivisor = maxVertexAttribDivisor;
29771		self
29772	}
29773
29774}
29775
29776impl VertexInputBindingDivisorDescriptionEXT {
29777
29778	pub fn new() -> Self {
29779		 Self::default()
29780	}
29781
29782	pub fn binding(mut self, binding : u32) -> Self {
29783		self.binding = binding;
29784		self
29785	}
29786
29787	pub fn divisor(mut self, divisor : u32) -> Self {
29788		self.divisor = divisor;
29789		self
29790	}
29791
29792}
29793
29794impl PipelineVertexInputDivisorStateCreateInfoEXT {
29795
29796	pub fn new() -> Self {
29797		 Self::default()
29798	}
29799
29800	pub fn sType(mut self, sType : StructureType) -> Self {
29801		self.sType = sType;
29802		self
29803	}
29804
29805	pub fn pNext(mut self, pNext : *const void) -> Self {
29806		self.pNext = pNext;
29807		self
29808	}
29809
29810	pub fn vertexBindingDivisorCount(mut self, vertexBindingDivisorCount : u32) -> Self {
29811		self.vertexBindingDivisorCount = vertexBindingDivisorCount;
29812		self
29813	}
29814
29815	pub fn pVertexBindingDivisors(mut self, pVertexBindingDivisors : *const VertexInputBindingDivisorDescriptionEXT) -> Self {
29816		self.pVertexBindingDivisors = pVertexBindingDivisors;
29817		self
29818	}
29819
29820}
29821
29822impl PhysicalDeviceVertexAttributeDivisorFeaturesEXT {
29823
29824	pub fn new() -> Self {
29825		 Self::default()
29826	}
29827
29828	pub fn sType(mut self, sType : StructureType) -> Self {
29829		self.sType = sType;
29830		self
29831	}
29832
29833	pub fn pNext(mut self, pNext : *mut void) -> Self {
29834		self.pNext = pNext;
29835		self
29836	}
29837
29838	pub fn vertexAttributeInstanceRateDivisor(mut self, vertexAttributeInstanceRateDivisor : Bool32) -> Self {
29839		self.vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor;
29840		self
29841	}
29842
29843	pub fn vertexAttributeInstanceRateZeroDivisor(mut self, vertexAttributeInstanceRateZeroDivisor : Bool32) -> Self {
29844		self.vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor;
29845		self
29846	}
29847
29848}
29849
29850impl PipelineCreationFeedbackEXT {
29851
29852	pub fn new() -> Self {
29853		 Self::default()
29854	}
29855
29856	pub fn flags(mut self, flags : PipelineCreationFeedbackFlagsEXT) -> Self {
29857		self.flags = flags;
29858		self
29859	}
29860
29861	pub fn duration(mut self, duration : u64) -> Self {
29862		self.duration = duration;
29863		self
29864	}
29865
29866}
29867
29868impl PipelineCreationFeedbackCreateInfoEXT {
29869
29870	pub fn new() -> Self {
29871		 Self::default()
29872	}
29873
29874	pub fn sType(mut self, sType : StructureType) -> Self {
29875		self.sType = sType;
29876		self
29877	}
29878
29879	pub fn pNext(mut self, pNext : *const void) -> Self {
29880		self.pNext = pNext;
29881		self
29882	}
29883
29884	pub fn pPipelineCreationFeedback(mut self, pPipelineCreationFeedback : *mut PipelineCreationFeedbackEXT) -> Self {
29885		self.pPipelineCreationFeedback = pPipelineCreationFeedback;
29886		self
29887	}
29888
29889	pub fn pipelineStageCreationFeedbackCount(mut self, pipelineStageCreationFeedbackCount : u32) -> Self {
29890		self.pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount;
29891		self
29892	}
29893
29894	pub fn pPipelineStageCreationFeedbacks(mut self, pPipelineStageCreationFeedbacks : *mut PipelineCreationFeedbackEXT) -> Self {
29895		self.pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks;
29896		self
29897	}
29898
29899}
29900
29901impl PhysicalDeviceComputeShaderDerivativesFeaturesNV {
29902
29903	pub fn new() -> Self {
29904		 Self::default()
29905	}
29906
29907	pub fn sType(mut self, sType : StructureType) -> Self {
29908		self.sType = sType;
29909		self
29910	}
29911
29912	pub fn pNext(mut self, pNext : *mut void) -> Self {
29913		self.pNext = pNext;
29914		self
29915	}
29916
29917	pub fn computeDerivativeGroupQuads(mut self, computeDerivativeGroupQuads : Bool32) -> Self {
29918		self.computeDerivativeGroupQuads = computeDerivativeGroupQuads;
29919		self
29920	}
29921
29922	pub fn computeDerivativeGroupLinear(mut self, computeDerivativeGroupLinear : Bool32) -> Self {
29923		self.computeDerivativeGroupLinear = computeDerivativeGroupLinear;
29924		self
29925	}
29926
29927}
29928
29929impl PhysicalDeviceMeshShaderFeaturesNV {
29930
29931	pub fn new() -> Self {
29932		 Self::default()
29933	}
29934
29935	pub fn sType(mut self, sType : StructureType) -> Self {
29936		self.sType = sType;
29937		self
29938	}
29939
29940	pub fn pNext(mut self, pNext : *mut void) -> Self {
29941		self.pNext = pNext;
29942		self
29943	}
29944
29945	pub fn taskShader(mut self, taskShader : Bool32) -> Self {
29946		self.taskShader = taskShader;
29947		self
29948	}
29949
29950	pub fn meshShader(mut self, meshShader : Bool32) -> Self {
29951		self.meshShader = meshShader;
29952		self
29953	}
29954
29955}
29956
29957impl PhysicalDeviceMeshShaderPropertiesNV {
29958
29959	pub fn new() -> Self {
29960		 Self::default()
29961	}
29962
29963	pub fn sType(mut self, sType : StructureType) -> Self {
29964		self.sType = sType;
29965		self
29966	}
29967
29968	pub fn pNext(mut self, pNext : *mut void) -> Self {
29969		self.pNext = pNext;
29970		self
29971	}
29972
29973	pub fn maxDrawMeshTasksCount(mut self, maxDrawMeshTasksCount : u32) -> Self {
29974		self.maxDrawMeshTasksCount = maxDrawMeshTasksCount;
29975		self
29976	}
29977
29978	pub fn maxTaskWorkGroupInvocations(mut self, maxTaskWorkGroupInvocations : u32) -> Self {
29979		self.maxTaskWorkGroupInvocations = maxTaskWorkGroupInvocations;
29980		self
29981	}
29982
29983	pub fn maxTaskWorkGroupSize(mut self, maxTaskWorkGroupSize : [u32;3]) -> Self {
29984		self.maxTaskWorkGroupSize = maxTaskWorkGroupSize;
29985		self
29986	}
29987
29988	pub fn maxTaskTotalMemorySize(mut self, maxTaskTotalMemorySize : u32) -> Self {
29989		self.maxTaskTotalMemorySize = maxTaskTotalMemorySize;
29990		self
29991	}
29992
29993	pub fn maxTaskOutputCount(mut self, maxTaskOutputCount : u32) -> Self {
29994		self.maxTaskOutputCount = maxTaskOutputCount;
29995		self
29996	}
29997
29998	pub fn maxMeshWorkGroupInvocations(mut self, maxMeshWorkGroupInvocations : u32) -> Self {
29999		self.maxMeshWorkGroupInvocations = maxMeshWorkGroupInvocations;
30000		self
30001	}
30002
30003	pub fn maxMeshWorkGroupSize(mut self, maxMeshWorkGroupSize : [u32;3]) -> Self {
30004		self.maxMeshWorkGroupSize = maxMeshWorkGroupSize;
30005		self
30006	}
30007
30008	pub fn maxMeshTotalMemorySize(mut self, maxMeshTotalMemorySize : u32) -> Self {
30009		self.maxMeshTotalMemorySize = maxMeshTotalMemorySize;
30010		self
30011	}
30012
30013	pub fn maxMeshOutputVertices(mut self, maxMeshOutputVertices : u32) -> Self {
30014		self.maxMeshOutputVertices = maxMeshOutputVertices;
30015		self
30016	}
30017
30018	pub fn maxMeshOutputPrimitives(mut self, maxMeshOutputPrimitives : u32) -> Self {
30019		self.maxMeshOutputPrimitives = maxMeshOutputPrimitives;
30020		self
30021	}
30022
30023	pub fn maxMeshMultiviewViewCount(mut self, maxMeshMultiviewViewCount : u32) -> Self {
30024		self.maxMeshMultiviewViewCount = maxMeshMultiviewViewCount;
30025		self
30026	}
30027
30028	pub fn meshOutputPerVertexGranularity(mut self, meshOutputPerVertexGranularity : u32) -> Self {
30029		self.meshOutputPerVertexGranularity = meshOutputPerVertexGranularity;
30030		self
30031	}
30032
30033	pub fn meshOutputPerPrimitiveGranularity(mut self, meshOutputPerPrimitiveGranularity : u32) -> Self {
30034		self.meshOutputPerPrimitiveGranularity = meshOutputPerPrimitiveGranularity;
30035		self
30036	}
30037
30038}
30039
30040impl DrawMeshTasksIndirectCommandNV {
30041
30042	pub fn new() -> Self {
30043		 Self::default()
30044	}
30045
30046	pub fn taskCount(mut self, taskCount : u32) -> Self {
30047		self.taskCount = taskCount;
30048		self
30049	}
30050
30051	pub fn firstTask(mut self, firstTask : u32) -> Self {
30052		self.firstTask = firstTask;
30053		self
30054	}
30055
30056}
30057
30058impl PhysicalDeviceFragmentShaderBarycentricFeaturesNV {
30059
30060	pub fn new() -> Self {
30061		 Self::default()
30062	}
30063
30064	pub fn sType(mut self, sType : StructureType) -> Self {
30065		self.sType = sType;
30066		self
30067	}
30068
30069	pub fn pNext(mut self, pNext : *mut void) -> Self {
30070		self.pNext = pNext;
30071		self
30072	}
30073
30074	pub fn fragmentShaderBarycentric(mut self, fragmentShaderBarycentric : Bool32) -> Self {
30075		self.fragmentShaderBarycentric = fragmentShaderBarycentric;
30076		self
30077	}
30078
30079}
30080
30081impl PhysicalDeviceShaderImageFootprintFeaturesNV {
30082
30083	pub fn new() -> Self {
30084		 Self::default()
30085	}
30086
30087	pub fn sType(mut self, sType : StructureType) -> Self {
30088		self.sType = sType;
30089		self
30090	}
30091
30092	pub fn pNext(mut self, pNext : *mut void) -> Self {
30093		self.pNext = pNext;
30094		self
30095	}
30096
30097	pub fn imageFootprint(mut self, imageFootprint : Bool32) -> Self {
30098		self.imageFootprint = imageFootprint;
30099		self
30100	}
30101
30102}
30103
30104impl PipelineViewportExclusiveScissorStateCreateInfoNV {
30105
30106	pub fn new() -> Self {
30107		 Self::default()
30108	}
30109
30110	pub fn sType(mut self, sType : StructureType) -> Self {
30111		self.sType = sType;
30112		self
30113	}
30114
30115	pub fn pNext(mut self, pNext : *const void) -> Self {
30116		self.pNext = pNext;
30117		self
30118	}
30119
30120	pub fn exclusiveScissorCount(mut self, exclusiveScissorCount : u32) -> Self {
30121		self.exclusiveScissorCount = exclusiveScissorCount;
30122		self
30123	}
30124
30125	pub fn pExclusiveScissors(mut self, pExclusiveScissors : *const Rect2D) -> Self {
30126		self.pExclusiveScissors = pExclusiveScissors;
30127		self
30128	}
30129
30130}
30131
30132impl PhysicalDeviceExclusiveScissorFeaturesNV {
30133
30134	pub fn new() -> Self {
30135		 Self::default()
30136	}
30137
30138	pub fn sType(mut self, sType : StructureType) -> Self {
30139		self.sType = sType;
30140		self
30141	}
30142
30143	pub fn pNext(mut self, pNext : *mut void) -> Self {
30144		self.pNext = pNext;
30145		self
30146	}
30147
30148	pub fn exclusiveScissor(mut self, exclusiveScissor : Bool32) -> Self {
30149		self.exclusiveScissor = exclusiveScissor;
30150		self
30151	}
30152
30153}
30154
30155impl QueueFamilyCheckpointPropertiesNV {
30156
30157	pub fn new() -> Self {
30158		 Self::default()
30159	}
30160
30161	pub fn sType(mut self, sType : StructureType) -> Self {
30162		self.sType = sType;
30163		self
30164	}
30165
30166	pub fn pNext(mut self, pNext : *mut void) -> Self {
30167		self.pNext = pNext;
30168		self
30169	}
30170
30171	pub fn checkpointExecutionStageMask(mut self, checkpointExecutionStageMask : PipelineStageFlags) -> Self {
30172		self.checkpointExecutionStageMask = checkpointExecutionStageMask;
30173		self
30174	}
30175
30176}
30177
30178impl CheckpointDataNV {
30179
30180	pub fn new() -> Self {
30181		 Self::default()
30182	}
30183
30184	pub fn sType(mut self, sType : StructureType) -> Self {
30185		self.sType = sType;
30186		self
30187	}
30188
30189	pub fn pNext(mut self, pNext : *mut void) -> Self {
30190		self.pNext = pNext;
30191		self
30192	}
30193
30194	pub fn stage(mut self, stage : PipelineStageFlagBits) -> Self {
30195		self.stage = stage;
30196		self
30197	}
30198
30199	pub fn pCheckpointMarker(mut self, pCheckpointMarker : *mut void) -> Self {
30200		self.pCheckpointMarker = pCheckpointMarker;
30201		self
30202	}
30203
30204}
30205
30206impl PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
30207
30208	pub fn new() -> Self {
30209		 Self::default()
30210	}
30211
30212	pub fn sType(mut self, sType : StructureType) -> Self {
30213		self.sType = sType;
30214		self
30215	}
30216
30217	pub fn pNext(mut self, pNext : *mut void) -> Self {
30218		self.pNext = pNext;
30219		self
30220	}
30221
30222	pub fn shaderIntegerFunctions2(mut self, shaderIntegerFunctions2 : Bool32) -> Self {
30223		self.shaderIntegerFunctions2 = shaderIntegerFunctions2;
30224		self
30225	}
30226
30227}
30228
30229impl InitializePerformanceApiInfoINTEL {
30230
30231	pub fn new() -> Self {
30232		 Self::default()
30233	}
30234
30235	pub fn sType(mut self, sType : StructureType) -> Self {
30236		self.sType = sType;
30237		self
30238	}
30239
30240	pub fn pNext(mut self, pNext : *const void) -> Self {
30241		self.pNext = pNext;
30242		self
30243	}
30244
30245	pub fn pUserData(mut self, pUserData : *mut void) -> Self {
30246		self.pUserData = pUserData;
30247		self
30248	}
30249
30250}
30251
30252impl QueryPoolPerformanceQueryCreateInfoINTEL {
30253
30254	pub fn new() -> Self {
30255		 Self::default()
30256	}
30257
30258	pub fn sType(mut self, sType : StructureType) -> Self {
30259		self.sType = sType;
30260		self
30261	}
30262
30263	pub fn pNext(mut self, pNext : *const void) -> Self {
30264		self.pNext = pNext;
30265		self
30266	}
30267
30268	pub fn performanceCountersSampling(mut self, performanceCountersSampling : QueryPoolSamplingModeINTEL) -> Self {
30269		self.performanceCountersSampling = performanceCountersSampling;
30270		self
30271	}
30272
30273}
30274
30275impl PerformanceMarkerInfoINTEL {
30276
30277	pub fn new() -> Self {
30278		 Self::default()
30279	}
30280
30281	pub fn sType(mut self, sType : StructureType) -> Self {
30282		self.sType = sType;
30283		self
30284	}
30285
30286	pub fn pNext(mut self, pNext : *const void) -> Self {
30287		self.pNext = pNext;
30288		self
30289	}
30290
30291	pub fn marker(mut self, marker : u64) -> Self {
30292		self.marker = marker;
30293		self
30294	}
30295
30296}
30297
30298impl PerformanceStreamMarkerInfoINTEL {
30299
30300	pub fn new() -> Self {
30301		 Self::default()
30302	}
30303
30304	pub fn sType(mut self, sType : StructureType) -> Self {
30305		self.sType = sType;
30306		self
30307	}
30308
30309	pub fn pNext(mut self, pNext : *const void) -> Self {
30310		self.pNext = pNext;
30311		self
30312	}
30313
30314	pub fn marker(mut self, marker : u32) -> Self {
30315		self.marker = marker;
30316		self
30317	}
30318
30319}
30320
30321impl PerformanceOverrideInfoINTEL {
30322
30323	pub fn new() -> Self {
30324		 Self::default()
30325	}
30326
30327	pub fn sType(mut self, sType : StructureType) -> Self {
30328		self.sType = sType;
30329		self
30330	}
30331
30332	pub fn pNext(mut self, pNext : *const void) -> Self {
30333		self.pNext = pNext;
30334		self
30335	}
30336
30337	pub fn r#type(mut self, r#type : PerformanceOverrideTypeINTEL) -> Self {
30338		self.r#type = r#type;
30339		self
30340	}
30341
30342	pub fn enable(mut self, enable : Bool32) -> Self {
30343		self.enable = enable;
30344		self
30345	}
30346
30347	pub fn parameter(mut self, parameter : u64) -> Self {
30348		self.parameter = parameter;
30349		self
30350	}
30351
30352}
30353
30354impl PerformanceConfigurationAcquireInfoINTEL {
30355
30356	pub fn new() -> Self {
30357		 Self::default()
30358	}
30359
30360	pub fn sType(mut self, sType : StructureType) -> Self {
30361		self.sType = sType;
30362		self
30363	}
30364
30365	pub fn pNext(mut self, pNext : *const void) -> Self {
30366		self.pNext = pNext;
30367		self
30368	}
30369
30370	pub fn r#type(mut self, r#type : PerformanceConfigurationTypeINTEL) -> Self {
30371		self.r#type = r#type;
30372		self
30373	}
30374
30375}
30376
30377impl PhysicalDevicePCIBusInfoPropertiesEXT {
30378
30379	pub fn new() -> Self {
30380		 Self::default()
30381	}
30382
30383	pub fn sType(mut self, sType : StructureType) -> Self {
30384		self.sType = sType;
30385		self
30386	}
30387
30388	pub fn pNext(mut self, pNext : *mut void) -> Self {
30389		self.pNext = pNext;
30390		self
30391	}
30392
30393	pub fn pciDomain(mut self, pciDomain : u32) -> Self {
30394		self.pciDomain = pciDomain;
30395		self
30396	}
30397
30398	pub fn pciBus(mut self, pciBus : u32) -> Self {
30399		self.pciBus = pciBus;
30400		self
30401	}
30402
30403	pub fn pciDevice(mut self, pciDevice : u32) -> Self {
30404		self.pciDevice = pciDevice;
30405		self
30406	}
30407
30408	pub fn pciFunction(mut self, pciFunction : u32) -> Self {
30409		self.pciFunction = pciFunction;
30410		self
30411	}
30412
30413}
30414
30415impl DisplayNativeHdrSurfaceCapabilitiesAMD {
30416
30417	pub fn new() -> Self {
30418		 Self::default()
30419	}
30420
30421	pub fn sType(mut self, sType : StructureType) -> Self {
30422		self.sType = sType;
30423		self
30424	}
30425
30426	pub fn pNext(mut self, pNext : *mut void) -> Self {
30427		self.pNext = pNext;
30428		self
30429	}
30430
30431	pub fn localDimmingSupport(mut self, localDimmingSupport : Bool32) -> Self {
30432		self.localDimmingSupport = localDimmingSupport;
30433		self
30434	}
30435
30436}
30437
30438impl SwapchainDisplayNativeHdrCreateInfoAMD {
30439
30440	pub fn new() -> Self {
30441		 Self::default()
30442	}
30443
30444	pub fn sType(mut self, sType : StructureType) -> Self {
30445		self.sType = sType;
30446		self
30447	}
30448
30449	pub fn pNext(mut self, pNext : *const void) -> Self {
30450		self.pNext = pNext;
30451		self
30452	}
30453
30454	pub fn localDimmingEnable(mut self, localDimmingEnable : Bool32) -> Self {
30455		self.localDimmingEnable = localDimmingEnable;
30456		self
30457	}
30458
30459}
30460
30461impl PhysicalDeviceFragmentDensityMapFeaturesEXT {
30462
30463	pub fn new() -> Self {
30464		 Self::default()
30465	}
30466
30467	pub fn sType(mut self, sType : StructureType) -> Self {
30468		self.sType = sType;
30469		self
30470	}
30471
30472	pub fn pNext(mut self, pNext : *mut void) -> Self {
30473		self.pNext = pNext;
30474		self
30475	}
30476
30477	pub fn fragmentDensityMap(mut self, fragmentDensityMap : Bool32) -> Self {
30478		self.fragmentDensityMap = fragmentDensityMap;
30479		self
30480	}
30481
30482	pub fn fragmentDensityMapDynamic(mut self, fragmentDensityMapDynamic : Bool32) -> Self {
30483		self.fragmentDensityMapDynamic = fragmentDensityMapDynamic;
30484		self
30485	}
30486
30487	pub fn fragmentDensityMapNonSubsampledImages(mut self, fragmentDensityMapNonSubsampledImages : Bool32) -> Self {
30488		self.fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages;
30489		self
30490	}
30491
30492}
30493
30494impl PhysicalDeviceFragmentDensityMapPropertiesEXT {
30495
30496	pub fn new() -> Self {
30497		 Self::default()
30498	}
30499
30500	pub fn sType(mut self, sType : StructureType) -> Self {
30501		self.sType = sType;
30502		self
30503	}
30504
30505	pub fn pNext(mut self, pNext : *mut void) -> Self {
30506		self.pNext = pNext;
30507		self
30508	}
30509
30510	pub fn minFragmentDensityTexelSize(mut self, minFragmentDensityTexelSize : Extent2D) -> Self {
30511		self.minFragmentDensityTexelSize = minFragmentDensityTexelSize;
30512		self
30513	}
30514
30515	pub fn maxFragmentDensityTexelSize(mut self, maxFragmentDensityTexelSize : Extent2D) -> Self {
30516		self.maxFragmentDensityTexelSize = maxFragmentDensityTexelSize;
30517		self
30518	}
30519
30520	pub fn fragmentDensityInvocations(mut self, fragmentDensityInvocations : Bool32) -> Self {
30521		self.fragmentDensityInvocations = fragmentDensityInvocations;
30522		self
30523	}
30524
30525}
30526
30527impl RenderPassFragmentDensityMapCreateInfoEXT {
30528
30529	pub fn new() -> Self {
30530		 Self::default()
30531	}
30532
30533	pub fn sType(mut self, sType : StructureType) -> Self {
30534		self.sType = sType;
30535		self
30536	}
30537
30538	pub fn pNext(mut self, pNext : *const void) -> Self {
30539		self.pNext = pNext;
30540		self
30541	}
30542
30543	pub fn fragmentDensityMapAttachment(mut self, fragmentDensityMapAttachment : AttachmentReference) -> Self {
30544		self.fragmentDensityMapAttachment = fragmentDensityMapAttachment;
30545		self
30546	}
30547
30548}
30549
30550impl PhysicalDeviceSubgroupSizeControlFeaturesEXT {
30551
30552	pub fn new() -> Self {
30553		 Self::default()
30554	}
30555
30556	pub fn sType(mut self, sType : StructureType) -> Self {
30557		self.sType = sType;
30558		self
30559	}
30560
30561	pub fn pNext(mut self, pNext : *mut void) -> Self {
30562		self.pNext = pNext;
30563		self
30564	}
30565
30566	pub fn subgroupSizeControl(mut self, subgroupSizeControl : Bool32) -> Self {
30567		self.subgroupSizeControl = subgroupSizeControl;
30568		self
30569	}
30570
30571	pub fn computeFullSubgroups(mut self, computeFullSubgroups : Bool32) -> Self {
30572		self.computeFullSubgroups = computeFullSubgroups;
30573		self
30574	}
30575
30576}
30577
30578impl PhysicalDeviceSubgroupSizeControlPropertiesEXT {
30579
30580	pub fn new() -> Self {
30581		 Self::default()
30582	}
30583
30584	pub fn sType(mut self, sType : StructureType) -> Self {
30585		self.sType = sType;
30586		self
30587	}
30588
30589	pub fn pNext(mut self, pNext : *mut void) -> Self {
30590		self.pNext = pNext;
30591		self
30592	}
30593
30594	pub fn minSubgroupSize(mut self, minSubgroupSize : u32) -> Self {
30595		self.minSubgroupSize = minSubgroupSize;
30596		self
30597	}
30598
30599	pub fn maxSubgroupSize(mut self, maxSubgroupSize : u32) -> Self {
30600		self.maxSubgroupSize = maxSubgroupSize;
30601		self
30602	}
30603
30604	pub fn maxComputeWorkgroupSubgroups(mut self, maxComputeWorkgroupSubgroups : u32) -> Self {
30605		self.maxComputeWorkgroupSubgroups = maxComputeWorkgroupSubgroups;
30606		self
30607	}
30608
30609	pub fn requiredSubgroupSizeStages(mut self, requiredSubgroupSizeStages : ShaderStageFlags) -> Self {
30610		self.requiredSubgroupSizeStages = requiredSubgroupSizeStages;
30611		self
30612	}
30613
30614}
30615
30616impl PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT {
30617
30618	pub fn new() -> Self {
30619		 Self::default()
30620	}
30621
30622	pub fn sType(mut self, sType : StructureType) -> Self {
30623		self.sType = sType;
30624		self
30625	}
30626
30627	pub fn pNext(mut self, pNext : *mut void) -> Self {
30628		self.pNext = pNext;
30629		self
30630	}
30631
30632	pub fn requiredSubgroupSize(mut self, requiredSubgroupSize : u32) -> Self {
30633		self.requiredSubgroupSize = requiredSubgroupSize;
30634		self
30635	}
30636
30637}
30638
30639impl PhysicalDeviceShaderCoreProperties2AMD {
30640
30641	pub fn new() -> Self {
30642		 Self::default()
30643	}
30644
30645	pub fn sType(mut self, sType : StructureType) -> Self {
30646		self.sType = sType;
30647		self
30648	}
30649
30650	pub fn pNext(mut self, pNext : *mut void) -> Self {
30651		self.pNext = pNext;
30652		self
30653	}
30654
30655	pub fn shaderCoreFeatures(mut self, shaderCoreFeatures : ShaderCorePropertiesFlagsAMD) -> Self {
30656		self.shaderCoreFeatures = shaderCoreFeatures;
30657		self
30658	}
30659
30660	pub fn activeComputeUnitCount(mut self, activeComputeUnitCount : u32) -> Self {
30661		self.activeComputeUnitCount = activeComputeUnitCount;
30662		self
30663	}
30664
30665}
30666
30667impl PhysicalDeviceCoherentMemoryFeaturesAMD {
30668
30669	pub fn new() -> Self {
30670		 Self::default()
30671	}
30672
30673	pub fn sType(mut self, sType : StructureType) -> Self {
30674		self.sType = sType;
30675		self
30676	}
30677
30678	pub fn pNext(mut self, pNext : *mut void) -> Self {
30679		self.pNext = pNext;
30680		self
30681	}
30682
30683	pub fn deviceCoherentMemory(mut self, deviceCoherentMemory : Bool32) -> Self {
30684		self.deviceCoherentMemory = deviceCoherentMemory;
30685		self
30686	}
30687
30688}
30689
30690impl PhysicalDeviceMemoryBudgetPropertiesEXT {
30691
30692	pub fn new() -> Self {
30693		 Self::default()
30694	}
30695
30696	pub fn sType(mut self, sType : StructureType) -> Self {
30697		self.sType = sType;
30698		self
30699	}
30700
30701	pub fn pNext(mut self, pNext : *mut void) -> Self {
30702		self.pNext = pNext;
30703		self
30704	}
30705
30706	pub fn heapBudget(mut self, heapBudget : [DeviceSize;MAX_MEMORY_HEAPS]) -> Self {
30707		self.heapBudget = heapBudget;
30708		self
30709	}
30710
30711	pub fn heapUsage(mut self, heapUsage : [DeviceSize;MAX_MEMORY_HEAPS]) -> Self {
30712		self.heapUsage = heapUsage;
30713		self
30714	}
30715
30716}
30717
30718impl PhysicalDeviceMemoryPriorityFeaturesEXT {
30719
30720	pub fn new() -> Self {
30721		 Self::default()
30722	}
30723
30724	pub fn sType(mut self, sType : StructureType) -> Self {
30725		self.sType = sType;
30726		self
30727	}
30728
30729	pub fn pNext(mut self, pNext : *mut void) -> Self {
30730		self.pNext = pNext;
30731		self
30732	}
30733
30734	pub fn memoryPriority(mut self, memoryPriority : Bool32) -> Self {
30735		self.memoryPriority = memoryPriority;
30736		self
30737	}
30738
30739}
30740
30741impl MemoryPriorityAllocateInfoEXT {
30742
30743	pub fn new() -> Self {
30744		 Self::default()
30745	}
30746
30747	pub fn sType(mut self, sType : StructureType) -> Self {
30748		self.sType = sType;
30749		self
30750	}
30751
30752	pub fn pNext(mut self, pNext : *const void) -> Self {
30753		self.pNext = pNext;
30754		self
30755	}
30756
30757	pub fn priority(mut self, priority : f32) -> Self {
30758		self.priority = priority;
30759		self
30760	}
30761
30762}
30763
30764impl PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
30765
30766	pub fn new() -> Self {
30767		 Self::default()
30768	}
30769
30770	pub fn sType(mut self, sType : StructureType) -> Self {
30771		self.sType = sType;
30772		self
30773	}
30774
30775	pub fn pNext(mut self, pNext : *mut void) -> Self {
30776		self.pNext = pNext;
30777		self
30778	}
30779
30780	pub fn dedicatedAllocationImageAliasing(mut self, dedicatedAllocationImageAliasing : Bool32) -> Self {
30781		self.dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing;
30782		self
30783	}
30784
30785}
30786
30787impl PhysicalDeviceBufferDeviceAddressFeaturesEXT {
30788
30789	pub fn new() -> Self {
30790		 Self::default()
30791	}
30792
30793	pub fn sType(mut self, sType : StructureType) -> Self {
30794		self.sType = sType;
30795		self
30796	}
30797
30798	pub fn pNext(mut self, pNext : *mut void) -> Self {
30799		self.pNext = pNext;
30800		self
30801	}
30802
30803	pub fn bufferDeviceAddress(mut self, bufferDeviceAddress : Bool32) -> Self {
30804		self.bufferDeviceAddress = bufferDeviceAddress;
30805		self
30806	}
30807
30808	pub fn bufferDeviceAddressCaptureReplay(mut self, bufferDeviceAddressCaptureReplay : Bool32) -> Self {
30809		self.bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay;
30810		self
30811	}
30812
30813	pub fn bufferDeviceAddressMultiDevice(mut self, bufferDeviceAddressMultiDevice : Bool32) -> Self {
30814		self.bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice;
30815		self
30816	}
30817
30818}
30819
30820impl BufferDeviceAddressCreateInfoEXT {
30821
30822	pub fn new() -> Self {
30823		 Self::default()
30824	}
30825
30826	pub fn sType(mut self, sType : StructureType) -> Self {
30827		self.sType = sType;
30828		self
30829	}
30830
30831	pub fn pNext(mut self, pNext : *const void) -> Self {
30832		self.pNext = pNext;
30833		self
30834	}
30835
30836	pub fn deviceAddress(mut self, deviceAddress : DeviceAddress) -> Self {
30837		self.deviceAddress = deviceAddress;
30838		self
30839	}
30840
30841}
30842
30843impl PhysicalDeviceToolPropertiesEXT {
30844
30845	pub fn new() -> Self {
30846		 Self::default()
30847	}
30848
30849	pub fn sType(mut self, sType : StructureType) -> Self {
30850		self.sType = sType;
30851		self
30852	}
30853
30854	pub fn pNext(mut self, pNext : *mut void) -> Self {
30855		self.pNext = pNext;
30856		self
30857	}
30858
30859	pub fn name(mut self, name : [i8;MAX_EXTENSION_NAME_SIZE]) -> Self {
30860		self.name = name;
30861		self
30862	}
30863
30864	pub fn version(mut self, version : [i8;MAX_EXTENSION_NAME_SIZE]) -> Self {
30865		self.version = version;
30866		self
30867	}
30868
30869	pub fn purposes(mut self, purposes : ToolPurposeFlagsEXT) -> Self {
30870		self.purposes = purposes;
30871		self
30872	}
30873
30874	pub fn description(mut self, description : [i8;MAX_DESCRIPTION_SIZE]) -> Self {
30875		self.description = description;
30876		self
30877	}
30878
30879	pub fn layer(mut self, layer : [i8;MAX_EXTENSION_NAME_SIZE]) -> Self {
30880		self.layer = layer;
30881		self
30882	}
30883
30884}
30885
30886impl ValidationFeaturesEXT {
30887
30888	pub fn new() -> Self {
30889		 Self::default()
30890	}
30891
30892	pub fn sType(mut self, sType : StructureType) -> Self {
30893		self.sType = sType;
30894		self
30895	}
30896
30897	pub fn pNext(mut self, pNext : *const void) -> Self {
30898		self.pNext = pNext;
30899		self
30900	}
30901
30902	pub fn enabledValidationFeatureCount(mut self, enabledValidationFeatureCount : u32) -> Self {
30903		self.enabledValidationFeatureCount = enabledValidationFeatureCount;
30904		self
30905	}
30906
30907	pub fn pEnabledValidationFeatures(mut self, pEnabledValidationFeatures : *const ValidationFeatureEnableEXT) -> Self {
30908		self.pEnabledValidationFeatures = pEnabledValidationFeatures;
30909		self
30910	}
30911
30912	pub fn disabledValidationFeatureCount(mut self, disabledValidationFeatureCount : u32) -> Self {
30913		self.disabledValidationFeatureCount = disabledValidationFeatureCount;
30914		self
30915	}
30916
30917	pub fn pDisabledValidationFeatures(mut self, pDisabledValidationFeatures : *const ValidationFeatureDisableEXT) -> Self {
30918		self.pDisabledValidationFeatures = pDisabledValidationFeatures;
30919		self
30920	}
30921
30922}
30923
30924impl CooperativeMatrixPropertiesNV {
30925
30926	pub fn new() -> Self {
30927		 Self::default()
30928	}
30929
30930	pub fn sType(mut self, sType : StructureType) -> Self {
30931		self.sType = sType;
30932		self
30933	}
30934
30935	pub fn pNext(mut self, pNext : *mut void) -> Self {
30936		self.pNext = pNext;
30937		self
30938	}
30939
30940	pub fn MSize(mut self, MSize : u32) -> Self {
30941		self.MSize = MSize;
30942		self
30943	}
30944
30945	pub fn NSize(mut self, NSize : u32) -> Self {
30946		self.NSize = NSize;
30947		self
30948	}
30949
30950	pub fn KSize(mut self, KSize : u32) -> Self {
30951		self.KSize = KSize;
30952		self
30953	}
30954
30955	pub fn AType(mut self, AType : ComponentTypeNV) -> Self {
30956		self.AType = AType;
30957		self
30958	}
30959
30960	pub fn BType(mut self, BType : ComponentTypeNV) -> Self {
30961		self.BType = BType;
30962		self
30963	}
30964
30965	pub fn CType(mut self, CType : ComponentTypeNV) -> Self {
30966		self.CType = CType;
30967		self
30968	}
30969
30970	pub fn DType(mut self, DType : ComponentTypeNV) -> Self {
30971		self.DType = DType;
30972		self
30973	}
30974
30975	pub fn scope(mut self, scope : ScopeNV) -> Self {
30976		self.scope = scope;
30977		self
30978	}
30979
30980}
30981
30982impl PhysicalDeviceCooperativeMatrixFeaturesNV {
30983
30984	pub fn new() -> Self {
30985		 Self::default()
30986	}
30987
30988	pub fn sType(mut self, sType : StructureType) -> Self {
30989		self.sType = sType;
30990		self
30991	}
30992
30993	pub fn pNext(mut self, pNext : *mut void) -> Self {
30994		self.pNext = pNext;
30995		self
30996	}
30997
30998	pub fn cooperativeMatrix(mut self, cooperativeMatrix : Bool32) -> Self {
30999		self.cooperativeMatrix = cooperativeMatrix;
31000		self
31001	}
31002
31003	pub fn cooperativeMatrixRobustBufferAccess(mut self, cooperativeMatrixRobustBufferAccess : Bool32) -> Self {
31004		self.cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess;
31005		self
31006	}
31007
31008}
31009
31010impl PhysicalDeviceCooperativeMatrixPropertiesNV {
31011
31012	pub fn new() -> Self {
31013		 Self::default()
31014	}
31015
31016	pub fn sType(mut self, sType : StructureType) -> Self {
31017		self.sType = sType;
31018		self
31019	}
31020
31021	pub fn pNext(mut self, pNext : *mut void) -> Self {
31022		self.pNext = pNext;
31023		self
31024	}
31025
31026	pub fn cooperativeMatrixSupportedStages(mut self, cooperativeMatrixSupportedStages : ShaderStageFlags) -> Self {
31027		self.cooperativeMatrixSupportedStages = cooperativeMatrixSupportedStages;
31028		self
31029	}
31030
31031}
31032
31033impl PhysicalDeviceCoverageReductionModeFeaturesNV {
31034
31035	pub fn new() -> Self {
31036		 Self::default()
31037	}
31038
31039	pub fn sType(mut self, sType : StructureType) -> Self {
31040		self.sType = sType;
31041		self
31042	}
31043
31044	pub fn pNext(mut self, pNext : *mut void) -> Self {
31045		self.pNext = pNext;
31046		self
31047	}
31048
31049	pub fn coverageReductionMode(mut self, coverageReductionMode : Bool32) -> Self {
31050		self.coverageReductionMode = coverageReductionMode;
31051		self
31052	}
31053
31054}
31055
31056impl PipelineCoverageReductionStateCreateInfoNV {
31057
31058	pub fn new() -> Self {
31059		 Self::default()
31060	}
31061
31062	pub fn sType(mut self, sType : StructureType) -> Self {
31063		self.sType = sType;
31064		self
31065	}
31066
31067	pub fn pNext(mut self, pNext : *const void) -> Self {
31068		self.pNext = pNext;
31069		self
31070	}
31071
31072	pub fn flags(mut self, flags : PipelineCoverageReductionStateCreateFlagsNV) -> Self {
31073		self.flags = flags;
31074		self
31075	}
31076
31077	pub fn coverageReductionMode(mut self, coverageReductionMode : CoverageReductionModeNV) -> Self {
31078		self.coverageReductionMode = coverageReductionMode;
31079		self
31080	}
31081
31082}
31083
31084impl FramebufferMixedSamplesCombinationNV {
31085
31086	pub fn new() -> Self {
31087		 Self::default()
31088	}
31089
31090	pub fn sType(mut self, sType : StructureType) -> Self {
31091		self.sType = sType;
31092		self
31093	}
31094
31095	pub fn pNext(mut self, pNext : *mut void) -> Self {
31096		self.pNext = pNext;
31097		self
31098	}
31099
31100	pub fn coverageReductionMode(mut self, coverageReductionMode : CoverageReductionModeNV) -> Self {
31101		self.coverageReductionMode = coverageReductionMode;
31102		self
31103	}
31104
31105	pub fn rasterizationSamples(mut self, rasterizationSamples : SampleCountFlagBits) -> Self {
31106		self.rasterizationSamples = rasterizationSamples;
31107		self
31108	}
31109
31110	pub fn depthStencilSamples(mut self, depthStencilSamples : SampleCountFlags) -> Self {
31111		self.depthStencilSamples = depthStencilSamples;
31112		self
31113	}
31114
31115	pub fn colorSamples(mut self, colorSamples : SampleCountFlags) -> Self {
31116		self.colorSamples = colorSamples;
31117		self
31118	}
31119
31120}
31121
31122impl PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
31123
31124	pub fn new() -> Self {
31125		 Self::default()
31126	}
31127
31128	pub fn sType(mut self, sType : StructureType) -> Self {
31129		self.sType = sType;
31130		self
31131	}
31132
31133	pub fn pNext(mut self, pNext : *mut void) -> Self {
31134		self.pNext = pNext;
31135		self
31136	}
31137
31138	pub fn fragmentShaderSampleInterlock(mut self, fragmentShaderSampleInterlock : Bool32) -> Self {
31139		self.fragmentShaderSampleInterlock = fragmentShaderSampleInterlock;
31140		self
31141	}
31142
31143	pub fn fragmentShaderPixelInterlock(mut self, fragmentShaderPixelInterlock : Bool32) -> Self {
31144		self.fragmentShaderPixelInterlock = fragmentShaderPixelInterlock;
31145		self
31146	}
31147
31148	pub fn fragmentShaderShadingRateInterlock(mut self, fragmentShaderShadingRateInterlock : Bool32) -> Self {
31149		self.fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock;
31150		self
31151	}
31152
31153}
31154
31155impl PhysicalDeviceYcbcrImageArraysFeaturesEXT {
31156
31157	pub fn new() -> Self {
31158		 Self::default()
31159	}
31160
31161	pub fn sType(mut self, sType : StructureType) -> Self {
31162		self.sType = sType;
31163		self
31164	}
31165
31166	pub fn pNext(mut self, pNext : *mut void) -> Self {
31167		self.pNext = pNext;
31168		self
31169	}
31170
31171	pub fn ycbcrImageArrays(mut self, ycbcrImageArrays : Bool32) -> Self {
31172		self.ycbcrImageArrays = ycbcrImageArrays;
31173		self
31174	}
31175
31176}
31177
31178impl HeadlessSurfaceCreateInfoEXT {
31179
31180	pub fn new() -> Self {
31181		 Self::default()
31182	}
31183
31184	pub fn sType(mut self, sType : StructureType) -> Self {
31185		self.sType = sType;
31186		self
31187	}
31188
31189	pub fn pNext(mut self, pNext : *const void) -> Self {
31190		self.pNext = pNext;
31191		self
31192	}
31193
31194	pub fn flags(mut self, flags : HeadlessSurfaceCreateFlagsEXT) -> Self {
31195		self.flags = flags;
31196		self
31197	}
31198
31199}
31200
31201impl PhysicalDeviceLineRasterizationFeaturesEXT {
31202
31203	pub fn new() -> Self {
31204		 Self::default()
31205	}
31206
31207	pub fn sType(mut self, sType : StructureType) -> Self {
31208		self.sType = sType;
31209		self
31210	}
31211
31212	pub fn pNext(mut self, pNext : *mut void) -> Self {
31213		self.pNext = pNext;
31214		self
31215	}
31216
31217	pub fn rectangularLines(mut self, rectangularLines : Bool32) -> Self {
31218		self.rectangularLines = rectangularLines;
31219		self
31220	}
31221
31222	pub fn bresenhamLines(mut self, bresenhamLines : Bool32) -> Self {
31223		self.bresenhamLines = bresenhamLines;
31224		self
31225	}
31226
31227	pub fn smoothLines(mut self, smoothLines : Bool32) -> Self {
31228		self.smoothLines = smoothLines;
31229		self
31230	}
31231
31232	pub fn stippledRectangularLines(mut self, stippledRectangularLines : Bool32) -> Self {
31233		self.stippledRectangularLines = stippledRectangularLines;
31234		self
31235	}
31236
31237	pub fn stippledBresenhamLines(mut self, stippledBresenhamLines : Bool32) -> Self {
31238		self.stippledBresenhamLines = stippledBresenhamLines;
31239		self
31240	}
31241
31242	pub fn stippledSmoothLines(mut self, stippledSmoothLines : Bool32) -> Self {
31243		self.stippledSmoothLines = stippledSmoothLines;
31244		self
31245	}
31246
31247}
31248
31249impl PhysicalDeviceLineRasterizationPropertiesEXT {
31250
31251	pub fn new() -> Self {
31252		 Self::default()
31253	}
31254
31255	pub fn sType(mut self, sType : StructureType) -> Self {
31256		self.sType = sType;
31257		self
31258	}
31259
31260	pub fn pNext(mut self, pNext : *mut void) -> Self {
31261		self.pNext = pNext;
31262		self
31263	}
31264
31265	pub fn lineSubPixelPrecisionBits(mut self, lineSubPixelPrecisionBits : u32) -> Self {
31266		self.lineSubPixelPrecisionBits = lineSubPixelPrecisionBits;
31267		self
31268	}
31269
31270}
31271
31272impl PipelineRasterizationLineStateCreateInfoEXT {
31273
31274	pub fn new() -> Self {
31275		 Self::default()
31276	}
31277
31278	pub fn sType(mut self, sType : StructureType) -> Self {
31279		self.sType = sType;
31280		self
31281	}
31282
31283	pub fn pNext(mut self, pNext : *const void) -> Self {
31284		self.pNext = pNext;
31285		self
31286	}
31287
31288	pub fn lineRasterizationMode(mut self, lineRasterizationMode : LineRasterizationModeEXT) -> Self {
31289		self.lineRasterizationMode = lineRasterizationMode;
31290		self
31291	}
31292
31293	pub fn stippledLineEnable(mut self, stippledLineEnable : Bool32) -> Self {
31294		self.stippledLineEnable = stippledLineEnable;
31295		self
31296	}
31297
31298	pub fn lineStippleFactor(mut self, lineStippleFactor : u32) -> Self {
31299		self.lineStippleFactor = lineStippleFactor;
31300		self
31301	}
31302
31303	pub fn lineStipplePattern(mut self, lineStipplePattern : u16) -> Self {
31304		self.lineStipplePattern = lineStipplePattern;
31305		self
31306	}
31307
31308}
31309
31310impl PhysicalDeviceIndexTypeUint8FeaturesEXT {
31311
31312	pub fn new() -> Self {
31313		 Self::default()
31314	}
31315
31316	pub fn sType(mut self, sType : StructureType) -> Self {
31317		self.sType = sType;
31318		self
31319	}
31320
31321	pub fn pNext(mut self, pNext : *mut void) -> Self {
31322		self.pNext = pNext;
31323		self
31324	}
31325
31326	pub fn indexTypeUint8(mut self, indexTypeUint8 : Bool32) -> Self {
31327		self.indexTypeUint8 = indexTypeUint8;
31328		self
31329	}
31330
31331}
31332
31333impl PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT {
31334
31335	pub fn new() -> Self {
31336		 Self::default()
31337	}
31338
31339	pub fn sType(mut self, sType : StructureType) -> Self {
31340		self.sType = sType;
31341		self
31342	}
31343
31344	pub fn pNext(mut self, pNext : *mut void) -> Self {
31345		self.pNext = pNext;
31346		self
31347	}
31348
31349	pub fn shaderDemoteToHelperInvocation(mut self, shaderDemoteToHelperInvocation : Bool32) -> Self {
31350		self.shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation;
31351		self
31352	}
31353
31354}
31355
31356impl PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
31357
31358	pub fn new() -> Self {
31359		 Self::default()
31360	}
31361
31362	pub fn sType(mut self, sType : StructureType) -> Self {
31363		self.sType = sType;
31364		self
31365	}
31366
31367	pub fn pNext(mut self, pNext : *mut void) -> Self {
31368		self.pNext = pNext;
31369		self
31370	}
31371
31372	pub fn maxGraphicsShaderGroupCount(mut self, maxGraphicsShaderGroupCount : u32) -> Self {
31373		self.maxGraphicsShaderGroupCount = maxGraphicsShaderGroupCount;
31374		self
31375	}
31376
31377	pub fn maxIndirectSequenceCount(mut self, maxIndirectSequenceCount : u32) -> Self {
31378		self.maxIndirectSequenceCount = maxIndirectSequenceCount;
31379		self
31380	}
31381
31382	pub fn maxIndirectCommandsTokenCount(mut self, maxIndirectCommandsTokenCount : u32) -> Self {
31383		self.maxIndirectCommandsTokenCount = maxIndirectCommandsTokenCount;
31384		self
31385	}
31386
31387	pub fn maxIndirectCommandsStreamCount(mut self, maxIndirectCommandsStreamCount : u32) -> Self {
31388		self.maxIndirectCommandsStreamCount = maxIndirectCommandsStreamCount;
31389		self
31390	}
31391
31392	pub fn maxIndirectCommandsTokenOffset(mut self, maxIndirectCommandsTokenOffset : u32) -> Self {
31393		self.maxIndirectCommandsTokenOffset = maxIndirectCommandsTokenOffset;
31394		self
31395	}
31396
31397	pub fn maxIndirectCommandsStreamStride(mut self, maxIndirectCommandsStreamStride : u32) -> Self {
31398		self.maxIndirectCommandsStreamStride = maxIndirectCommandsStreamStride;
31399		self
31400	}
31401
31402	pub fn minSequencesCountBufferOffsetAlignment(mut self, minSequencesCountBufferOffsetAlignment : u32) -> Self {
31403		self.minSequencesCountBufferOffsetAlignment = minSequencesCountBufferOffsetAlignment;
31404		self
31405	}
31406
31407	pub fn minSequencesIndexBufferOffsetAlignment(mut self, minSequencesIndexBufferOffsetAlignment : u32) -> Self {
31408		self.minSequencesIndexBufferOffsetAlignment = minSequencesIndexBufferOffsetAlignment;
31409		self
31410	}
31411
31412	pub fn minIndirectCommandsBufferOffsetAlignment(mut self, minIndirectCommandsBufferOffsetAlignment : u32) -> Self {
31413		self.minIndirectCommandsBufferOffsetAlignment = minIndirectCommandsBufferOffsetAlignment;
31414		self
31415	}
31416
31417}
31418
31419impl PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
31420
31421	pub fn new() -> Self {
31422		 Self::default()
31423	}
31424
31425	pub fn sType(mut self, sType : StructureType) -> Self {
31426		self.sType = sType;
31427		self
31428	}
31429
31430	pub fn pNext(mut self, pNext : *mut void) -> Self {
31431		self.pNext = pNext;
31432		self
31433	}
31434
31435	pub fn deviceGeneratedCommands(mut self, deviceGeneratedCommands : Bool32) -> Self {
31436		self.deviceGeneratedCommands = deviceGeneratedCommands;
31437		self
31438	}
31439
31440}
31441
31442impl GraphicsShaderGroupCreateInfoNV {
31443
31444	pub fn new() -> Self {
31445		 Self::default()
31446	}
31447
31448	pub fn sType(mut self, sType : StructureType) -> Self {
31449		self.sType = sType;
31450		self
31451	}
31452
31453	pub fn pNext(mut self, pNext : *const void) -> Self {
31454		self.pNext = pNext;
31455		self
31456	}
31457
31458	pub fn stageCount(mut self, stageCount : u32) -> Self {
31459		self.stageCount = stageCount;
31460		self
31461	}
31462
31463	pub fn pStages(mut self, pStages : *const PipelineShaderStageCreateInfo) -> Self {
31464		self.pStages = pStages;
31465		self
31466	}
31467
31468	pub fn pVertexInputState(mut self, pVertexInputState : *const PipelineVertexInputStateCreateInfo) -> Self {
31469		self.pVertexInputState = pVertexInputState;
31470		self
31471	}
31472
31473	pub fn pTessellationState(mut self, pTessellationState : *const PipelineTessellationStateCreateInfo) -> Self {
31474		self.pTessellationState = pTessellationState;
31475		self
31476	}
31477
31478}
31479
31480impl GraphicsPipelineShaderGroupsCreateInfoNV {
31481
31482	pub fn new() -> Self {
31483		 Self::default()
31484	}
31485
31486	pub fn sType(mut self, sType : StructureType) -> Self {
31487		self.sType = sType;
31488		self
31489	}
31490
31491	pub fn pNext(mut self, pNext : *const void) -> Self {
31492		self.pNext = pNext;
31493		self
31494	}
31495
31496	pub fn groupCount(mut self, groupCount : u32) -> Self {
31497		self.groupCount = groupCount;
31498		self
31499	}
31500
31501	pub fn pGroups(mut self, pGroups : *const GraphicsShaderGroupCreateInfoNV) -> Self {
31502		self.pGroups = pGroups;
31503		self
31504	}
31505
31506	pub fn pipelineCount(mut self, pipelineCount : u32) -> Self {
31507		self.pipelineCount = pipelineCount;
31508		self
31509	}
31510
31511	pub fn pPipelines(mut self, pPipelines : *const Pipeline) -> Self {
31512		self.pPipelines = pPipelines;
31513		self
31514	}
31515
31516}
31517
31518impl BindShaderGroupIndirectCommandNV {
31519
31520	pub fn new() -> Self {
31521		 Self::default()
31522	}
31523
31524	pub fn groupIndex(mut self, groupIndex : u32) -> Self {
31525		self.groupIndex = groupIndex;
31526		self
31527	}
31528
31529}
31530
31531impl BindIndexBufferIndirectCommandNV {
31532
31533	pub fn new() -> Self {
31534		 Self::default()
31535	}
31536
31537	pub fn bufferAddress(mut self, bufferAddress : DeviceAddress) -> Self {
31538		self.bufferAddress = bufferAddress;
31539		self
31540	}
31541
31542	pub fn size(mut self, size : u32) -> Self {
31543		self.size = size;
31544		self
31545	}
31546
31547	pub fn indexType(mut self, indexType : IndexType) -> Self {
31548		self.indexType = indexType;
31549		self
31550	}
31551
31552}
31553
31554impl BindVertexBufferIndirectCommandNV {
31555
31556	pub fn new() -> Self {
31557		 Self::default()
31558	}
31559
31560	pub fn bufferAddress(mut self, bufferAddress : DeviceAddress) -> Self {
31561		self.bufferAddress = bufferAddress;
31562		self
31563	}
31564
31565	pub fn size(mut self, size : u32) -> Self {
31566		self.size = size;
31567		self
31568	}
31569
31570	pub fn stride(mut self, stride : u32) -> Self {
31571		self.stride = stride;
31572		self
31573	}
31574
31575}
31576
31577impl SetStateFlagsIndirectCommandNV {
31578
31579	pub fn new() -> Self {
31580		 Self::default()
31581	}
31582
31583	pub fn data(mut self, data : u32) -> Self {
31584		self.data = data;
31585		self
31586	}
31587
31588}
31589
31590impl IndirectCommandsStreamNV {
31591
31592	pub fn new() -> Self {
31593		 Self::default()
31594	}
31595
31596	pub fn buffer(mut self, buffer : Buffer) -> Self {
31597		self.buffer = buffer;
31598		self
31599	}
31600
31601	pub fn offset(mut self, offset : DeviceSize) -> Self {
31602		self.offset = offset;
31603		self
31604	}
31605
31606}
31607
31608impl IndirectCommandsLayoutTokenNV {
31609
31610	pub fn new() -> Self {
31611		 Self::default()
31612	}
31613
31614	pub fn sType(mut self, sType : StructureType) -> Self {
31615		self.sType = sType;
31616		self
31617	}
31618
31619	pub fn pNext(mut self, pNext : *const void) -> Self {
31620		self.pNext = pNext;
31621		self
31622	}
31623
31624	pub fn tokenType(mut self, tokenType : IndirectCommandsTokenTypeNV) -> Self {
31625		self.tokenType = tokenType;
31626		self
31627	}
31628
31629	pub fn stream(mut self, stream : u32) -> Self {
31630		self.stream = stream;
31631		self
31632	}
31633
31634	pub fn offset(mut self, offset : u32) -> Self {
31635		self.offset = offset;
31636		self
31637	}
31638
31639	pub fn vertexBindingUnit(mut self, vertexBindingUnit : u32) -> Self {
31640		self.vertexBindingUnit = vertexBindingUnit;
31641		self
31642	}
31643
31644	pub fn vertexDynamicStride(mut self, vertexDynamicStride : Bool32) -> Self {
31645		self.vertexDynamicStride = vertexDynamicStride;
31646		self
31647	}
31648
31649	pub fn pushconstantPipelineLayout(mut self, pushconstantPipelineLayout : PipelineLayout) -> Self {
31650		self.pushconstantPipelineLayout = pushconstantPipelineLayout;
31651		self
31652	}
31653
31654	pub fn pushconstantShaderStageFlags(mut self, pushconstantShaderStageFlags : ShaderStageFlags) -> Self {
31655		self.pushconstantShaderStageFlags = pushconstantShaderStageFlags;
31656		self
31657	}
31658
31659	pub fn pushconstantOffset(mut self, pushconstantOffset : u32) -> Self {
31660		self.pushconstantOffset = pushconstantOffset;
31661		self
31662	}
31663
31664	pub fn pushconstantSize(mut self, pushconstantSize : u32) -> Self {
31665		self.pushconstantSize = pushconstantSize;
31666		self
31667	}
31668
31669	pub fn indirectStateFlags(mut self, indirectStateFlags : IndirectStateFlagsNV) -> Self {
31670		self.indirectStateFlags = indirectStateFlags;
31671		self
31672	}
31673
31674	pub fn indexTypeCount(mut self, indexTypeCount : u32) -> Self {
31675		self.indexTypeCount = indexTypeCount;
31676		self
31677	}
31678
31679	pub fn pIndexTypes(mut self, pIndexTypes : *const IndexType) -> Self {
31680		self.pIndexTypes = pIndexTypes;
31681		self
31682	}
31683
31684	pub fn pIndexTypeValues(mut self, pIndexTypeValues : *const u32) -> Self {
31685		self.pIndexTypeValues = pIndexTypeValues;
31686		self
31687	}
31688
31689}
31690
31691impl IndirectCommandsLayoutCreateInfoNV {
31692
31693	pub fn new() -> Self {
31694		 Self::default()
31695	}
31696
31697	pub fn sType(mut self, sType : StructureType) -> Self {
31698		self.sType = sType;
31699		self
31700	}
31701
31702	pub fn pNext(mut self, pNext : *const void) -> Self {
31703		self.pNext = pNext;
31704		self
31705	}
31706
31707	pub fn flags(mut self, flags : IndirectCommandsLayoutUsageFlagsNV) -> Self {
31708		self.flags = flags;
31709		self
31710	}
31711
31712	pub fn pipelineBindPoint(mut self, pipelineBindPoint : PipelineBindPoint) -> Self {
31713		self.pipelineBindPoint = pipelineBindPoint;
31714		self
31715	}
31716
31717	pub fn tokenCount(mut self, tokenCount : u32) -> Self {
31718		self.tokenCount = tokenCount;
31719		self
31720	}
31721
31722	pub fn pTokens(mut self, pTokens : *const IndirectCommandsLayoutTokenNV) -> Self {
31723		self.pTokens = pTokens;
31724		self
31725	}
31726
31727	pub fn streamCount(mut self, streamCount : u32) -> Self {
31728		self.streamCount = streamCount;
31729		self
31730	}
31731
31732	pub fn pStreamStrides(mut self, pStreamStrides : *const u32) -> Self {
31733		self.pStreamStrides = pStreamStrides;
31734		self
31735	}
31736
31737}
31738
31739impl GeneratedCommandsInfoNV {
31740
31741	pub fn new() -> Self {
31742		 Self::default()
31743	}
31744
31745	pub fn sType(mut self, sType : StructureType) -> Self {
31746		self.sType = sType;
31747		self
31748	}
31749
31750	pub fn pNext(mut self, pNext : *const void) -> Self {
31751		self.pNext = pNext;
31752		self
31753	}
31754
31755	pub fn pipelineBindPoint(mut self, pipelineBindPoint : PipelineBindPoint) -> Self {
31756		self.pipelineBindPoint = pipelineBindPoint;
31757		self
31758	}
31759
31760	pub fn pipeline(mut self, pipeline : Pipeline) -> Self {
31761		self.pipeline = pipeline;
31762		self
31763	}
31764
31765	pub fn indirectCommandsLayout(mut self, indirectCommandsLayout : IndirectCommandsLayoutNV) -> Self {
31766		self.indirectCommandsLayout = indirectCommandsLayout;
31767		self
31768	}
31769
31770	pub fn streamCount(mut self, streamCount : u32) -> Self {
31771		self.streamCount = streamCount;
31772		self
31773	}
31774
31775	pub fn pStreams(mut self, pStreams : *const IndirectCommandsStreamNV) -> Self {
31776		self.pStreams = pStreams;
31777		self
31778	}
31779
31780	pub fn sequencesCount(mut self, sequencesCount : u32) -> Self {
31781		self.sequencesCount = sequencesCount;
31782		self
31783	}
31784
31785	pub fn preprocessBuffer(mut self, preprocessBuffer : Buffer) -> Self {
31786		self.preprocessBuffer = preprocessBuffer;
31787		self
31788	}
31789
31790	pub fn preprocessOffset(mut self, preprocessOffset : DeviceSize) -> Self {
31791		self.preprocessOffset = preprocessOffset;
31792		self
31793	}
31794
31795	pub fn preprocessSize(mut self, preprocessSize : DeviceSize) -> Self {
31796		self.preprocessSize = preprocessSize;
31797		self
31798	}
31799
31800	pub fn sequencesCountBuffer(mut self, sequencesCountBuffer : Buffer) -> Self {
31801		self.sequencesCountBuffer = sequencesCountBuffer;
31802		self
31803	}
31804
31805	pub fn sequencesCountOffset(mut self, sequencesCountOffset : DeviceSize) -> Self {
31806		self.sequencesCountOffset = sequencesCountOffset;
31807		self
31808	}
31809
31810	pub fn sequencesIndexBuffer(mut self, sequencesIndexBuffer : Buffer) -> Self {
31811		self.sequencesIndexBuffer = sequencesIndexBuffer;
31812		self
31813	}
31814
31815	pub fn sequencesIndexOffset(mut self, sequencesIndexOffset : DeviceSize) -> Self {
31816		self.sequencesIndexOffset = sequencesIndexOffset;
31817		self
31818	}
31819
31820}
31821
31822impl GeneratedCommandsMemoryRequirementsInfoNV {
31823
31824	pub fn new() -> Self {
31825		 Self::default()
31826	}
31827
31828	pub fn sType(mut self, sType : StructureType) -> Self {
31829		self.sType = sType;
31830		self
31831	}
31832
31833	pub fn pNext(mut self, pNext : *const void) -> Self {
31834		self.pNext = pNext;
31835		self
31836	}
31837
31838	pub fn pipelineBindPoint(mut self, pipelineBindPoint : PipelineBindPoint) -> Self {
31839		self.pipelineBindPoint = pipelineBindPoint;
31840		self
31841	}
31842
31843	pub fn pipeline(mut self, pipeline : Pipeline) -> Self {
31844		self.pipeline = pipeline;
31845		self
31846	}
31847
31848	pub fn indirectCommandsLayout(mut self, indirectCommandsLayout : IndirectCommandsLayoutNV) -> Self {
31849		self.indirectCommandsLayout = indirectCommandsLayout;
31850		self
31851	}
31852
31853	pub fn maxSequencesCount(mut self, maxSequencesCount : u32) -> Self {
31854		self.maxSequencesCount = maxSequencesCount;
31855		self
31856	}
31857
31858}
31859
31860impl PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
31861
31862	pub fn new() -> Self {
31863		 Self::default()
31864	}
31865
31866	pub fn sType(mut self, sType : StructureType) -> Self {
31867		self.sType = sType;
31868		self
31869	}
31870
31871	pub fn pNext(mut self, pNext : *mut void) -> Self {
31872		self.pNext = pNext;
31873		self
31874	}
31875
31876	pub fn texelBufferAlignment(mut self, texelBufferAlignment : Bool32) -> Self {
31877		self.texelBufferAlignment = texelBufferAlignment;
31878		self
31879	}
31880
31881}
31882
31883impl PhysicalDeviceTexelBufferAlignmentPropertiesEXT {
31884
31885	pub fn new() -> Self {
31886		 Self::default()
31887	}
31888
31889	pub fn sType(mut self, sType : StructureType) -> Self {
31890		self.sType = sType;
31891		self
31892	}
31893
31894	pub fn pNext(mut self, pNext : *mut void) -> Self {
31895		self.pNext = pNext;
31896		self
31897	}
31898
31899	pub fn storageTexelBufferOffsetAlignmentBytes(mut self, storageTexelBufferOffsetAlignmentBytes : DeviceSize) -> Self {
31900		self.storageTexelBufferOffsetAlignmentBytes = storageTexelBufferOffsetAlignmentBytes;
31901		self
31902	}
31903
31904	pub fn storageTexelBufferOffsetSingleTexelAlignment(mut self, storageTexelBufferOffsetSingleTexelAlignment : Bool32) -> Self {
31905		self.storageTexelBufferOffsetSingleTexelAlignment = storageTexelBufferOffsetSingleTexelAlignment;
31906		self
31907	}
31908
31909	pub fn uniformTexelBufferOffsetAlignmentBytes(mut self, uniformTexelBufferOffsetAlignmentBytes : DeviceSize) -> Self {
31910		self.uniformTexelBufferOffsetAlignmentBytes = uniformTexelBufferOffsetAlignmentBytes;
31911		self
31912	}
31913
31914	pub fn uniformTexelBufferOffsetSingleTexelAlignment(mut self, uniformTexelBufferOffsetSingleTexelAlignment : Bool32) -> Self {
31915		self.uniformTexelBufferOffsetSingleTexelAlignment = uniformTexelBufferOffsetSingleTexelAlignment;
31916		self
31917	}
31918
31919}
31920
31921impl RenderPassTransformBeginInfoQCOM {
31922
31923	pub fn new() -> Self {
31924		 Self::default()
31925	}
31926
31927	pub fn sType(mut self, sType : StructureType) -> Self {
31928		self.sType = sType;
31929		self
31930	}
31931
31932	pub fn pNext(mut self, pNext : *mut void) -> Self {
31933		self.pNext = pNext;
31934		self
31935	}
31936
31937	pub fn transform(mut self, transform : SurfaceTransformFlagBitsKHR) -> Self {
31938		self.transform = transform;
31939		self
31940	}
31941
31942}
31943
31944impl CommandBufferInheritanceRenderPassTransformInfoQCOM {
31945
31946	pub fn new() -> Self {
31947		 Self::default()
31948	}
31949
31950	pub fn sType(mut self, sType : StructureType) -> Self {
31951		self.sType = sType;
31952		self
31953	}
31954
31955	pub fn pNext(mut self, pNext : *mut void) -> Self {
31956		self.pNext = pNext;
31957		self
31958	}
31959
31960	pub fn transform(mut self, transform : SurfaceTransformFlagBitsKHR) -> Self {
31961		self.transform = transform;
31962		self
31963	}
31964
31965	pub fn renderArea(mut self, renderArea : Rect2D) -> Self {
31966		self.renderArea = renderArea;
31967		self
31968	}
31969
31970}
31971
31972impl PhysicalDeviceRobustness2FeaturesEXT {
31973
31974	pub fn new() -> Self {
31975		 Self::default()
31976	}
31977
31978	pub fn sType(mut self, sType : StructureType) -> Self {
31979		self.sType = sType;
31980		self
31981	}
31982
31983	pub fn pNext(mut self, pNext : *mut void) -> Self {
31984		self.pNext = pNext;
31985		self
31986	}
31987
31988	pub fn robustBufferAccess2(mut self, robustBufferAccess2 : Bool32) -> Self {
31989		self.robustBufferAccess2 = robustBufferAccess2;
31990		self
31991	}
31992
31993	pub fn robustImageAccess2(mut self, robustImageAccess2 : Bool32) -> Self {
31994		self.robustImageAccess2 = robustImageAccess2;
31995		self
31996	}
31997
31998	pub fn nullDescriptor(mut self, nullDescriptor : Bool32) -> Self {
31999		self.nullDescriptor = nullDescriptor;
32000		self
32001	}
32002
32003}
32004
32005impl PhysicalDeviceRobustness2PropertiesEXT {
32006
32007	pub fn new() -> Self {
32008		 Self::default()
32009	}
32010
32011	pub fn sType(mut self, sType : StructureType) -> Self {
32012		self.sType = sType;
32013		self
32014	}
32015
32016	pub fn pNext(mut self, pNext : *mut void) -> Self {
32017		self.pNext = pNext;
32018		self
32019	}
32020
32021	pub fn robustStorageBufferAccessSizeAlignment(mut self, robustStorageBufferAccessSizeAlignment : DeviceSize) -> Self {
32022		self.robustStorageBufferAccessSizeAlignment = robustStorageBufferAccessSizeAlignment;
32023		self
32024	}
32025
32026	pub fn robustUniformBufferAccessSizeAlignment(mut self, robustUniformBufferAccessSizeAlignment : DeviceSize) -> Self {
32027		self.robustUniformBufferAccessSizeAlignment = robustUniformBufferAccessSizeAlignment;
32028		self
32029	}
32030
32031}
32032
32033impl SamplerCustomBorderColorCreateInfoEXT {
32034
32035	pub fn new() -> Self {
32036		 Self::default()
32037	}
32038
32039	pub fn sType(mut self, sType : StructureType) -> Self {
32040		self.sType = sType;
32041		self
32042	}
32043
32044	pub fn pNext(mut self, pNext : *const void) -> Self {
32045		self.pNext = pNext;
32046		self
32047	}
32048
32049	pub fn customBorderColor(mut self, customBorderColor : ClearColorValue) -> Self {
32050		self.customBorderColor = customBorderColor;
32051		self
32052	}
32053
32054	pub fn format(mut self, format : Format) -> Self {
32055		self.format = format;
32056		self
32057	}
32058
32059}
32060
32061impl PhysicalDeviceCustomBorderColorPropertiesEXT {
32062
32063	pub fn new() -> Self {
32064		 Self::default()
32065	}
32066
32067	pub fn sType(mut self, sType : StructureType) -> Self {
32068		self.sType = sType;
32069		self
32070	}
32071
32072	pub fn pNext(mut self, pNext : *mut void) -> Self {
32073		self.pNext = pNext;
32074		self
32075	}
32076
32077	pub fn maxCustomBorderColorSamplers(mut self, maxCustomBorderColorSamplers : u32) -> Self {
32078		self.maxCustomBorderColorSamplers = maxCustomBorderColorSamplers;
32079		self
32080	}
32081
32082}
32083
32084impl PhysicalDeviceCustomBorderColorFeaturesEXT {
32085
32086	pub fn new() -> Self {
32087		 Self::default()
32088	}
32089
32090	pub fn sType(mut self, sType : StructureType) -> Self {
32091		self.sType = sType;
32092		self
32093	}
32094
32095	pub fn pNext(mut self, pNext : *mut void) -> Self {
32096		self.pNext = pNext;
32097		self
32098	}
32099
32100	pub fn customBorderColors(mut self, customBorderColors : Bool32) -> Self {
32101		self.customBorderColors = customBorderColors;
32102		self
32103	}
32104
32105	pub fn customBorderColorWithoutFormat(mut self, customBorderColorWithoutFormat : Bool32) -> Self {
32106		self.customBorderColorWithoutFormat = customBorderColorWithoutFormat;
32107		self
32108	}
32109
32110}
32111
32112impl PhysicalDevicePrivateDataFeaturesEXT {
32113
32114	pub fn new() -> Self {
32115		 Self::default()
32116	}
32117
32118	pub fn sType(mut self, sType : StructureType) -> Self {
32119		self.sType = sType;
32120		self
32121	}
32122
32123	pub fn pNext(mut self, pNext : *mut void) -> Self {
32124		self.pNext = pNext;
32125		self
32126	}
32127
32128	pub fn privateData(mut self, privateData : Bool32) -> Self {
32129		self.privateData = privateData;
32130		self
32131	}
32132
32133}
32134
32135impl DevicePrivateDataCreateInfoEXT {
32136
32137	pub fn new() -> Self {
32138		 Self::default()
32139	}
32140
32141	pub fn sType(mut self, sType : StructureType) -> Self {
32142		self.sType = sType;
32143		self
32144	}
32145
32146	pub fn pNext(mut self, pNext : *const void) -> Self {
32147		self.pNext = pNext;
32148		self
32149	}
32150
32151	pub fn privateDataSlotRequestCount(mut self, privateDataSlotRequestCount : u32) -> Self {
32152		self.privateDataSlotRequestCount = privateDataSlotRequestCount;
32153		self
32154	}
32155
32156}
32157
32158impl PrivateDataSlotCreateInfoEXT {
32159
32160	pub fn new() -> Self {
32161		 Self::default()
32162	}
32163
32164	pub fn sType(mut self, sType : StructureType) -> Self {
32165		self.sType = sType;
32166		self
32167	}
32168
32169	pub fn pNext(mut self, pNext : *const void) -> Self {
32170		self.pNext = pNext;
32171		self
32172	}
32173
32174	pub fn flags(mut self, flags : PrivateDataSlotCreateFlagsEXT) -> Self {
32175		self.flags = flags;
32176		self
32177	}
32178
32179}
32180
32181impl PhysicalDevicePipelineCreationCacheControlFeaturesEXT {
32182
32183	pub fn new() -> Self {
32184		 Self::default()
32185	}
32186
32187	pub fn sType(mut self, sType : StructureType) -> Self {
32188		self.sType = sType;
32189		self
32190	}
32191
32192	pub fn pNext(mut self, pNext : *mut void) -> Self {
32193		self.pNext = pNext;
32194		self
32195	}
32196
32197	pub fn pipelineCreationCacheControl(mut self, pipelineCreationCacheControl : Bool32) -> Self {
32198		self.pipelineCreationCacheControl = pipelineCreationCacheControl;
32199		self
32200	}
32201
32202}
32203
32204impl PhysicalDeviceDiagnosticsConfigFeaturesNV {
32205
32206	pub fn new() -> Self {
32207		 Self::default()
32208	}
32209
32210	pub fn sType(mut self, sType : StructureType) -> Self {
32211		self.sType = sType;
32212		self
32213	}
32214
32215	pub fn pNext(mut self, pNext : *mut void) -> Self {
32216		self.pNext = pNext;
32217		self
32218	}
32219
32220	pub fn diagnosticsConfig(mut self, diagnosticsConfig : Bool32) -> Self {
32221		self.diagnosticsConfig = diagnosticsConfig;
32222		self
32223	}
32224
32225}
32226
32227impl DeviceDiagnosticsConfigCreateInfoNV {
32228
32229	pub fn new() -> Self {
32230		 Self::default()
32231	}
32232
32233	pub fn sType(mut self, sType : StructureType) -> Self {
32234		self.sType = sType;
32235		self
32236	}
32237
32238	pub fn pNext(mut self, pNext : *const void) -> Self {
32239		self.pNext = pNext;
32240		self
32241	}
32242
32243	pub fn flags(mut self, flags : DeviceDiagnosticsConfigFlagsNV) -> Self {
32244		self.flags = flags;
32245		self
32246	}
32247
32248}
32249
32250impl Win32SurfaceCreateInfoKHR {
32251
32252	pub fn new() -> Self {
32253		 Self::default()
32254	}
32255
32256	pub fn sType(mut self, sType : StructureType) -> Self {
32257		self.sType = sType;
32258		self
32259	}
32260
32261	pub fn pNext(mut self, pNext : *const void) -> Self {
32262		self.pNext = pNext;
32263		self
32264	}
32265
32266	pub fn flags(mut self, flags : Win32SurfaceCreateFlagsKHR) -> Self {
32267		self.flags = flags;
32268		self
32269	}
32270
32271	pub fn hinstance(mut self, hinstance : HINSTANCE) -> Self {
32272		self.hinstance = hinstance;
32273		self
32274	}
32275
32276	pub fn hwnd(mut self, hwnd : HWND) -> Self {
32277		self.hwnd = hwnd;
32278		self
32279	}
32280
32281}
32282
32283impl ImportMemoryWin32HandleInfoKHR {
32284
32285	pub fn new() -> Self {
32286		 Self::default()
32287	}
32288
32289	pub fn sType(mut self, sType : StructureType) -> Self {
32290		self.sType = sType;
32291		self
32292	}
32293
32294	pub fn pNext(mut self, pNext : *const void) -> Self {
32295		self.pNext = pNext;
32296		self
32297	}
32298
32299	pub fn handleType(mut self, handleType : ExternalMemoryHandleTypeFlagBits) -> Self {
32300		self.handleType = handleType;
32301		self
32302	}
32303
32304	pub fn handle(mut self, handle : HANDLE) -> Self {
32305		self.handle = handle;
32306		self
32307	}
32308
32309	pub fn name(mut self, name : LPCWSTR) -> Self {
32310		self.name = name;
32311		self
32312	}
32313
32314}
32315
32316impl ExportMemoryWin32HandleInfoKHR {
32317
32318	pub fn new() -> Self {
32319		 Self::default()
32320	}
32321
32322	pub fn sType(mut self, sType : StructureType) -> Self {
32323		self.sType = sType;
32324		self
32325	}
32326
32327	pub fn pNext(mut self, pNext : *const void) -> Self {
32328		self.pNext = pNext;
32329		self
32330	}
32331
32332	pub fn pAttributes(mut self, pAttributes : LPSECURITY_ATTRIBUTES) -> Self {
32333		self.pAttributes = pAttributes;
32334		self
32335	}
32336
32337	pub fn dwAccess(mut self, dwAccess : DWORD) -> Self {
32338		self.dwAccess = dwAccess;
32339		self
32340	}
32341
32342	pub fn name(mut self, name : LPCWSTR) -> Self {
32343		self.name = name;
32344		self
32345	}
32346
32347}
32348
32349impl MemoryWin32HandlePropertiesKHR {
32350
32351	pub fn new() -> Self {
32352		 Self::default()
32353	}
32354
32355	pub fn sType(mut self, sType : StructureType) -> Self {
32356		self.sType = sType;
32357		self
32358	}
32359
32360	pub fn pNext(mut self, pNext : *mut void) -> Self {
32361		self.pNext = pNext;
32362		self
32363	}
32364
32365	pub fn memoryTypeBits(mut self, memoryTypeBits : u32) -> Self {
32366		self.memoryTypeBits = memoryTypeBits;
32367		self
32368	}
32369
32370}
32371
32372impl MemoryGetWin32HandleInfoKHR {
32373
32374	pub fn new() -> Self {
32375		 Self::default()
32376	}
32377
32378	pub fn sType(mut self, sType : StructureType) -> Self {
32379		self.sType = sType;
32380		self
32381	}
32382
32383	pub fn pNext(mut self, pNext : *const void) -> Self {
32384		self.pNext = pNext;
32385		self
32386	}
32387
32388	pub fn memory(mut self, memory : DeviceMemory) -> Self {
32389		self.memory = memory;
32390		self
32391	}
32392
32393	pub fn handleType(mut self, handleType : ExternalMemoryHandleTypeFlagBits) -> Self {
32394		self.handleType = handleType;
32395		self
32396	}
32397
32398}
32399
32400impl Win32KeyedMutexAcquireReleaseInfoKHR {
32401
32402	pub fn new() -> Self {
32403		 Self::default()
32404	}
32405
32406	pub fn sType(mut self, sType : StructureType) -> Self {
32407		self.sType = sType;
32408		self
32409	}
32410
32411	pub fn pNext(mut self, pNext : *const void) -> Self {
32412		self.pNext = pNext;
32413		self
32414	}
32415
32416	pub fn acquireCount(mut self, acquireCount : u32) -> Self {
32417		self.acquireCount = acquireCount;
32418		self
32419	}
32420
32421	pub fn pAcquireSyncs(mut self, pAcquireSyncs : *const DeviceMemory) -> Self {
32422		self.pAcquireSyncs = pAcquireSyncs;
32423		self
32424	}
32425
32426	pub fn pAcquireKeys(mut self, pAcquireKeys : *const u64) -> Self {
32427		self.pAcquireKeys = pAcquireKeys;
32428		self
32429	}
32430
32431	pub fn pAcquireTimeouts(mut self, pAcquireTimeouts : *const u32) -> Self {
32432		self.pAcquireTimeouts = pAcquireTimeouts;
32433		self
32434	}
32435
32436	pub fn releaseCount(mut self, releaseCount : u32) -> Self {
32437		self.releaseCount = releaseCount;
32438		self
32439	}
32440
32441	pub fn pReleaseSyncs(mut self, pReleaseSyncs : *const DeviceMemory) -> Self {
32442		self.pReleaseSyncs = pReleaseSyncs;
32443		self
32444	}
32445
32446	pub fn pReleaseKeys(mut self, pReleaseKeys : *const u64) -> Self {
32447		self.pReleaseKeys = pReleaseKeys;
32448		self
32449	}
32450
32451}
32452
32453impl ImportSemaphoreWin32HandleInfoKHR {
32454
32455	pub fn new() -> Self {
32456		 Self::default()
32457	}
32458
32459	pub fn sType(mut self, sType : StructureType) -> Self {
32460		self.sType = sType;
32461		self
32462	}
32463
32464	pub fn pNext(mut self, pNext : *const void) -> Self {
32465		self.pNext = pNext;
32466		self
32467	}
32468
32469	pub fn semaphore(mut self, semaphore : Semaphore) -> Self {
32470		self.semaphore = semaphore;
32471		self
32472	}
32473
32474	pub fn flags(mut self, flags : SemaphoreImportFlags) -> Self {
32475		self.flags = flags;
32476		self
32477	}
32478
32479	pub fn handleType(mut self, handleType : ExternalSemaphoreHandleTypeFlagBits) -> Self {
32480		self.handleType = handleType;
32481		self
32482	}
32483
32484	pub fn handle(mut self, handle : HANDLE) -> Self {
32485		self.handle = handle;
32486		self
32487	}
32488
32489	pub fn name(mut self, name : LPCWSTR) -> Self {
32490		self.name = name;
32491		self
32492	}
32493
32494}
32495
32496impl ExportSemaphoreWin32HandleInfoKHR {
32497
32498	pub fn new() -> Self {
32499		 Self::default()
32500	}
32501
32502	pub fn sType(mut self, sType : StructureType) -> Self {
32503		self.sType = sType;
32504		self
32505	}
32506
32507	pub fn pNext(mut self, pNext : *const void) -> Self {
32508		self.pNext = pNext;
32509		self
32510	}
32511
32512	pub fn pAttributes(mut self, pAttributes : LPSECURITY_ATTRIBUTES) -> Self {
32513		self.pAttributes = pAttributes;
32514		self
32515	}
32516
32517	pub fn dwAccess(mut self, dwAccess : DWORD) -> Self {
32518		self.dwAccess = dwAccess;
32519		self
32520	}
32521
32522	pub fn name(mut self, name : LPCWSTR) -> Self {
32523		self.name = name;
32524		self
32525	}
32526
32527}
32528
32529impl D3D12FenceSubmitInfoKHR {
32530
32531	pub fn new() -> Self {
32532		 Self::default()
32533	}
32534
32535	pub fn sType(mut self, sType : StructureType) -> Self {
32536		self.sType = sType;
32537		self
32538	}
32539
32540	pub fn pNext(mut self, pNext : *const void) -> Self {
32541		self.pNext = pNext;
32542		self
32543	}
32544
32545	pub fn waitSemaphoreValuesCount(mut self, waitSemaphoreValuesCount : u32) -> Self {
32546		self.waitSemaphoreValuesCount = waitSemaphoreValuesCount;
32547		self
32548	}
32549
32550	pub fn pWaitSemaphoreValues(mut self, pWaitSemaphoreValues : *const u64) -> Self {
32551		self.pWaitSemaphoreValues = pWaitSemaphoreValues;
32552		self
32553	}
32554
32555	pub fn signalSemaphoreValuesCount(mut self, signalSemaphoreValuesCount : u32) -> Self {
32556		self.signalSemaphoreValuesCount = signalSemaphoreValuesCount;
32557		self
32558	}
32559
32560	pub fn pSignalSemaphoreValues(mut self, pSignalSemaphoreValues : *const u64) -> Self {
32561		self.pSignalSemaphoreValues = pSignalSemaphoreValues;
32562		self
32563	}
32564
32565}
32566
32567impl SemaphoreGetWin32HandleInfoKHR {
32568
32569	pub fn new() -> Self {
32570		 Self::default()
32571	}
32572
32573	pub fn sType(mut self, sType : StructureType) -> Self {
32574		self.sType = sType;
32575		self
32576	}
32577
32578	pub fn pNext(mut self, pNext : *const void) -> Self {
32579		self.pNext = pNext;
32580		self
32581	}
32582
32583	pub fn semaphore(mut self, semaphore : Semaphore) -> Self {
32584		self.semaphore = semaphore;
32585		self
32586	}
32587
32588	pub fn handleType(mut self, handleType : ExternalSemaphoreHandleTypeFlagBits) -> Self {
32589		self.handleType = handleType;
32590		self
32591	}
32592
32593}
32594
32595impl ImportFenceWin32HandleInfoKHR {
32596
32597	pub fn new() -> Self {
32598		 Self::default()
32599	}
32600
32601	pub fn sType(mut self, sType : StructureType) -> Self {
32602		self.sType = sType;
32603		self
32604	}
32605
32606	pub fn pNext(mut self, pNext : *const void) -> Self {
32607		self.pNext = pNext;
32608		self
32609	}
32610
32611	pub fn fence(mut self, fence : Fence) -> Self {
32612		self.fence = fence;
32613		self
32614	}
32615
32616	pub fn flags(mut self, flags : FenceImportFlags) -> Self {
32617		self.flags = flags;
32618		self
32619	}
32620
32621	pub fn handleType(mut self, handleType : ExternalFenceHandleTypeFlagBits) -> Self {
32622		self.handleType = handleType;
32623		self
32624	}
32625
32626	pub fn handle(mut self, handle : HANDLE) -> Self {
32627		self.handle = handle;
32628		self
32629	}
32630
32631	pub fn name(mut self, name : LPCWSTR) -> Self {
32632		self.name = name;
32633		self
32634	}
32635
32636}
32637
32638impl ExportFenceWin32HandleInfoKHR {
32639
32640	pub fn new() -> Self {
32641		 Self::default()
32642	}
32643
32644	pub fn sType(mut self, sType : StructureType) -> Self {
32645		self.sType = sType;
32646		self
32647	}
32648
32649	pub fn pNext(mut self, pNext : *const void) -> Self {
32650		self.pNext = pNext;
32651		self
32652	}
32653
32654	pub fn pAttributes(mut self, pAttributes : LPSECURITY_ATTRIBUTES) -> Self {
32655		self.pAttributes = pAttributes;
32656		self
32657	}
32658
32659	pub fn dwAccess(mut self, dwAccess : DWORD) -> Self {
32660		self.dwAccess = dwAccess;
32661		self
32662	}
32663
32664	pub fn name(mut self, name : LPCWSTR) -> Self {
32665		self.name = name;
32666		self
32667	}
32668
32669}
32670
32671impl FenceGetWin32HandleInfoKHR {
32672
32673	pub fn new() -> Self {
32674		 Self::default()
32675	}
32676
32677	pub fn sType(mut self, sType : StructureType) -> Self {
32678		self.sType = sType;
32679		self
32680	}
32681
32682	pub fn pNext(mut self, pNext : *const void) -> Self {
32683		self.pNext = pNext;
32684		self
32685	}
32686
32687	pub fn fence(mut self, fence : Fence) -> Self {
32688		self.fence = fence;
32689		self
32690	}
32691
32692	pub fn handleType(mut self, handleType : ExternalFenceHandleTypeFlagBits) -> Self {
32693		self.handleType = handleType;
32694		self
32695	}
32696
32697}
32698
32699impl ImportMemoryWin32HandleInfoNV {
32700
32701	pub fn new() -> Self {
32702		 Self::default()
32703	}
32704
32705	pub fn sType(mut self, sType : StructureType) -> Self {
32706		self.sType = sType;
32707		self
32708	}
32709
32710	pub fn pNext(mut self, pNext : *const void) -> Self {
32711		self.pNext = pNext;
32712		self
32713	}
32714
32715	pub fn handleType(mut self, handleType : ExternalMemoryHandleTypeFlagsNV) -> Self {
32716		self.handleType = handleType;
32717		self
32718	}
32719
32720	pub fn handle(mut self, handle : HANDLE) -> Self {
32721		self.handle = handle;
32722		self
32723	}
32724
32725}
32726
32727impl ExportMemoryWin32HandleInfoNV {
32728
32729	pub fn new() -> Self {
32730		 Self::default()
32731	}
32732
32733	pub fn sType(mut self, sType : StructureType) -> Self {
32734		self.sType = sType;
32735		self
32736	}
32737
32738	pub fn pNext(mut self, pNext : *const void) -> Self {
32739		self.pNext = pNext;
32740		self
32741	}
32742
32743	pub fn pAttributes(mut self, pAttributes : LPSECURITY_ATTRIBUTES) -> Self {
32744		self.pAttributes = pAttributes;
32745		self
32746	}
32747
32748	pub fn dwAccess(mut self, dwAccess : DWORD) -> Self {
32749		self.dwAccess = dwAccess;
32750		self
32751	}
32752
32753}
32754
32755impl Win32KeyedMutexAcquireReleaseInfoNV {
32756
32757	pub fn new() -> Self {
32758		 Self::default()
32759	}
32760
32761	pub fn sType(mut self, sType : StructureType) -> Self {
32762		self.sType = sType;
32763		self
32764	}
32765
32766	pub fn pNext(mut self, pNext : *const void) -> Self {
32767		self.pNext = pNext;
32768		self
32769	}
32770
32771	pub fn acquireCount(mut self, acquireCount : u32) -> Self {
32772		self.acquireCount = acquireCount;
32773		self
32774	}
32775
32776	pub fn pAcquireSyncs(mut self, pAcquireSyncs : *const DeviceMemory) -> Self {
32777		self.pAcquireSyncs = pAcquireSyncs;
32778		self
32779	}
32780
32781	pub fn pAcquireKeys(mut self, pAcquireKeys : *const u64) -> Self {
32782		self.pAcquireKeys = pAcquireKeys;
32783		self
32784	}
32785
32786	pub fn pAcquireTimeoutMilliseconds(mut self, pAcquireTimeoutMilliseconds : *const u32) -> Self {
32787		self.pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds;
32788		self
32789	}
32790
32791	pub fn releaseCount(mut self, releaseCount : u32) -> Self {
32792		self.releaseCount = releaseCount;
32793		self
32794	}
32795
32796	pub fn pReleaseSyncs(mut self, pReleaseSyncs : *const DeviceMemory) -> Self {
32797		self.pReleaseSyncs = pReleaseSyncs;
32798		self
32799	}
32800
32801	pub fn pReleaseKeys(mut self, pReleaseKeys : *const u64) -> Self {
32802		self.pReleaseKeys = pReleaseKeys;
32803		self
32804	}
32805
32806}
32807
32808impl SurfaceFullScreenExclusiveInfoEXT {
32809
32810	pub fn new() -> Self {
32811		 Self::default()
32812	}
32813
32814	pub fn sType(mut self, sType : StructureType) -> Self {
32815		self.sType = sType;
32816		self
32817	}
32818
32819	pub fn pNext(mut self, pNext : *mut void) -> Self {
32820		self.pNext = pNext;
32821		self
32822	}
32823
32824	pub fn fullScreenExclusive(mut self, fullScreenExclusive : FullScreenExclusiveEXT) -> Self {
32825		self.fullScreenExclusive = fullScreenExclusive;
32826		self
32827	}
32828
32829}
32830
32831impl SurfaceCapabilitiesFullScreenExclusiveEXT {
32832
32833	pub fn new() -> Self {
32834		 Self::default()
32835	}
32836
32837	pub fn sType(mut self, sType : StructureType) -> Self {
32838		self.sType = sType;
32839		self
32840	}
32841
32842	pub fn pNext(mut self, pNext : *mut void) -> Self {
32843		self.pNext = pNext;
32844		self
32845	}
32846
32847	pub fn fullScreenExclusiveSupported(mut self, fullScreenExclusiveSupported : Bool32) -> Self {
32848		self.fullScreenExclusiveSupported = fullScreenExclusiveSupported;
32849		self
32850	}
32851
32852}
32853
32854impl SurfaceFullScreenExclusiveWin32InfoEXT {
32855
32856	pub fn new() -> Self {
32857		 Self::default()
32858	}
32859
32860	pub fn sType(mut self, sType : StructureType) -> Self {
32861		self.sType = sType;
32862		self
32863	}
32864
32865	pub fn pNext(mut self, pNext : *const void) -> Self {
32866		self.pNext = pNext;
32867		self
32868	}
32869
32870	pub fn hmonitor(mut self, hmonitor : HMONITOR) -> Self {
32871		self.hmonitor = hmonitor;
32872		self
32873	}
32874
32875}
32876
32877impl XlibSurfaceCreateInfoKHR {
32878
32879	pub fn new() -> Self {
32880		 Self::default()
32881	}
32882
32883	pub fn sType(mut self, sType : StructureType) -> Self {
32884		self.sType = sType;
32885		self
32886	}
32887
32888	pub fn pNext(mut self, pNext : *const void) -> Self {
32889		self.pNext = pNext;
32890		self
32891	}
32892
32893	pub fn flags(mut self, flags : XlibSurfaceCreateFlagsKHR) -> Self {
32894		self.flags = flags;
32895		self
32896	}
32897
32898	pub fn dpy(mut self, dpy : u64) -> Self {
32899		self.dpy = dpy;
32900		self
32901	}
32902
32903	pub fn window(mut self, window : u64) -> Self {
32904		self.window = window;
32905		self
32906	}
32907
32908}
32909
32910impl XcbSurfaceCreateInfoKHR {
32911
32912	pub fn new() -> Self {
32913		 Self::default()
32914	}
32915
32916	pub fn sType(mut self, sType : StructureType) -> Self {
32917		self.sType = sType;
32918		self
32919	}
32920
32921	pub fn pNext(mut self, pNext : *const void) -> Self {
32922		self.pNext = pNext;
32923		self
32924	}
32925
32926	pub fn flags(mut self, flags : XcbSurfaceCreateFlagsKHR) -> Self {
32927		self.flags = flags;
32928		self
32929	}
32930
32931	pub fn connection(mut self, connection : u64) -> Self {
32932		self.connection = connection;
32933		self
32934	}
32935
32936	pub fn window(mut self, window : u64) -> Self {
32937		self.window = window;
32938		self
32939	}
32940
32941}
32942
32943impl WaylandSurfaceCreateInfoKHR {
32944
32945	pub fn new() -> Self {
32946		 Self::default()
32947	}
32948
32949	pub fn sType(mut self, sType : StructureType) -> Self {
32950		self.sType = sType;
32951		self
32952	}
32953
32954	pub fn pNext(mut self, pNext : *const void) -> Self {
32955		self.pNext = pNext;
32956		self
32957	}
32958
32959	pub fn flags(mut self, flags : WaylandSurfaceCreateFlagsKHR) -> Self {
32960		self.flags = flags;
32961		self
32962	}
32963
32964	pub fn display(mut self, display : u64) -> Self {
32965		self.display = display;
32966		self
32967	}
32968
32969	pub fn surface(mut self, surface : u64) -> Self {
32970		self.surface = surface;
32971		self
32972	}
32973
32974}
32975
32976impl AndroidSurfaceCreateInfoKHR {
32977
32978	pub fn new() -> Self {
32979		 Self::default()
32980	}
32981
32982	pub fn sType(mut self, sType : StructureType) -> Self {
32983		self.sType = sType;
32984		self
32985	}
32986
32987	pub fn pNext(mut self, pNext : *const void) -> Self {
32988		self.pNext = pNext;
32989		self
32990	}
32991
32992	pub fn flags(mut self, flags : AndroidSurfaceCreateFlagsKHR) -> Self {
32993		self.flags = flags;
32994		self
32995	}
32996
32997	pub fn window(mut self, window : u64) -> Self {
32998		self.window = window;
32999		self
33000	}
33001
33002}
33003
33004impl AndroidHardwareBufferUsageANDROID {
33005
33006	pub fn new() -> Self {
33007		 Self::default()
33008	}
33009
33010	pub fn sType(mut self, sType : StructureType) -> Self {
33011		self.sType = sType;
33012		self
33013	}
33014
33015	pub fn pNext(mut self, pNext : *mut void) -> Self {
33016		self.pNext = pNext;
33017		self
33018	}
33019
33020	pub fn androidHardwareBufferUsage(mut self, androidHardwareBufferUsage : u64) -> Self {
33021		self.androidHardwareBufferUsage = androidHardwareBufferUsage;
33022		self
33023	}
33024
33025}
33026
33027impl AndroidHardwareBufferPropertiesANDROID {
33028
33029	pub fn new() -> Self {
33030		 Self::default()
33031	}
33032
33033	pub fn sType(mut self, sType : StructureType) -> Self {
33034		self.sType = sType;
33035		self
33036	}
33037
33038	pub fn pNext(mut self, pNext : *mut void) -> Self {
33039		self.pNext = pNext;
33040		self
33041	}
33042
33043	pub fn allocationSize(mut self, allocationSize : DeviceSize) -> Self {
33044		self.allocationSize = allocationSize;
33045		self
33046	}
33047
33048	pub fn memoryTypeBits(mut self, memoryTypeBits : u32) -> Self {
33049		self.memoryTypeBits = memoryTypeBits;
33050		self
33051	}
33052
33053}
33054
33055impl AndroidHardwareBufferFormatPropertiesANDROID {
33056
33057	pub fn new() -> Self {
33058		 Self::default()
33059	}
33060
33061	pub fn sType(mut self, sType : StructureType) -> Self {
33062		self.sType = sType;
33063		self
33064	}
33065
33066	pub fn pNext(mut self, pNext : *mut void) -> Self {
33067		self.pNext = pNext;
33068		self
33069	}
33070
33071	pub fn format(mut self, format : Format) -> Self {
33072		self.format = format;
33073		self
33074	}
33075
33076	pub fn externalFormat(mut self, externalFormat : u64) -> Self {
33077		self.externalFormat = externalFormat;
33078		self
33079	}
33080
33081	pub fn formatFeatures(mut self, formatFeatures : FormatFeatureFlags) -> Self {
33082		self.formatFeatures = formatFeatures;
33083		self
33084	}
33085
33086	pub fn samplerYcbcrConversionComponents(mut self, samplerYcbcrConversionComponents : ComponentMapping) -> Self {
33087		self.samplerYcbcrConversionComponents = samplerYcbcrConversionComponents;
33088		self
33089	}
33090
33091	pub fn suggestedYcbcrModel(mut self, suggestedYcbcrModel : SamplerYcbcrModelConversion) -> Self {
33092		self.suggestedYcbcrModel = suggestedYcbcrModel;
33093		self
33094	}
33095
33096	pub fn suggestedYcbcrRange(mut self, suggestedYcbcrRange : SamplerYcbcrRange) -> Self {
33097		self.suggestedYcbcrRange = suggestedYcbcrRange;
33098		self
33099	}
33100
33101	pub fn suggestedXChromaOffset(mut self, suggestedXChromaOffset : ChromaLocation) -> Self {
33102		self.suggestedXChromaOffset = suggestedXChromaOffset;
33103		self
33104	}
33105
33106	pub fn suggestedYChromaOffset(mut self, suggestedYChromaOffset : ChromaLocation) -> Self {
33107		self.suggestedYChromaOffset = suggestedYChromaOffset;
33108		self
33109	}
33110
33111}
33112
33113impl ImportAndroidHardwareBufferInfoANDROID {
33114
33115	pub fn new() -> Self {
33116		 Self::default()
33117	}
33118
33119	pub fn sType(mut self, sType : StructureType) -> Self {
33120		self.sType = sType;
33121		self
33122	}
33123
33124	pub fn pNext(mut self, pNext : *const void) -> Self {
33125		self.pNext = pNext;
33126		self
33127	}
33128
33129	pub fn buffer(mut self, buffer : u64) -> Self {
33130		self.buffer = buffer;
33131		self
33132	}
33133
33134}
33135
33136impl MemoryGetAndroidHardwareBufferInfoANDROID {
33137
33138	pub fn new() -> Self {
33139		 Self::default()
33140	}
33141
33142	pub fn sType(mut self, sType : StructureType) -> Self {
33143		self.sType = sType;
33144		self
33145	}
33146
33147	pub fn pNext(mut self, pNext : *const void) -> Self {
33148		self.pNext = pNext;
33149		self
33150	}
33151
33152	pub fn memory(mut self, memory : DeviceMemory) -> Self {
33153		self.memory = memory;
33154		self
33155	}
33156
33157}
33158
33159impl ExternalFormatANDROID {
33160
33161	pub fn new() -> Self {
33162		 Self::default()
33163	}
33164
33165	pub fn sType(mut self, sType : StructureType) -> Self {
33166		self.sType = sType;
33167		self
33168	}
33169
33170	pub fn pNext(mut self, pNext : *mut void) -> Self {
33171		self.pNext = pNext;
33172		self
33173	}
33174
33175	pub fn externalFormat(mut self, externalFormat : u64) -> Self {
33176		self.externalFormat = externalFormat;
33177		self
33178	}
33179
33180}
33181