1#![allow(clippy::inconsistent_digit_grouping)]
2#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case, dead_code)]
3
4use crate::{PFN, StaticCallable, TypedVulkanSinkStructure, TypedVulkanStructure, ffi_helper::FixedCStrBuffer};
14use core::ffi::*;
15use derives::{implements, promote_1_1, vk_raw_handle};
16
17#[inline]
20const fn ext_enum_value(ext_number: u16, index: u16) -> u64 {
21 1000_000_000 + ((ext_number - 1) as u64 * 1_000) + index as u64
22}
23
24macro_rules! vk_bitmask {
25 ($(#[$ty_attr: meta])* $ty_vis: vis enum $ty_name: ident { $($(#[$val_attr: meta])* $val_vis: vis $val_name: ident : $bitpos: expr),* $(,)? }) => {
26 $(#[$ty_attr])* $ty_vis type $ty_name = crate::vk::VkFlags;
27 $(
28 $(#[$val_attr])* $val_vis const $val_name: $ty_name = 1 << $bitpos;
29 )*
30 };
31 (extending enum $ty_name: ident { $($(#[$val_attr: meta])* $val_vis: vis $val_name: ident : $bitpos: expr),* $(,)? }) => {
32 $(
33 $(#[$val_attr])* $val_vis const $val_name: $ty_name = 1 << $bitpos;
34 )*
35 };
36 ($(#[$ty_attr: meta])* $ty_vis: vis enum64 $ty_name: ident { $($(#[$val_attr: meta])* $val_vis: vis $val_name: ident : $bitpos: expr),* $(,)? }) => {
37 $(#[$ty_attr])* $ty_vis type $ty_name = crate::vk::VkFlags64;
38 $(
39 $(#[$val_attr])* $val_vis const $val_name: $ty_name = 1 << $bitpos;
40 )*
41 };
42}
43
44pub type VkPipelineCacheHeaderVersion = i32;
47pub const VK_PIPELINE_CACHE_HEADER_VERSION_ONE: VkPipelineCacheHeaderVersion = 1;
48
49impl crate::vk2::VkResult {
50 const fn ext_value(ext_number: u16, offset: u16) -> Self {
51 Self(1000_000_000 + ((ext_number - 1) as i32 * 1_000) + offset as i32)
52 }
53
54 const fn ext_err_value(ext_number: u16, offset: u16) -> Self {
55 Self(-Self::ext_value(ext_number, offset).0)
56 }
57}
58pub const VK_ERROR_VALIDATION_FAILED_EXT: crate::vk2::VkResult = crate::vk2::VkResult(-100_0011_001);
59pub const VK_ERROR_INVALID_SHADER_NV: crate::vk2::VkResult = crate::vk2::VkResult(-100_0012_000);
60pub const VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT: crate::vk2::VkResult = crate::vk2::VkResult(-100_0255_000);
61#[cfg(feature = "VK_EXT_image_drm_format_modifier")]
62pub const VK_ERROR_INVALID_FORMAT_MODIFIER_PLANE_LAYOUT_EXT: crate::vk2::VkResult = crate::vk2::VkResult(-100_0158_000);
63
64pub const VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO: crate::vk2::VkStructureType = 47;
65pub const VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO: crate::vk2::VkStructureType = 48;
66
67pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: crate::vk2::VkStructureType = 100_0094_000;
68pub const VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: crate::vk2::VkStructureType = 100_0145_000;
69pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: crate::vk2::VkStructureType = 100_0145_001;
70pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: crate::vk2::VkStructureType = 100_0145_002;
71pub const VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2: crate::vk2::VkStructureType = 100_0145_003;
72pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES: crate::vk2::VkStructureType = 100_0063_000;
73
74pub const VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: crate::vk2::VkStructureType = 100_0041_000;
75pub const VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: crate::vk2::VkStructureType = 100_0056_000;
76pub const VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: crate::vk2::VkStructureType = 100_0056_001;
77pub const VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: crate::vk2::VkStructureType = 100_0057_000;
78pub const VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: crate::vk2::VkStructureType = 100_0057_001;
79pub const VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: crate::vk2::VkStructureType = 100_0058_000;
80pub const VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX: crate::vk2::VkStructureType = 100_0060_001;
81pub const VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX: crate::vk2::VkStructureType = 100_0060_002;
82pub const VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX: crate::vk2::VkStructureType = 100_0060_007;
83pub const VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX: crate::vk2::VkStructureType = 100_0060_008;
84pub const VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX: crate::vk2::VkStructureType = 100_0060_009;
85pub const VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX: crate::vk2::VkStructureType = 100_0060_010;
86pub const VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX: crate::vk2::VkStructureType = 100_0060_011;
87pub const VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX: crate::vk2::VkStructureType = 100_0060_012;
88pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: crate::vk2::VkStructureType = 100_0080_000;
89pub const VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: crate::vk2::VkStructureType = 100_0084_000;
90pub const VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX: crate::vk2::VkStructureType = 100_0086_000;
91pub const VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX: crate::vk2::VkStructureType = 100_0086_001;
92pub const VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX: crate::vk2::VkStructureType = 100_0086_002;
93pub const VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX: crate::vk2::VkStructureType = 100_0086_003;
94pub const VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX: crate::vk2::VkStructureType = 100_0086_004;
95pub const VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX: crate::vk2::VkStructureType = 100_0086_005;
96pub const VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: crate::vk2::VkStructureType =
97 100_0087_000;
98pub const VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT: crate::vk2::VkStructureType = 100_0090_000;
99pub const VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT: crate::vk2::VkStructureType = 100_0091_000;
100pub const VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT: crate::vk2::VkStructureType = 100_0091_001;
101pub const VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT: crate::vk2::VkStructureType = 100_0091_002;
102pub const VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: crate::vk2::VkStructureType = 100_0091_003;
103pub const VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: crate::vk2::VkStructureType = 100_0092_000;
104pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: crate::vk2::VkStructureType =
105 100_0097_000;
106pub const VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: crate::vk2::VkStructureType = 100_0098_000;
107pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: crate::vk2::VkStructureType =
108 100_0099_000;
109pub const VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: crate::vk2::VkStructureType =
110 100_0099_001;
111pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: crate::vk2::VkStructureType =
112 100_0101_000;
113pub const VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: crate::vk2::VkStructureType =
114 100_0101_001;
115pub const VK_STRUCTURE_TYPE_HDR_METADATA_EXT: crate::vk2::VkStructureType = 100_0105_000;
116pub const VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: crate::vk2::VkStructureType = 100_0111_000;
117pub const VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK: crate::vk2::VkStructureType = 100_0122_000;
118pub const VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK: crate::vk2::VkStructureType = 100_0123_000;
119pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT: crate::vk2::VkStructureType =
120 100_0130_000;
121pub const VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT: crate::vk2::VkStructureType = 100_0130_001;
122pub const VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: crate::vk2::VkStructureType = 100_0143_000;
123pub const VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: crate::vk2::VkStructureType = 100_0143_001;
124pub const VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: crate::vk2::VkStructureType = 100_0143_002;
125pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: crate::vk2::VkStructureType = 100_0143_003;
126pub const VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT: crate::vk2::VkStructureType = 100_0143_004;
127pub const VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR: crate::vk2::VkStructureType = 100_0147_000;
128pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: crate::vk2::VkStructureType =
129 100_0148_000;
130pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: crate::vk2::VkStructureType =
131 100_0148_001;
132pub const VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: crate::vk2::VkStructureType =
133 100_0148_002;
134pub const VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: crate::vk2::VkStructureType = 100_0149_000;
135pub const VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: crate::vk2::VkStructureType =
136 100_0152_000;
137pub const VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT: crate::vk2::VkStructureType = 100_0174_000;
138pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: crate::vk2::VkStructureType =
139 100_0190_000;
140pub const VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: crate::vk2::VkStructureType =
141 100_0190_001;
142
143macro_rules! ExportExtensions {
183 ($fname: tt: $mname: ident) => {
184 #[cfg(feature = $fname)]
185 mod $mname;
186 #[cfg(feature = $fname)]
187 pub use self::$mname::*;
188 };
189}
190
191ExportExtensions!("VK_KHR_incremental_present": incremental_present_khr);
192ExportExtensions!("VK_KHR_shared_presentable_image": shared_presentable_image_khr);
193ExportExtensions!("VK_NV_glsl_shader": glsl_shader_nv);
194ExportExtensions!("VK_EXT_depth_range_unrestricted": depth_range_unrestricted_ext);
195ExportExtensions!("VK_IMG_filter_cubic": filter_cubic_img);
196ExportExtensions!("VK_AMD_rasterization_order": rasterization_order_amd);
197ExportExtensions!("VK_EXT_debug_marker": debug_marker_ext);
198ExportExtensions!("VK_AMD_gcn_shader": gcn_shader_amd);
199ExportExtensions!("VK_AMD_draw_indirect_count": draw_indirect_count_amd);
200ExportExtensions!("VK_AMD_negative_viewport_height": negative_viewport_height_amd);
201ExportExtensions!("VK_AMD_gpu_shader_half_float": gpu_shader_half_float_amd);
202ExportExtensions!("VK_AMD_shader_ballot": shader_ballot_amd);
203ExportExtensions!("VK_AMD_texture_gather_bias_lod": texture_gather_bias_lod_amd);
204ExportExtensions!("VK_AMD_shader_info": shader_info_amd);
205ExportExtensions!("VK_AMD_shader_image_load_store_lod": shader_image_load_store_lod_amd);
206ExportExtensions!("VK_IMG_format_pvrtc": format_pvrtc_img);
207ExportExtensions!("VK_EXT_validation_flags": validation_flags_ext);
208ExportExtensions!("VK_NN_vi_surface": vi_surface_nn);
209ExportExtensions!("VK_EXT_shader_group_ballot": shader_group_ballot_ext);
210ExportExtensions!("VK_EXT_shader_group_vote": shader_group_vote_ext);
211ExportExtensions!("VK_NVX_device_generated_commands": device_generated_commands_nvx);
212ExportExtensions!("VK_NV_clip_space_w_scaling": clip_space_w_scaling_nv);
213ExportExtensions!("VK_EXT_direct_mode_display": direct_mode_display_ext);
214ExportExtensions!("VK_EXT_display_surface_counter": display_surface_counter_ext);
215ExportExtensions!("VK_EXT_display_control": display_control_ext);
216ExportExtensions!("VK_GOOGLE_display_timing": display_timing_google);
217ExportExtensions!("VK_NV_sample_mask_override_coverage": sample_mask_override_coverage_nv);
218ExportExtensions!("VK_NV_geometry_shader_passthrough": geometry_shader_passthrough_nv);
219ExportExtensions!("VK_NV_viewport_array2": viewport_array2_nv);
220ExportExtensions!("VK_NVX_multiview_per_view_attributes": multiview_per_view_attributes_nvx);
221ExportExtensions!("VK_NV_viewport_swizzle": viewport_swizzle_nv);
222ExportExtensions!("VK_EXT_discard_rectangles": discard_rectangles_ext);
223ExportExtensions!("VK_EXT_conservative_rasterization": conservative_rasterization_ext);
224ExportExtensions!("VK_EXT_swapchain_colorspace": swapchain_colorspace_ext);
225ExportExtensions!("VK_EXT_hdr_metadata": hdr_metadata_ext);
226ExportExtensions!("VK_MVK_ios_surface": ios_surface_mvk);
227ExportExtensions!("VK_MVK_macos_surface": macos_surface_mvk);
228ExportExtensions!("VK_EXT_external_memory_dma_buf": external_memory_dma_buf_ext);
229ExportExtensions!("VK_EXT_sampler_filter_minmax": sampler_filter_minmax_ext);
231ExportExtensions!("VK_AMD_gpu_shader_int16": gpu_shader_int16_amd);
232ExportExtensions!("VK_AMD_mixed_attachment_samples": mixed_attachment_samples_amd);
233ExportExtensions!("VK_AMD_shader_fragment_mask": shader_fragment_mask_amd);
234ExportExtensions!("VK_EXT_sample_locations": sample_locations_ext);
235ExportExtensions!("VK_NV_fragment_coverage_to_color": fragment_coverage_to_color_nv);
236ExportExtensions!("VK_NV_framebuffer_mixed_samples": framebuffer_mixed_samples_nv);
237ExportExtensions!("VK_NV_fill_rectangle": fill_rectangle_nv);
238ExportExtensions!("VK_EXT_post_depth_coverage": post_depth_coverage_ext);
239ExportExtensions!("VK_EXT_validation_cache": validation_cache_ext);
240ExportExtensions!("VK_EXT_shader_viewport_index_layer": shader_viewport_index_layer_ext);
241ExportExtensions!("VK_EXT_global_priority": global_priority_ext);
242ExportExtensions!("VK_EXT_external_memory_host": external_memory_host_ext);
243ExportExtensions!("VK_EXT_vertex_attribute_divisor": vertex_attribute_divisor_ext);
244ExportExtensions!("VK_EXT_full_screen_exclusive": full_screen_exclusive_ext);
245ExportExtensions!("VK_KHR_image_format_list": image_format_list_khr);
246ExportExtensions!("VK_EXT_image_drm_format_modifier": image_drm_format_modifier);
247ExportExtensions!("VK_EXT_metal_objects": metal_objects_ext);
248ExportExtensions!("VK_EXT_descriptor_buffer": descriptor_buffer_ext);
249ExportExtensions!("VK_KHR_maintenance7": maintenance7_khr);
250ExportExtensions!("VK_KHR_maintenance8": maintenance8_khr);
251
252ExportExtensions!("VK_KHR_create_renderpass2": create_renderpass2_khr);
254ExportExtensions!("VK_KHR_depth_stencil_resolve": depth_stencil_resolve_khr);
255ExportExtensions!("VK_EXT_descriptor_indexing": descriptor_indexing_ext);
256ExportExtensions!("VK_KHR_shader_float_controls": shader_float_controls_khr);
257
258ExportExtensions!("VK_KHR_maintenance4": maintenance4_khr);
260ExportExtensions!("VK_KHR_dynamic_rendering": dynamic_rendering_khr);
261ExportExtensions!("VK_KHR_copy_commands2": copy_commands2_khr);
262ExportExtensions!("VK_KHR_format_feature_flags2": format_feature_flags2_khr);
263
264ExportExtensions!("VK_KHR_dynamic_rendering_local_read": dynamic_rendering_local_read_khr);
266ExportExtensions!("VK_KHR_global_priority": global_priority_khr);
267ExportExtensions!("VK_KHR_index_type_uint8": index_type_uint8_khr);
268ExportExtensions!("VK_KHR_line_rasterization": line_rasterization_khr);
269ExportExtensions!("VK_KHR_load_store_op_none": load_store_op_none_khr);
270ExportExtensions!("VK_KHR_maintenance5": maintenance5_khr);
271ExportExtensions!("VK_KHR_maintenance6": maintenance6_khr);
272ExportExtensions!("VK_KHR_map_memory2": map_memory2_khr);
273ExportExtensions!("VK_KHR_push_descriptor": push_descriptor_khr);
274ExportExtensions!("VK_KHR_shader_expect_assume": shader_expect_assume_khr);
275ExportExtensions!("VK_KHR_shader_float_controls2": shader_float_controls2_khr);
276ExportExtensions!("VK_KHR_shader_subgroup_rotate": shader_subgroup_rotate_khr);
277ExportExtensions!("VK_KHR_vertex_attribute_divisor": vertex_attribute_divisor_khr);
278ExportExtensions!("VK_EXT_host_image_copy": host_image_copy_ext);
279ExportExtensions!("VK_EXT_pipeline_protected_access": pipeline_protected_access_ext);
280ExportExtensions!("VK_EXT_pipeline_robustness": pipeline_robustness_ext);