#![doc(html_logo_url = "https://raw.githubusercontent.com/vulkano-rs/vulkano/master/logo.png")]
#![allow(non_upper_case_globals)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
use std::mem;
use std::ffi::CStr;
use std::fmt;
use std::os::raw::c_char;
use std::os::raw::c_void;
use std::os::raw::c_ulong;
use std::os::raw::c_double;
pub type Flags = u32;
pub type Bool32 = u32;
pub type DeviceSize = u64;
pub type SampleMask = u32;
pub type Instance = usize;
pub type PhysicalDevice = usize;
pub type Device = usize;
pub type Queue = usize;
pub type CommandBuffer = usize;
pub type Semaphore = u64;
pub type Fence = u64;
pub type DeviceMemory = u64;
pub type Buffer = u64;
pub type Image = u64;
pub type Event = u64;
pub type QueryPool = u64;
pub type BufferView = u64;
pub type ImageView = u64;
pub type ShaderModule = u64;
pub type PipelineCache = u64;
pub type PipelineLayout = u64;
pub type RenderPass = u64;
pub type Pipeline = u64;
pub type DescriptorSetLayout = u64;
pub type Sampler = u64;
pub type DescriptorPool = u64;
pub type DescriptorSet = u64;
pub type Framebuffer = u64;
pub type CommandPool = u64;
pub type SurfaceKHR = u64;
pub type SwapchainKHR = u64;
pub type DisplayKHR = u64;
pub type DisplayModeKHR = u64;
pub type DebugReportCallbackEXT = u64;
pub type DescriptorUpdateTemplateKHR = u64;
pub const LOD_CLAMP_NONE: f32 = 1000.0;
pub const REMAINING_MIP_LEVELS: u32 = 0xffffffff;
pub const REMAINING_ARRAY_LAYERS: u32 = 0xffffffff;
pub const WHOLE_SIZE: u64 = 0xffffffffffffffff;
pub const ATTACHMENT_UNUSED: u32 = 0xffffffff;
pub const TRUE: u32 = 1;
pub const FALSE: u32 = 0;
pub const QUEUE_FAMILY_IGNORED: u32 = 0xffffffff;
pub const SUBPASS_EXTERNAL: u32 = 0xffffffff;
pub const MAX_PHYSICAL_DEVICE_NAME_SIZE: u32 = 256;
pub const UUID_SIZE: u32 = 16;
pub const MAX_MEMORY_TYPES: u32 = 32;
pub const MAX_MEMORY_HEAPS: u32 = 16;
pub const MAX_EXTENSION_NAME_SIZE: u32 = 256;
pub const MAX_DESCRIPTION_SIZE: u32 = 256;
pub type PipelineCacheHeaderVersion = u32;
pub const PIPELINE_CACHE_HEADER_VERSION_ONE: u32 = 1;
pub type Result = u32;
pub const SUCCESS: u32 = 0;
pub const NOT_READY: u32 = 1;
pub const TIMEOUT: u32 = 2;
pub const EVENT_SET: u32 = 3;
pub const EVENT_RESET: u32 = 4;
pub const INCOMPLETE: u32 = 5;
pub const ERROR_OUT_OF_HOST_MEMORY: u32 = -1i32 as u32;
pub const ERROR_OUT_OF_DEVICE_MEMORY: u32 = -2i32 as u32;
pub const ERROR_INITIALIZATION_FAILED: u32 = -3i32 as u32;
pub const ERROR_DEVICE_LOST: u32 = -4i32 as u32;
pub const ERROR_MEMORY_MAP_FAILED: u32 = -5i32 as u32;
pub const ERROR_LAYER_NOT_PRESENT: u32 = -6i32 as u32;
pub const ERROR_EXTENSION_NOT_PRESENT: u32 = -7i32 as u32;
pub const ERROR_FEATURE_NOT_PRESENT: u32 = -8i32 as u32;
pub const ERROR_INCOMPATIBLE_DRIVER: u32 = -9i32 as u32;
pub const ERROR_TOO_MANY_OBJECTS: u32 = -10i32 as u32;
pub const ERROR_FORMAT_NOT_SUPPORTED: u32 = -11i32 as u32;
pub const ERROR_SURFACE_LOST_KHR: u32 = -1000000000i32 as u32;
pub const ERROR_NATIVE_WINDOW_IN_USE_KHR: u32 = -1000000001i32 as u32;
pub const SUBOPTIMAL_KHR: u32 = 1000001003;
pub const ERROR_OUT_OF_DATE_KHR: u32 = -1000001004i32 as u32;
pub const ERROR_INCOMPATIBLE_DISPLAY_KHR: u32 = -1000003001i32 as u32;
pub const ERROR_VALIDATION_FAILED_EXT: u32 = -1000011001i32 as u32;
pub const ERROR_INVALID_SHADER_NV: u32 = -1000012000i32 as u32;
pub const ERROR_OUT_OF_POOL_MEMORY_KHR: u32 = -1000069000i32 as u32;
pub type StructureType = u32;
pub const STRUCTURE_TYPE_APPLICATION_INFO: u32 = 0;
pub const STRUCTURE_TYPE_INSTANCE_CREATE_INFO: u32 = 1;
pub const STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO: u32 = 2;
pub const STRUCTURE_TYPE_DEVICE_CREATE_INFO: u32 = 3;
pub const STRUCTURE_TYPE_SUBMIT_INFO: u32 = 4;
pub const STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: u32 = 5;
pub const STRUCTURE_TYPE_MAPPED_MEMORY_RANGE: u32 = 6;
pub const STRUCTURE_TYPE_BIND_SPARSE_INFO: u32 = 7;
pub const STRUCTURE_TYPE_FENCE_CREATE_INFO: u32 = 8;
pub const STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO: u32 = 9;
pub const STRUCTURE_TYPE_EVENT_CREATE_INFO: u32 = 10;
pub const STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO: u32 = 11;
pub const STRUCTURE_TYPE_BUFFER_CREATE_INFO: u32 = 12;
pub const STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO: u32 = 13;
pub const STRUCTURE_TYPE_IMAGE_CREATE_INFO: u32 = 14;
pub const STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO: u32 = 15;
pub const STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: u32 = 16;
pub const STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO: u32 = 17;
pub const STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO: u32 = 18;
pub const STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO: u32 = 19;
pub const STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO: u32 = 20;
pub const STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO: u32 = 21;
pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO: u32 = 22;
pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO: u32 = 23;
pub const STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO: u32 = 24;
pub const STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO: u32 = 25;
pub const STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO: u32 = 26;
pub const STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO: u32 = 27;
pub const STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO: u32 = 28;
pub const STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO: u32 = 29;
pub const STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: u32 = 30;
pub const STRUCTURE_TYPE_SAMPLER_CREATE_INFO: u32 = 31;
pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO: u32 = 32;
pub const STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO: u32 = 33;
pub const STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO: u32 = 34;
pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET: u32 = 35;
pub const STRUCTURE_TYPE_COPY_DESCRIPTOR_SET: u32 = 36;
pub const STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO: u32 = 37;
pub const STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: u32 = 38;
pub const STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO: u32 = 39;
pub const STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO: u32 = 40;
pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO: u32 = 41;
pub const STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO: u32 = 42;
pub const STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO: u32 = 43;
pub const STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: u32 = 44;
pub const STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: u32 = 45;
pub const STRUCTURE_TYPE_MEMORY_BARRIER: u32 = 46;
pub const STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO: u32 = 47;
pub const STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO: u32 = 48;
pub const STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR: u32 = 1000001000;
pub const STRUCTURE_TYPE_PRESENT_INFO_KHR: u32 = 1000001001;
pub const STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR: u32 = 1000002000;
pub const STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR: u32 = 1000002001;
pub const STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: u32 = 1000003000;
pub const STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR: u32 = 1000004000;
pub const STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR: u32 = 1000005000;
pub const STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR: u32 = 1000006000;
pub const STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR: u32 = 1000008000;
pub const STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR: u32 = 1000009000;
pub const STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: u32 = 1000011000;
pub const STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK: u32 = 1000122000 + (122 * 1000);
pub const STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK: u32 = 1000000000 + (123 * 1000);
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR: u32 = 1000059000;
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR: u32 = 1000059001;
pub const STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR: u32 = 1000059002;
pub const STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR: u32 = 1000059003;
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR: u32 = 1000059004;
pub const STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR: u32 = 1000059005;
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR: u32 = 1000059006;
pub const STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR: u32 = 1000059007;
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR: u32 = 1000059008;
pub const STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN: u32 = 1000062000;
pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: u32 = 1000080000;
pub const STRUCTURE_TYPE_PRESENT_REGIONS_KHR: u32 = 1000084000;
pub const STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR: u32 = 1000085000;
pub const STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR: u32 = 1000127000;
pub const STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR: u32 = 1000127001;
pub const STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR: u32 = 1000146000;
pub const STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR: u32 = 1000146001;
pub const STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR: u32 = 1000146002;
pub const STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR: u32 = 1000146003;
pub const STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR: u32 = 1000146004;
pub const STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT: u32 = 1000022000;
pub const STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT: u32 = 1000022001;
pub const STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT: u32 = 1000022002;
pub type SystemAllocationScope = u32;
pub const SYSTEM_ALLOCATION_SCOPE_COMMAND: u32 = 0;
pub const SYSTEM_ALLOCATION_SCOPE_OBJECT: u32 = 1;
pub const SYSTEM_ALLOCATION_SCOPE_CACHE: u32 = 2;
pub const SYSTEM_ALLOCATION_SCOPE_DEVICE: u32 = 3;
pub const SYSTEM_ALLOCATION_SCOPE_INSTANCE: u32 = 4;
pub type InternalAllocationType = u32;
pub const INTERNAL_ALLOCATION_TYPE_EXECUTABLE: u32 = 0;
pub type Format = u32;
pub const FORMAT_UNDEFINED: u32 = 0;
pub const FORMAT_R4G4_UNORM_PACK8: u32 = 1;
pub const FORMAT_R4G4B4A4_UNORM_PACK16: u32 = 2;
pub const FORMAT_B4G4R4A4_UNORM_PACK16: u32 = 3;
pub const FORMAT_R5G6B5_UNORM_PACK16: u32 = 4;
pub const FORMAT_B5G6R5_UNORM_PACK16: u32 = 5;
pub const FORMAT_R5G5B5A1_UNORM_PACK16: u32 = 6;
pub const FORMAT_B5G5R5A1_UNORM_PACK16: u32 = 7;
pub const FORMAT_A1R5G5B5_UNORM_PACK16: u32 = 8;
pub const FORMAT_R8_UNORM: u32 = 9;
pub const FORMAT_R8_SNORM: u32 = 10;
pub const FORMAT_R8_USCALED: u32 = 11;
pub const FORMAT_R8_SSCALED: u32 = 12;
pub const FORMAT_R8_UINT: u32 = 13;
pub const FORMAT_R8_SINT: u32 = 14;
pub const FORMAT_R8_SRGB: u32 = 15;
pub const FORMAT_R8G8_UNORM: u32 = 16;
pub const FORMAT_R8G8_SNORM: u32 = 17;
pub const FORMAT_R8G8_USCALED: u32 = 18;
pub const FORMAT_R8G8_SSCALED: u32 = 19;
pub const FORMAT_R8G8_UINT: u32 = 20;
pub const FORMAT_R8G8_SINT: u32 = 21;
pub const FORMAT_R8G8_SRGB: u32 = 22;
pub const FORMAT_R8G8B8_UNORM: u32 = 23;
pub const FORMAT_R8G8B8_SNORM: u32 = 24;
pub const FORMAT_R8G8B8_USCALED: u32 = 25;
pub const FORMAT_R8G8B8_SSCALED: u32 = 26;
pub const FORMAT_R8G8B8_UINT: u32 = 27;
pub const FORMAT_R8G8B8_SINT: u32 = 28;
pub const FORMAT_R8G8B8_SRGB: u32 = 29;
pub const FORMAT_B8G8R8_UNORM: u32 = 30;
pub const FORMAT_B8G8R8_SNORM: u32 = 31;
pub const FORMAT_B8G8R8_USCALED: u32 = 32;
pub const FORMAT_B8G8R8_SSCALED: u32 = 33;
pub const FORMAT_B8G8R8_UINT: u32 = 34;
pub const FORMAT_B8G8R8_SINT: u32 = 35;
pub const FORMAT_B8G8R8_SRGB: u32 = 36;
pub const FORMAT_R8G8B8A8_UNORM: u32 = 37;
pub const FORMAT_R8G8B8A8_SNORM: u32 = 38;
pub const FORMAT_R8G8B8A8_USCALED: u32 = 39;
pub const FORMAT_R8G8B8A8_SSCALED: u32 = 40;
pub const FORMAT_R8G8B8A8_UINT: u32 = 41;
pub const FORMAT_R8G8B8A8_SINT: u32 = 42;
pub const FORMAT_R8G8B8A8_SRGB: u32 = 43;
pub const FORMAT_B8G8R8A8_UNORM: u32 = 44;
pub const FORMAT_B8G8R8A8_SNORM: u32 = 45;
pub const FORMAT_B8G8R8A8_USCALED: u32 = 46;
pub const FORMAT_B8G8R8A8_SSCALED: u32 = 47;
pub const FORMAT_B8G8R8A8_UINT: u32 = 48;
pub const FORMAT_B8G8R8A8_SINT: u32 = 49;
pub const FORMAT_B8G8R8A8_SRGB: u32 = 50;
pub const FORMAT_A8B8G8R8_UNORM_PACK32: u32 = 51;
pub const FORMAT_A8B8G8R8_SNORM_PACK32: u32 = 52;
pub const FORMAT_A8B8G8R8_USCALED_PACK32: u32 = 53;
pub const FORMAT_A8B8G8R8_SSCALED_PACK32: u32 = 54;
pub const FORMAT_A8B8G8R8_UINT_PACK32: u32 = 55;
pub const FORMAT_A8B8G8R8_SINT_PACK32: u32 = 56;
pub const FORMAT_A8B8G8R8_SRGB_PACK32: u32 = 57;
pub const FORMAT_A2R10G10B10_UNORM_PACK32: u32 = 58;
pub const FORMAT_A2R10G10B10_SNORM_PACK32: u32 = 59;
pub const FORMAT_A2R10G10B10_USCALED_PACK32: u32 = 60;
pub const FORMAT_A2R10G10B10_SSCALED_PACK32: u32 = 61;
pub const FORMAT_A2R10G10B10_UINT_PACK32: u32 = 62;
pub const FORMAT_A2R10G10B10_SINT_PACK32: u32 = 63;
pub const FORMAT_A2B10G10R10_UNORM_PACK32: u32 = 64;
pub const FORMAT_A2B10G10R10_SNORM_PACK32: u32 = 65;
pub const FORMAT_A2B10G10R10_USCALED_PACK32: u32 = 66;
pub const FORMAT_A2B10G10R10_SSCALED_PACK32: u32 = 67;
pub const FORMAT_A2B10G10R10_UINT_PACK32: u32 = 68;
pub const FORMAT_A2B10G10R10_SINT_PACK32: u32 = 69;
pub const FORMAT_R16_UNORM: u32 = 70;
pub const FORMAT_R16_SNORM: u32 = 71;
pub const FORMAT_R16_USCALED: u32 = 72;
pub const FORMAT_R16_SSCALED: u32 = 73;
pub const FORMAT_R16_UINT: u32 = 74;
pub const FORMAT_R16_SINT: u32 = 75;
pub const FORMAT_R16_SFLOAT: u32 = 76;
pub const FORMAT_R16G16_UNORM: u32 = 77;
pub const FORMAT_R16G16_SNORM: u32 = 78;
pub const FORMAT_R16G16_USCALED: u32 = 79;
pub const FORMAT_R16G16_SSCALED: u32 = 80;
pub const FORMAT_R16G16_UINT: u32 = 81;
pub const FORMAT_R16G16_SINT: u32 = 82;
pub const FORMAT_R16G16_SFLOAT: u32 = 83;
pub const FORMAT_R16G16B16_UNORM: u32 = 84;
pub const FORMAT_R16G16B16_SNORM: u32 = 85;
pub const FORMAT_R16G16B16_USCALED: u32 = 86;
pub const FORMAT_R16G16B16_SSCALED: u32 = 87;
pub const FORMAT_R16G16B16_UINT: u32 = 88;
pub const FORMAT_R16G16B16_SINT: u32 = 89;
pub const FORMAT_R16G16B16_SFLOAT: u32 = 90;
pub const FORMAT_R16G16B16A16_UNORM: u32 = 91;
pub const FORMAT_R16G16B16A16_SNORM: u32 = 92;
pub const FORMAT_R16G16B16A16_USCALED: u32 = 93;
pub const FORMAT_R16G16B16A16_SSCALED: u32 = 94;
pub const FORMAT_R16G16B16A16_UINT: u32 = 95;
pub const FORMAT_R16G16B16A16_SINT: u32 = 96;
pub const FORMAT_R16G16B16A16_SFLOAT: u32 = 97;
pub const FORMAT_R32_UINT: u32 = 98;
pub const FORMAT_R32_SINT: u32 = 99;
pub const FORMAT_R32_SFLOAT: u32 = 100;
pub const FORMAT_R32G32_UINT: u32 = 101;
pub const FORMAT_R32G32_SINT: u32 = 102;
pub const FORMAT_R32G32_SFLOAT: u32 = 103;
pub const FORMAT_R32G32B32_UINT: u32 = 104;
pub const FORMAT_R32G32B32_SINT: u32 = 105;
pub const FORMAT_R32G32B32_SFLOAT: u32 = 106;
pub const FORMAT_R32G32B32A32_UINT: u32 = 107;
pub const FORMAT_R32G32B32A32_SINT: u32 = 108;
pub const FORMAT_R32G32B32A32_SFLOAT: u32 = 109;
pub const FORMAT_R64_UINT: u32 = 110;
pub const FORMAT_R64_SINT: u32 = 111;
pub const FORMAT_R64_SFLOAT: u32 = 112;
pub const FORMAT_R64G64_UINT: u32 = 113;
pub const FORMAT_R64G64_SINT: u32 = 114;
pub const FORMAT_R64G64_SFLOAT: u32 = 115;
pub const FORMAT_R64G64B64_UINT: u32 = 116;
pub const FORMAT_R64G64B64_SINT: u32 = 117;
pub const FORMAT_R64G64B64_SFLOAT: u32 = 118;
pub const FORMAT_R64G64B64A64_UINT: u32 = 119;
pub const FORMAT_R64G64B64A64_SINT: u32 = 120;
pub const FORMAT_R64G64B64A64_SFLOAT: u32 = 121;
pub const FORMAT_B10G11R11_UFLOAT_PACK32: u32 = 122;
pub const FORMAT_E5B9G9R9_UFLOAT_PACK32: u32 = 123;
pub const FORMAT_D16_UNORM: u32 = 124;
pub const FORMAT_X8_D24_UNORM_PACK32: u32 = 125;
pub const FORMAT_D32_SFLOAT: u32 = 126;
pub const FORMAT_S8_UINT: u32 = 127;
pub const FORMAT_D16_UNORM_S8_UINT: u32 = 128;
pub const FORMAT_D24_UNORM_S8_UINT: u32 = 129;
pub const FORMAT_D32_SFLOAT_S8_UINT: u32 = 130;
pub const FORMAT_BC1_RGB_UNORM_BLOCK: u32 = 131;
pub const FORMAT_BC1_RGB_SRGB_BLOCK: u32 = 132;
pub const FORMAT_BC1_RGBA_UNORM_BLOCK: u32 = 133;
pub const FORMAT_BC1_RGBA_SRGB_BLOCK: u32 = 134;
pub const FORMAT_BC2_UNORM_BLOCK: u32 = 135;
pub const FORMAT_BC2_SRGB_BLOCK: u32 = 136;
pub const FORMAT_BC3_UNORM_BLOCK: u32 = 137;
pub const FORMAT_BC3_SRGB_BLOCK: u32 = 138;
pub const FORMAT_BC4_UNORM_BLOCK: u32 = 139;
pub const FORMAT_BC4_SNORM_BLOCK: u32 = 140;
pub const FORMAT_BC5_UNORM_BLOCK: u32 = 141;
pub const FORMAT_BC5_SNORM_BLOCK: u32 = 142;
pub const FORMAT_BC6H_UFLOAT_BLOCK: u32 = 143;
pub const FORMAT_BC6H_SFLOAT_BLOCK: u32 = 144;
pub const FORMAT_BC7_UNORM_BLOCK: u32 = 145;
pub const FORMAT_BC7_SRGB_BLOCK: u32 = 146;
pub const FORMAT_ETC2_R8G8B8_UNORM_BLOCK: u32 = 147;
pub const FORMAT_ETC2_R8G8B8_SRGB_BLOCK: u32 = 148;
pub const FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK: u32 = 149;
pub const FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: u32 = 150;
pub const FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK: u32 = 151;
pub const FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: u32 = 152;
pub const FORMAT_EAC_R11_UNORM_BLOCK: u32 = 153;
pub const FORMAT_EAC_R11_SNORM_BLOCK: u32 = 154;
pub const FORMAT_EAC_R11G11_UNORM_BLOCK: u32 = 155;
pub const FORMAT_EAC_R11G11_SNORM_BLOCK: u32 = 156;
pub const FORMAT_ASTC_4x4_UNORM_BLOCK: u32 = 157;
pub const FORMAT_ASTC_4x4_SRGB_BLOCK: u32 = 158;
pub const FORMAT_ASTC_5x4_UNORM_BLOCK: u32 = 159;
pub const FORMAT_ASTC_5x4_SRGB_BLOCK: u32 = 160;
pub const FORMAT_ASTC_5x5_UNORM_BLOCK: u32 = 161;
pub const FORMAT_ASTC_5x5_SRGB_BLOCK: u32 = 162;
pub const FORMAT_ASTC_6x5_UNORM_BLOCK: u32 = 163;
pub const FORMAT_ASTC_6x5_SRGB_BLOCK: u32 = 164;
pub const FORMAT_ASTC_6x6_UNORM_BLOCK: u32 = 165;
pub const FORMAT_ASTC_6x6_SRGB_BLOCK: u32 = 166;
pub const FORMAT_ASTC_8x5_UNORM_BLOCK: u32 = 167;
pub const FORMAT_ASTC_8x5_SRGB_BLOCK: u32 = 168;
pub const FORMAT_ASTC_8x6_UNORM_BLOCK: u32 = 169;
pub const FORMAT_ASTC_8x6_SRGB_BLOCK: u32 = 170;
pub const FORMAT_ASTC_8x8_UNORM_BLOCK: u32 = 171;
pub const FORMAT_ASTC_8x8_SRGB_BLOCK: u32 = 172;
pub const FORMAT_ASTC_10x5_UNORM_BLOCK: u32 = 173;
pub const FORMAT_ASTC_10x5_SRGB_BLOCK: u32 = 174;
pub const FORMAT_ASTC_10x6_UNORM_BLOCK: u32 = 175;
pub const FORMAT_ASTC_10x6_SRGB_BLOCK: u32 = 176;
pub const FORMAT_ASTC_10x8_UNORM_BLOCK: u32 = 177;
pub const FORMAT_ASTC_10x8_SRGB_BLOCK: u32 = 178;
pub const FORMAT_ASTC_10x10_UNORM_BLOCK: u32 = 179;
pub const FORMAT_ASTC_10x10_SRGB_BLOCK: u32 = 180;
pub const FORMAT_ASTC_12x10_UNORM_BLOCK: u32 = 181;
pub const FORMAT_ASTC_12x10_SRGB_BLOCK: u32 = 182;
pub const FORMAT_ASTC_12x12_UNORM_BLOCK: u32 = 183;
pub const FORMAT_ASTC_12x12_SRGB_BLOCK: u32 = 184;
pub type ImageType = u32;
pub const IMAGE_TYPE_1D: u32 = 0;
pub const IMAGE_TYPE_2D: u32 = 1;
pub const IMAGE_TYPE_3D: u32 = 2;
pub type ImageTiling = u32;
pub const IMAGE_TILING_OPTIMAL: u32 = 0;
pub const IMAGE_TILING_LINEAR: u32 = 1;
pub type PhysicalDeviceType = u32;
pub const PHYSICAL_DEVICE_TYPE_OTHER: u32 = 0;
pub const PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU: u32 = 1;
pub const PHYSICAL_DEVICE_TYPE_DISCRETE_GPU: u32 = 2;
pub const PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU: u32 = 3;
pub const PHYSICAL_DEVICE_TYPE_CPU: u32 = 4;
pub type QueryType = u32;
pub const QUERY_TYPE_OCCLUSION: u32 = 0;
pub const QUERY_TYPE_PIPELINE_STATISTICS: u32 = 1;
pub const QUERY_TYPE_TIMESTAMP: u32 = 2;
pub type SharingMode = u32;
pub const SHARING_MODE_EXCLUSIVE: u32 = 0;
pub const SHARING_MODE_CONCURRENT: u32 = 1;
pub type ImageLayout = u32;
pub const IMAGE_LAYOUT_UNDEFINED: u32 = 0;
pub const IMAGE_LAYOUT_GENERAL: u32 = 1;
pub const IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: u32 = 2;
pub const IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL: u32 = 3;
pub const IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL: u32 = 4;
pub const IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: u32 = 5;
pub const IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: u32 = 6;
pub const IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: u32 = 7;
pub const IMAGE_LAYOUT_PREINITIALIZED: u32 = 8;
pub const IMAGE_LAYOUT_PRESENT_SRC_KHR: u32 = 1000001002;
pub type ImageViewType = u32;
pub const IMAGE_VIEW_TYPE_1D: u32 = 0;
pub const IMAGE_VIEW_TYPE_2D: u32 = 1;
pub const IMAGE_VIEW_TYPE_3D: u32 = 2;
pub const IMAGE_VIEW_TYPE_CUBE: u32 = 3;
pub const IMAGE_VIEW_TYPE_1D_ARRAY: u32 = 4;
pub const IMAGE_VIEW_TYPE_2D_ARRAY: u32 = 5;
pub const IMAGE_VIEW_TYPE_CUBE_ARRAY: u32 = 6;
pub type ComponentSwizzle = u32;
pub const COMPONENT_SWIZZLE_IDENTITY: u32 = 0;
pub const COMPONENT_SWIZZLE_ZERO: u32 = 1;
pub const COMPONENT_SWIZZLE_ONE: u32 = 2;
pub const COMPONENT_SWIZZLE_R: u32 = 3;
pub const COMPONENT_SWIZZLE_G: u32 = 4;
pub const COMPONENT_SWIZZLE_B: u32 = 5;
pub const COMPONENT_SWIZZLE_A: u32 = 6;
pub type VertexInputRate = u32;
pub const VERTEX_INPUT_RATE_VERTEX: u32 = 0;
pub const VERTEX_INPUT_RATE_INSTANCE: u32 = 1;
pub type PrimitiveTopology = u32;
pub const PRIMITIVE_TOPOLOGY_POINT_LIST: u32 = 0;
pub const PRIMITIVE_TOPOLOGY_LINE_LIST: u32 = 1;
pub const PRIMITIVE_TOPOLOGY_LINE_STRIP: u32 = 2;
pub const PRIMITIVE_TOPOLOGY_TRIANGLE_LIST: u32 = 3;
pub const PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP: u32 = 4;
pub const PRIMITIVE_TOPOLOGY_TRIANGLE_FAN: u32 = 5;
pub const PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY: u32 = 6;
pub const PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY: u32 = 7;
pub const PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY: u32 = 8;
pub const PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY: u32 = 9;
pub const PRIMITIVE_TOPOLOGY_PATCH_LIST: u32 = 10;
pub type PolygonMode = u32;
pub const POLYGON_MODE_FILL: u32 = 0;
pub const POLYGON_MODE_LINE: u32 = 1;
pub const POLYGON_MODE_POINT: u32 = 2;
pub type FrontFace = u32;
pub const FRONT_FACE_COUNTER_CLOCKWISE: u32 = 0;
pub const FRONT_FACE_CLOCKWISE: u32 = 1;
pub type CompareOp = u32;
pub const COMPARE_OP_NEVER: u32 = 0;
pub const COMPARE_OP_LESS: u32 = 1;
pub const COMPARE_OP_EQUAL: u32 = 2;
pub const COMPARE_OP_LESS_OR_EQUAL: u32 = 3;
pub const COMPARE_OP_GREATER: u32 = 4;
pub const COMPARE_OP_NOT_EQUAL: u32 = 5;
pub const COMPARE_OP_GREATER_OR_EQUAL: u32 = 6;
pub const COMPARE_OP_ALWAYS: u32 = 7;
pub type StencilOp = u32;
pub const STENCIL_OP_KEEP: u32 = 0;
pub const STENCIL_OP_ZERO: u32 = 1;
pub const STENCIL_OP_REPLACE: u32 = 2;
pub const STENCIL_OP_INCREMENT_AND_CLAMP: u32 = 3;
pub const STENCIL_OP_DECREMENT_AND_CLAMP: u32 = 4;
pub const STENCIL_OP_INVERT: u32 = 5;
pub const STENCIL_OP_INCREMENT_AND_WRAP: u32 = 6;
pub const STENCIL_OP_DECREMENT_AND_WRAP: u32 = 7;
pub type LogicOp = u32;
pub const LOGIC_OP_CLEAR: u32 = 0;
pub const LOGIC_OP_AND: u32 = 1;
pub const LOGIC_OP_AND_REVERSE: u32 = 2;
pub const LOGIC_OP_COPY: u32 = 3;
pub const LOGIC_OP_AND_INVERTED: u32 = 4;
pub const LOGIC_OP_NO_OP: u32 = 5;
pub const LOGIC_OP_XOR: u32 = 6;
pub const LOGIC_OP_OR: u32 = 7;
pub const LOGIC_OP_NOR: u32 = 8;
pub const LOGIC_OP_EQUIVALENT: u32 = 9;
pub const LOGIC_OP_INVERT: u32 = 10;
pub const LOGIC_OP_OR_REVERSE: u32 = 11;
pub const LOGIC_OP_COPY_INVERTED: u32 = 12;
pub const LOGIC_OP_OR_INVERTED: u32 = 13;
pub const LOGIC_OP_NAND: u32 = 14;
pub const LOGIC_OP_SET: u32 = 15;
pub type BlendFactor = u32;
pub const BLEND_FACTOR_ZERO: u32 = 0;
pub const BLEND_FACTOR_ONE: u32 = 1;
pub const BLEND_FACTOR_SRC_COLOR: u32 = 2;
pub const BLEND_FACTOR_ONE_MINUS_SRC_COLOR: u32 = 3;
pub const BLEND_FACTOR_DST_COLOR: u32 = 4;
pub const BLEND_FACTOR_ONE_MINUS_DST_COLOR: u32 = 5;
pub const BLEND_FACTOR_SRC_ALPHA: u32 = 6;
pub const BLEND_FACTOR_ONE_MINUS_SRC_ALPHA: u32 = 7;
pub const BLEND_FACTOR_DST_ALPHA: u32 = 8;
pub const BLEND_FACTOR_ONE_MINUS_DST_ALPHA: u32 = 9;
pub const BLEND_FACTOR_CONSTANT_COLOR: u32 = 10;
pub const BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR: u32 = 11;
pub const BLEND_FACTOR_CONSTANT_ALPHA: u32 = 12;
pub const BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA: u32 = 13;
pub const BLEND_FACTOR_SRC_ALPHA_SATURATE: u32 = 14;
pub const BLEND_FACTOR_SRC1_COLOR: u32 = 15;
pub const BLEND_FACTOR_ONE_MINUS_SRC1_COLOR: u32 = 16;
pub const BLEND_FACTOR_SRC1_ALPHA: u32 = 17;
pub const BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA: u32 = 18;
pub type BlendOp = u32;
pub const BLEND_OP_ADD: u32 = 0;
pub const BLEND_OP_SUBTRACT: u32 = 1;
pub const BLEND_OP_REVERSE_SUBTRACT: u32 = 2;
pub const BLEND_OP_MIN: u32 = 3;
pub const BLEND_OP_MAX: u32 = 4;
pub type DynamicState = u32;
pub const DYNAMIC_STATE_VIEWPORT: u32 = 0;
pub const DYNAMIC_STATE_SCISSOR: u32 = 1;
pub const DYNAMIC_STATE_LINE_WIDTH: u32 = 2;
pub const DYNAMIC_STATE_DEPTH_BIAS: u32 = 3;
pub const DYNAMIC_STATE_BLEND_CONSTANTS: u32 = 4;
pub const DYNAMIC_STATE_DEPTH_BOUNDS: u32 = 5;
pub const DYNAMIC_STATE_STENCIL_COMPARE_MASK: u32 = 6;
pub const DYNAMIC_STATE_STENCIL_WRITE_MASK: u32 = 7;
pub const DYNAMIC_STATE_STENCIL_REFERENCE: u32 = 8;
pub type Filter = u32;
pub const FILTER_NEAREST: u32 = 0;
pub const FILTER_LINEAR: u32 = 1;
pub type SamplerMipmapMode = u32;
pub const SAMPLER_MIPMAP_MODE_NEAREST: u32 = 0;
pub const SAMPLER_MIPMAP_MODE_LINEAR: u32 = 1;
pub type SamplerAddressMode = u32;
pub const SAMPLER_ADDRESS_MODE_REPEAT: u32 = 0;
pub const SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT: u32 = 1;
pub const SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE: u32 = 2;
pub const SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER: u32 = 3;
pub const SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE: u32 = 4;
pub type BorderColor = u32;
pub const BORDER_COLOR_FLOAT_TRANSPARENT_BLACK: u32 = 0;
pub const BORDER_COLOR_INT_TRANSPARENT_BLACK: u32 = 1;
pub const BORDER_COLOR_FLOAT_OPAQUE_BLACK: u32 = 2;
pub const BORDER_COLOR_INT_OPAQUE_BLACK: u32 = 3;
pub const BORDER_COLOR_FLOAT_OPAQUE_WHITE: u32 = 4;
pub const BORDER_COLOR_INT_OPAQUE_WHITE: u32 = 5;
pub type DescriptorType = u32;
pub const DESCRIPTOR_TYPE_SAMPLER: u32 = 0;
pub const DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER: u32 = 1;
pub const DESCRIPTOR_TYPE_SAMPLED_IMAGE: u32 = 2;
pub const DESCRIPTOR_TYPE_STORAGE_IMAGE: u32 = 3;
pub const DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: u32 = 4;
pub const DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: u32 = 5;
pub const DESCRIPTOR_TYPE_UNIFORM_BUFFER: u32 = 6;
pub const DESCRIPTOR_TYPE_STORAGE_BUFFER: u32 = 7;
pub const DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: u32 = 8;
pub const DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC: u32 = 9;
pub const DESCRIPTOR_TYPE_INPUT_ATTACHMENT: u32 = 10;
pub type AttachmentLoadOp = u32;
pub const ATTACHMENT_LOAD_OP_LOAD: u32 = 0;
pub const ATTACHMENT_LOAD_OP_CLEAR: u32 = 1;
pub const ATTACHMENT_LOAD_OP_DONT_CARE: u32 = 2;
pub type AttachmentStoreOp = u32;
pub const ATTACHMENT_STORE_OP_STORE: u32 = 0;
pub const ATTACHMENT_STORE_OP_DONT_CARE: u32 = 1;
pub type PipelineBindPoint = u32;
pub const PIPELINE_BIND_POINT_GRAPHICS: u32 = 0;
pub const PIPELINE_BIND_POINT_COMPUTE: u32 = 1;
pub type CommandBufferLevel = u32;
pub const COMMAND_BUFFER_LEVEL_PRIMARY: u32 = 0;
pub const COMMAND_BUFFER_LEVEL_SECONDARY: u32 = 1;
pub type IndexType = u32;
pub const INDEX_TYPE_UINT16: u32 = 0;
pub const INDEX_TYPE_UINT32: u32 = 1;
pub type SubpassContents = u32;
pub const SUBPASS_CONTENTS_INLINE: u32 = 0;
pub const SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS: u32 = 1;
pub type InstanceCreateFlags = Flags;
pub type FormatFeatureFlagBits = u32;
pub const FORMAT_FEATURE_SAMPLED_IMAGE_BIT: u32 = 0x00000001;
pub const FORMAT_FEATURE_STORAGE_IMAGE_BIT: u32 = 0x00000002;
pub const FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT: u32 = 0x00000004;
pub const FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT: u32 = 0x00000008;
pub const FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT: u32 = 0x00000010;
pub const FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT: u32 = 0x00000020;
pub const FORMAT_FEATURE_VERTEX_BUFFER_BIT: u32 = 0x00000040;
pub const FORMAT_FEATURE_COLOR_ATTACHMENT_BIT: u32 = 0x00000080;
pub const FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT: u32 = 0x00000100;
pub const FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT: u32 = 0x00000200;
pub const FORMAT_FEATURE_BLIT_SRC_BIT: u32 = 0x00000400;
pub const FORMAT_FEATURE_BLIT_DST_BIT: u32 = 0x00000800;
pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT: u32 = 0x00001000;
pub const FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR: u32 = 0x00004000;
pub const FORMAT_FEATURE_TRANSFER_DST_BIT_KHR: u32 = 0x00008000;
pub type FormatFeatureFlags = Flags;
pub type ImageUsageFlagBits = u32;
pub const IMAGE_USAGE_TRANSFER_SRC_BIT: u32 = 0x00000001;
pub const IMAGE_USAGE_TRANSFER_DST_BIT: u32 = 0x00000002;
pub const IMAGE_USAGE_SAMPLED_BIT: u32 = 0x00000004;
pub const IMAGE_USAGE_STORAGE_BIT: u32 = 0x00000008;
pub const IMAGE_USAGE_COLOR_ATTACHMENT_BIT: u32 = 0x00000010;
pub const IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT: u32 = 0x00000020;
pub const IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT: u32 = 0x00000040;
pub const IMAGE_USAGE_INPUT_ATTACHMENT_BIT: u32 = 0x00000080;
pub type ImageUsageFlags = Flags;
pub type ImageCreateFlagBits = u32;
pub const IMAGE_CREATE_SPARSE_BINDING_BIT: u32 = 0x00000001;
pub const IMAGE_CREATE_SPARSE_RESIDENCY_BIT: u32 = 0x00000002;
pub const IMAGE_CREATE_SPARSE_ALIASED_BIT: u32 = 0x00000004;
pub const IMAGE_CREATE_MUTABLE_FORMAT_BIT: u32 = 0x00000008;
pub const IMAGE_CREATE_CUBE_COMPATIBLE_BIT: u32 = 0x00000010;
pub const IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR: u32 = 0x00000020;
pub type ImageCreateFlags = Flags;
pub type SampleCountFlagBits = u32;
pub const SAMPLE_COUNT_1_BIT: u32 = 0x00000001;
pub const SAMPLE_COUNT_2_BIT: u32 = 0x00000002;
pub const SAMPLE_COUNT_4_BIT: u32 = 0x00000004;
pub const SAMPLE_COUNT_8_BIT: u32 = 0x00000008;
pub const SAMPLE_COUNT_16_BIT: u32 = 0x00000010;
pub const SAMPLE_COUNT_32_BIT: u32 = 0x00000020;
pub const SAMPLE_COUNT_64_BIT: u32 = 0x00000040;
pub type SampleCountFlags = Flags;
pub type QueueFlagBits = u32;
pub const QUEUE_GRAPHICS_BIT: u32 = 0x00000001;
pub const QUEUE_COMPUTE_BIT: u32 = 0x00000002;
pub const QUEUE_TRANSFER_BIT: u32 = 0x00000004;
pub const QUEUE_SPARSE_BINDING_BIT: u32 = 0x00000008;
pub type QueueFlags = Flags;
pub type MemoryPropertyFlagBits = u32;
pub const MEMORY_PROPERTY_DEVICE_LOCAL_BIT: u32 = 0x00000001;
pub const MEMORY_PROPERTY_HOST_VISIBLE_BIT: u32 = 0x00000002;
pub const MEMORY_PROPERTY_HOST_COHERENT_BIT: u32 = 0x00000004;
pub const MEMORY_PROPERTY_HOST_CACHED_BIT: u32 = 0x00000008;
pub const MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT: u32 = 0x00000010;
pub type MemoryPropertyFlags = Flags;
pub type MemoryHeapFlagBits = u32;
pub const MEMORY_HEAP_DEVICE_LOCAL_BIT: u32 = 0x00000001;
pub type MemoryHeapFlags = Flags;
pub type DeviceCreateFlags = Flags;
pub type DeviceQueueCreateFlags = Flags;
pub type PipelineStageFlagBits = u32;
pub const PIPELINE_STAGE_TOP_OF_PIPE_BIT: u32 = 0x00000001;
pub const PIPELINE_STAGE_DRAW_INDIRECT_BIT: u32 = 0x00000002;
pub const PIPELINE_STAGE_VERTEX_INPUT_BIT: u32 = 0x00000004;
pub const PIPELINE_STAGE_VERTEX_SHADER_BIT: u32 = 0x00000008;
pub const PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT: u32 = 0x00000010;
pub const PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT: u32 = 0x00000020;
pub const PIPELINE_STAGE_GEOMETRY_SHADER_BIT: u32 = 0x00000040;
pub const PIPELINE_STAGE_FRAGMENT_SHADER_BIT: u32 = 0x00000080;
pub const PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT: u32 = 0x00000100;
pub const PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT: u32 = 0x00000200;
pub const PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT: u32 = 0x00000400;
pub const PIPELINE_STAGE_COMPUTE_SHADER_BIT: u32 = 0x00000800;
pub const PIPELINE_STAGE_TRANSFER_BIT: u32 = 0x00001000;
pub const PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT: u32 = 0x00002000;
pub const PIPELINE_STAGE_HOST_BIT: u32 = 0x00004000;
pub const PIPELINE_STAGE_ALL_GRAPHICS_BIT: u32 = 0x00008000;
pub const PIPELINE_STAGE_ALL_COMMANDS_BIT: u32 = 0x00010000;
pub type PipelineStageFlags = Flags;
pub type MemoryMapFlags = Flags;
pub type ImageAspectFlagBits = u32;
pub const IMAGE_ASPECT_COLOR_BIT: u32 = 0x00000001;
pub const IMAGE_ASPECT_DEPTH_BIT: u32 = 0x00000002;
pub const IMAGE_ASPECT_STENCIL_BIT: u32 = 0x00000004;
pub const IMAGE_ASPECT_METADATA_BIT: u32 = 0x00000008;
pub type ImageAspectFlags = Flags;
pub type SparseImageFormatFlagBits = u32;
pub const SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT: u32 = 0x00000001;
pub const SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT: u32 = 0x00000002;
pub const SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT: u32 = 0x00000004;
pub type SparseImageFormatFlags = Flags;
pub type SparseMemoryBindFlagBits = u32;
pub const SPARSE_MEMORY_BIND_METADATA_BIT: u32 = 0x00000001;
pub type SparseMemoryBindFlags = Flags;
pub type FenceCreateFlagBits = u32;
pub const FENCE_CREATE_SIGNALED_BIT: u32 = 0x00000001;
pub type FenceCreateFlags = Flags;
pub type SemaphoreCreateFlags = Flags;
pub type EventCreateFlags = Flags;
pub type QueryPoolCreateFlags = Flags;
pub type QueryPipelineStatisticFlagBits = u32;
pub const QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT: u32 = 0x00000001;
pub const QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT: u32 = 0x00000002;
pub const QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT: u32 = 0x00000004;
pub const QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT: u32 = 0x00000008;
pub const QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT: u32 = 0x00000010;
pub const QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT: u32 = 0x00000020;
pub const QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT: u32 = 0x00000040;
pub const QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT: u32 = 0x00000080;
pub const QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT: u32 = 0x00000100;
pub const QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT: u32 = 0x00000200;
pub const QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT: u32 = 0x00000400;
pub type QueryPipelineStatisticFlags = Flags;
pub type QueryResultFlagBits = u32;
pub const QUERY_RESULT_64_BIT: u32 = 0x00000001;
pub const QUERY_RESULT_WAIT_BIT: u32 = 0x00000002;
pub const QUERY_RESULT_WITH_AVAILABILITY_BIT: u32 = 0x00000004;
pub const QUERY_RESULT_PARTIAL_BIT: u32 = 0x00000008;
pub type QueryResultFlags = Flags;
pub type BufferCreateFlagBits = u32;
pub const BUFFER_CREATE_SPARSE_BINDING_BIT: u32 = 0x00000001;
pub const BUFFER_CREATE_SPARSE_RESIDENCY_BIT: u32 = 0x00000002;
pub const BUFFER_CREATE_SPARSE_ALIASED_BIT: u32 = 0x00000004;
pub type BufferCreateFlags = Flags;
pub type BufferUsageFlagBits = u32;
pub const BUFFER_USAGE_TRANSFER_SRC_BIT: u32 = 0x00000001;
pub const BUFFER_USAGE_TRANSFER_DST_BIT: u32 = 0x00000002;
pub const BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT: u32 = 0x00000004;
pub const BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT: u32 = 0x00000008;
pub const BUFFER_USAGE_UNIFORM_BUFFER_BIT: u32 = 0x00000010;
pub const BUFFER_USAGE_STORAGE_BUFFER_BIT: u32 = 0x00000020;
pub const BUFFER_USAGE_INDEX_BUFFER_BIT: u32 = 0x00000040;
pub const BUFFER_USAGE_VERTEX_BUFFER_BIT: u32 = 0x00000080;
pub const BUFFER_USAGE_INDIRECT_BUFFER_BIT: u32 = 0x00000100;
pub type BufferUsageFlags = Flags;
pub type BufferViewCreateFlags = Flags;
pub type ImageViewCreateFlags = Flags;
pub type ShaderModuleCreateFlags = Flags;
pub type PipelineCacheCreateFlags = Flags;
pub type PipelineCreateFlagBits = u32;
pub const PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT: u32 = 0x00000001;
pub const PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT: u32 = 0x00000002;
pub const PIPELINE_CREATE_DERIVATIVE_BIT: u32 = 0x00000004;
pub type PipelineCreateFlags = Flags;
pub type PipelineShaderStageCreateFlags = Flags;
pub type ShaderStageFlagBits = u32;
pub const SHADER_STAGE_VERTEX_BIT: u32 = 0x00000001;
pub const SHADER_STAGE_TESSELLATION_CONTROL_BIT: u32 = 0x00000002;
pub const SHADER_STAGE_TESSELLATION_EVALUATION_BIT: u32 = 0x00000004;
pub const SHADER_STAGE_GEOMETRY_BIT: u32 = 0x00000008;
pub const SHADER_STAGE_FRAGMENT_BIT: u32 = 0x00000010;
pub const SHADER_STAGE_COMPUTE_BIT: u32 = 0x00000020;
pub const SHADER_STAGE_ALL_GRAPHICS: u32 = 0x1F;
pub const SHADER_STAGE_ALL: u32 = 0x7FFFFFFF;
pub type PipelineVertexInputStateCreateFlags = Flags;
pub type PipelineInputAssemblyStateCreateFlags = Flags;
pub type PipelineTessellationStateCreateFlags = Flags;
pub type PipelineViewportStateCreateFlags = Flags;
pub type PipelineRasterizationStateCreateFlags = Flags;
pub type CullModeFlagBits = u32;
pub const CULL_MODE_NONE: u32 = 0;
pub const CULL_MODE_FRONT_BIT: u32 = 0x00000001;
pub const CULL_MODE_BACK_BIT: u32 = 0x00000002;
pub const CULL_MODE_FRONT_AND_BACK: u32 = 0x3;
pub type CullModeFlags = Flags;
pub type PipelineMultisampleStateCreateFlags = Flags;
pub type PipelineDepthStencilStateCreateFlags = Flags;
pub type PipelineColorBlendStateCreateFlags = Flags;
pub type ColorComponentFlagBits = u32;
pub const COLOR_COMPONENT_R_BIT: u32 = 0x00000001;
pub const COLOR_COMPONENT_G_BIT: u32 = 0x00000002;
pub const COLOR_COMPONENT_B_BIT: u32 = 0x00000004;
pub const COLOR_COMPONENT_A_BIT: u32 = 0x00000008;
pub type ColorComponentFlags = Flags;
pub type PipelineDynamicStateCreateFlags = Flags;
pub type PipelineLayoutCreateFlags = Flags;
pub type ShaderStageFlags = Flags;
pub type SamplerCreateFlags = Flags;
pub type DescriptorSetLayoutCreateFlags = Flags;
pub type DescriptorPoolCreateFlagBits = u32;
pub const DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT: u32 = 0x00000001;
pub type DescriptorPoolCreateFlags = Flags;
pub type DescriptorPoolResetFlags = Flags;
pub type FramebufferCreateFlags = Flags;
pub type RenderPassCreateFlags = Flags;
pub type AttachmentDescriptionFlagBits = u32;
pub const ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT: u32 = 0x00000001;
pub type AttachmentDescriptionFlags = Flags;
pub type SubpassDescriptionFlags = Flags;
pub type AccessFlagBits = u32;
pub const ACCESS_INDIRECT_COMMAND_READ_BIT: u32 = 0x00000001;
pub const ACCESS_INDEX_READ_BIT: u32 = 0x00000002;
pub const ACCESS_VERTEX_ATTRIBUTE_READ_BIT: u32 = 0x00000004;
pub const ACCESS_UNIFORM_READ_BIT: u32 = 0x00000008;
pub const ACCESS_INPUT_ATTACHMENT_READ_BIT: u32 = 0x00000010;
pub const ACCESS_SHADER_READ_BIT: u32 = 0x00000020;
pub const ACCESS_SHADER_WRITE_BIT: u32 = 0x00000040;
pub const ACCESS_COLOR_ATTACHMENT_READ_BIT: u32 = 0x00000080;
pub const ACCESS_COLOR_ATTACHMENT_WRITE_BIT: u32 = 0x00000100;
pub const ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT: u32 = 0x00000200;
pub const ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT: u32 = 0x00000400;
pub const ACCESS_TRANSFER_READ_BIT: u32 = 0x00000800;
pub const ACCESS_TRANSFER_WRITE_BIT: u32 = 0x00001000;
pub const ACCESS_HOST_READ_BIT: u32 = 0x00002000;
pub const ACCESS_HOST_WRITE_BIT: u32 = 0x00004000;
pub const ACCESS_MEMORY_READ_BIT: u32 = 0x00008000;
pub const ACCESS_MEMORY_WRITE_BIT: u32 = 0x00010000;
pub type AccessFlags = Flags;
pub type DependencyFlagBits = u32;
pub const DEPENDENCY_BY_REGION_BIT: u32 = 0x00000001;
pub type DependencyFlags = Flags;
pub type CommandPoolCreateFlagBits = u32;
pub const COMMAND_POOL_CREATE_TRANSIENT_BIT: u32 = 0x00000001;
pub const COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT: u32 = 0x00000002;
pub type CommandPoolCreateFlags = Flags;
pub type CommandPoolResetFlagBits = u32;
pub const COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT: u32 = 0x00000001;
pub type CommandPoolResetFlags = Flags;
pub type CommandPoolTrimFlagsKHR = Flags;
pub type CommandBufferUsageFlagBits = u32;
pub const COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT: u32 = 0x00000001;
pub const COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT: u32 = 0x00000002;
pub const COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT: u32 = 0x00000004;
pub type CommandBufferUsageFlags = Flags;
pub type QueryControlFlagBits = u32;
pub const QUERY_CONTROL_PRECISE_BIT: u32 = 0x00000001;
pub type QueryControlFlags = Flags;
pub type CommandBufferResetFlagBits = u32;
pub const COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT: u32 = 0x00000001;
pub type CommandBufferResetFlags = Flags;
pub type StencilFaceFlagBits = u32;
pub const STENCIL_FACE_FRONT_BIT: u32 = 0x00000001;
pub const STENCIL_FACE_BACK_BIT: u32 = 0x00000002;
pub const STENCIL_FRONT_AND_BACK: u32 = 0x3;
pub type StencilFaceFlags = Flags;
pub type DisplayPlaneAlphaFlagBitsKHR = u32;
pub const DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR: u32 = 0x00000001;
pub const DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR: u32 = 0x00000002;
pub const DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR: u32 = 0x00000004;
pub const DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR: u32 = 0x00000008;
pub type DisplayModeCreateFlagsKHR = Flags;
pub type DisplayPlaneAlphaFlagsKHR = Flags;
pub type DisplaySurfaceCreateFlagsKHR = Flags;
pub type ColorSpaceKHR = u32;
pub const COLOR_SPACE_SRGB_NONLINEAR_KHR: u32 = 0;
pub const COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT: u32 = 1000104001;
pub const COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT: u32 = 1000104002;
pub const COLOR_SPACE_DCI_P3_LINEAR_EXT: u32 = 1000104003;
pub const COLOR_SPACE_DCI_P3_NONLINEAR_EXT: u32 = 1000104004;
pub const COLOR_SPACE_BT709_LINEAR_EXT: u32 = 1000104005;
pub const COLOR_SPACE_BT709_NONLINEAR_EXT: u32 = 1000104006;
pub const COLOR_SPACE_BT2020_LINEAR_EXT: u32 = 1000104007;
pub const COLOR_SPACE_HDR10_ST2084_EXT: u32 = 1000104008;
pub const COLOR_SPACE_DOLBYVISION_EXT: u32 = 1000104009;
pub const COLOR_SPACE_HDR10_HLG_EXT: u32 = 1000104010;
pub const COLOR_SPACE_ADOBERGB_LINEAR_EXT: u32 = 1000104011;
pub const COLOR_SPACE_ADOBERGB_NONLINEAR_EXT: u32 = 1000104012;
pub const COLOR_SPACE_PASS_THROUGH_EXT: u32 = 1000104013;
pub type PresentModeKHR = u32;
pub const PRESENT_MODE_IMMEDIATE_KHR: u32 = 0;
pub const PRESENT_MODE_MAILBOX_KHR: u32 = 1;
pub const PRESENT_MODE_FIFO_KHR: u32 = 2;
pub const PRESENT_MODE_FIFO_RELAXED_KHR: u32 = 3;
pub const PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: u32 = 1000111000;
pub const PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: u32 = 1000111001;
pub type SurfaceTransformFlagBitsKHR = u32;
pub const SURFACE_TRANSFORM_IDENTITY_BIT_KHR: u32 = 0x00000001;
pub const SURFACE_TRANSFORM_ROTATE_90_BIT_KHR: u32 = 0x00000002;
pub const SURFACE_TRANSFORM_ROTATE_180_BIT_KHR: u32 = 0x00000004;
pub const SURFACE_TRANSFORM_ROTATE_270_BIT_KHR: u32 = 0x00000008;
pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR: u32 = 0x00000010;
pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR: u32 = 0x00000020;
pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR: u32 = 0x00000040;
pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR: u32 = 0x00000080;
pub const SURFACE_TRANSFORM_INHERIT_BIT_KHR: u32 = 0x00000100;
pub type SurfaceTransformFlagsKHR = Flags;
pub type CompositeAlphaFlagBitsKHR = u32;
pub const COMPOSITE_ALPHA_OPAQUE_BIT_KHR: u32 = 0x00000001;
pub const COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR: u32 = 0x00000002;
pub const COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR: u32 = 0x00000004;
pub const COMPOSITE_ALPHA_INHERIT_BIT_KHR: u32 = 0x00000008;
pub type CompositeAlphaFlagsKHR = Flags;
pub type DebugReportObjectTypeEXT = u32;
pub const DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT: u32 = 0;
pub const DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT: u32 = 1;
pub const DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT: u32 = 2;
pub const DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT: u32 = 3;
pub const DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT: u32 = 4;
pub const DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT: u32 = 5;
pub const DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT: u32 = 6;
pub const DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT: u32 = 7;
pub const DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT: u32 = 8;
pub const DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT: u32 = 9;
pub const DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT: u32 = 10;
pub const DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT: u32 = 11;
pub const DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT: u32 = 12;
pub const DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT: u32 = 13;
pub const DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT: u32 = 14;
pub const DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT: u32 = 15;
pub const DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT: u32 = 16;
pub const DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT: u32 = 17;
pub const DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT: u32 = 18;
pub const DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT: u32 = 19;
pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT: u32 = 20;
pub const DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT: u32 = 21;
pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT: u32 = 22;
pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT: u32 = 23;
pub const DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT: u32 = 24;
pub const DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT: u32 = 25;
pub const DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT: u32 = 26;
pub const DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT: u32 = 27;
pub const DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT: u32 = 28;
pub const DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT: u32 = 29;
pub const DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT: u32 = 30;
pub const DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT: u32 = 31;
pub const DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT: u32 = 32;
pub const DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT: u32 = 33;
pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT: u32 = 1000085000;
pub type DebugReportErrorEXT = u32;
pub const DEBUG_REPORT_ERROR_NONE_EXT: u32 = 0;
pub const DEBUG_REPORT_ERROR_CALLBACK_REF_EXT: u32 = 1;
pub type DebugReportFlagBitsEXT = u32;
pub const DEBUG_REPORT_INFORMATION_BIT_EXT: u32 = 0x00000001;
pub const DEBUG_REPORT_WARNING_BIT_EXT: u32 = 0x00000002;
pub const DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT: u32 = 0x00000004;
pub const DEBUG_REPORT_ERROR_BIT_EXT: u32 = 0x00000008;
pub const DEBUG_REPORT_DEBUG_BIT_EXT: u32 = 0x00000010;
pub type DebugReportFlagsEXT = Flags;
pub type MacOSSurfaceCreateFlagsMVK = u32;
pub type IOSSurfaceCreateFlagsMVK = u32;
pub type DescriptorSetLayoutCreateFlagBits = u32;
pub const DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR: u32 = 0x00000001;
pub type DescriptorUpdateTemplateTypeKHR = u32;
pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR: u32 = 0;
pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR: u32 = 1;
pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE_KHR: u32 = DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR;
pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE_KHR: u32 = DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR;
pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE_KHR: u32 = (DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR - DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR + 1);
pub type DescriptorUpdateTemplateCreateFlagsKHR = Flags;
pub type PFN_vkAllocationFunction = extern "system" fn(*mut c_void, usize, usize, SystemAllocationScope) -> *mut c_void;
pub type PFN_vkReallocationFunction = extern "system" fn(*mut c_void, *mut c_void, usize, usize, SystemAllocationScope) -> *mut c_void;
pub type PFN_vkFreeFunction = extern "system" fn(*mut c_void, *mut c_void);
pub type PFN_vkInternalAllocationNotification = extern "system" fn(*mut c_void, usize, InternalAllocationType, SystemAllocationScope) -> *mut c_void;
pub type PFN_vkInternalFreeNotification = extern "system" fn(*mut c_void, usize, InternalAllocationType, SystemAllocationScope) -> *mut c_void;
pub type PFN_vkDebugReportCallbackEXT = extern "system" fn(DebugReportFlagsEXT, DebugReportObjectTypeEXT, u64, usize, i32, *const c_char, *const c_char, *mut c_void) -> Bool32;
pub type PFN_vkVoidFunction = extern "system" fn() -> ();
#[repr(C)]
pub struct ApplicationInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub pApplicationName: *const c_char,
pub applicationVersion: u32,
pub pEngineName: *const c_char,
pub engineVersion: u32,
pub apiVersion: u32,
}
#[repr(C)]
pub struct InstanceCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: InstanceCreateFlags,
pub pApplicationInfo: *const ApplicationInfo,
pub enabledLayerCount: u32,
pub ppEnabledLayerNames: *const *const c_char,
pub enabledExtensionCount: u32,
pub ppEnabledExtensionNames: *const *const c_char,
}
#[repr(C)]
pub struct AllocationCallbacks {
pub pUserData: *mut c_void,
pub pfnAllocation: PFN_vkAllocationFunction,
pub pfnReallocation: PFN_vkReallocationFunction,
pub pfnFree: PFN_vkFreeFunction,
pub pfnInternalAllocation: PFN_vkInternalAllocationNotification,
pub pfnInternalFree: PFN_vkInternalFreeNotification,
}
#[repr(C)]
pub struct PhysicalDeviceFeatures {
pub robustBufferAccess: Bool32,
pub fullDrawIndexUint32: Bool32,
pub imageCubeArray: Bool32,
pub independentBlend: Bool32,
pub geometryShader: Bool32,
pub tessellationShader: Bool32,
pub sampleRateShading: Bool32,
pub dualSrcBlend: Bool32,
pub logicOp: Bool32,
pub multiDrawIndirect: Bool32,
pub drawIndirectFirstInstance: Bool32,
pub depthClamp: Bool32,
pub depthBiasClamp: Bool32,
pub fillModeNonSolid: Bool32,
pub depthBounds: Bool32,
pub wideLines: Bool32,
pub largePoints: Bool32,
pub alphaToOne: Bool32,
pub multiViewport: Bool32,
pub samplerAnisotropy: Bool32,
pub textureCompressionETC2: Bool32,
pub textureCompressionASTC_LDR: Bool32,
pub textureCompressionBC: Bool32,
pub occlusionQueryPrecise: Bool32,
pub pipelineStatisticsQuery: Bool32,
pub vertexPipelineStoresAndAtomics: Bool32,
pub fragmentStoresAndAtomics: Bool32,
pub shaderTessellationAndGeometryPointSize: Bool32,
pub shaderImageGatherExtended: Bool32,
pub shaderStorageImageExtendedFormats: Bool32,
pub shaderStorageImageMultisample: Bool32,
pub shaderStorageImageReadWithoutFormat: Bool32,
pub shaderStorageImageWriteWithoutFormat: Bool32,
pub shaderUniformBufferArrayDynamicIndexing: Bool32,
pub shaderSampledImageArrayDynamicIndexing: Bool32,
pub shaderStorageBufferArrayDynamicIndexing: Bool32,
pub shaderStorageImageArrayDynamicIndexing: Bool32,
pub shaderClipDistance: Bool32,
pub shaderCullDistance: Bool32,
pub shaderf3264: Bool32,
pub shaderInt64: Bool32,
pub shaderInt16: Bool32,
pub shaderResourceResidency: Bool32,
pub shaderResourceMinLod: Bool32,
pub sparseBinding: Bool32,
pub sparseResidencyBuffer: Bool32,
pub sparseResidencyImage2D: Bool32,
pub sparseResidencyImage3D: Bool32,
pub sparseResidency2Samples: Bool32,
pub sparseResidency4Samples: Bool32,
pub sparseResidency8Samples: Bool32,
pub sparseResidency16Samples: Bool32,
pub sparseResidencyAliased: Bool32,
pub variableMultisampleRate: Bool32,
pub inheritedQueries: Bool32,
}
#[repr(C)]
pub struct FormatProperties {
pub linearTilingFeatures: FormatFeatureFlags,
pub optimalTilingFeatures: FormatFeatureFlags,
pub bufferFeatures: FormatFeatureFlags,
}
#[repr(C)]
pub struct Extent3D {
pub width: u32,
pub height: u32,
pub depth: u32,
}
#[repr(C)]
pub struct ImageFormatProperties {
pub maxExtent: Extent3D,
pub maxMipLevels: u32,
pub maxArrayLayers: u32,
pub sampleCounts: SampleCountFlags,
pub maxResourceSize: DeviceSize,
}
#[repr(C)]
pub struct PhysicalDeviceLimits {
pub maxImageDimension1D: u32,
pub maxImageDimension2D: u32,
pub maxImageDimension3D: u32,
pub maxImageDimensionCube: u32,
pub maxImageArrayLayers: u32,
pub maxTexelBufferElements: u32,
pub maxUniformBufferRange: u32,
pub maxStorageBufferRange: u32,
pub maxPushConstantsSize: u32,
pub maxMemoryAllocationCount: u32,
pub maxSamplerAllocationCount: u32,
pub bufferImageGranularity: DeviceSize,
pub sparseAddressSpaceSize: DeviceSize,
pub maxBoundDescriptorSets: u32,
pub maxPerStageDescriptorSamplers: u32,
pub maxPerStageDescriptorUniformBuffers: u32,
pub maxPerStageDescriptorStorageBuffers: u32,
pub maxPerStageDescriptorSampledImages: u32,
pub maxPerStageDescriptorStorageImages: u32,
pub maxPerStageDescriptorInputAttachments: u32,
pub maxPerStageResources: u32,
pub maxDescriptorSetSamplers: u32,
pub maxDescriptorSetUniformBuffers: u32,
pub maxDescriptorSetUniformBuffersDynamic: u32,
pub maxDescriptorSetStorageBuffers: u32,
pub maxDescriptorSetStorageBuffersDynamic: u32,
pub maxDescriptorSetSampledImages: u32,
pub maxDescriptorSetStorageImages: u32,
pub maxDescriptorSetInputAttachments: u32,
pub maxVertexInputAttributes: u32,
pub maxVertexInputBindings: u32,
pub maxVertexInputAttributeOffset: u32,
pub maxVertexInputBindingStride: u32,
pub maxVertexOutputComponents: u32,
pub maxTessellationGenerationLevel: u32,
pub maxTessellationPatchSize: u32,
pub maxTessellationControlPerVertexInputComponents: u32,
pub maxTessellationControlPerVertexOutputComponents: u32,
pub maxTessellationControlPerPatchOutputComponents: u32,
pub maxTessellationControlTotalOutputComponents: u32,
pub maxTessellationEvaluationInputComponents: u32,
pub maxTessellationEvaluationOutputComponents: u32,
pub maxGeometryShaderInvocations: u32,
pub maxGeometryInputComponents: u32,
pub maxGeometryOutputComponents: u32,
pub maxGeometryOutputVertices: u32,
pub maxGeometryTotalOutputComponents: u32,
pub maxFragmentInputComponents: u32,
pub maxFragmentOutputAttachments: u32,
pub maxFragmentDualSrcAttachments: u32,
pub maxFragmentCombinedOutputResources: u32,
pub maxComputeSharedMemorySize: u32,
pub maxComputeWorkGroupCount: [u32; 3],
pub maxComputeWorkGroupInvocations: u32,
pub maxComputeWorkGroupSize: [u32; 3],
pub subPixelPrecisionBits: u32,
pub subTexelPrecisionBits: u32,
pub mipmapPrecisionBits: u32,
pub maxDrawIndexedIndexValue: u32,
pub maxDrawIndirectCount: u32,
pub maxSamplerLodBias: f32,
pub maxSamplerAnisotropy: f32,
pub maxViewports: u32,
pub maxViewportDimensions: [u32; 2],
pub viewportBoundsRange: [f32; 2],
pub viewportSubPixelBits: u32,
pub minMemoryMapAlignment: usize,
pub minTexelBufferOffsetAlignment: DeviceSize,
pub minUniformBufferOffsetAlignment: DeviceSize,
pub minStorageBufferOffsetAlignment: DeviceSize,
pub minTexelOffset: i32,
pub maxTexelOffset: u32,
pub minTexelGatherOffset: i32,
pub maxTexelGatherOffset: u32,
pub minInterpolationOffset: f32,
pub maxInterpolationOffset: f32,
pub subPixelInterpolationOffsetBits: u32,
pub maxFramebufferWidth: u32,
pub maxFramebufferHeight: u32,
pub maxFramebufferLayers: u32,
pub framebufferColorSampleCounts: SampleCountFlags,
pub framebufferDepthSampleCounts: SampleCountFlags,
pub framebufferStencilSampleCounts: SampleCountFlags,
pub framebufferNoAttachmentsSampleCounts: SampleCountFlags,
pub maxColorAttachments: u32,
pub sampledImageColorSampleCounts: SampleCountFlags,
pub sampledImageIntegerSampleCounts: SampleCountFlags,
pub sampledImageDepthSampleCounts: SampleCountFlags,
pub sampledImageStencilSampleCounts: SampleCountFlags,
pub storageImageSampleCounts: SampleCountFlags,
pub maxSampleMaskWords: u32,
pub timestampComputeAndGraphics: Bool32,
pub timestampPeriod: f32,
pub maxClipDistances: u32,
pub maxCullDistances: u32,
pub maxCombinedClipAndCullDistances: u32,
pub discreteQueuePriorities: u32,
pub pointSizeRange: [f32; 2],
pub lineWidthRange: [f32; 2],
pub pointSizeGranularity: f32,
pub lineWidthGranularity: f32,
pub strictLines: Bool32,
pub standardSampleLocations: Bool32,
pub optimalBufferCopyOffsetAlignment: DeviceSize,
pub optimalBufferCopyRowPitchAlignment: DeviceSize,
pub nonCoherentAtomSize: DeviceSize,
}
#[repr(C)]
pub struct PhysicalDeviceSparseProperties {
pub residencyStandard2DBlockShape: Bool32,
pub residencyStandard2DMultisampleBlockShape: Bool32,
pub residencyStandard3DBlockShape: Bool32,
pub residencyAlignedMipSize: Bool32,
pub residencyNonResidentStrict: Bool32,
}
#[repr(C)]
pub struct PhysicalDeviceProperties {
pub apiVersion: u32,
pub driverVersion: u32,
pub vendorID: u32,
pub deviceID: u32,
pub deviceType: PhysicalDeviceType,
pub deviceName: [c_char; MAX_PHYSICAL_DEVICE_NAME_SIZE as usize],
pub pipelineCacheUUID: [u8; UUID_SIZE as usize],
pub limits: PhysicalDeviceLimits,
pub sparseProperties: PhysicalDeviceSparseProperties,
}
#[repr(C)]
pub struct QueueFamilyProperties {
pub queueFlags: QueueFlags,
pub queueCount: u32,
pub timestampValidBits: u32,
pub minImageTransferGranularity: Extent3D,
}
#[repr(C)]
pub struct MemoryType {
pub propertyFlags: MemoryPropertyFlags,
pub heapIndex: u32,
}
#[repr(C)]
pub struct MemoryHeap {
pub size: DeviceSize,
pub flags: MemoryHeapFlags,
}
#[repr(C)]
pub struct PhysicalDeviceMemoryProperties {
pub memoryTypeCount: u32,
pub memoryTypes: [MemoryType; MAX_MEMORY_TYPES as usize],
pub memoryHeapCount: u32,
pub memoryHeaps: [MemoryHeap; MAX_MEMORY_HEAPS as usize],
}
#[repr(C)]
pub struct DeviceQueueCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: DeviceQueueCreateFlags,
pub queueFamilyIndex: u32,
pub queueCount: u32,
pub pQueuePriorities: *const f32,
}
#[repr(C)]
pub struct DeviceCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: DeviceCreateFlags,
pub queueCreateInfoCount: u32,
pub pQueueCreateInfos: *const DeviceQueueCreateInfo,
pub enabledLayerCount: u32,
pub ppEnabledLayerNames: *const *const c_char,
pub enabledExtensionCount: u32,
pub ppEnabledExtensionNames: *const *const c_char,
pub pEnabledFeatures: *const PhysicalDeviceFeatures,
}
#[repr(C)]
pub struct ExtensionProperties {
pub extensionName: [c_char; MAX_EXTENSION_NAME_SIZE as usize],
pub specVersion: u32,
}
#[repr(C)]
pub struct LayerProperties {
pub layerName: [c_char; MAX_EXTENSION_NAME_SIZE as usize],
pub specVersion: u32,
pub implementationVersion: u32,
pub description: [c_char; MAX_DESCRIPTION_SIZE as usize],
}
#[repr(C)]
pub struct SubmitInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub waitSemaphoreCount: u32,
pub pWaitSemaphores: *const Semaphore,
pub pWaitDstStageMask: *const PipelineStageFlags,
pub commandBufferCount: u32,
pub pCommandBuffers: *const CommandBuffer,
pub signalSemaphoreCount: u32,
pub pSignalSemaphores: *const Semaphore,
}
#[repr(C)]
pub struct MemoryAllocateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub allocationSize: DeviceSize,
pub memoryTypeIndex: u32,
}
#[repr(C)]
pub struct MappedMemoryRange {
pub sType: StructureType,
pub pNext: *const c_void,
pub memory: DeviceMemory,
pub offset: DeviceSize,
pub size: DeviceSize,
}
#[repr(C)]
pub struct MemoryRequirements {
pub size: DeviceSize,
pub alignment: DeviceSize,
pub memoryTypeBits: u32,
}
#[repr(C)]
pub struct SparseImageFormatProperties {
pub aspectMask: ImageAspectFlags,
pub imageGranularity: Extent3D,
pub flags: SparseImageFormatFlags,
}
#[repr(C)]
pub struct SparseImageMemoryRequirements {
pub formatProperties: SparseImageFormatProperties,
pub imageMipTailFirstLod: u32,
pub imageMipTailSize: DeviceSize,
pub imageMipTailOffset: DeviceSize,
pub imageMipTailStride: DeviceSize,
}
#[repr(C)]
pub struct SparseMemoryBind {
pub resourceOffset: DeviceSize,
pub size: DeviceSize,
pub memory: DeviceMemory,
pub memoryOffset: DeviceSize,
pub flags: SparseMemoryBindFlags,
}
#[repr(C)]
pub struct SparseBufferMemoryBindInfo {
pub buffer: Buffer,
pub bindCount: u32,
pub pBinds: *const SparseMemoryBind,
}
#[repr(C)]
pub struct SparseImageOpaqueMemoryBindInfo {
pub image: Image,
pub bindCount: u32,
pub pBinds: *const SparseMemoryBind,
}
#[repr(C)]
pub struct ImageSubresource {
pub aspectMask: ImageAspectFlags,
pub mipLevel: u32,
pub arrayLayer: u32,
}
#[repr(C)]
pub struct Offset3D {
pub x: i32,
pub y: i32,
pub z: i32,
}
#[repr(C)]
pub struct SparseImageMemoryBind {
pub subresource: ImageSubresource,
pub offset: Offset3D,
pub extent: Extent3D,
pub memory: DeviceMemory,
pub memoryOffset: DeviceSize,
pub flags: SparseMemoryBindFlags,
}
#[repr(C)]
pub struct SparseImageMemoryBindInfo {
pub image: Image,
pub bindCount: u32,
pub pBinds: *const SparseImageMemoryBind,
}
#[repr(C)]
pub struct BindSparseInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub waitSemaphoreCount: u32,
pub pWaitSemaphores: *const Semaphore,
pub bufferBindCount: u32,
pub pBufferBinds: *const SparseBufferMemoryBindInfo,
pub imageOpaqueBindCount: u32,
pub pImageOpaqueBinds: *const SparseImageOpaqueMemoryBindInfo,
pub imageBindCount: u32,
pub pImageBinds: *const SparseImageMemoryBindInfo,
pub signalSemaphoreCount: u32,
pub pSignalSemaphores: *const Semaphore,
}
#[repr(C)]
pub struct FenceCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: FenceCreateFlags,
}
#[repr(C)]
pub struct SemaphoreCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: SemaphoreCreateFlags,
}
#[repr(C)]
pub struct EventCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: EventCreateFlags,
}
#[repr(C)]
pub struct QueryPoolCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: QueryPoolCreateFlags,
pub queryType: QueryType,
pub queryCount: u32,
pub pipelineStatistics: QueryPipelineStatisticFlags,
}
#[repr(C)]
pub struct BufferCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: BufferCreateFlags,
pub size: DeviceSize,
pub usage: BufferUsageFlags,
pub sharingMode: SharingMode,
pub queueFamilyIndexCount: u32,
pub pQueueFamilyIndices: *const u32,
}
#[repr(C)]
pub struct BufferViewCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: BufferViewCreateFlags,
pub buffer: Buffer,
pub format: Format,
pub offset: DeviceSize,
pub range: DeviceSize,
}
#[repr(C)]
pub struct ImageCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: ImageCreateFlags,
pub imageType: ImageType,
pub format: Format,
pub extent: Extent3D,
pub mipLevels: u32,
pub arrayLayers: u32,
pub samples: SampleCountFlagBits,
pub tiling: ImageTiling,
pub usage: ImageUsageFlags,
pub sharingMode: SharingMode,
pub queueFamilyIndexCount: u32,
pub pQueueFamilyIndices: *const u32,
pub initialLayout: ImageLayout,
}
#[repr(C)]
pub struct SubresourceLayout {
pub offset: DeviceSize,
pub size: DeviceSize,
pub rowPitch: DeviceSize,
pub arrayPitch: DeviceSize,
pub depthPitch: DeviceSize,
}
#[repr(C)]
pub struct ComponentMapping {
pub r: ComponentSwizzle,
pub g: ComponentSwizzle,
pub b: ComponentSwizzle,
pub a: ComponentSwizzle,
}
#[repr(C)]
pub struct ImageSubresourceRange {
pub aspectMask: ImageAspectFlags,
pub baseMipLevel: u32,
pub levelCount: u32,
pub baseArrayLayer: u32,
pub layerCount: u32,
}
#[repr(C)]
pub struct ImageViewCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: ImageViewCreateFlags,
pub image: Image,
pub viewType: ImageViewType,
pub format: Format,
pub components: ComponentMapping,
pub subresourceRange: ImageSubresourceRange,
}
#[repr(C)]
pub struct ShaderModuleCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: ShaderModuleCreateFlags,
pub codeSize: usize,
pub pCode: *const u32,
}
#[repr(C)]
pub struct PipelineCacheCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineCacheCreateFlags,
pub initialDataSize: usize,
pub pInitialData: *const c_void,
}
#[repr(C)]
pub struct SpecializationMapEntry {
pub constantID: u32,
pub offset: u32,
pub size: usize,
}
#[repr(C)]
pub struct SpecializationInfo {
pub mapEntryCount: u32,
pub pMapEntries: *const SpecializationMapEntry,
pub dataSize: usize,
pub pData: *const c_void,
}
#[repr(C)]
pub struct PipelineShaderStageCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineShaderStageCreateFlags,
pub stage: ShaderStageFlagBits,
pub module: ShaderModule,
pub pName: *const c_char,
pub pSpecializationInfo: *const SpecializationInfo,
}
#[repr(C)]
pub struct VertexInputBindingDescription {
pub binding: u32,
pub stride: u32,
pub inputRate: VertexInputRate,
}
#[repr(C)]
pub struct VertexInputAttributeDescription {
pub location: u32,
pub binding: u32,
pub format: Format,
pub offset: u32,
}
#[repr(C)]
pub struct PipelineVertexInputStateCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineVertexInputStateCreateFlags,
pub vertexBindingDescriptionCount: u32,
pub pVertexBindingDescriptions: *const VertexInputBindingDescription,
pub vertexAttributeDescriptionCount: u32,
pub pVertexAttributeDescriptions: *const VertexInputAttributeDescription,
}
#[repr(C)]
pub struct PipelineInputAssemblyStateCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineInputAssemblyStateCreateFlags,
pub topology: PrimitiveTopology,
pub primitiveRestartEnable: Bool32,
}
#[repr(C)]
pub struct PipelineTessellationStateCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineTessellationStateCreateFlags,
pub patchControlPoints: u32,
}
#[repr(C)]
pub struct Viewport {
pub x: f32,
pub y: f32,
pub width: f32,
pub height: f32,
pub minDepth: f32,
pub maxDepth: f32,
}
#[repr(C)]
pub struct Offset2D {
pub x: i32,
pub y: i32,
}
#[repr(C)]
pub struct Extent2D {
pub width: u32,
pub height: u32,
}
#[repr(C)]
pub struct Rect2D {
pub offset: Offset2D,
pub extent: Extent2D,
}
#[repr(C)]
pub struct PipelineViewportStateCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineViewportStateCreateFlags,
pub viewportCount: u32,
pub pViewports: *const Viewport,
pub scissorCount: u32,
pub pScissors: *const Rect2D,
}
#[repr(C)]
pub struct PipelineRasterizationStateCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineRasterizationStateCreateFlags,
pub depthClampEnable: Bool32,
pub rasterizerDiscardEnable: Bool32,
pub polygonMode: PolygonMode,
pub cullMode: CullModeFlags,
pub frontFace: FrontFace,
pub depthBiasEnable: Bool32,
pub depthBiasConstantFactor: f32,
pub depthBiasClamp: f32,
pub depthBiasSlopeFactor: f32,
pub lineWidth: f32,
}
#[repr(C)]
pub struct PipelineMultisampleStateCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineMultisampleStateCreateFlags,
pub rasterizationSamples: SampleCountFlagBits,
pub sampleShadingEnable: Bool32,
pub minSampleShading: f32,
pub pSampleMask: *const SampleMask,
pub alphaToCoverageEnable: Bool32,
pub alphaToOneEnable: Bool32,
}
#[repr(C)]
pub struct StencilOpState {
pub failOp: StencilOp,
pub passOp: StencilOp,
pub depthFailOp: StencilOp,
pub compareOp: CompareOp,
pub compareMask: u32,
pub writeMask: u32,
pub reference: u32,
}
#[repr(C)]
pub struct PipelineDepthStencilStateCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineDepthStencilStateCreateFlags,
pub depthTestEnable: Bool32,
pub depthWriteEnable: Bool32,
pub depthCompareOp: CompareOp,
pub depthBoundsTestEnable: Bool32,
pub stencilTestEnable: Bool32,
pub front: StencilOpState,
pub back: StencilOpState,
pub minDepthBounds: f32,
pub maxDepthBounds: f32,
}
#[repr(C)]
pub struct PipelineColorBlendAttachmentState {
pub blendEnable: Bool32,
pub srcColorBlendFactor: BlendFactor,
pub dstColorBlendFactor: BlendFactor,
pub colorBlendOp: BlendOp,
pub srcAlphaBlendFactor: BlendFactor,
pub dstAlphaBlendFactor: BlendFactor,
pub alphaBlendOp: BlendOp,
pub colorWriteMask: ColorComponentFlags,
}
#[repr(C)]
pub struct PipelineColorBlendStateCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineColorBlendStateCreateFlags,
pub logicOpEnable: Bool32,
pub logicOp: LogicOp,
pub attachmentCount: u32,
pub pAttachments: *const PipelineColorBlendAttachmentState,
pub blendConstants: [f32; 4],
}
#[repr(C)]
pub struct PipelineDynamicStateCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineDynamicStateCreateFlags,
pub dynamicStateCount: u32,
pub pDynamicStates: *const DynamicState,
}
#[repr(C)]
pub struct GraphicsPipelineCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineCreateFlags,
pub stageCount: u32,
pub pStages: *const PipelineShaderStageCreateInfo,
pub pVertexInputState: *const PipelineVertexInputStateCreateInfo,
pub pInputAssemblyState: *const PipelineInputAssemblyStateCreateInfo,
pub pTessellationState: *const PipelineTessellationStateCreateInfo,
pub pViewportState: *const PipelineViewportStateCreateInfo,
pub pRasterizationState: *const PipelineRasterizationStateCreateInfo,
pub pMultisampleState: *const PipelineMultisampleStateCreateInfo,
pub pDepthStencilState: *const PipelineDepthStencilStateCreateInfo,
pub pColorBlendState: *const PipelineColorBlendStateCreateInfo,
pub pDynamicState: *const PipelineDynamicStateCreateInfo,
pub layout: PipelineLayout,
pub renderPass: RenderPass,
pub subpass: u32,
pub basePipelineHandle: Pipeline,
pub basePipelineIndex: i32,
}
#[repr(C)]
pub struct ComputePipelineCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineCreateFlags,
pub stage: PipelineShaderStageCreateInfo,
pub layout: PipelineLayout,
pub basePipelineHandle: Pipeline,
pub basePipelineIndex: i32,
}
#[repr(C)]
pub struct PushConstantRange {
pub stageFlags: ShaderStageFlags,
pub offset: u32,
pub size: u32,
}
#[repr(C)]
pub struct PipelineLayoutCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: PipelineLayoutCreateFlags,
pub setLayoutCount: u32,
pub pSetLayouts: *const DescriptorSetLayout,
pub pushConstantRangeCount: u32,
pub pPushConstantRanges: *const PushConstantRange,
}
#[repr(C)]
pub struct SamplerCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: SamplerCreateFlags,
pub magFilter: Filter,
pub minFilter: Filter,
pub mipmapMode: SamplerMipmapMode,
pub addressModeU: SamplerAddressMode,
pub addressModeV: SamplerAddressMode,
pub addressModeW: SamplerAddressMode,
pub mipLodBias: f32,
pub anisotropyEnable: Bool32,
pub maxAnisotropy: f32,
pub compareEnable: Bool32,
pub compareOp: CompareOp,
pub minLod: f32,
pub maxLod: f32,
pub borderColor: BorderColor,
pub unnormalizedCoordinates: Bool32,
}
#[repr(C)]
pub struct DescriptorSetLayoutBinding {
pub binding: u32,
pub descriptorType: DescriptorType,
pub descriptorCount: u32,
pub stageFlags: ShaderStageFlags,
pub pImmutableSamplers: *const Sampler,
}
#[repr(C)]
pub struct DescriptorSetLayoutCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: DescriptorSetLayoutCreateFlags,
pub bindingCount: u32,
pub pBindings: *const DescriptorSetLayoutBinding,
}
#[repr(C)]
pub struct DescriptorPoolSize {
pub ty: DescriptorType,
pub descriptorCount: u32,
}
#[repr(C)]
pub struct DescriptorPoolCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: DescriptorPoolCreateFlags,
pub maxSets: u32,
pub poolSizeCount: u32,
pub pPoolSizes: *const DescriptorPoolSize,
}
#[repr(C)]
pub struct DescriptorSetAllocateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub descriptorPool: DescriptorPool,
pub descriptorSetCount: u32,
pub pSetLayouts: *const DescriptorSetLayout,
}
#[repr(C)]
pub struct DescriptorImageInfo {
pub sampler: Sampler,
pub imageView: ImageView,
pub imageLayout: ImageLayout,
}
#[repr(C)]
pub struct DescriptorBufferInfo {
pub buffer: Buffer,
pub offset: DeviceSize,
pub range: DeviceSize,
}
#[repr(C)]
pub struct WriteDescriptorSet {
pub sType: StructureType,
pub pNext: *const c_void,
pub dstSet: DescriptorSet,
pub dstBinding: u32,
pub dstArrayElement: u32,
pub descriptorCount: u32,
pub descriptorType: DescriptorType,
pub pImageInfo: *const DescriptorImageInfo,
pub pBufferInfo: *const DescriptorBufferInfo,
pub pTexelBufferView: *const BufferView,
}
#[repr(C)]
pub struct CopyDescriptorSet {
pub sType: StructureType,
pub pNext: *const c_void,
pub srcSet: DescriptorSet,
pub srcBinding: u32,
pub srcArrayElement: u32,
pub dstSet: DescriptorSet,
pub dstBinding: u32,
pub dstArrayElement: u32,
pub descriptorCount: u32,
}
#[repr(C)]
pub struct FramebufferCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: FramebufferCreateFlags,
pub renderPass: RenderPass,
pub attachmentCount: u32,
pub pAttachments: *const ImageView,
pub width: u32,
pub height: u32,
pub layers: u32,
}
#[repr(C)]
pub struct AttachmentDescription {
pub flags: AttachmentDescriptionFlags,
pub format: Format,
pub samples: SampleCountFlagBits,
pub loadOp: AttachmentLoadOp,
pub storeOp: AttachmentStoreOp,
pub stencilLoadOp: AttachmentLoadOp,
pub stencilStoreOp: AttachmentStoreOp,
pub initialLayout: ImageLayout,
pub finalLayout: ImageLayout,
}
#[repr(C)]
pub struct AttachmentReference {
pub attachment: u32,
pub layout: ImageLayout,
}
#[repr(C)]
pub struct SubpassDescription {
pub flags: SubpassDescriptionFlags,
pub pipelineBindPoint: PipelineBindPoint,
pub inputAttachmentCount: u32,
pub pInputAttachments: *const AttachmentReference,
pub colorAttachmentCount: u32,
pub pColorAttachments: *const AttachmentReference,
pub pResolveAttachments: *const AttachmentReference,
pub pDepthStencilAttachment: *const AttachmentReference,
pub preserveAttachmentCount: u32,
pub pPreserveAttachments: *const u32,
}
#[repr(C)]
pub struct SubpassDependency {
pub srcSubpass: u32,
pub dstSubpass: u32,
pub srcStageMask: PipelineStageFlags,
pub dstStageMask: PipelineStageFlags,
pub srcAccessMask: AccessFlags,
pub dstAccessMask: AccessFlags,
pub dependencyFlags: DependencyFlags,
}
#[repr(C)]
pub struct RenderPassCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: RenderPassCreateFlags,
pub attachmentCount: u32,
pub pAttachments: *const AttachmentDescription,
pub subpassCount: u32,
pub pSubpasses: *const SubpassDescription,
pub dependencyCount: u32,
pub pDependencies: *const SubpassDependency,
}
#[repr(C)]
pub struct CommandPoolCreateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: CommandPoolCreateFlags,
pub queueFamilyIndex: u32,
}
#[repr(C)]
pub struct CommandBufferAllocateInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub commandPool: CommandPool,
pub level: CommandBufferLevel,
pub commandBufferCount: u32,
}
#[repr(C)]
pub struct CommandBufferInheritanceInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub renderPass: RenderPass,
pub subpass: u32,
pub framebuffer: Framebuffer,
pub occlusionQueryEnable: Bool32,
pub queryFlags: QueryControlFlags,
pub pipelineStatistics: QueryPipelineStatisticFlags,
}
#[repr(C)]
pub struct CommandBufferBeginInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: CommandBufferUsageFlags,
pub pInheritanceInfo: *const CommandBufferInheritanceInfo,
}
#[repr(C)]
pub struct BufferCopy {
pub srcOffset: DeviceSize,
pub dstOffset: DeviceSize,
pub size: DeviceSize,
}
#[repr(C)]
pub struct ImageSubresourceLayers {
pub aspectMask: ImageAspectFlags,
pub mipLevel: u32,
pub baseArrayLayer: u32,
pub layerCount: u32,
}
#[repr(C)]
pub struct ImageCopy {
pub srcSubresource: ImageSubresourceLayers,
pub srcOffset: Offset3D,
pub dstSubresource: ImageSubresourceLayers,
pub dstOffset: Offset3D,
pub extent: Extent3D,
}
#[repr(C)]
pub struct ImageBlit {
pub srcSubresource: ImageSubresourceLayers,
pub srcOffsets: [Offset3D; 2],
pub dstSubresource: ImageSubresourceLayers,
pub dstOffsets: [Offset3D; 2],
}
#[repr(C)]
pub struct BufferImageCopy {
pub bufferOffset: DeviceSize,
pub bufferRowLength: u32,
pub bufferImageHeight: u32,
pub imageSubresource: ImageSubresourceLayers,
pub imageOffset: Offset3D,
pub imageExtent: Extent3D,
}
#[repr(C)]
#[derive(Copy, Clone)]
pub union ClearColorValue {
pub float32: [f32; 4],
pub int32: [i32; 4],
pub uint32: [u32; 4]
}
#[repr(C)]
#[derive(Copy, Clone)]
pub struct ClearDepthStencilValue {
pub depth: f32,
pub stencil: u32,
}
#[repr(C)]
pub union ClearValue {
pub color: ClearColorValue,
pub depthStencil: ClearDepthStencilValue
}
#[repr(C)]
pub struct ClearAttachment {
pub aspectMask: ImageAspectFlags,
pub colorAttachment: u32,
pub clearValue: ClearValue,
}
#[repr(C)]
pub struct ClearRect {
pub rect: Rect2D,
pub baseArrayLayer: u32,
pub layerCount: u32,
}
#[repr(C)]
pub struct ImageResolve {
pub srcSubresource: ImageSubresourceLayers,
pub srcOffset: Offset3D,
pub dstSubresource: ImageSubresourceLayers,
pub dstOffset: Offset3D,
pub extent: Extent3D,
}
#[repr(C)]
pub struct MemoryBarrier {
pub sType: StructureType,
pub pNext: *const c_void,
pub srcAccessMask: AccessFlags,
pub dstAccessMask: AccessFlags,
}
#[repr(C)]
pub struct BufferMemoryBarrier {
pub sType: StructureType,
pub pNext: *const c_void,
pub srcAccessMask: AccessFlags,
pub dstAccessMask: AccessFlags,
pub srcQueueFamilyIndex: u32,
pub dstQueueFamilyIndex: u32,
pub buffer: Buffer,
pub offset: DeviceSize,
pub size: DeviceSize,
}
#[repr(C)]
pub struct ImageMemoryBarrier {
pub sType: StructureType,
pub pNext: *const c_void,
pub srcAccessMask: AccessFlags,
pub dstAccessMask: AccessFlags,
pub oldLayout: ImageLayout,
pub newLayout: ImageLayout,
pub srcQueueFamilyIndex: u32,
pub dstQueueFamilyIndex: u32,
pub image: Image,
pub subresourceRange: ImageSubresourceRange,
}
#[repr(C)]
pub struct RenderPassBeginInfo {
pub sType: StructureType,
pub pNext: *const c_void,
pub renderPass: RenderPass,
pub framebuffer: Framebuffer,
pub renderArea: Rect2D,
pub clearValueCount: u32,
pub pClearValues: *const ClearValue,
}
#[repr(C)]
pub struct DispatchIndirectCommand {
pub x: u32,
pub y: u32,
pub z: u32,
}
#[repr(C)]
pub struct DrawIndexedIndirectCommand {
pub indexCount: u32,
pub instanceCount: u32,
pub firstIndex: u32,
pub vertexOffset: i32,
pub firstInstance: u32,
}
#[repr(C)]
pub struct DrawIndirectCommand {
pub vertexCount: u32,
pub instanceCount: u32,
pub firstVertex: u32,
pub firstInstance: u32,
}
#[repr(C)]
pub struct SurfaceCapabilitiesKHR {
pub minImageCount: u32,
pub maxImageCount: u32,
pub currentExtent: Extent2D,
pub minImageExtent: Extent2D,
pub maxImageExtent: Extent2D,
pub maxImageArrayLayers: u32,
pub supportedTransforms: SurfaceTransformFlagsKHR,
pub currentTransform: SurfaceTransformFlagBitsKHR,
pub supportedCompositeAlpha: CompositeAlphaFlagsKHR,
pub supportedUsageFlags: ImageUsageFlags,
}
#[repr(C)]
pub struct SurfaceFormatKHR {
pub format: Format,
pub colorSpace: ColorSpaceKHR,
}
pub type SwapchainCreateFlagsKHR = Flags;
#[repr(C)]
pub struct SwapchainCreateInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: SwapchainCreateFlagsKHR,
pub surface: SurfaceKHR,
pub minImageCount: u32,
pub imageFormat: Format,
pub imageColorSpace: ColorSpaceKHR,
pub imageExtent: Extent2D,
pub imageArrayLayers: u32,
pub imageUsage: ImageUsageFlags,
pub imageSharingMode: SharingMode,
pub queueFamilyIndexCount: u32,
pub pQueueFamilyIndices: *const u32,
pub preTransform: SurfaceTransformFlagBitsKHR,
pub compositeAlpha: CompositeAlphaFlagBitsKHR,
pub presentMode: PresentModeKHR,
pub clipped: Bool32,
pub oldSwapchain: SwapchainKHR,
}
#[repr(C)]
pub struct PresentInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub waitSemaphoreCount: u32,
pub pWaitSemaphores: *const Semaphore,
pub swapchainCount: u32,
pub pSwapchains: *const SwapchainKHR,
pub pImageIndices: *const u32,
pub pResults: *mut Result,
}
#[repr(C)]
pub struct DisplayPropertiesKHR {
pub display: DisplayKHR,
pub displayName: *const c_char,
pub physicalDimensions: Extent2D,
pub physicalResolution: Extent2D,
pub supportedTransforms: SurfaceTransformFlagsKHR,
pub planeReorderPossible: Bool32,
pub persistentContent: Bool32,
}
#[repr(C)]
pub struct DisplayModeParametersKHR {
pub visibleRegion: Extent2D,
pub refreshRate: u32,
}
#[repr(C)]
pub struct DisplayModePropertiesKHR {
pub displayMode: DisplayModeKHR,
pub parameters: DisplayModeParametersKHR,
}
#[repr(C)]
pub struct DisplayModeCreateInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: DisplayModeCreateFlagsKHR,
pub parameters: DisplayModeParametersKHR,
}
#[repr(C)]
pub struct DisplayPlaneCapabilitiesKHR {
pub supportedAlpha: DisplayPlaneAlphaFlagsKHR,
pub minSrcPosition: Offset2D,
pub maxSrcPosition: Offset2D,
pub minSrcExtent: Extent2D,
pub maxSrcExtent: Extent2D,
pub minDstPosition: Offset2D,
pub maxDstPosition: Offset2D,
pub minDstExtent: Extent2D,
pub maxDstExtent: Extent2D,
}
#[repr(C)]
pub struct DisplayPlanePropertiesKHR {
pub currentDisplay: DisplayKHR,
pub currentStackIndex: u32,
}
#[repr(C)]
pub struct DisplaySurfaceCreateInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: DisplaySurfaceCreateFlagsKHR,
pub displayMode: DisplayModeKHR,
pub planeIndex: u32,
pub planeStackIndex: u32,
pub transform: SurfaceTransformFlagBitsKHR,
pub globalAlpha: f32,
pub alphaMode: DisplayPlaneAlphaFlagBitsKHR,
pub imageExtent: Extent2D,
}
#[repr(C)]
pub struct DisplayPresentInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub srcRect: Rect2D,
pub dstRect: Rect2D,
pub persistent: Bool32,
}
pub type XlibSurfaceCreateFlagsKHR = Flags;
#[repr(C)]
pub struct XlibSurfaceCreateInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: XlibSurfaceCreateFlagsKHR,
pub dpy: *mut c_void,
pub window: c_ulong,
}
pub type XcbSurfaceCreateFlagsKHR = Flags;
#[repr(C)]
pub struct XcbSurfaceCreateInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: XcbSurfaceCreateFlagsKHR,
pub connection: *const c_void,
pub window: u32,
}
pub type WaylandSurfaceCreateFlagsKHR = Flags;
#[repr(C)]
pub struct WaylandSurfaceCreateInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: WaylandSurfaceCreateFlagsKHR,
pub display: *mut c_void,
pub surface: *mut c_void,
}
pub type AndroidSurfaceCreateFlagsKHR = Flags;
#[repr(C)]
pub struct AndroidSurfaceCreateInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: AndroidSurfaceCreateFlagsKHR,
pub window: *mut c_void,
}
pub type Win32SurfaceCreateFlagsKHR = Flags;
#[repr(C)]
pub struct Win32SurfaceCreateInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: Win32SurfaceCreateFlagsKHR,
pub hinstance: *mut c_void,
pub hwnd: *mut c_void,
}
#[repr(C)]
pub struct DebugReportCallbackCreateInfoEXT {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: DebugReportFlagsEXT,
pub pfnCallback: PFN_vkDebugReportCallbackEXT,
pub pUserData: *mut c_void,
}
#[repr(C)]
pub struct IOSSurfaceCreateInfoMVK {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: IOSSurfaceCreateFlagsMVK,
pub pView: *const c_void,
}
#[repr(C)]
pub struct MacOSSurfaceCreateInfoMVK {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: MacOSSurfaceCreateFlagsMVK,
pub pView: *const c_void,
}
#[repr(C)]
pub struct MVKDeviceConfiguration {
pub supportDisplayContentsScale: Bool32,
pub imageFlipY: Bool32,
pub shaderConversionFlipFragmentY: Bool32,
pub shaderConversionFlipVertexY: Bool32,
pub shaderConversionLogging: Bool32,
pub performanceTracking: Bool32,
pub performanceLoggingFrameCount: u32,
}
#[repr(C)]
pub struct MVKPhysicalDeviceMetalFeatures {
pub depthClipMode: Bool32,
pub indirectDrawing: Bool32,
pub baseVertexInstanceDrawing: Bool32,
pub maxVertexBufferCount: u32,
pub maxFragmentBufferCount: u32,
pub bufferAlignment: DeviceSize,
pub pushConstantsAlignment: DeviceSize,
}
#[repr(C)]
pub struct MVKSwapchainPerformance {
pub lastFrameInterval: c_double,
pub averageFrameInterval: c_double,
pub averageFramesPerSecond: c_double,
}
#[repr(C)]
pub struct PhysicalDeviceFeatures2KHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub features: PhysicalDeviceFeatures,
}
#[repr(C)]
pub struct PhysicalDeviceProperties2KHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub properties: PhysicalDeviceProperties,
}
#[repr(C)]
pub struct FormatProperties2KHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub formatProperties: FormatProperties,
}
#[repr(C)]
pub struct ImageFormatProperties2KHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub imageFormatProperties: ImageFormatProperties,
}
#[repr(C)]
pub struct PhysicalDeviceImageFormatInfo2KHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub format: Format,
pub imageType: ImageType,
pub tiling: ImageTiling,
pub usage: ImageUsageFlags,
pub flags: ImageCreateFlags,
}
#[repr(C)]
pub struct QueueFamilyProperties2KHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub queueFamilyProperties: QueueFamilyProperties,
}
#[repr(C)]
pub struct PhysicalDeviceMemoryProperties2KHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub memoryProperties: PhysicalDeviceMemoryProperties,
}
#[repr(C)]
pub struct SparseImageFormatProperties2KHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub properties: SparseImageFormatProperties,
}
#[repr(C)]
pub struct PhysicalDeviceSparseImageFormatInfo2KHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub format: Format,
pub imageType: ImageType,
pub samples: SampleCountFlagBits,
pub usage: ImageUsageFlags,
pub tiling: ImageTiling,
}
pub type ViSurfaceCreateFlagsNN = Flags;
#[repr(C)]
pub struct ViSurfaceCreateInfoNN {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: ViSurfaceCreateFlagsNN,
pub window: *const c_void,
}
#[repr(C)]
pub struct PhysicalDevicePushDescriptorPropertiesKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub maxPushDescriptors: u32,
}
#[repr(C)]
pub struct DescriptorUpdateTemplateEntryKHR {
pub dstBinding: u32,
pub dstArrayElement: u32,
pub descriptorCount: u32,
pub descriptorType: DescriptorType,
pub offset: usize,
pub stride: usize,
}
#[repr(C)]
pub struct DescriptorUpdateTemplateCreateInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub flags: DescriptorUpdateTemplateCreateFlagsKHR,
pub descriptorUpdateEntryCount: u32,
pub pDescriptorUpdateEntries: *const DescriptorUpdateTemplateEntryKHR,
pub templateType: DescriptorUpdateTemplateTypeKHR,
pub descriptorSetLayout: DescriptorSetLayout,
pub pipelineBindPoint: PipelineBindPoint,
pub pipelineLayout: PipelineLayout,
pub set: u32,
}
#[repr(C)]
pub struct MemoryDedicatedRequirementsKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub prefersDedicatedAllocation: Bool32,
pub requiresDedicatedAllocation: Bool32,
}
#[repr(C)]
pub struct MemoryDedicatedAllocateInfoKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub image: Image,
pub buffer: Buffer,
}
#[repr(C)]
pub struct BufferMemoryRequirementsInfo2KHR {
pub sType: StructureType,
pub pNext: *mut c_void,
pub buffer: Buffer,
}
#[repr(C)]
pub struct ImageMemoryRequirementsInfo2KHR {
pub sType: StructureType,
pub pNext: *mut c_void,
pub image: Image,
}
#[repr(C)]
pub struct MemoryRequirements2KHR {
pub sType: StructureType,
pub pNext: *mut c_void,
pub memoryRequirements: MemoryRequirements,
}
#[repr(C)]
pub struct RectLayerKHR {
pub offset: Offset2D,
pub extent: Extent2D,
pub layer: u32,
}
#[repr(C)]
pub struct PresentRegionKHR {
pub rectangleCount: u32,
pub pRectangles: *const RectLayerKHR,
}
#[repr(C)]
pub struct PresentRegionsKHR {
pub sType: StructureType,
pub pNext: *const c_void,
pub swapchainCount: u32,
pub pRegions: *const PresentRegionKHR,
}
#[repr(C)]
pub struct DebugMarkerObjectNameInfoEXT {
pub sType: StructureType,
pub pNext: *const c_void,
pub objectType: DebugReportObjectTypeEXT,
pub object: u64,
pub name: *const c_char,
}
#[repr(C)]
pub struct DebugMarkerObjectTagInfoEXT {
pub sType: StructureType,
pub pNext: *const c_void,
pub objectType: DebugReportObjectTypeEXT,
pub object: u64,
pub tagName: u64,
pub tagSize: usize,
pub tag: *const c_void,
}
#[repr(C)]
pub struct DebugMarkerMarkerInfoEXT {
pub sType: StructureType,
pub pNext: *const c_void,
pub pMarkerName: *const c_char,
pub color: [f32; 4],
}
macro_rules! ptrs {
($struct_name:ident, { $($name:ident => ($($param_n:ident: $param_ty:ty),*) -> $ret:ty,)+ }) => (
pub struct $struct_name {
$(
pub $name: extern "system" fn($($param_ty),*) -> $ret,
)+
}
impl fmt::Debug for $struct_name {
#[inline]
fn fmt(&self, fmt: &mut fmt::Formatter) -> ::std::result::Result<(), fmt::Error> {
write!(fmt, "<Vulkan functions>")
}
}
unsafe impl Send for $struct_name {}
unsafe impl Sync for $struct_name {}
impl $struct_name {
pub fn load<F>(mut f: F) -> $struct_name
where F: FnMut(&CStr) -> *const c_void
{
$struct_name {
$(
$name: unsafe {
extern "system" fn $name($(_: $param_ty),*) { panic!("function pointer `{}` not loaded", stringify!($name)) }
let name = CStr::from_bytes_with_nul_unchecked(concat!("vk", stringify!($name), "\0").as_bytes());
let val = f(name);
if val.is_null() { mem::transmute($name as *const ()) } else { mem::transmute(val) }
},
)+
}
}
$(
#[inline]
pub unsafe fn $name(&self $(, $param_n: $param_ty)*) -> $ret {
let ptr = self.$name;
ptr($($param_n),*)
}
)+
}
)
}
ptrs!(Static, {
GetInstanceProcAddr => (instance: Instance, pName: *const c_char) -> PFN_vkVoidFunction,
});
ptrs!(EntryPoints, {
CreateInstance => (pCreateInfo: *const InstanceCreateInfo, pAllocator: *const AllocationCallbacks, pInstance: *mut Instance) -> Result,
EnumerateInstanceExtensionProperties => (pLayerName: *const c_char, pPropertyCount: *mut u32, pProperties: *mut ExtensionProperties) -> Result,
EnumerateInstanceLayerProperties => (pPropertyCount: *mut u32, pProperties: *mut LayerProperties) -> Result,
});
ptrs!(InstancePointers, {
DestroyInstance => (instance: Instance, pAllocator: *const AllocationCallbacks) -> (),
GetDeviceProcAddr => (device: Device, pName: *const c_char) -> PFN_vkVoidFunction,
EnumeratePhysicalDevices => (instance: Instance, pPhysicalDeviceCount: *mut u32, pPhysicalDevices: *mut PhysicalDevice) -> Result,
EnumerateDeviceExtensionProperties => (physicalDevice: PhysicalDevice, pLayerName: *const c_char, pPropertyCount: *mut u32, pProperties: *mut ExtensionProperties) -> Result,
EnumerateDeviceLayerProperties => (physicalDevice: PhysicalDevice, pPropertyCount: *mut u32, pProperties: *mut LayerProperties) -> Result,
CreateDevice => (physicalDevice: PhysicalDevice, pCreateInfo: *const DeviceCreateInfo, pAllocator: *const AllocationCallbacks, pDevice: *mut Device) -> Result,
GetPhysicalDeviceFeatures => (physicalDevice: PhysicalDevice, pFeatures: *mut PhysicalDeviceFeatures) -> (),
GetPhysicalDeviceFormatProperties => (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: *mut FormatProperties) -> (),
GetPhysicalDeviceImageFormatProperties => (physicalDevice: PhysicalDevice, format: Format, ty: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, pImageFormatProperties: *mut ImageFormatProperties) -> Result,
GetPhysicalDeviceProperties => (physicalDevice: PhysicalDevice, pProperties: *mut PhysicalDeviceProperties) -> (),
GetPhysicalDeviceQueueFamilyProperties => (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: *mut u32, pQueueFamilyProperties: *mut QueueFamilyProperties) -> (),
GetPhysicalDeviceMemoryProperties => (physicalDevice: PhysicalDevice, pMemoryProperties: *mut PhysicalDeviceMemoryProperties) -> (),
GetPhysicalDeviceSparseImageFormatProperties => (physicalDevice: PhysicalDevice, format: Format, ty: ImageType, samples: SampleCountFlagBits, usage: ImageUsageFlags, tiling: ImageTiling, pPropertyCount: *mut u32, pProperties: *mut SparseImageFormatProperties) -> (),
DestroySurfaceKHR => (instance: Instance, surface: SurfaceKHR, pAllocator: *const AllocationCallbacks) -> (),
CreateXlibSurfaceKHR => (instance: Instance, pCreateInfo: *const XlibSurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
GetPhysicalDeviceXlibPresentationSupportKHR => (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, dpy: *mut c_void, visualID: u32) -> Bool32,
CreateXcbSurfaceKHR => (instance: Instance, pCreateInfo: *const XcbSurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
GetPhysicalDeviceXcbPresentationSupportKHR => (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, connection: *mut c_void, visual_id: u32 ) -> Bool32,
CreateWaylandSurfaceKHR => (instance: Instance, pCreateInfo: *const WaylandSurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
GetPhysicalDeviceWaylandPresentationSupportKHR => (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, display: *mut c_void) -> Bool32,
CreateAndroidSurfaceKHR => (instance: Instance, pCreateInfo: *const AndroidSurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
CreateWin32SurfaceKHR => (instance: Instance, pCreateInfo: *const Win32SurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
GetPhysicalDeviceWin32PresentationSupportKHR => (physicalDevice: PhysicalDevice, queueFamilyIndex: u32) -> Bool32,
GetPhysicalDeviceDisplayPropertiesKHR => (physicalDevice: PhysicalDevice, pPropertyCount: *mut u32, pProperties: *mut DisplayPropertiesKHR) -> Result,
GetPhysicalDeviceDisplayPlanePropertiesKHR => (physicalDevice: PhysicalDevice, pPropertyCount: *mut u32, pProperties: *mut DisplayPlanePropertiesKHR) -> Result,
GetDisplayPlaneSupportedDisplaysKHR => (physicalDevice: PhysicalDevice, planeIndex: u32, pDisplayCount: *mut u32, pDisplays: *mut DisplayKHR) -> Result,
GetDisplayModePropertiesKHR => (physicalDevice: PhysicalDevice, display: DisplayKHR, pPropertyCount: *mut u32, pProperties: *mut DisplayModePropertiesKHR) -> Result,
CreateDisplayModeKHR => (physicalDevice: PhysicalDevice, display: DisplayKHR, pCreateInfo: *const DisplayModeCreateInfoKHR, pAllocator: *const AllocationCallbacks, pMode: *mut DisplayModeKHR) -> Result,
GetDisplayPlaneCapabilitiesKHR => (physicalDevice: PhysicalDevice, mode: DisplayModeKHR, planeIndex: u32, pCapabilities: *mut DisplayPlaneCapabilitiesKHR) -> Result,
CreateDisplayPlaneSurfaceKHR => (instance: Instance, pCreateInfo: *const DisplaySurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
GetPhysicalDeviceSurfaceSupportKHR => (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, surface: SurfaceKHR, pSupported: *mut Bool32) -> Result,
GetPhysicalDeviceSurfaceCapabilitiesKHR => (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceCapabilities: *mut SurfaceCapabilitiesKHR) -> Result,
GetPhysicalDeviceSurfaceFormatsKHR => (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceFormatCount: *mut u32, pSurfaceFormats: *mut SurfaceFormatKHR) -> Result,
GetPhysicalDeviceSurfacePresentModesKHR => (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pPresentModeCount: *mut u32, pPresentModes: *mut PresentModeKHR) -> Result,
CreateDebugReportCallbackEXT => (instance: Instance, pCreateInfo: *const DebugReportCallbackCreateInfoEXT, pAllocator: *const AllocationCallbacks, pCallback: *mut DebugReportCallbackEXT) -> Result,
DestroyDebugReportCallbackEXT => (instance: Instance, callback: DebugReportCallbackEXT, pAllocator: *const AllocationCallbacks) -> (),
DebugReportMessageEXT => (instance: Instance, flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: usize, messageCode: i32, pLayerPrefix: *const c_char, pMessage: *const c_char) -> (),
CreateIOSSurfaceMVK => (instance: Instance, pCreateInfo: *const IOSSurfaceCreateInfoMVK, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
CreateMacOSSurfaceMVK => (instance: Instance, pCreateInfo: *const MacOSSurfaceCreateInfoMVK, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
ActivateMoltenVKLicenseMVK => (licenseID: *const c_char, licenseKey: *const c_char, acceptLicenseTermsAndConditions: Bool32) -> Result,
ActivateMoltenVKLicensesMVK => () -> Result,
GetMoltenVKDeviceConfigurationMVK => (device: Device, pConfiguration: *mut MVKDeviceConfiguration) -> Result,
SetMoltenVKDeviceConfigurationMVK => (device: Device, pConfiguration: *mut MVKDeviceConfiguration) -> Result,
GetPhysicalDeviceMetalFeaturesMVK => (physicalDevice: PhysicalDevice, pMetalFeatures: *mut MVKPhysicalDeviceMetalFeatures) -> Result,
GetSwapchainPerformanceMVK => (device: Device, swapchain: SwapchainKHR, pSwapchainPerf: *mut MVKSwapchainPerformance) -> Result,
CreateViSurfaceNN => (instance: Instance, pCreateInfo: *const ViSurfaceCreateInfoNN, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
GetPhysicalDeviceFeatures2KHR => (physicalDevice: PhysicalDevice, pFeatures: *mut PhysicalDeviceFeatures2KHR) -> (),
GetPhysicalDeviceProperties2KHR => (physicalDevice: PhysicalDevice, pProperties: *mut PhysicalDeviceProperties2KHR) -> (),
GetPhysicalDeviceFormatProperties2KHR => (physicalDevice: PhysicalDevice, pFormatProperties: *mut FormatProperties2KHR) -> (),
GetPhysicalDeviceImageFormatProperties2KHR => (physicalDevice: PhysicalDevice, pImageFormatInfo: *const PhysicalDeviceImageFormatInfo2KHR, pImageFormatProperties: *mut ImageFormatProperties2KHR) -> Result,
GetPhysicalDeviceQueueFamilyProperties2KHR => (physicalDevice: PhysicalDevice, pQueueFamilyPropertiesCount: *mut u32, pQueueFamilyProperties: *mut QueueFamilyProperties2KHR) -> (),
GetPhysicalDeviceMemoryProperties2KHR => (physicalDevice: PhysicalDevice, pMemoryProperties: *mut PhysicalDeviceMemoryProperties2KHR) -> (),
GetPhysicalDeviceSparseImageFormatProperties2KHR => (physicalDevice: PhysicalDevice, pFormatInfo: *const PhysicalDeviceSparseImageFormatInfo2KHR, pPropertyCount: *mut u32, pProperties: *mut SparseImageFormatProperties2KHR) -> (),
});
ptrs!(DevicePointers, {
DestroyDevice => (device: Device, pAllocator: *const AllocationCallbacks) -> (),
GetDeviceQueue => (device: Device, queueFamilyIndex: u32, queueIndex: u32, pQueue: *mut Queue) -> (),
QueueSubmit => (queue: Queue, submitCount: u32, pSubmits: *const SubmitInfo, fence: Fence) -> Result,
QueueWaitIdle => (queue: Queue) -> Result,
DeviceWaitIdle => (device: Device) -> Result,
AllocateMemory => (device: Device, pAllocateInfo: *const MemoryAllocateInfo, pAllocator: *const AllocationCallbacks, pMemory: *mut DeviceMemory) -> Result,
FreeMemory => (device: Device, memory: DeviceMemory, pAllocator: *const AllocationCallbacks) -> (),
MapMemory => (device: Device, memory: DeviceMemory, offset: DeviceSize, size: DeviceSize, flags: MemoryMapFlags, ppData: *mut *mut c_void) -> Result,
UnmapMemory => (device: Device, memory: DeviceMemory) -> (),
FlushMappedMemoryRanges => (device: Device, memoryRangeCount: u32, pMemoryRanges: *const MappedMemoryRange) -> Result,
InvalidateMappedMemoryRanges => (device: Device, memoryRangeCount: u32, pMemoryRanges: *const MappedMemoryRange) -> Result,
GetDeviceMemoryCommitment => (device: Device, memory: DeviceMemory, pCommittedMemoryInBytes: *mut DeviceSize) -> (),
BindBufferMemory => (device: Device, buffer: Buffer, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result,
BindImageMemory => (device: Device, image: Image, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result,
GetBufferMemoryRequirements => (device: Device, buffer: Buffer, pMemoryRequirements: *mut MemoryRequirements) -> (),
GetImageMemoryRequirements => (device: Device, image: Image, pMemoryRequirements: *mut MemoryRequirements) -> (),
GetImageSparseMemoryRequirements => (device: Device, image: Image, pSparseMemoryRequirementCount: *mut u32, pSparseMemoryRequirements: *mut SparseImageMemoryRequirements) -> (),
QueueBindSparse => (queue: Queue, bindInfoCount: u32, pBindInfo: *const BindSparseInfo, fence: Fence) -> Result,
CreateFence => (device: Device, pCreateInfo: *const FenceCreateInfo, pAllocator: *const AllocationCallbacks, pFence: *mut Fence) -> Result,
DestroyFence => (device: Device, fence: Fence, pAllocator: *const AllocationCallbacks) -> (),
ResetFences => (device: Device, fenceCount: u32, pFences: *const Fence) -> Result,
GetFenceStatus => (device: Device, fence: Fence) -> Result,
WaitForFences => (device: Device, fenceCount: u32, pFences: *const Fence, waitAll: Bool32, timeout: u64) -> Result,
CreateSemaphore => (device: Device, pCreateInfo: *const SemaphoreCreateInfo, pAllocator: *const AllocationCallbacks, pSemaphore: *mut Semaphore) -> Result,
DestroySemaphore => (device: Device, semaphore: Semaphore, pAllocator: *const AllocationCallbacks) -> (),
CreateEvent => (device: Device, pCreateInfo: *const EventCreateInfo, pAllocator: *const AllocationCallbacks, pEvent: *mut Event) -> Result,
DestroyEvent => (device: Device, event: Event, pAllocator: *const AllocationCallbacks) -> (),
GetEventStatus => (device: Device, event: Event) -> Result,
SetEvent => (device: Device, event: Event) -> Result,
ResetEvent => (device: Device, event: Event) -> Result,
CreateQueryPool => (device: Device, pCreateInfo: *const QueryPoolCreateInfo, pAllocator: *const AllocationCallbacks, pQueryPool: *mut QueryPool) -> Result,
DestroyQueryPool => (device: Device, queryPool: QueryPool, pAllocator: *const AllocationCallbacks) -> (),
GetQueryPoolResults => (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dataSize: usize, pData: *mut c_void, stride: DeviceSize, flags: QueryResultFlags) -> Result,
CreateBuffer => (device: Device, pCreateInfo: *const BufferCreateInfo, pAllocator: *const AllocationCallbacks, pBuffer: *mut Buffer) -> Result,
DestroyBuffer => (device: Device, buffer: Buffer, pAllocator: *const AllocationCallbacks) -> (),
CreateBufferView => (device: Device, pCreateInfo: *const BufferViewCreateInfo, pAllocator: *const AllocationCallbacks, pView: *mut BufferView) -> Result,
DestroyBufferView => (device: Device, bufferView: BufferView, pAllocator: *const AllocationCallbacks) -> (),
CreateImage => (device: Device, pCreateInfo: *const ImageCreateInfo, pAllocator: *const AllocationCallbacks, pImage: *mut Image) -> Result,
DestroyImage => (device: Device, image: Image, pAllocator: *const AllocationCallbacks) -> (),
GetImageSubresourceLayout => (device: Device, image: Image, pSubresource: *const ImageSubresource, pLayout: *mut SubresourceLayout) -> (),
CreateImageView => (device: Device, pCreateInfo: *const ImageViewCreateInfo, pAllocator: *const AllocationCallbacks, pView: *mut ImageView) -> Result,
DestroyImageView => (device: Device, imageView: ImageView, pAllocator: *const AllocationCallbacks) -> (),
CreateShaderModule => (device: Device, pCreateInfo: *const ShaderModuleCreateInfo, pAllocator: *const AllocationCallbacks, pShaderModule: *mut ShaderModule) -> Result,
DestroyShaderModule => (device: Device, shaderModule: ShaderModule, pAllocator: *const AllocationCallbacks) -> (),
CreatePipelineCache => (device: Device, pCreateInfo: *const PipelineCacheCreateInfo, pAllocator: *const AllocationCallbacks, pPipelineCache: *mut PipelineCache) -> Result,
DestroyPipelineCache => (device: Device, pipelineCache: PipelineCache, pAllocator: *const AllocationCallbacks) -> (),
GetPipelineCacheData => (device: Device, pipelineCache: PipelineCache, pDataSize: *mut usize, pData: *mut c_void) -> Result,
MergePipelineCaches => (device: Device, dstCache: PipelineCache, srcCacheCount: u32, pSrcCaches: *const PipelineCache) -> Result,
CreateGraphicsPipelines => (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: *const GraphicsPipelineCreateInfo, pAllocator: *const AllocationCallbacks, pPipelines: *mut Pipeline) -> Result,
CreateComputePipelines => (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: *const ComputePipelineCreateInfo, pAllocator: *const AllocationCallbacks, pPipelines: *mut Pipeline) -> Result,
DestroyPipeline => (device: Device, pipeline: Pipeline, pAllocator: *const AllocationCallbacks) -> (),
CreatePipelineLayout => (device: Device, pCreateInfo: *const PipelineLayoutCreateInfo, pAllocator: *const AllocationCallbacks, pPipelineLayout: *mut PipelineLayout) -> Result,
DestroyPipelineLayout => (device: Device, pipelineLayout: PipelineLayout, pAllocator: *const AllocationCallbacks) -> (),
CreateSampler => (device: Device, pCreateInfo: *const SamplerCreateInfo, pAllocator: *const AllocationCallbacks, pSampler: *mut Sampler) -> Result,
DestroySampler => (device: Device, sampler: Sampler, pAllocator: *const AllocationCallbacks) -> (),
CreateDescriptorSetLayout => (device: Device, pCreateInfo: *const DescriptorSetLayoutCreateInfo, pAllocator: *const AllocationCallbacks, pSetLayout: *mut DescriptorSetLayout) -> Result,
DestroyDescriptorSetLayout => (device: Device, descriptorSetLayout: DescriptorSetLayout, pAllocator: *const AllocationCallbacks) -> (),
CreateDescriptorPool => (device: Device, pCreateInfo: *const DescriptorPoolCreateInfo, pAllocator: *const AllocationCallbacks, pDescriptorPool: *mut DescriptorPool) -> Result,
DestroyDescriptorPool => (device: Device, descriptorPool: DescriptorPool, pAllocator: *const AllocationCallbacks) -> (),
ResetDescriptorPool => (device: Device, descriptorPool: DescriptorPool, flags: DescriptorPoolResetFlags) -> Result,
AllocateDescriptorSets => (device: Device, pAllocateInfo: *const DescriptorSetAllocateInfo, pDescriptorSets: *mut DescriptorSet) -> Result,
FreeDescriptorSets => (device: Device, descriptorPool: DescriptorPool, descriptorSetCount: u32, pDescriptorSets: *const DescriptorSet) -> Result,
UpdateDescriptorSets => (device: Device, descriptorWriteCount: u32, pDescriptorWrites: *const WriteDescriptorSet, descriptorCopyCount: u32, pDescriptorCopies: *const CopyDescriptorSet) -> (),
CreateFramebuffer => (device: Device, pCreateInfo: *const FramebufferCreateInfo, pAllocator: *const AllocationCallbacks, pFramebuffer: *mut Framebuffer) -> Result,
DestroyFramebuffer => (device: Device, framebuffer: Framebuffer, pAllocator: *const AllocationCallbacks) -> (),
CreateRenderPass => (device: Device, pCreateInfo: *const RenderPassCreateInfo, pAllocator: *const AllocationCallbacks, pRenderPass: *mut RenderPass) -> Result,
DestroyRenderPass => (device: Device, renderPass: RenderPass, pAllocator: *const AllocationCallbacks) -> (),
GetRenderAreaGranularity => (device: Device, renderPass: RenderPass, pGranularity: *mut Extent2D) -> (),
CreateCommandPool => (device: Device, pCreateInfo: *const CommandPoolCreateInfo, pAllocator: *const AllocationCallbacks, pCommandPool: *mut CommandPool) -> Result,
DestroyCommandPool => (device: Device, commandPool: CommandPool, pAllocator: *const AllocationCallbacks) -> (),
ResetCommandPool => (device: Device, commandPool: CommandPool, flags: CommandPoolResetFlags) -> Result,
TrimCommandPoolKHR => (device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlagsKHR) -> (),
AllocateCommandBuffers => (device: Device, pAllocateInfo: *const CommandBufferAllocateInfo, pCommandBuffers: *mut CommandBuffer) -> Result,
FreeCommandBuffers => (device: Device, commandPool: CommandPool, commandBufferCount: u32, pCommandBuffers: *const CommandBuffer) -> (),
BeginCommandBuffer => (commandBuffer: CommandBuffer, pBeginInfo: *const CommandBufferBeginInfo) -> Result,
EndCommandBuffer => (commandBuffer: CommandBuffer) -> Result,
ResetCommandBuffer => (commandBuffer: CommandBuffer, flags: CommandBufferResetFlags) -> Result,
CmdBindPipeline => (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline) -> (),
CmdSetViewport => (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pViewports: *const Viewport) -> (),
CmdSetScissor => (commandBuffer: CommandBuffer, firstScissor: u32, scissorCount: u32, pScissors: *const Rect2D) -> (),
CmdSetLineWidth => (commandBuffer: CommandBuffer, lineWidth: f32) -> (),
CmdSetDepthBias => (commandBuffer: CommandBuffer, depthBiasConstantFactor: f32, depthBiasClamp: f32, depthBiasSlopeFactor: f32) -> (),
CmdSetBlendConstants => (commandBuffer: CommandBuffer, blendConstants: [f32; 4]) -> (),
CmdSetDepthBounds => (commandBuffer: CommandBuffer, minDepthBounds: f32, maxDepthBounds: f32) -> (),
CmdSetStencilCompareMask => (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, compareMask: u32) -> (),
CmdSetStencilWriteMask => (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, writeMask: u32) -> (),
CmdSetStencilReference => (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, reference: u32) -> (),
CmdBindDescriptorSets => (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, firstSet: u32, descriptorSetCount: u32, pDescriptorSets: *const DescriptorSet, dynamicOffsetCount: u32, pDynamicOffsets: *const u32) -> (),
CmdBindIndexBuffer => (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, indexType: IndexType) -> (),
CmdBindVertexBuffers => (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: *const Buffer, pOffsets: *const DeviceSize) -> (),
CmdDraw => (commandBuffer: CommandBuffer, vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32) -> (),
CmdDrawIndexed => (commandBuffer: CommandBuffer, indexCount: u32, instanceCount: u32, firstIndex: u32, vertexOffset: i32, firstInstance: u32) -> (),
CmdDrawIndirect => (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32) -> (),
CmdDrawIndexedIndirect => (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32) -> (),
CmdDispatch => (commandBuffer: CommandBuffer, x: u32, y: u32, z: u32) -> (),
CmdDispatchIndirect => (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize) -> (),
CmdCopyBuffer => (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstBuffer: Buffer, regionCount: u32, pRegions: *const BufferCopy) -> (),
CmdCopyImage => (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: *const ImageCopy) -> (),
CmdBlitImage => (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: *const ImageBlit, filter: Filter) -> (),
CmdCopyBufferToImage => (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: *const BufferImageCopy) -> (),
CmdCopyImageToBuffer => (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstBuffer: Buffer, regionCount: u32, pRegions: *const BufferImageCopy) -> (),
CmdUpdateBuffer => (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, dataSize: DeviceSize, pData: *const u32) -> (),
CmdFillBuffer => (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, size: DeviceSize, data: u32) -> (),
CmdClearColorImage => (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pColor: *const ClearColorValue, rangeCount: u32, pRanges: *const ImageSubresourceRange) -> (),
CmdClearDepthStencilImage => (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pDepthStencil: *const ClearDepthStencilValue, rangeCount: u32, pRanges: *const ImageSubresourceRange) -> (),
CmdClearAttachments => (commandBuffer: CommandBuffer, attachmentCount: u32, pAttachments: *const ClearAttachment, rectCount: u32, pRects: *const ClearRect) -> (),
CmdResolveImage => (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: *const ImageResolve) -> (),
CmdSetEvent => (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags) -> (),
CmdResetEvent => (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags) -> (),
CmdWaitEvents => (commandBuffer: CommandBuffer, eventCount: u32, pEvents: *const Event, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, memoryBarrierCount: u32, pMemoryBarriers: *const MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: *const BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: *const ImageMemoryBarrier) -> (),
CmdPipelineBarrier => (commandBuffer: CommandBuffer, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, dependencyFlags: DependencyFlags, memoryBarrierCount: u32, pMemoryBarriers: *const MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: *const BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: *const ImageMemoryBarrier) -> (),
CmdBeginQuery => (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags) -> (),
CmdEndQuery => (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32) -> (),
CmdResetQueryPool => (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32) -> (),
CmdWriteTimestamp => (commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlagBits, queryPool: QueryPool, query: u32) -> (),
CmdCopyQueryPoolResults => (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dstBuffer: Buffer, dstOffset: DeviceSize, stride: DeviceSize, flags: QueryResultFlags) -> (),
CmdPushConstants => (commandBuffer: CommandBuffer, layout: PipelineLayout, stageFlags: ShaderStageFlags, offset: u32, size: u32, pValues: *const c_void) -> (),
CmdBeginRenderPass => (commandBuffer: CommandBuffer, pRenderPassBegin: *const RenderPassBeginInfo, contents: SubpassContents) -> (),
CmdNextSubpass => (commandBuffer: CommandBuffer, contents: SubpassContents) -> (),
CmdEndRenderPass => (commandBuffer: CommandBuffer) -> (),
CmdExecuteCommands => (commandBuffer: CommandBuffer, commandBufferCount: u32, pCommandBuffers: *const CommandBuffer) -> (),
CreateSwapchainKHR => (device: Device, pCreateInfo: *const SwapchainCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSwapchain: *mut SwapchainKHR) -> Result,
DestroySwapchainKHR => (device: Device, swapchain: SwapchainKHR, pAllocator: *const AllocationCallbacks) -> (),
GetSwapchainImagesKHR => (device: Device, swapchain: SwapchainKHR, pSwapchainImageCount: *mut u32, pSwapchainImages: *mut Image) -> Result,
AcquireNextImageKHR => (device: Device, swapchain: SwapchainKHR, timeout: u64, semaphore: Semaphore, fence: Fence, pImageIndex: *mut u32) -> Result,
QueuePresentKHR => (queue: Queue, pPresentInfo: *const PresentInfoKHR) -> Result,
CreateSharedSwapchainsKHR => (device: Device, swapchainCount: u32, pCreateInfos: *const SwapchainCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSwapchains: *mut SwapchainKHR) -> Result,
CmdPushDescriptorSetKHR => (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, set: u32, descriptorWriteCount: u32, pDescriptorWrites: *const WriteDescriptorSet) -> (),
CreateDescriptorUpdateTemplateKHR => (device: Device, pCreateInfo: *const DescriptorUpdateTemplateCreateInfoKHR, pAllocator: *const AllocationCallbacks, pDescriptorUpdateTemplate: *mut DescriptorUpdateTemplateKHR) -> Result,
DestroyDescriptorUpdateTemplateKHR => (device: Device, descriptorUpdateTemplate: DescriptorUpdateTemplateKHR, pAllocator: *const AllocationCallbacks) -> (),
UpdateDescriptorSetWithTemplateKHR => (device: Device, descriptorSet: DescriptorSet, descriptorUpdateTemplate: DescriptorUpdateTemplateKHR, pData: *const c_void) -> (),
CmdPushDescriptorSetWithTemplateKHR => (commandBuffer: CommandBuffer, descriptorUpdateTemplate: DescriptorUpdateTemplateKHR, layout: PipelineLayout, set: u32, pData: *const c_void) -> (),
GetImageMemoryRequirements2KHR => (device: Device, pInfo: *const ImageMemoryRequirementsInfo2KHR, pMemoryRequirements: *mut MemoryRequirements2KHR) -> (),
GetBufferMemoryRequirements2KHR => (device: Device, pInfo: *const BufferMemoryRequirementsInfo2KHR, pMemoryRequirements: *mut MemoryRequirements2KHR) -> (),
DebugMarkerSetObjectNameEXT => (device: Device, pNameInfo: *const DebugMarkerObjectNameInfoEXT) -> Result,
DebugMarkerSetObjectTagEXT => (device: Device, pTagInfo: *const DebugMarkerObjectTagInfoEXT) -> Result,
CmdDebugMarkerBeginEXT => (commandBuffer: CommandBuffer, pMarkerInfo: *const DebugMarkerMarkerInfoEXT) -> (),
CmdDebugMarkerEndEXT => (commandBuffer: CommandBuffer) -> (),
CmdDebugMarkerInsertEXT => (commandBuffer: CommandBuffer, pMarkerInfo: *const DebugMarkerMarkerInfoEXT) -> (),
});