vulkan.bl

VK_MAKE_API_VERSION

VK_MAKE_API_VERSION :: fn (variant: u32, major: u32, minor: u32, patch: u32) u32

File: vulkan.bl

VK_API_VERSION_1_0

VK_API_VERSION_1_0 :: 

File: vulkan.bl

VK_HEADER_VERSION

VK_HEADER_VERSION : u32 : 231

File: vulkan.bl

VK_HEADER_VERSION_COMPLETE

VK_HEADER_VERSION_COMPLETE :: 

File: vulkan.bl

VK_API_VERSION_VARIANT

VK_API_VERSION_VARIANT :: fn (version: u32) u32

File: vulkan.bl

VK_API_VERSION_MAJOR

VK_API_VERSION_MAJOR :: fn (version: u32) u32

File: vulkan.bl

VK_API_VERSION_MINOR

VK_API_VERSION_MINOR :: fn (version: u32) u32

File: vulkan.bl

VK_API_VERSION_PATCH

VK_API_VERSION_PATCH :: fn (version: u32) u32

File: vulkan.bl

VK_NULL_HANDLE

VK_NULL_HANDLE : C.void_ptr : null

File: vulkan.bl

VK_SHADER_UNUSED_KHR

VK_SHADER_UNUSED_KHR : u32 : 4294967295

File: vulkan.bl

VkBool32

VkBool32 :: u32

File: vulkan.bl

VkDeviceAddress

VkDeviceAddress :: u64

File: vulkan.bl

VkDeviceSize

VkDeviceSize :: u64

File: vulkan.bl

VkFlags

VkFlags :: u32

File: vulkan.bl

VkSampleMask

VkSampleMask :: u32

File: vulkan.bl

VkBuffer

VkBuffer :: *u8

File: vulkan.bl

VkImage

VkImage :: *u8

File: vulkan.bl

VkInstance

VkInstance :: *u8

File: vulkan.bl

VkPhysicalDevice

VkPhysicalDevice :: *u8

File: vulkan.bl

VkDevice

VkDevice :: *u8

File: vulkan.bl

VkQueue

VkQueue :: *u8

File: vulkan.bl

VkSemaphore

VkSemaphore :: *u8

File: vulkan.bl

VkCommandBuffer

VkCommandBuffer :: *u8

File: vulkan.bl

VkFence

VkFence :: *u8

File: vulkan.bl

VkDeviceMemory

VkDeviceMemory :: *u8

File: vulkan.bl

VkEvent

VkEvent :: *u8

File: vulkan.bl

VkQueryPool

VkQueryPool :: *u8

File: vulkan.bl

VkBufferView

VkBufferView :: *u8

File: vulkan.bl

VkImageView

VkImageView :: *u8

File: vulkan.bl

VkShaderModule

VkShaderModule :: *u8

File: vulkan.bl

VkPipelineCache

VkPipelineCache :: *u8

File: vulkan.bl

VkPipelineLayout

VkPipelineLayout :: *u8

File: vulkan.bl

VkPipeline

VkPipeline :: *u8

File: vulkan.bl

VkRenderPass

VkRenderPass :: *u8

File: vulkan.bl

VkDescriptorSetLayout

VkDescriptorSetLayout :: *u8

File: vulkan.bl

VkSampler

VkSampler :: *u8

File: vulkan.bl

VkDescriptorSet

VkDescriptorSet :: *u8

File: vulkan.bl

VkDescriptorPool

VkDescriptorPool :: *u8

File: vulkan.bl

VkFramebuffer

VkFramebuffer :: *u8

File: vulkan.bl

VkCommandPool

VkCommandPool :: *u8

File: vulkan.bl

VkSamplerYcbcrConversion

VkSamplerYcbcrConversion :: *u8

File: vulkan.bl

VkDescriptorUpdateTemplate

VkDescriptorUpdateTemplate :: *u8

File: vulkan.bl

VkPrivateDataSlot

VkPrivateDataSlot :: *u8

File: vulkan.bl

VkSurfaceKHR

VkSurfaceKHR :: *u8

File: vulkan.bl

VkSwapchainKHR

VkSwapchainKHR :: *u8

File: vulkan.bl

VkDisplayKHR

VkDisplayKHR :: *u8

File: vulkan.bl

VkDisplayModeKHR

VkDisplayModeKHR :: *u8

File: vulkan.bl

VkDeferredOperationKHR

VkDeferredOperationKHR :: *u8

File: vulkan.bl

VkDebugReportCallbackEXT

VkDebugReportCallbackEXT :: *u8

File: vulkan.bl

VkCuModuleNVX

VkCuModuleNVX :: *u8

File: vulkan.bl

VkCuFunctionNVX

VkCuFunctionNVX :: *u8

File: vulkan.bl

VkDebugUtilsMessengerEXT

VkDebugUtilsMessengerEXT :: *u8

File: vulkan.bl

VkValidationCacheEXT

VkValidationCacheEXT :: *u8

File: vulkan.bl

VkAccelerationStructureNV

VkAccelerationStructureNV :: *u8

File: vulkan.bl

VkPerformanceConfigurationINTEL

VkPerformanceConfigurationINTEL :: *u8

File: vulkan.bl

VkIndirectCommandsLayoutNV

VkIndirectCommandsLayoutNV :: *u8

File: vulkan.bl

VkMicromapEXT

VkMicromapEXT :: *u8

File: vulkan.bl

VkOpticalFlowSessionNV

VkOpticalFlowSessionNV :: *u8

File: vulkan.bl

VkAccelerationStructureKHR

VkAccelerationStructureKHR :: *u8

File: vulkan.bl

VK_ATTACHMENT_UNUSED

VK_ATTACHMENT_UNUSED : u32 : 0

File: vulkan.bl

VK_FALSE

VK_FALSE : u32 : 0

File: vulkan.bl

VK_LOD_CLAMP_NONE

VK_LOD_CLAMP_NONE : f64 : 1000.000000

File: vulkan.bl

VK_QUEUE_FAMILY_IGNORED

VK_QUEUE_FAMILY_IGNORED : u32 : 0

File: vulkan.bl

VK_REMAINING_ARRAY_LAYERS

VK_REMAINING_ARRAY_LAYERS : u32 : 0

File: vulkan.bl

VK_REMAINING_MIP_LEVELS

VK_REMAINING_MIP_LEVELS : u32 : 0

File: vulkan.bl

VK_SUBPASS_EXTERNAL

VK_SUBPASS_EXTERNAL : u32 : 0

File: vulkan.bl

VK_TRUE

VK_TRUE : u32 : 1

File: vulkan.bl

VK_WHOLE_SIZE

VK_WHOLE_SIZE : u64 : 0

File: vulkan.bl

VK_MAX_MEMORY_TYPES

VK_MAX_MEMORY_TYPES : u32 : 32

File: vulkan.bl

VK_MAX_PHYSICAL_DEVICE_NAME_SIZE

VK_MAX_PHYSICAL_DEVICE_NAME_SIZE : u32 : 256

File: vulkan.bl

VK_UUID_SIZE

VK_UUID_SIZE : u32 : 16

File: vulkan.bl

VK_MAX_EXTENSION_NAME_SIZE

VK_MAX_EXTENSION_NAME_SIZE : u32 : 256

File: vulkan.bl

VK_MAX_DESCRIPTION_SIZE

VK_MAX_DESCRIPTION_SIZE : u32 : 256

File: vulkan.bl

VK_MAX_MEMORY_HEAPS

VK_MAX_MEMORY_HEAPS : u32 : 16

File: vulkan.bl

VkResult

VkResult :: enum s32 {
    VK_SUCCESS = 0;
    VK_NOT_READY = 1;
    VK_TIMEOUT = 2;
    VK_EVENT_SET = 3;
    VK_EVENT_RESET = 4;
    VK_INCOMPLETE = 5;
    VK_ERROR_OUT_OF_HOST_MEMORY;
    VK_ERROR_OUT_OF_DEVICE_MEMORY;
    VK_ERROR_INITIALIZATION_FAILED;
    VK_ERROR_DEVICE_LOST;
    VK_ERROR_MEMORY_MAP_FAILED;
    VK_ERROR_LAYER_NOT_PRESENT;
    VK_ERROR_EXTENSION_NOT_PRESENT;
    VK_ERROR_FEATURE_NOT_PRESENT;
    VK_ERROR_INCOMPATIBLE_DRIVER;
    VK_ERROR_TOO_MANY_OBJECTS;
    VK_ERROR_FORMAT_NOT_SUPPORTED;
    VK_ERROR_FRAGMENTED_POOL;
    VK_ERROR_UNKNOWN;
    VK_ERROR_OUT_OF_POOL_MEMORY;
    VK_ERROR_INVALID_EXTERNAL_HANDLE;
    VK_ERROR_FRAGMENTATION;
    VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
    VK_PIPELINE_COMPILE_REQUIRED = 1000297000;
    VK_ERROR_SURFACE_LOST_KHR;
    VK_ERROR_NATIVE_WINDOW_IN_USE_KHR;
    VK_SUBOPTIMAL_KHR = 1000001003;
    VK_ERROR_OUT_OF_DATE_KHR;
    VK_ERROR_INCOMPATIBLE_DISPLAY_KHR;
    VK_ERROR_VALIDATION_FAILED_EXT;
    VK_ERROR_INVALID_SHADER_NV;
    VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT;
    VK_ERROR_NOT_PERMITTED_KHR;
    VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT;
    VK_THREAD_IDLE_KHR = 1000268000;
    VK_THREAD_DONE_KHR = 1000268001;
    VK_OPERATION_DEFERRED_KHR = 1000268002;
    VK_OPERATION_NOT_DEFERRED_KHR = 1000268003;
    VK_ERROR_COMPRESSION_EXHAUSTED_EXT;
    VK_ERROR_OUT_OF_POOL_MEMORY_KHR;
    VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR;
    VK_ERROR_FRAGMENTATION_EXT;
    VK_ERROR_NOT_PERMITTED_EXT;
    VK_ERROR_INVALID_DEVICE_ADDRESS_EXT;
    VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR;
    VK_PIPELINE_COMPILE_REQUIRED_EXT = 1000297000;
    VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = 1000297000;
    VK_RESULT_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkStructureType

VkStructureType :: enum s32 {
    VK_STRUCTURE_TYPE_APPLICATION_INFO = 0;
    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1;
    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2;
    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3;
    VK_STRUCTURE_TYPE_SUBMIT_INFO = 4;
    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5;
    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6;
    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7;
    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8;
    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9;
    VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10;
    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11;
    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12;
    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13;
    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14;
    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15;
    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16;
    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17;
    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18;
    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19;
    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20;
    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21;
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22;
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23;
    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24;
    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25;
    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26;
    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27;
    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28;
    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29;
    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30;
    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32;
    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34;
    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35;
    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36;
    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37;
    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38;
    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39;
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40;
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41;
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42;
    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43;
    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44;
    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45;
    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46;
    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47;
    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000;
    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000;
    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000;
    VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000;
    VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001;
    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006;
    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013;
    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001;
    VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000;
    VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001;
    VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002;
    VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003;
    VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001;
    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002;
    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004;
    VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006;
    VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000;
    VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001;
    VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002;
    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003;
    VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000;
    VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002;
    VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003;
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000;
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001;
    VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002;
    VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004;
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005;
    VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000;
    VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002;
    VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004;
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000;
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001;
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000;
    VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001;
    VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000;
    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000;
    VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52;
    VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000;
    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000;
    VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001;
    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002;
    VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003;
    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004;
    VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005;
    VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000;
    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000;
    VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000;
    VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000;
    VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001;
    VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002;
    VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000;
    VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001;
    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001;
    VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002;
    VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003;
    VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004;
    VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000;
    VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001;
    VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002;
    VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003;
    VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54;
    VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000;
    VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001;
    VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000;
    VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000;
    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001;
    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002;
    VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003;
    VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004;
    VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005;
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000;
    VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000;
    VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001;
    VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002;
    VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003;
    VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004;
    VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005;
    VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006;
    VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007;
    VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008;
    VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009;
    VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000;
    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001;
    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002;
    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000;
    VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000;
    VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001;
    VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003;
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001;
    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001;
    VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002;
    VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003;
    VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000;
    VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007;
    VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008;
    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009;
    VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012;
    VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000;
    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001;
    VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000;
    VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000;
    VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000;
    VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000;
    VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000;
    VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000;
    VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000;
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000;
    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000;
    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001;
    VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002;
    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000;
    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001;
    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001;
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002;
    VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000;
    VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001;
    VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002;
    VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000;
    VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001;
    VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000;
    VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006;
    VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007;
    VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008;
    VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009;
    VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000;
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000;
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001;
    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000;
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001;
    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000;
    VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000;
    VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000;
    VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001;
    VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002;
    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000;
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001;
    VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002;
    VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003;
    VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000;
    VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001;
    VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002;
    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000;
    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000;
    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001;
    VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002;
    VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003;
    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000;
    VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000;
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001;
    VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002;
    VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000;
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000;
    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000;
    VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000;
    VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001;
    VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002;
    VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003;
    VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000;
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000;
    VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000;
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000;
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001;
    VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000;
    VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000;
    VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000;
    VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001;
    VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002;
    VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000;
    VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001;
    VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002;
    VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003;
    VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004;
    VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005;
    VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000;
    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001;
    VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002;
    VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000;
    VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001;
    VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002;
    VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003;
    VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004;
    VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000;
    VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000;
    VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000;
    VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001;
    VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002;
    VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003;
    VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004;
    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000;
    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001;
    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002;
    VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003;
    VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004;
    VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005;
    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006;
    VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000;
    VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001;
    VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003;
    VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001;
    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002;
    VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000;
    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009;
    VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010;
    VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011;
    VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001;
    VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015;
    VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016;
    VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013;
    VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001;
    VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002;
    VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003;
    VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004;
    VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005;
    VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006;
    VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000;
    VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001;
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002;
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005;
    VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001;
    VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003;
    VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004;
    VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005;
    VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006;
    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009;
    VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000;
    VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000;
    VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001;
    VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000;
    VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000;
    VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000;
    VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000;
    VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000;
    VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001;
    VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000;
    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002;
    VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000;
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002;
    VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000;
    VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000;
    VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000;
    VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001;
    VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002;
    VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003;
    VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004;
    VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000;
    VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000;
    VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001;
    VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000;
    VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001;
    VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002;
    VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000;
    VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000;
    VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001;
    VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000;
    VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002;
    VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000;
    VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000;
    VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001;
    VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000;
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002;
    VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000;
    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002;
    VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001;
    VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000;
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000;
    VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001;
    VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002;
    VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003;
    VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004;
    VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000;
    VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001;
    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002;
    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003;
    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004;
    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005;
    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000;
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000;
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000;
    VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000;
    VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001;
    VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001;
    VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002;
    VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000;
    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001;
    VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002;
    VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000;
    VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001;
    VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000;
    VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001;
    VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002;
    VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003;
    VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004;
    VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005;
    VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006;
    VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007;
    VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008;
    VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009;
    VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010;
    VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011;
    VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008;
    VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001;
    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001;
    VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001;
    VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000;
    VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001;
    VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002;
    VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003;
    VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000;
    VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001;
    VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000;
    VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000;
    VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001;
    VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000;
    VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000;
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000;
    VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000;
    VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001;
    VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002;
    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000;
    VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001;
    VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000;
    VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001;
    VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002;
    VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003;
    VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004;
    VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005;
    VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006;
    VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007;
    VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008;
    VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009;
    VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000;
    VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001;
    VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000;
    VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001;
    VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000;
    VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000;
    VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000;
    VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000;
    VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000;
    VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001;
    VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002;
    VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003;
    VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006;
    VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007;
    VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008;
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000;
    VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001;
    VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001;
    VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000;
    VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001;
    VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002;
    VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001;
    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002;
    VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001;
    VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002;
    VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003;
    VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004;
    VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005;
    VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000;
    VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000;
    VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000;
    VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000;
    VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000;
    VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = 1000044000;
    VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = 1000044001;
    VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = 1000044002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = 1000044003;
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = 1000044004;
    VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = 1000044008;
    VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001;
    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002;
    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004;
    VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006;
    VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008;
    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006;
    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013;
    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000;
    VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000;
    VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002;
    VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004;
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000;
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001;
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000;
    VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001;
    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = 1000082000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = 1000082000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000;
    VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000;
    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = 1000090000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = 1000108000;
    VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = 1000108001;
    VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = 1000108002;
    VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = 1000108003;
    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000;
    VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001;
    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002;
    VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003;
    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004;
    VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005;
    VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000;
    VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001;
    VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000;
    VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001;
    VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002;
    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = 1000120000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000;
    VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000;
    VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000;
    VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001;
    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002;
    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003;
    VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000;
    VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001;
    VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002;
    VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003;
    VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004;
    VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000;
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000;
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001;
    VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002;
    VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004;
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005;
    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000;
    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000;
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001;
    VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = 1000175000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000;
    VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000;
    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = 1000207000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = 1000207001;
    VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = 1000207002;
    VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = 1000207003;
    VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = 1000207004;
    VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = 1000207005;
    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = 1000210000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = 1000215000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000;
    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = 1000241000;
    VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = 1000241001;
    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = 1000241002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = 1000244000;
    VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = 1000244001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = 1000245000;
    VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = 1000253000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = 1000257000;
    VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = 1000244001;
    VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = 1000257002;
    VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = 1000257003;
    VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = 1000257004;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = 1000261000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = 1000280000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = 1000280001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000;
    VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001;
    VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000;
    VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = 1000314000;
    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = 1000314001;
    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = 1000314002;
    VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = 1000314003;
    VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = 1000314004;
    VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = 1000314005;
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = 1000314006;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = 1000314007;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = 1000325000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = 1000335000;
    VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = 1000337000;
    VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = 1000337001;
    VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = 1000337002;
    VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = 1000337003;
    VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = 1000337004;
    VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = 1000337005;
    VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = 1000337006;
    VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = 1000337007;
    VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008;
    VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009;
    VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = 1000342000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000;
    VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002;
    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = 1000360000;
    VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = 1000269001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000;
    VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = 1000413000;
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = 1000413001;
    VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = 1000413002;
    VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = 1000413003;
    VK_STRUCTURE_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPipelineCacheHeaderVersion

VkPipelineCacheHeaderVersion :: enum s32 {
    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1;
    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkImageLayout

VkImageLayout :: enum s32 {
    VK_IMAGE_LAYOUT_UNDEFINED = 0;
    VK_IMAGE_LAYOUT_GENERAL = 1;
    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2;
    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3;
    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4;
    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5;
    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6;
    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7;
    VK_IMAGE_LAYOUT_PREINITIALIZED = 8;
    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000;
    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001;
    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000;
    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001;
    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002;
    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003;
    VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000;
    VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001;
    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002;
    VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000;
    VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000;
    VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003;
    VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000;
    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000;
    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001;
    VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003;
    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = 1000241000;
    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = 1000241001;
    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000241002;
    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000241003;
    VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = 1000314000;
    VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = 1000314001;
    VK_IMAGE_LAYOUT_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkObjectType

VkObjectType :: enum s32 {
    VK_OBJECT_TYPE_UNKNOWN = 0;
    VK_OBJECT_TYPE_INSTANCE = 1;
    VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2;
    VK_OBJECT_TYPE_DEVICE = 3;
    VK_OBJECT_TYPE_QUEUE = 4;
    VK_OBJECT_TYPE_SEMAPHORE = 5;
    VK_OBJECT_TYPE_COMMAND_BUFFER = 6;
    VK_OBJECT_TYPE_FENCE = 7;
    VK_OBJECT_TYPE_DEVICE_MEMORY = 8;
    VK_OBJECT_TYPE_BUFFER = 9;
    VK_OBJECT_TYPE_IMAGE = 10;
    VK_OBJECT_TYPE_EVENT = 11;
    VK_OBJECT_TYPE_QUERY_POOL = 12;
    VK_OBJECT_TYPE_BUFFER_VIEW = 13;
    VK_OBJECT_TYPE_IMAGE_VIEW = 14;
    VK_OBJECT_TYPE_SHADER_MODULE = 15;
    VK_OBJECT_TYPE_PIPELINE_CACHE = 16;
    VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17;
    VK_OBJECT_TYPE_RENDER_PASS = 18;
    VK_OBJECT_TYPE_PIPELINE = 19;
    VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20;
    VK_OBJECT_TYPE_SAMPLER = 21;
    VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22;
    VK_OBJECT_TYPE_DESCRIPTOR_SET = 23;
    VK_OBJECT_TYPE_FRAMEBUFFER = 24;
    VK_OBJECT_TYPE_COMMAND_POOL = 25;
    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000;
    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000;
    VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000;
    VK_OBJECT_TYPE_SURFACE_KHR = 1000000000;
    VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000;
    VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000;
    VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001;
    VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000;
    VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000;
    VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001;
    VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000;
    VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000;
    VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000;
    VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000;
    VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000;
    VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000;
    VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000;
    VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000;
    VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000;
    VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000;
    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000;
    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000;
    VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000;
    VK_OBJECT_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkVendorId

VkVendorId :: enum s32 {
    VK_VENDOR_ID_VIV = 65537;
    VK_VENDOR_ID_VSI = 65538;
    VK_VENDOR_ID_KAZAN = 65539;
    VK_VENDOR_ID_CODEPLAY = 65540;
    VK_VENDOR_ID_MESA = 65541;
    VK_VENDOR_ID_POCL = 65542;
    VK_VENDOR_ID_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSystemAllocationScope

VkSystemAllocationScope :: enum s32 {
    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0;
    VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1;
    VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2;
    VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3;
    VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4;
    VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkInternalAllocationType

VkInternalAllocationType :: enum s32 {
    VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0;
    VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkFormat

VkFormat :: enum s32 {
    VK_FORMAT_UNDEFINED = 0;
    VK_FORMAT_R4G4_UNORM_PACK8 = 1;
    VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2;
    VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3;
    VK_FORMAT_R5G6B5_UNORM_PACK16 = 4;
    VK_FORMAT_B5G6R5_UNORM_PACK16 = 5;
    VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6;
    VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7;
    VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8;
    VK_FORMAT_R8_UNORM = 9;
    VK_FORMAT_R8_SNORM = 10;
    VK_FORMAT_R8_USCALED = 11;
    VK_FORMAT_R8_SSCALED = 12;
    VK_FORMAT_R8_UINT = 13;
    VK_FORMAT_R8_SINT = 14;
    VK_FORMAT_R8_SRGB = 15;
    VK_FORMAT_R8G8_UNORM = 16;
    VK_FORMAT_R8G8_SNORM = 17;
    VK_FORMAT_R8G8_USCALED = 18;
    VK_FORMAT_R8G8_SSCALED = 19;
    VK_FORMAT_R8G8_UINT = 20;
    VK_FORMAT_R8G8_SINT = 21;
    VK_FORMAT_R8G8_SRGB = 22;
    VK_FORMAT_R8G8B8_UNORM = 23;
    VK_FORMAT_R8G8B8_SNORM = 24;
    VK_FORMAT_R8G8B8_USCALED = 25;
    VK_FORMAT_R8G8B8_SSCALED = 26;
    VK_FORMAT_R8G8B8_UINT = 27;
    VK_FORMAT_R8G8B8_SINT = 28;
    VK_FORMAT_R8G8B8_SRGB = 29;
    VK_FORMAT_B8G8R8_UNORM = 30;
    VK_FORMAT_B8G8R8_SNORM = 31;
    VK_FORMAT_B8G8R8_USCALED = 32;
    VK_FORMAT_B8G8R8_SSCALED = 33;
    VK_FORMAT_B8G8R8_UINT = 34;
    VK_FORMAT_B8G8R8_SINT = 35;
    VK_FORMAT_B8G8R8_SRGB = 36;
    VK_FORMAT_R8G8B8A8_UNORM = 37;
    VK_FORMAT_R8G8B8A8_SNORM = 38;
    VK_FORMAT_R8G8B8A8_USCALED = 39;
    VK_FORMAT_R8G8B8A8_SSCALED = 40;
    VK_FORMAT_R8G8B8A8_UINT = 41;
    VK_FORMAT_R8G8B8A8_SINT = 42;
    VK_FORMAT_R8G8B8A8_SRGB = 43;
    VK_FORMAT_B8G8R8A8_UNORM = 44;
    VK_FORMAT_B8G8R8A8_SNORM = 45;
    VK_FORMAT_B8G8R8A8_USCALED = 46;
    VK_FORMAT_B8G8R8A8_SSCALED = 47;
    VK_FORMAT_B8G8R8A8_UINT = 48;
    VK_FORMAT_B8G8R8A8_SINT = 49;
    VK_FORMAT_B8G8R8A8_SRGB = 50;
    VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51;
    VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52;
    VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53;
    VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54;
    VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55;
    VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56;
    VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57;
    VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58;
    VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59;
    VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60;
    VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61;
    VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62;
    VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63;
    VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64;
    VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65;
    VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66;
    VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67;
    VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68;
    VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69;
    VK_FORMAT_R16_UNORM = 70;
    VK_FORMAT_R16_SNORM = 71;
    VK_FORMAT_R16_USCALED = 72;
    VK_FORMAT_R16_SSCALED = 73;
    VK_FORMAT_R16_UINT = 74;
    VK_FORMAT_R16_SINT = 75;
    VK_FORMAT_R16_SFLOAT = 76;
    VK_FORMAT_R16G16_UNORM = 77;
    VK_FORMAT_R16G16_SNORM = 78;
    VK_FORMAT_R16G16_USCALED = 79;
    VK_FORMAT_R16G16_SSCALED = 80;
    VK_FORMAT_R16G16_UINT = 81;
    VK_FORMAT_R16G16_SINT = 82;
    VK_FORMAT_R16G16_SFLOAT = 83;
    VK_FORMAT_R16G16B16_UNORM = 84;
    VK_FORMAT_R16G16B16_SNORM = 85;
    VK_FORMAT_R16G16B16_USCALED = 86;
    VK_FORMAT_R16G16B16_SSCALED = 87;
    VK_FORMAT_R16G16B16_UINT = 88;
    VK_FORMAT_R16G16B16_SINT = 89;
    VK_FORMAT_R16G16B16_SFLOAT = 90;
    VK_FORMAT_R16G16B16A16_UNORM = 91;
    VK_FORMAT_R16G16B16A16_SNORM = 92;
    VK_FORMAT_R16G16B16A16_USCALED = 93;
    VK_FORMAT_R16G16B16A16_SSCALED = 94;
    VK_FORMAT_R16G16B16A16_UINT = 95;
    VK_FORMAT_R16G16B16A16_SINT = 96;
    VK_FORMAT_R16G16B16A16_SFLOAT = 97;
    VK_FORMAT_R32_UINT = 98;
    VK_FORMAT_R32_SINT = 99;
    VK_FORMAT_R32_SFLOAT = 100;
    VK_FORMAT_R32G32_UINT = 101;
    VK_FORMAT_R32G32_SINT = 102;
    VK_FORMAT_R32G32_SFLOAT = 103;
    VK_FORMAT_R32G32B32_UINT = 104;
    VK_FORMAT_R32G32B32_SINT = 105;
    VK_FORMAT_R32G32B32_SFLOAT = 106;
    VK_FORMAT_R32G32B32A32_UINT = 107;
    VK_FORMAT_R32G32B32A32_SINT = 108;
    VK_FORMAT_R32G32B32A32_SFLOAT = 109;
    VK_FORMAT_R64_UINT = 110;
    VK_FORMAT_R64_SINT = 111;
    VK_FORMAT_R64_SFLOAT = 112;
    VK_FORMAT_R64G64_UINT = 113;
    VK_FORMAT_R64G64_SINT = 114;
    VK_FORMAT_R64G64_SFLOAT = 115;
    VK_FORMAT_R64G64B64_UINT = 116;
    VK_FORMAT_R64G64B64_SINT = 117;
    VK_FORMAT_R64G64B64_SFLOAT = 118;
    VK_FORMAT_R64G64B64A64_UINT = 119;
    VK_FORMAT_R64G64B64A64_SINT = 120;
    VK_FORMAT_R64G64B64A64_SFLOAT = 121;
    VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122;
    VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123;
    VK_FORMAT_D16_UNORM = 124;
    VK_FORMAT_X8_D24_UNORM_PACK32 = 125;
    VK_FORMAT_D32_SFLOAT = 126;
    VK_FORMAT_S8_UINT = 127;
    VK_FORMAT_D16_UNORM_S8_UINT = 128;
    VK_FORMAT_D24_UNORM_S8_UINT = 129;
    VK_FORMAT_D32_SFLOAT_S8_UINT = 130;
    VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131;
    VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132;
    VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133;
    VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134;
    VK_FORMAT_BC2_UNORM_BLOCK = 135;
    VK_FORMAT_BC2_SRGB_BLOCK = 136;
    VK_FORMAT_BC3_UNORM_BLOCK = 137;
    VK_FORMAT_BC3_SRGB_BLOCK = 138;
    VK_FORMAT_BC4_UNORM_BLOCK = 139;
    VK_FORMAT_BC4_SNORM_BLOCK = 140;
    VK_FORMAT_BC5_UNORM_BLOCK = 141;
    VK_FORMAT_BC5_SNORM_BLOCK = 142;
    VK_FORMAT_BC6H_UFLOAT_BLOCK = 143;
    VK_FORMAT_BC6H_SFLOAT_BLOCK = 144;
    VK_FORMAT_BC7_UNORM_BLOCK = 145;
    VK_FORMAT_BC7_SRGB_BLOCK = 146;
    VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147;
    VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148;
    VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149;
    VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150;
    VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151;
    VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152;
    VK_FORMAT_EAC_R11_UNORM_BLOCK = 153;
    VK_FORMAT_EAC_R11_SNORM_BLOCK = 154;
    VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155;
    VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156;
    VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157;
    VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158;
    VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159;
    VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160;
    VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161;
    VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162;
    VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163;
    VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164;
    VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165;
    VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166;
    VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167;
    VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168;
    VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169;
    VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170;
    VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171;
    VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172;
    VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173;
    VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174;
    VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175;
    VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176;
    VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177;
    VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178;
    VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179;
    VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180;
    VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181;
    VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182;
    VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183;
    VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184;
    VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000;
    VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001;
    VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002;
    VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003;
    VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004;
    VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005;
    VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006;
    VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007;
    VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008;
    VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009;
    VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010;
    VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011;
    VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012;
    VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013;
    VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014;
    VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015;
    VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016;
    VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017;
    VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018;
    VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019;
    VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020;
    VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021;
    VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022;
    VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023;
    VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024;
    VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025;
    VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026;
    VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027;
    VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028;
    VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029;
    VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030;
    VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031;
    VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032;
    VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033;
    VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000;
    VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001;
    VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002;
    VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003;
    VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000;
    VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001;
    VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000;
    VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001;
    VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002;
    VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003;
    VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004;
    VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005;
    VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006;
    VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007;
    VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008;
    VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009;
    VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010;
    VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011;
    VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012;
    VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013;
    VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000;
    VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001;
    VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002;
    VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003;
    VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004;
    VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005;
    VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006;
    VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007;
    VK_FORMAT_R16G16_S10_5_NV = 1000464000;
    VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000;
    VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001;
    VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002;
    VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003;
    VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004;
    VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005;
    VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006;
    VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007;
    VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008;
    VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009;
    VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010;
    VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011;
    VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012;
    VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013;
    VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000;
    VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001;
    VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002;
    VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003;
    VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004;
    VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005;
    VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006;
    VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007;
    VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008;
    VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009;
    VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010;
    VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011;
    VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012;
    VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013;
    VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014;
    VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015;
    VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016;
    VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017;
    VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018;
    VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019;
    VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020;
    VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021;
    VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022;
    VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023;
    VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024;
    VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025;
    VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026;
    VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027;
    VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028;
    VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029;
    VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030;
    VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031;
    VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032;
    VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033;
    VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = 1000330000;
    VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = 1000330001;
    VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = 1000330002;
    VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = 1000330003;
    VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000;
    VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001;
    VK_FORMAT_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkImageTiling

VkImageTiling :: enum s32 {
    VK_IMAGE_TILING_OPTIMAL = 0;
    VK_IMAGE_TILING_LINEAR = 1;
    VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000;
    VK_IMAGE_TILING_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkImageType

VkImageType :: enum s32 {
    VK_IMAGE_TYPE_1D = 0;
    VK_IMAGE_TYPE_2D = 1;
    VK_IMAGE_TYPE_3D = 2;
    VK_IMAGE_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPhysicalDeviceType

VkPhysicalDeviceType :: enum s32 {
    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0;
    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1;
    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2;
    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3;
    VK_PHYSICAL_DEVICE_TYPE_CPU = 4;
    VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkQueryType

VkQueryType :: enum s32 {
    VK_QUERY_TYPE_OCCLUSION = 0;
    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1;
    VK_QUERY_TYPE_TIMESTAMP = 2;
    VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004;
    VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000;
    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000;
    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001;
    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000;
    VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000;
    VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000;
    VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000;
    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000;
    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001;
    VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000;
    VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001;
    VK_QUERY_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSharingMode

VkSharingMode :: enum s32 {
    VK_SHARING_MODE_EXCLUSIVE = 0;
    VK_SHARING_MODE_CONCURRENT = 1;
    VK_SHARING_MODE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkComponentSwizzle

VkComponentSwizzle :: enum s32 {
    VK_COMPONENT_SWIZZLE_IDENTITY = 0;
    VK_COMPONENT_SWIZZLE_ZERO = 1;
    VK_COMPONENT_SWIZZLE_ONE = 2;
    VK_COMPONENT_SWIZZLE_R = 3;
    VK_COMPONENT_SWIZZLE_G = 4;
    VK_COMPONENT_SWIZZLE_B = 5;
    VK_COMPONENT_SWIZZLE_A = 6;
    VK_COMPONENT_SWIZZLE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkImageViewType

VkImageViewType :: enum s32 {
    VK_IMAGE_VIEW_TYPE_1D = 0;
    VK_IMAGE_VIEW_TYPE_2D = 1;
    VK_IMAGE_VIEW_TYPE_3D = 2;
    VK_IMAGE_VIEW_TYPE_CUBE = 3;
    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4;
    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5;
    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6;
    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkBlendFactor

VkBlendFactor :: enum s32 {
    VK_BLEND_FACTOR_ZERO = 0;
    VK_BLEND_FACTOR_ONE = 1;
    VK_BLEND_FACTOR_SRC_COLOR = 2;
    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3;
    VK_BLEND_FACTOR_DST_COLOR = 4;
    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5;
    VK_BLEND_FACTOR_SRC_ALPHA = 6;
    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7;
    VK_BLEND_FACTOR_DST_ALPHA = 8;
    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9;
    VK_BLEND_FACTOR_CONSTANT_COLOR = 10;
    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11;
    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12;
    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13;
    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14;
    VK_BLEND_FACTOR_SRC1_COLOR = 15;
    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16;
    VK_BLEND_FACTOR_SRC1_ALPHA = 17;
    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18;
    VK_BLEND_FACTOR_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkBlendOp

VkBlendOp :: enum s32 {
    VK_BLEND_OP_ADD = 0;
    VK_BLEND_OP_SUBTRACT = 1;
    VK_BLEND_OP_REVERSE_SUBTRACT = 2;
    VK_BLEND_OP_MIN = 3;
    VK_BLEND_OP_MAX = 4;
    VK_BLEND_OP_ZERO_EXT = 1000148000;
    VK_BLEND_OP_SRC_EXT = 1000148001;
    VK_BLEND_OP_DST_EXT = 1000148002;
    VK_BLEND_OP_SRC_OVER_EXT = 1000148003;
    VK_BLEND_OP_DST_OVER_EXT = 1000148004;
    VK_BLEND_OP_SRC_IN_EXT = 1000148005;
    VK_BLEND_OP_DST_IN_EXT = 1000148006;
    VK_BLEND_OP_SRC_OUT_EXT = 1000148007;
    VK_BLEND_OP_DST_OUT_EXT = 1000148008;
    VK_BLEND_OP_SRC_ATOP_EXT = 1000148009;
    VK_BLEND_OP_DST_ATOP_EXT = 1000148010;
    VK_BLEND_OP_XOR_EXT = 1000148011;
    VK_BLEND_OP_MULTIPLY_EXT = 1000148012;
    VK_BLEND_OP_SCREEN_EXT = 1000148013;
    VK_BLEND_OP_OVERLAY_EXT = 1000148014;
    VK_BLEND_OP_DARKEN_EXT = 1000148015;
    VK_BLEND_OP_LIGHTEN_EXT = 1000148016;
    VK_BLEND_OP_COLORDODGE_EXT = 1000148017;
    VK_BLEND_OP_COLORBURN_EXT = 1000148018;
    VK_BLEND_OP_HARDLIGHT_EXT = 1000148019;
    VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020;
    VK_BLEND_OP_DIFFERENCE_EXT = 1000148021;
    VK_BLEND_OP_EXCLUSION_EXT = 1000148022;
    VK_BLEND_OP_INVERT_EXT = 1000148023;
    VK_BLEND_OP_INVERT_RGB_EXT = 1000148024;
    VK_BLEND_OP_LINEARDODGE_EXT = 1000148025;
    VK_BLEND_OP_LINEARBURN_EXT = 1000148026;
    VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027;
    VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028;
    VK_BLEND_OP_PINLIGHT_EXT = 1000148029;
    VK_BLEND_OP_HARDMIX_EXT = 1000148030;
    VK_BLEND_OP_HSL_HUE_EXT = 1000148031;
    VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032;
    VK_BLEND_OP_HSL_COLOR_EXT = 1000148033;
    VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034;
    VK_BLEND_OP_PLUS_EXT = 1000148035;
    VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036;
    VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037;
    VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038;
    VK_BLEND_OP_MINUS_EXT = 1000148039;
    VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040;
    VK_BLEND_OP_CONTRAST_EXT = 1000148041;
    VK_BLEND_OP_INVERT_OVG_EXT = 1000148042;
    VK_BLEND_OP_RED_EXT = 1000148043;
    VK_BLEND_OP_GREEN_EXT = 1000148044;
    VK_BLEND_OP_BLUE_EXT = 1000148045;
    VK_BLEND_OP_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkCompareOp

VkCompareOp :: enum s32 {
    VK_COMPARE_OP_NEVER = 0;
    VK_COMPARE_OP_LESS = 1;
    VK_COMPARE_OP_EQUAL = 2;
    VK_COMPARE_OP_LESS_OR_EQUAL = 3;
    VK_COMPARE_OP_GREATER = 4;
    VK_COMPARE_OP_NOT_EQUAL = 5;
    VK_COMPARE_OP_GREATER_OR_EQUAL = 6;
    VK_COMPARE_OP_ALWAYS = 7;
    VK_COMPARE_OP_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkDynamicState

VkDynamicState :: enum s32 {
    VK_DYNAMIC_STATE_VIEWPORT = 0;
    VK_DYNAMIC_STATE_SCISSOR = 1;
    VK_DYNAMIC_STATE_LINE_WIDTH = 2;
    VK_DYNAMIC_STATE_DEPTH_BIAS = 3;
    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4;
    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5;
    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6;
    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7;
    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8;
    VK_DYNAMIC_STATE_CULL_MODE = 1000267000;
    VK_DYNAMIC_STATE_FRONT_FACE = 1000267001;
    VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002;
    VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003;
    VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004;
    VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005;
    VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006;
    VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007;
    VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008;
    VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009;
    VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010;
    VK_DYNAMIC_STATE_STENCIL_OP = 1000267011;
    VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001;
    VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002;
    VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004;
    VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000;
    VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000;
    VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000;
    VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000;
    VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004;
    VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006;
    VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001;
    VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000;
    VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000;
    VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000;
    VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000;
    VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003;
    VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000;
    VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002;
    VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003;
    VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004;
    VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005;
    VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006;
    VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007;
    VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008;
    VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009;
    VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010;
    VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011;
    VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012;
    VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013;
    VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014;
    VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015;
    VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016;
    VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017;
    VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018;
    VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019;
    VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020;
    VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021;
    VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022;
    VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023;
    VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024;
    VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025;
    VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026;
    VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027;
    VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028;
    VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029;
    VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030;
    VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031;
    VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032;
    VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000;
    VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001;
    VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002;
    VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = 1000267003;
    VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = 1000267004;
    VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = 1000267005;
    VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = 1000267006;
    VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007;
    VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008;
    VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009;
    VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010;
    VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011;
    VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = 1000377001;
    VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = 1000377002;
    VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = 1000377004;
    VK_DYNAMIC_STATE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkFrontFace

VkFrontFace :: enum s32 {
    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0;
    VK_FRONT_FACE_CLOCKWISE = 1;
    VK_FRONT_FACE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkVertexInputRate

VkVertexInputRate :: enum s32 {
    VK_VERTEX_INPUT_RATE_VERTEX = 0;
    VK_VERTEX_INPUT_RATE_INSTANCE = 1;
    VK_VERTEX_INPUT_RATE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPrimitiveTopology

VkPrimitiveTopology :: enum s32 {
    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0;
    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1;
    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2;
    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3;
    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4;
    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5;
    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6;
    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7;
    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8;
    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9;
    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10;
    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPolygonMode

VkPolygonMode :: enum s32 {
    VK_POLYGON_MODE_FILL = 0;
    VK_POLYGON_MODE_LINE = 1;
    VK_POLYGON_MODE_POINT = 2;
    VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000;
    VK_POLYGON_MODE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkStencilOp

VkStencilOp :: enum s32 {
    VK_STENCIL_OP_KEEP = 0;
    VK_STENCIL_OP_ZERO = 1;
    VK_STENCIL_OP_REPLACE = 2;
    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3;
    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4;
    VK_STENCIL_OP_INVERT = 5;
    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6;
    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7;
    VK_STENCIL_OP_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkLogicOp

VkLogicOp :: enum s32 {
    VK_LOGIC_OP_CLEAR = 0;
    VK_LOGIC_OP_AND = 1;
    VK_LOGIC_OP_AND_REVERSE = 2;
    VK_LOGIC_OP_COPY = 3;
    VK_LOGIC_OP_AND_INVERTED = 4;
    VK_LOGIC_OP_NO_OP = 5;
    VK_LOGIC_OP_XOR = 6;
    VK_LOGIC_OP_OR = 7;
    VK_LOGIC_OP_NOR = 8;
    VK_LOGIC_OP_EQUIVALENT = 9;
    VK_LOGIC_OP_INVERT = 10;
    VK_LOGIC_OP_OR_REVERSE = 11;
    VK_LOGIC_OP_COPY_INVERTED = 12;
    VK_LOGIC_OP_OR_INVERTED = 13;
    VK_LOGIC_OP_NAND = 14;
    VK_LOGIC_OP_SET = 15;
    VK_LOGIC_OP_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkBorderColor

VkBorderColor :: enum s32 {
    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0;
    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1;
    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2;
    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3;
    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4;
    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5;
    VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003;
    VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004;
    VK_BORDER_COLOR_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkFilter

VkFilter :: enum s32 {
    VK_FILTER_NEAREST = 0;
    VK_FILTER_LINEAR = 1;
    VK_FILTER_CUBIC_EXT = 1000015000;
    VK_FILTER_CUBIC_IMG = 1000015000;
    VK_FILTER_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSamplerAddressMode

VkSamplerAddressMode :: enum s32 {
    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0;
    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1;
    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2;
    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3;
    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4;
    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = 4;
    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSamplerMipmapMode

VkSamplerMipmapMode :: enum s32 {
    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0;
    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1;
    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkDescriptorType

VkDescriptorType :: enum s32 {
    VK_DESCRIPTOR_TYPE_SAMPLER = 0;
    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1;
    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2;
    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3;
    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4;
    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5;
    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6;
    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7;
    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8;
    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9;
    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10;
    VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000;
    VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000;
    VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000;
    VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000;
    VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001;
    VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000;
    VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000;
    VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000;
    VK_DESCRIPTOR_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkAttachmentLoadOp

VkAttachmentLoadOp :: enum s32 {
    VK_ATTACHMENT_LOAD_OP_LOAD = 0;
    VK_ATTACHMENT_LOAD_OP_CLEAR = 1;
    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2;
    VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000;
    VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkAttachmentStoreOp

VkAttachmentStoreOp :: enum s32 {
    VK_ATTACHMENT_STORE_OP_STORE = 0;
    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1;
    VK_ATTACHMENT_STORE_OP_NONE = 1000301000;
    VK_ATTACHMENT_STORE_OP_NONE_KHR = 1000301000;
    VK_ATTACHMENT_STORE_OP_NONE_QCOM = 1000301000;
    VK_ATTACHMENT_STORE_OP_NONE_EXT = 1000301000;
    VK_ATTACHMENT_STORE_OP_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPipelineBindPoint

VkPipelineBindPoint :: enum s32 {
    VK_PIPELINE_BIND_POINT_GRAPHICS = 0;
    VK_PIPELINE_BIND_POINT_COMPUTE = 1;
    VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000;
    VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003;
    VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000;
    VK_PIPELINE_BIND_POINT_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkCommandBufferLevel

VkCommandBufferLevel :: enum s32 {
    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0;
    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1;
    VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkIndexType

VkIndexType :: enum s32 {
    VK_INDEX_TYPE_UINT16 = 0;
    VK_INDEX_TYPE_UINT32 = 1;
    VK_INDEX_TYPE_NONE_KHR = 1000165000;
    VK_INDEX_TYPE_UINT8_EXT = 1000265000;
    VK_INDEX_TYPE_NONE_NV = 1000165000;
    VK_INDEX_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSubpassContents

VkSubpassContents :: enum s32 {
    VK_SUBPASS_CONTENTS_INLINE = 0;
    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1;
    VK_SUBPASS_CONTENTS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkAccessFlagBits

VkAccessFlagBits :: enum u32 {
    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 1;
    VK_ACCESS_INDEX_READ_BIT = 2;
    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 4;
    VK_ACCESS_UNIFORM_READ_BIT = 8;
    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 16;
    VK_ACCESS_SHADER_READ_BIT = 32;
    VK_ACCESS_SHADER_WRITE_BIT = 64;
    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 128;
    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 256;
    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 512;
    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 1024;
    VK_ACCESS_TRANSFER_READ_BIT = 2048;
    VK_ACCESS_TRANSFER_WRITE_BIT = 4096;
    VK_ACCESS_HOST_READ_BIT = 8192;
    VK_ACCESS_HOST_WRITE_BIT = 16384;
    VK_ACCESS_MEMORY_READ_BIT = 32768;
    VK_ACCESS_MEMORY_WRITE_BIT = 65536;
    VK_ACCESS_NONE = 0;
    VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 33554432;
    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 67108864;
    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 134217728;
    VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 1048576;
    VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 524288;
    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 2097152;
    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 4194304;
    VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 16777216;
    VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 8388608;
    VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 131072;
    VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 262144;
    VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 8388608;
    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 2097152;
    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 4194304;
    VK_ACCESS_NONE_KHR = 0;
    VK_ACCESS_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkAccessFlags

VkAccessFlags :: VkFlags

File: vulkan.bl

VkImageAspectFlagBits

VkImageAspectFlagBits :: enum u32 {
    VK_IMAGE_ASPECT_COLOR_BIT = 1;
    VK_IMAGE_ASPECT_DEPTH_BIT = 2;
    VK_IMAGE_ASPECT_STENCIL_BIT = 4;
    VK_IMAGE_ASPECT_METADATA_BIT = 8;
    VK_IMAGE_ASPECT_PLANE_0_BIT = 16;
    VK_IMAGE_ASPECT_PLANE_1_BIT = 32;
    VK_IMAGE_ASPECT_PLANE_2_BIT = 64;
    VK_IMAGE_ASPECT_NONE = 0;
    VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 128;
    VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 256;
    VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 512;
    VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 1024;
    VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 16;
    VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 32;
    VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 64;
    VK_IMAGE_ASPECT_NONE_KHR = 0;
    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkImageAspectFlags

VkImageAspectFlags :: VkFlags

File: vulkan.bl

VkFormatFeatureFlagBits

VkFormatFeatureFlagBits :: enum u32 {
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 1;
    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 2;
    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 4;
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 8;
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 16;
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 32;
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 64;
    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 128;
    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 256;
    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 512;
    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 1024;
    VK_FORMAT_FEATURE_BLIT_DST_BIT = 2048;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 4096;
    VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 16384;
    VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 32768;
    VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 131072;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 262144;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 524288;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 1048576;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 2097152;
    VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304;
    VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536;
    VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 8192;
    VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216;
    VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 1073741824;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192;
    VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 16384;
    VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 32768;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 65536;
    VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 131072;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 262144;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 524288;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 1048576;
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 2097152;
    VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 4194304;
    VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 8388608;
    VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkFormatFeatureFlags

VkFormatFeatureFlags :: VkFlags

File: vulkan.bl

VkImageCreateFlagBits

VkImageCreateFlagBits :: enum u32 {
    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 1;
    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 2;
    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 4;
    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 8;
    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 16;
    VK_IMAGE_CREATE_ALIAS_BIT = 1024;
    VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 64;
    VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 32;
    VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 128;
    VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 256;
    VK_IMAGE_CREATE_PROTECTED_BIT = 2048;
    VK_IMAGE_CREATE_DISJOINT_BIT = 512;
    VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192;
    VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096;
    VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384;
    VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 262144;
    VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 131072;
    VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 32768;
    VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 64;
    VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 32;
    VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 128;
    VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 256;
    VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 512;
    VK_IMAGE_CREATE_ALIAS_BIT_KHR = 1024;
    VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkImageCreateFlags

VkImageCreateFlags :: VkFlags

File: vulkan.bl

VkSampleCountFlagBits

VkSampleCountFlagBits :: enum u32 {
    VK_SAMPLE_COUNT_1_BIT = 1;
    VK_SAMPLE_COUNT_2_BIT = 2;
    VK_SAMPLE_COUNT_4_BIT = 4;
    VK_SAMPLE_COUNT_8_BIT = 8;
    VK_SAMPLE_COUNT_16_BIT = 16;
    VK_SAMPLE_COUNT_32_BIT = 32;
    VK_SAMPLE_COUNT_64_BIT = 64;
    VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSampleCountFlags

VkSampleCountFlags :: VkFlags

File: vulkan.bl

VkImageUsageFlagBits

VkImageUsageFlagBits :: enum u32 {
    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 1;
    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 2;
    VK_IMAGE_USAGE_SAMPLED_BIT = 4;
    VK_IMAGE_USAGE_STORAGE_BIT = 8;
    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 16;
    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32;
    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64;
    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128;
    VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512;
    VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 256;
    VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 524288;
    VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 262144;
    VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 1048576;
    VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 2097152;
    VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256;
    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkImageUsageFlags

VkImageUsageFlags :: VkFlags

File: vulkan.bl

VkInstanceCreateFlagBits

VkInstanceCreateFlagBits :: enum u32 {
    VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1;
    VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkInstanceCreateFlags

VkInstanceCreateFlags :: VkFlags

File: vulkan.bl

VkMemoryHeapFlagBits

VkMemoryHeapFlagBits :: enum u32 {
    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 1;
    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 2;
    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 2;
    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkMemoryHeapFlags

VkMemoryHeapFlags :: VkFlags

File: vulkan.bl

VkMemoryPropertyFlagBits

VkMemoryPropertyFlagBits :: enum u32 {
    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 1;
    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 2;
    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 4;
    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 8;
    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 16;
    VK_MEMORY_PROPERTY_PROTECTED_BIT = 32;
    VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 64;
    VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 128;
    VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 256;
    VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkMemoryPropertyFlags

VkMemoryPropertyFlags :: VkFlags

File: vulkan.bl

VkQueueFlagBits

VkQueueFlagBits :: enum u32 {
    VK_QUEUE_GRAPHICS_BIT = 1;
    VK_QUEUE_COMPUTE_BIT = 2;
    VK_QUEUE_TRANSFER_BIT = 4;
    VK_QUEUE_SPARSE_BINDING_BIT = 8;
    VK_QUEUE_PROTECTED_BIT = 16;
    VK_QUEUE_OPTICAL_FLOW_BIT_NV = 256;
    VK_QUEUE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkQueueFlags

VkQueueFlags :: VkFlags

File: vulkan.bl

VkDeviceCreateFlags

VkDeviceCreateFlags :: VkFlags

File: vulkan.bl

VkDeviceQueueCreateFlagBits

VkDeviceQueueCreateFlagBits :: enum u32 {
    VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 1;
    VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkDeviceQueueCreateFlags

VkDeviceQueueCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineStageFlagBits

VkPipelineStageFlagBits :: enum u32 {
    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 1;
    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 2;
    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 4;
    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 8;
    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 16;
    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 32;
    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 64;
    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 128;
    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 256;
    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 512;
    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 1024;
    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 2048;
    VK_PIPELINE_STAGE_TRANSFER_BIT = 4096;
    VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 8192;
    VK_PIPELINE_STAGE_HOST_BIT = 16384;
    VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 32768;
    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 65536;
    VK_PIPELINE_STAGE_NONE = 0;
    VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 16777216;
    VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144;
    VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432;
    VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152;
    VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608;
    VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 4194304;
    VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072;
    VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 524288;
    VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 1048576;
    VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304;
    VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 2097152;
    VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 33554432;
    VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288;
    VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576;
    VK_PIPELINE_STAGE_NONE_KHR = 0;
    VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPipelineStageFlags

VkPipelineStageFlags :: VkFlags

File: vulkan.bl

VkMemoryMapFlags

VkMemoryMapFlags :: VkFlags

File: vulkan.bl

VkSparseMemoryBindFlagBits

VkSparseMemoryBindFlagBits :: enum u32 {
    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 1;
    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSparseMemoryBindFlags

VkSparseMemoryBindFlags :: VkFlags

File: vulkan.bl

VkSparseImageFormatFlagBits

VkSparseImageFormatFlagBits :: enum u32 {
    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 1;
    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 2;
    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 4;
    VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSparseImageFormatFlags

VkSparseImageFormatFlags :: VkFlags

File: vulkan.bl

VkFenceCreateFlagBits

VkFenceCreateFlagBits :: enum u32 {
    VK_FENCE_CREATE_SIGNALED_BIT = 1;
    VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkFenceCreateFlags

VkFenceCreateFlags :: VkFlags

File: vulkan.bl

VkSemaphoreCreateFlags

VkSemaphoreCreateFlags :: VkFlags

File: vulkan.bl

VkEventCreateFlagBits

VkEventCreateFlagBits :: enum u32 {
    VK_EVENT_CREATE_DEVICE_ONLY_BIT = 1;
    VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = 1;
    VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkEventCreateFlags

VkEventCreateFlags :: VkFlags

File: vulkan.bl

VkQueryPipelineStatisticFlagBits

VkQueryPipelineStatisticFlagBits :: enum u32 {
    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 1;
    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 2;
    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 4;
    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 8;
    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 16;
    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 32;
    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 64;
    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 128;
    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256;
    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512;
    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024;
    VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 2048;
    VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 4096;
    VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkQueryPipelineStatisticFlags

VkQueryPipelineStatisticFlags :: VkFlags

File: vulkan.bl

VkQueryPoolCreateFlags

VkQueryPoolCreateFlags :: VkFlags

File: vulkan.bl

VkQueryResultFlagBits

VkQueryResultFlagBits :: enum u32 {
    VK_QUERY_RESULT_64_BIT = 1;
    VK_QUERY_RESULT_WAIT_BIT = 2;
    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4;
    VK_QUERY_RESULT_PARTIAL_BIT = 8;
    VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkQueryResultFlags

VkQueryResultFlags :: VkFlags

File: vulkan.bl

VkBufferCreateFlagBits

VkBufferCreateFlagBits :: enum u32 {
    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 1;
    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 2;
    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4;
    VK_BUFFER_CREATE_PROTECTED_BIT = 8;
    VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16;
    VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 16;
    VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 16;
    VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkBufferCreateFlags

VkBufferCreateFlags :: VkFlags

File: vulkan.bl

VkBufferUsageFlagBits

VkBufferUsageFlagBits :: enum u32 {
    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 1;
    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 2;
    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 4;
    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 8;
    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 16;
    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 32;
    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 64;
    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128;
    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256;
    VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072;
    VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048;
    VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096;
    VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512;
    VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 524288;
    VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 1048576;
    VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 1024;
    VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 8388608;
    VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 16777216;
    VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 1024;
    VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 131072;
    VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = 131072;
    VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkBufferUsageFlags

VkBufferUsageFlags :: VkFlags

File: vulkan.bl

VkBufferViewCreateFlags

VkBufferViewCreateFlags :: VkFlags

File: vulkan.bl

VkImageViewCreateFlagBits

VkImageViewCreateFlagBits :: enum u32 {
    VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1;
    VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2;
    VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkImageViewCreateFlags

VkImageViewCreateFlags :: VkFlags

File: vulkan.bl

VkShaderModuleCreateFlags

VkShaderModuleCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineCacheCreateFlagBits

VkPipelineCacheCreateFlagBits :: enum u32 {
    VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 1;
    VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = 1;
    VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPipelineCacheCreateFlags

VkPipelineCacheCreateFlags :: VkFlags

File: vulkan.bl

VkColorComponentFlagBits

VkColorComponentFlagBits :: enum u32 {
    VK_COLOR_COMPONENT_R_BIT = 1;
    VK_COLOR_COMPONENT_G_BIT = 2;
    VK_COLOR_COMPONENT_B_BIT = 4;
    VK_COLOR_COMPONENT_A_BIT = 8;
    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkColorComponentFlags

VkColorComponentFlags :: VkFlags

File: vulkan.bl

VkPipelineCreateFlagBits

VkPipelineCreateFlagBits :: enum u32 {
    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 1;
    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 2;
    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 4;
    VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 8;
    VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 16;
    VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 256;
    VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 512;
    VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152;
    VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304;
    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 16384;
    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 32768;
    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 65536;
    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 131072;
    VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 4096;
    VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 8192;
    VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 524288;
    VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 32;
    VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 64;
    VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128;
    VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144;
    VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048;
    VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 8388608;
    VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 1024;
    VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 1048576;
    VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 33554432;
    VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 67108864;
    VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 16777216;
    VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 134217728;
    VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 1073741824;
    VK_PIPELINE_CREATE_DISPATCH_BASE = 16;
    VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 2097152;
    VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 4194304;
    VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 8;
    VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 16;
    VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = 256;
    VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = 512;
    VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPipelineCreateFlags

VkPipelineCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineShaderStageCreateFlagBits

VkPipelineShaderStageCreateFlagBits :: enum u32 {
    VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 1;
    VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 2;
    VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 1;
    VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 2;
    VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPipelineShaderStageCreateFlags

VkPipelineShaderStageCreateFlags :: VkFlags

File: vulkan.bl

VkShaderStageFlagBits

VkShaderStageFlagBits :: enum u32 {
    VK_SHADER_STAGE_VERTEX_BIT = 1;
    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 2;
    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 4;
    VK_SHADER_STAGE_GEOMETRY_BIT = 8;
    VK_SHADER_STAGE_FRAGMENT_BIT = 16;
    VK_SHADER_STAGE_COMPUTE_BIT = 32;
    VK_SHADER_STAGE_ALL_GRAPHICS = 31;
    VK_SHADER_STAGE_ALL = 2147483647;
    VK_SHADER_STAGE_RAYGEN_BIT_KHR = 256;
    VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 512;
    VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 1024;
    VK_SHADER_STAGE_MISS_BIT_KHR = 2048;
    VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096;
    VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192;
    VK_SHADER_STAGE_TASK_BIT_EXT = 64;
    VK_SHADER_STAGE_MESH_BIT_EXT = 128;
    VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 16384;
    VK_SHADER_STAGE_RAYGEN_BIT_NV = 256;
    VK_SHADER_STAGE_ANY_HIT_BIT_NV = 512;
    VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 1024;
    VK_SHADER_STAGE_MISS_BIT_NV = 2048;
    VK_SHADER_STAGE_INTERSECTION_BIT_NV = 4096;
    VK_SHADER_STAGE_CALLABLE_BIT_NV = 8192;
    VK_SHADER_STAGE_TASK_BIT_NV = 64;
    VK_SHADER_STAGE_MESH_BIT_NV = 128;
    VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkCullModeFlagBits

VkCullModeFlagBits :: enum u32 {
    VK_CULL_MODE_NONE = 0;
    VK_CULL_MODE_FRONT_BIT = 1;
    VK_CULL_MODE_BACK_BIT = 2;
    VK_CULL_MODE_FRONT_AND_BACK = 3;
    VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkCullModeFlags

VkCullModeFlags :: VkFlags

File: vulkan.bl

VkPipelineVertexInputStateCreateFlags

VkPipelineVertexInputStateCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineInputAssemblyStateCreateFlags

VkPipelineInputAssemblyStateCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineTessellationStateCreateFlags

VkPipelineTessellationStateCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineViewportStateCreateFlags

VkPipelineViewportStateCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineRasterizationStateCreateFlags

VkPipelineRasterizationStateCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineMultisampleStateCreateFlags

VkPipelineMultisampleStateCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineDepthStencilStateCreateFlagBits

VkPipelineDepthStencilStateCreateFlagBits :: enum u32 {
    VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 1;
    VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 2;
    VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 1;
    VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 2;
    VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPipelineDepthStencilStateCreateFlags

VkPipelineDepthStencilStateCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineColorBlendStateCreateFlagBits

VkPipelineColorBlendStateCreateFlagBits :: enum u32 {
    VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 1;
    VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = 1;
    VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPipelineColorBlendStateCreateFlags

VkPipelineColorBlendStateCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineDynamicStateCreateFlags

VkPipelineDynamicStateCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineLayoutCreateFlagBits

VkPipelineLayoutCreateFlagBits :: enum u32 {
    VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 2;
    VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPipelineLayoutCreateFlags

VkPipelineLayoutCreateFlags :: VkFlags

File: vulkan.bl

VkShaderStageFlags

VkShaderStageFlags :: VkFlags

File: vulkan.bl

VkSamplerCreateFlagBits

VkSamplerCreateFlagBits :: enum u32 {
    VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1;
    VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2;
    VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 4;
    VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 16;
    VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSamplerCreateFlags

VkSamplerCreateFlags :: VkFlags

File: vulkan.bl

VkDescriptorPoolCreateFlagBits

VkDescriptorPoolCreateFlagBits :: enum u32 {
    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1;
    VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2;
    VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 4;
    VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 2;
    VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 4;
    VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkDescriptorPoolCreateFlags

VkDescriptorPoolCreateFlags :: VkFlags

File: vulkan.bl

VkDescriptorPoolResetFlags

VkDescriptorPoolResetFlags :: VkFlags

File: vulkan.bl

VkDescriptorSetLayoutCreateFlagBits

VkDescriptorSetLayoutCreateFlagBits :: enum u32 {
    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2;
    VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1;
    VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 4;
    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 2;
    VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 4;
    VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkDescriptorSetLayoutCreateFlags

VkDescriptorSetLayoutCreateFlags :: VkFlags

File: vulkan.bl

VkAttachmentDescriptionFlagBits

VkAttachmentDescriptionFlagBits :: enum u32 {
    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 1;
    VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkAttachmentDescriptionFlags

VkAttachmentDescriptionFlags :: VkFlags

File: vulkan.bl

VkDependencyFlagBits

VkDependencyFlagBits :: enum u32 {
    VK_DEPENDENCY_BY_REGION_BIT = 1;
    VK_DEPENDENCY_DEVICE_GROUP_BIT = 4;
    VK_DEPENDENCY_VIEW_LOCAL_BIT = 2;
    VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 8;
    VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 2;
    VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 4;
    VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkDependencyFlags

VkDependencyFlags :: VkFlags

File: vulkan.bl

VkFramebufferCreateFlagBits

VkFramebufferCreateFlagBits :: enum u32 {
    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 1;
    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = 1;
    VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkFramebufferCreateFlags

VkFramebufferCreateFlags :: VkFlags

File: vulkan.bl

VkRenderPassCreateFlagBits

VkRenderPassCreateFlagBits :: enum u32 {
    VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 2;
    VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkRenderPassCreateFlags

VkRenderPassCreateFlags :: VkFlags

File: vulkan.bl

VkSubpassDescriptionFlagBits

VkSubpassDescriptionFlagBits :: enum u32 {
    VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 1;
    VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2;
    VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4;
    VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8;
    VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 16;
    VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 32;
    VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 64;
    VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 128;
    VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = 16;
    VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = 32;
    VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = 64;
    VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSubpassDescriptionFlags

VkSubpassDescriptionFlags :: VkFlags

File: vulkan.bl

VkCommandPoolCreateFlagBits

VkCommandPoolCreateFlagBits :: enum u32 {
    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 1;
    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 2;
    VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 4;
    VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkCommandPoolCreateFlags

VkCommandPoolCreateFlags :: VkFlags

File: vulkan.bl

VkCommandPoolResetFlagBits

VkCommandPoolResetFlagBits :: enum u32 {
    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 1;
    VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkCommandPoolResetFlags

VkCommandPoolResetFlags :: VkFlags

File: vulkan.bl

VkCommandBufferUsageFlagBits

VkCommandBufferUsageFlagBits :: enum u32 {
    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 1;
    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 2;
    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 4;
    VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkCommandBufferUsageFlags

VkCommandBufferUsageFlags :: VkFlags

File: vulkan.bl

VkQueryControlFlagBits

VkQueryControlFlagBits :: enum u32 {
    VK_QUERY_CONTROL_PRECISE_BIT = 1;
    VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkQueryControlFlags

VkQueryControlFlags :: VkFlags

File: vulkan.bl

VkCommandBufferResetFlagBits

VkCommandBufferResetFlagBits :: enum u32 {
    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 1;
    VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkCommandBufferResetFlags

VkCommandBufferResetFlags :: VkFlags

File: vulkan.bl

VkStencilFaceFlagBits

VkStencilFaceFlagBits :: enum u32 {
    VK_STENCIL_FACE_FRONT_BIT = 1;
    VK_STENCIL_FACE_BACK_BIT = 2;
    VK_STENCIL_FACE_FRONT_AND_BACK = 3;
    VK_STENCIL_FRONT_AND_BACK = 3;
    VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkStencilFaceFlags

VkStencilFaceFlags :: VkFlags

File: vulkan.bl

VkExtent2D

VkExtent2D :: struct {
    width: u32;
    height: u32;
}

File: vulkan.bl

VkExtent3D

VkExtent3D :: struct {
    width: u32;
    height: u32;
    depth: u32;
}

File: vulkan.bl

VkOffset2D

VkOffset2D :: struct {
    x: s32;
    y: s32;
}

File: vulkan.bl

VkOffset3D

VkOffset3D :: struct {
    x: s32;
    y: s32;
    z: s32;
}

File: vulkan.bl

VkRect2D

VkRect2D :: struct {
    offset: VkOffset2D;
    extent: VkExtent2D;
}

File: vulkan.bl

VkBaseInStructure

VkBaseInStructure :: struct {
    sType: VkStructureType;
    pNext: *VkBaseInStructure;
}

File: vulkan.bl

VkBaseOutStructure

VkBaseOutStructure :: struct {
    sType: VkStructureType;
    pNext: *VkBaseOutStructure;
}

File: vulkan.bl

VkBufferMemoryBarrier

VkBufferMemoryBarrier :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcAccessMask: VkAccessFlags;
    dstAccessMask: VkAccessFlags;
    srcQueueFamilyIndex: u32;
    dstQueueFamilyIndex: u32;
    buffer: VkBuffer;
    offset: VkDeviceSize;
    size: VkDeviceSize;
}

File: vulkan.bl

VkDispatchIndirectCommand

VkDispatchIndirectCommand :: struct {
    x: u32;
    y: u32;
    z: u32;
}

File: vulkan.bl

VkDrawIndexedIndirectCommand

VkDrawIndexedIndirectCommand :: struct {
    indexCount: u32;
    instanceCount: u32;
    firstIndex: u32;
    vertexOffset: s32;
    firstInstance: u32;
}

File: vulkan.bl

VkDrawIndirectCommand

VkDrawIndirectCommand :: struct {
    vertexCount: u32;
    instanceCount: u32;
    firstVertex: u32;
    firstInstance: u32;
}

File: vulkan.bl

VkImageSubresourceRange

VkImageSubresourceRange :: struct {
    aspectMask: VkImageAspectFlags;
    baseMipLevel: u32;
    levelCount: u32;
    baseArrayLayer: u32;
    layerCount: u32;
}

File: vulkan.bl

VkImageMemoryBarrier

VkImageMemoryBarrier :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcAccessMask: VkAccessFlags;
    dstAccessMask: VkAccessFlags;
    oldLayout: VkImageLayout;
    newLayout: VkImageLayout;
    srcQueueFamilyIndex: u32;
    dstQueueFamilyIndex: u32;
    image: VkImage;
    subresourceRange: VkImageSubresourceRange;
}

File: vulkan.bl

VkMemoryBarrier

VkMemoryBarrier :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcAccessMask: VkAccessFlags;
    dstAccessMask: VkAccessFlags;
}

File: vulkan.bl

VkPipelineCacheHeaderVersionOne

VkPipelineCacheHeaderVersionOne :: struct {
    headerSize: u32;
    headerVersion: VkPipelineCacheHeaderVersion;
    vendorID: u32;
    deviceID: u32;
    pipelineCacheUUID: ;
}

File: vulkan.bl

PFN_vkAllocationFunction

PFN_vkAllocationFunction :: *fn (: C.void_ptr, : usize, : usize, : VkSystemAllocationScope) C.void_ptr

File: vulkan.bl

PFN_vkFreeFunction

PFN_vkFreeFunction :: *fn (: C.void_ptr, : C.void_ptr) 

File: vulkan.bl

PFN_vkInternalAllocationNotification

PFN_vkInternalAllocationNotification :: *fn (: C.void_ptr, : usize, : VkInternalAllocationType, : VkSystemAllocationScope) 

File: vulkan.bl

PFN_vkInternalFreeNotification

PFN_vkInternalFreeNotification :: *fn (: C.void_ptr, : usize, : VkInternalAllocationType, : VkSystemAllocationScope) 

File: vulkan.bl

PFN_vkReallocationFunction

PFN_vkReallocationFunction :: *fn (: C.void_ptr, : C.void_ptr, : usize, : usize, : VkSystemAllocationScope) C.void_ptr

File: vulkan.bl

PFN_vkVoidFunction

PFN_vkVoidFunction :: *fn () 

File: vulkan.bl

VkAllocationCallbacks

VkAllocationCallbacks :: struct {
    pUserData: C.void_ptr;
    pfnAllocation: PFN_vkAllocationFunction;
    pfnReallocation: PFN_vkReallocationFunction;
    pfnFree: PFN_vkFreeFunction;
    pfnInternalAllocation: PFN_vkInternalAllocationNotification;
    pfnInternalFree: PFN_vkInternalFreeNotification;
}

File: vulkan.bl

VkApplicationInfo

VkApplicationInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pApplicationName: *C.char;
    applicationVersion: u32;
    pEngineName: *C.char;
    engineVersion: u32;
    apiVersion: u32;
}

File: vulkan.bl

VkFormatProperties

VkFormatProperties :: struct {
    linearTilingFeatures: VkFormatFeatureFlags;
    optimalTilingFeatures: VkFormatFeatureFlags;
    bufferFeatures: VkFormatFeatureFlags;
}

File: vulkan.bl

VkImageFormatProperties

VkImageFormatProperties :: struct {
    maxExtent: VkExtent3D;
    maxMipLevels: u32;
    maxArrayLayers: u32;
    sampleCounts: VkSampleCountFlags;
    maxResourceSize: VkDeviceSize;
}

File: vulkan.bl

VkInstanceCreateInfo

VkInstanceCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkInstanceCreateFlags;
    pApplicationInfo: *VkApplicationInfo;
    enabledLayerCount: u32;
    ppEnabledLayerNames: **C.char;
    enabledExtensionCount: u32;
    ppEnabledExtensionNames: **C.char;
}

File: vulkan.bl

VkMemoryHeap

VkMemoryHeap :: struct {
    size: VkDeviceSize;
    flags: VkMemoryHeapFlags;
}

File: vulkan.bl

VkMemoryType

VkMemoryType :: struct {
    propertyFlags: VkMemoryPropertyFlags;
    heapIndex: u32;
}

File: vulkan.bl

VkPhysicalDeviceFeatures

VkPhysicalDeviceFeatures :: struct {
    robustBufferAccess: VkBool32;
    fullDrawIndexUint32: VkBool32;
    imageCubeArray: VkBool32;
    independentBlend: VkBool32;
    geometryShader: VkBool32;
    tessellationShader: VkBool32;
    sampleRateShading: VkBool32;
    dualSrcBlend: VkBool32;
    logicOp: VkBool32;
    multiDrawIndirect: VkBool32;
    drawIndirectFirstInstance: VkBool32;
    depthClamp: VkBool32;
    depthBiasClamp: VkBool32;
    fillModeNonSolid: VkBool32;
    depthBounds: VkBool32;
    wideLines: VkBool32;
    largePoints: VkBool32;
    alphaToOne: VkBool32;
    multiViewport: VkBool32;
    samplerAnisotropy: VkBool32;
    textureCompressionETC2: VkBool32;
    textureCompressionASTC_LDR: VkBool32;
    textureCompressionBC: VkBool32;
    occlusionQueryPrecise: VkBool32;
    pipelineStatisticsQuery: VkBool32;
    vertexPipelineStoresAndAtomics: VkBool32;
    fragmentStoresAndAtomics: VkBool32;
    shaderTessellationAndGeometryPointSize: VkBool32;
    shaderImageGatherExtended: VkBool32;
    shaderStorageImageExtendedFormats: VkBool32;
    shaderStorageImageMultisample: VkBool32;
    shaderStorageImageReadWithoutFormat: VkBool32;
    shaderStorageImageWriteWithoutFormat: VkBool32;
    shaderUniformBufferArrayDynamicIndexing: VkBool32;
    shaderSampledImageArrayDynamicIndexing: VkBool32;
    shaderStorageBufferArrayDynamicIndexing: VkBool32;
    shaderStorageImageArrayDynamicIndexing: VkBool32;
    shaderClipDistance: VkBool32;
    shaderCullDistance: VkBool32;
    shaderFloat64: VkBool32;
    shaderInt64: VkBool32;
    shaderInt16: VkBool32;
    shaderResourceResidency: VkBool32;
    shaderResourceMinLod: VkBool32;
    sparseBinding: VkBool32;
    sparseResidencyBuffer: VkBool32;
    sparseResidencyImage2D: VkBool32;
    sparseResidencyImage3D: VkBool32;
    sparseResidency2Samples: VkBool32;
    sparseResidency4Samples: VkBool32;
    sparseResidency8Samples: VkBool32;
    sparseResidency16Samples: VkBool32;
    sparseResidencyAliased: VkBool32;
    variableMultisampleRate: VkBool32;
    inheritedQueries: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceLimits

VkPhysicalDeviceLimits :: struct {
    maxImageDimension1D: u32;
    maxImageDimension2D: u32;
    maxImageDimension3D: u32;
    maxImageDimensionCube: u32;
    maxImageArrayLayers: u32;
    maxTexelBufferElements: u32;
    maxUniformBufferRange: u32;
    maxStorageBufferRange: u32;
    maxPushConstantsSize: u32;
    maxMemoryAllocationCount: u32;
    maxSamplerAllocationCount: u32;
    bufferImageGranularity: VkDeviceSize;
    sparseAddressSpaceSize: VkDeviceSize;
    maxBoundDescriptorSets: u32;
    maxPerStageDescriptorSamplers: u32;
    maxPerStageDescriptorUniformBuffers: u32;
    maxPerStageDescriptorStorageBuffers: u32;
    maxPerStageDescriptorSampledImages: u32;
    maxPerStageDescriptorStorageImages: u32;
    maxPerStageDescriptorInputAttachments: u32;
    maxPerStageResources: u32;
    maxDescriptorSetSamplers: u32;
    maxDescriptorSetUniformBuffers: u32;
    maxDescriptorSetUniformBuffersDynamic: u32;
    maxDescriptorSetStorageBuffers: u32;
    maxDescriptorSetStorageBuffersDynamic: u32;
    maxDescriptorSetSampledImages: u32;
    maxDescriptorSetStorageImages: u32;
    maxDescriptorSetInputAttachments: u32;
    maxVertexInputAttributes: u32;
    maxVertexInputBindings: u32;
    maxVertexInputAttributeOffset: u32;
    maxVertexInputBindingStride: u32;
    maxVertexOutputComponents: u32;
    maxTessellationGenerationLevel: u32;
    maxTessellationPatchSize: u32;
    maxTessellationControlPerVertexInputComponents: u32;
    maxTessellationControlPerVertexOutputComponents: u32;
    maxTessellationControlPerPatchOutputComponents: u32;
    maxTessellationControlTotalOutputComponents: u32;
    maxTessellationEvaluationInputComponents: u32;
    maxTessellationEvaluationOutputComponents: u32;
    maxGeometryShaderInvocations: u32;
    maxGeometryInputComponents: u32;
    maxGeometryOutputComponents: u32;
    maxGeometryOutputVertices: u32;
    maxGeometryTotalOutputComponents: u32;
    maxFragmentInputComponents: u32;
    maxFragmentOutputAttachments: u32;
    maxFragmentDualSrcAttachments: u32;
    maxFragmentCombinedOutputResources: u32;
    maxComputeSharedMemorySize: u32;
    maxComputeWorkGroupCount: ;
    maxComputeWorkGroupInvocations: u32;
    maxComputeWorkGroupSize: ;
    subPixelPrecisionBits: u32;
    subTexelPrecisionBits: u32;
    mipmapPrecisionBits: u32;
    maxDrawIndexedIndexValue: u32;
    maxDrawIndirectCount: u32;
    maxSamplerLodBias: f32;
    maxSamplerAnisotropy: f32;
    maxViewports: u32;
    maxViewportDimensions: ;
    viewportBoundsRange: ;
    viewportSubPixelBits: u32;
    minMemoryMapAlignment: usize;
    minTexelBufferOffsetAlignment: VkDeviceSize;
    minUniformBufferOffsetAlignment: VkDeviceSize;
    minStorageBufferOffsetAlignment: VkDeviceSize;
    minTexelOffset: s32;
    maxTexelOffset: u32;
    minTexelGatherOffset: s32;
    maxTexelGatherOffset: u32;
    minInterpolationOffset: f32;
    maxInterpolationOffset: f32;
    subPixelInterpolationOffsetBits: u32;
    maxFramebufferWidth: u32;
    maxFramebufferHeight: u32;
    maxFramebufferLayers: u32;
    framebufferColorSampleCounts: VkSampleCountFlags;
    framebufferDepthSampleCounts: VkSampleCountFlags;
    framebufferStencilSampleCounts: VkSampleCountFlags;
    framebufferNoAttachmentsSampleCounts: VkSampleCountFlags;
    maxColorAttachments: u32;
    sampledImageColorSampleCounts: VkSampleCountFlags;
    sampledImageIntegerSampleCounts: VkSampleCountFlags;
    sampledImageDepthSampleCounts: VkSampleCountFlags;
    sampledImageStencilSampleCounts: VkSampleCountFlags;
    storageImageSampleCounts: VkSampleCountFlags;
    maxSampleMaskWords: u32;
    timestampComputeAndGraphics: VkBool32;
    timestampPeriod: f32;
    maxClipDistances: u32;
    maxCullDistances: u32;
    maxCombinedClipAndCullDistances: u32;
    discreteQueuePriorities: u32;
    pointSizeRange: ;
    lineWidthRange: ;
    pointSizeGranularity: f32;
    lineWidthGranularity: f32;
    strictLines: VkBool32;
    standardSampleLocations: VkBool32;
    optimalBufferCopyOffsetAlignment: VkDeviceSize;
    optimalBufferCopyRowPitchAlignment: VkDeviceSize;
    nonCoherentAtomSize: VkDeviceSize;
}

File: vulkan.bl

VkPhysicalDeviceMemoryProperties

VkPhysicalDeviceMemoryProperties :: struct {
    memoryTypeCount: u32;
    memoryTypes: ;
    memoryHeapCount: u32;
    memoryHeaps: ;
}

File: vulkan.bl

VkPhysicalDeviceSparseProperties

VkPhysicalDeviceSparseProperties :: struct {
    residencyStandard2DBlockShape: VkBool32;
    residencyStandard2DMultisampleBlockShape: VkBool32;
    residencyStandard3DBlockShape: VkBool32;
    residencyAlignedMipSize: VkBool32;
    residencyNonResidentStrict: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceProperties

VkPhysicalDeviceProperties :: struct {
    apiVersion: u32;
    driverVersion: u32;
    vendorID: u32;
    deviceID: u32;
    deviceType: VkPhysicalDeviceType;
    deviceName: ;
    pipelineCacheUUID: ;
    limits: VkPhysicalDeviceLimits;
    sparseProperties: VkPhysicalDeviceSparseProperties;
}

File: vulkan.bl

VkQueueFamilyProperties

VkQueueFamilyProperties :: struct {
    queueFlags: VkQueueFlags;
    queueCount: u32;
    timestampValidBits: u32;
    minImageTransferGranularity: VkExtent3D;
}

File: vulkan.bl

VkDeviceQueueCreateInfo

VkDeviceQueueCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDeviceQueueCreateFlags;
    queueFamilyIndex: u32;
    queueCount: u32;
    pQueuePriorities: *f32;
}

File: vulkan.bl

VkDeviceCreateInfo

VkDeviceCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDeviceCreateFlags;
    queueCreateInfoCount: u32;
    pQueueCreateInfos: *VkDeviceQueueCreateInfo;
    enabledLayerCount: u32;
    ppEnabledLayerNames: **C.char;
    enabledExtensionCount: u32;
    ppEnabledExtensionNames: **C.char;
    pEnabledFeatures: *VkPhysicalDeviceFeatures;
}

File: vulkan.bl

VkExtensionProperties

VkExtensionProperties :: struct {
    extensionName: ;
    specVersion: u32;
}

File: vulkan.bl

VkLayerProperties

VkLayerProperties :: struct {
    layerName: ;
    specVersion: u32;
    implementationVersion: u32;
    description: ;
}

File: vulkan.bl

VkSubmitInfo

VkSubmitInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    waitSemaphoreCount: u32;
    pWaitSemaphores: *VkSemaphore;
    pWaitDstStageMask: *VkPipelineStageFlags;
    commandBufferCount: u32;
    pCommandBuffers: *VkCommandBuffer;
    signalSemaphoreCount: u32;
    pSignalSemaphores: *VkSemaphore;
}

File: vulkan.bl

VkMappedMemoryRange

VkMappedMemoryRange :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    memory: VkDeviceMemory;
    offset: VkDeviceSize;
    size: VkDeviceSize;
}

File: vulkan.bl

VkMemoryAllocateInfo

VkMemoryAllocateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    allocationSize: VkDeviceSize;
    memoryTypeIndex: u32;
}

File: vulkan.bl

VkMemoryRequirements

VkMemoryRequirements :: struct {
    size: VkDeviceSize;
    alignment: VkDeviceSize;
    memoryTypeBits: u32;
}

File: vulkan.bl

VkSparseMemoryBind

VkSparseMemoryBind :: struct {
    resourceOffset: VkDeviceSize;
    size: VkDeviceSize;
    memory: VkDeviceMemory;
    memoryOffset: VkDeviceSize;
    flags: VkSparseMemoryBindFlags;
}

File: vulkan.bl

VkSparseBufferMemoryBindInfo

VkSparseBufferMemoryBindInfo :: struct {
    buffer: VkBuffer;
    bindCount: u32;
    pBinds: *VkSparseMemoryBind;
}

File: vulkan.bl

VkSparseImageOpaqueMemoryBindInfo

VkSparseImageOpaqueMemoryBindInfo :: struct {
    image: VkImage;
    bindCount: u32;
    pBinds: *VkSparseMemoryBind;
}

File: vulkan.bl

VkImageSubresource

VkImageSubresource :: struct {
    aspectMask: VkImageAspectFlags;
    mipLevel: u32;
    arrayLayer: u32;
}

File: vulkan.bl

VkSparseImageMemoryBind

VkSparseImageMemoryBind :: struct {
    subresource: VkImageSubresource;
    offset: VkOffset3D;
    extent: VkExtent3D;
    memory: VkDeviceMemory;
    memoryOffset: VkDeviceSize;
    flags: VkSparseMemoryBindFlags;
}

File: vulkan.bl

VkSparseImageMemoryBindInfo

VkSparseImageMemoryBindInfo :: struct {
    image: VkImage;
    bindCount: u32;
    pBinds: *VkSparseImageMemoryBind;
}

File: vulkan.bl

VkBindSparseInfo

VkBindSparseInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    waitSemaphoreCount: u32;
    pWaitSemaphores: *VkSemaphore;
    bufferBindCount: u32;
    pBufferBinds: *VkSparseBufferMemoryBindInfo;
    imageOpaqueBindCount: u32;
    pImageOpaqueBinds: *VkSparseImageOpaqueMemoryBindInfo;
    imageBindCount: u32;
    pImageBinds: *VkSparseImageMemoryBindInfo;
    signalSemaphoreCount: u32;
    pSignalSemaphores: *VkSemaphore;
}

File: vulkan.bl

VkSparseImageFormatProperties

VkSparseImageFormatProperties :: struct {
    aspectMask: VkImageAspectFlags;
    imageGranularity: VkExtent3D;
    flags: VkSparseImageFormatFlags;
}

File: vulkan.bl

VkSparseImageMemoryRequirements

VkSparseImageMemoryRequirements :: struct {
    formatProperties: VkSparseImageFormatProperties;
    imageMipTailFirstLod: u32;
    imageMipTailSize: VkDeviceSize;
    imageMipTailOffset: VkDeviceSize;
    imageMipTailStride: VkDeviceSize;
}

File: vulkan.bl

VkFenceCreateInfo

VkFenceCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkFenceCreateFlags;
}

File: vulkan.bl

VkSemaphoreCreateInfo

VkSemaphoreCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkSemaphoreCreateFlags;
}

File: vulkan.bl

VkEventCreateInfo

VkEventCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkEventCreateFlags;
}

File: vulkan.bl

VkQueryPoolCreateInfo

VkQueryPoolCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkQueryPoolCreateFlags;
    queryType: VkQueryType;
    queryCount: u32;
    pipelineStatistics: VkQueryPipelineStatisticFlags;
}

File: vulkan.bl

VkBufferCreateInfo

VkBufferCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkBufferCreateFlags;
    size: VkDeviceSize;
    usage: VkBufferUsageFlags;
    sharingMode: VkSharingMode;
    queueFamilyIndexCount: u32;
    pQueueFamilyIndices: *u32;
}

File: vulkan.bl

VkBufferViewCreateInfo

VkBufferViewCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkBufferViewCreateFlags;
    buffer: VkBuffer;
    format: VkFormat;
    offset: VkDeviceSize;
    range: VkDeviceSize;
}

File: vulkan.bl

VkImageCreateInfo

VkImageCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkImageCreateFlags;
    imageType: VkImageType;
    format: VkFormat;
    extent: VkExtent3D;
    mipLevels: u32;
    arrayLayers: u32;
    samples: VkSampleCountFlagBits;
    tiling: VkImageTiling;
    usage: VkImageUsageFlags;
    sharingMode: VkSharingMode;
    queueFamilyIndexCount: u32;
    pQueueFamilyIndices: *u32;
    initialLayout: VkImageLayout;
}

File: vulkan.bl

VkSubresourceLayout

VkSubresourceLayout :: struct {
    offset: VkDeviceSize;
    size: VkDeviceSize;
    rowPitch: VkDeviceSize;
    arrayPitch: VkDeviceSize;
    depthPitch: VkDeviceSize;
}

File: vulkan.bl

VkComponentMapping

VkComponentMapping :: struct {
    r: VkComponentSwizzle;
    g: VkComponentSwizzle;
    b: VkComponentSwizzle;
    a: VkComponentSwizzle;
}

File: vulkan.bl

VkImageViewCreateInfo

VkImageViewCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkImageViewCreateFlags;
    image: VkImage;
    viewType: VkImageViewType;
    format: VkFormat;
    components: VkComponentMapping;
    subresourceRange: VkImageSubresourceRange;
}

File: vulkan.bl

VkShaderModuleCreateInfo

VkShaderModuleCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkShaderModuleCreateFlags;
    codeSize: usize;
    pCode: *u32;
}

File: vulkan.bl

VkPipelineCacheCreateInfo

VkPipelineCacheCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineCacheCreateFlags;
    initialDataSize: usize;
    pInitialData: C.void_ptr;
}

File: vulkan.bl

VkSpecializationMapEntry

VkSpecializationMapEntry :: struct {
    constantID: u32;
    offset: u32;
    size: usize;
}

File: vulkan.bl

VkSpecializationInfo

VkSpecializationInfo :: struct {
    mapEntryCount: u32;
    pMapEntries: *VkSpecializationMapEntry;
    dataSize: usize;
    pData: C.void_ptr;
}

File: vulkan.bl

VkPipelineShaderStageCreateInfo

VkPipelineShaderStageCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineShaderStageCreateFlags;
    stage: VkShaderStageFlagBits;
    module: VkShaderModule;
    pName: *C.char;
    pSpecializationInfo: *VkSpecializationInfo;
}

File: vulkan.bl

VkComputePipelineCreateInfo

VkComputePipelineCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineCreateFlags;
    stage: VkPipelineShaderStageCreateInfo;
    layout: VkPipelineLayout;
    basePipelineHandle: VkPipeline;
    basePipelineIndex: s32;
}

File: vulkan.bl

VkVertexInputBindingDescription

VkVertexInputBindingDescription :: struct {
    binding: u32;
    stride: u32;
    inputRate: VkVertexInputRate;
}

File: vulkan.bl

VkVertexInputAttributeDescription

VkVertexInputAttributeDescription :: struct {
    location: u32;
    binding: u32;
    format: VkFormat;
    offset: u32;
}

File: vulkan.bl

VkPipelineVertexInputStateCreateInfo

VkPipelineVertexInputStateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineVertexInputStateCreateFlags;
    vertexBindingDescriptionCount: u32;
    pVertexBindingDescriptions: *VkVertexInputBindingDescription;
    vertexAttributeDescriptionCount: u32;
    pVertexAttributeDescriptions: *VkVertexInputAttributeDescription;
}

File: vulkan.bl

VkPipelineInputAssemblyStateCreateInfo

VkPipelineInputAssemblyStateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineInputAssemblyStateCreateFlags;
    topology: VkPrimitiveTopology;
    primitiveRestartEnable: VkBool32;
}

File: vulkan.bl

VkPipelineTessellationStateCreateInfo

VkPipelineTessellationStateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineTessellationStateCreateFlags;
    patchControlPoints: u32;
}

File: vulkan.bl

VkViewport

VkViewport :: struct {
    x: f32;
    y: f32;
    width: f32;
    height: f32;
    minDepth: f32;
    maxDepth: f32;
}

File: vulkan.bl

VkPipelineViewportStateCreateInfo

VkPipelineViewportStateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineViewportStateCreateFlags;
    viewportCount: u32;
    pViewports: *VkViewport;
    scissorCount: u32;
    pScissors: *VkRect2D;
}

File: vulkan.bl

VkPipelineRasterizationStateCreateInfo

VkPipelineRasterizationStateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineRasterizationStateCreateFlags;
    depthClampEnable: VkBool32;
    rasterizerDiscardEnable: VkBool32;
    polygonMode: VkPolygonMode;
    cullMode: VkCullModeFlags;
    frontFace: VkFrontFace;
    depthBiasEnable: VkBool32;
    depthBiasConstantFactor: f32;
    depthBiasClamp: f32;
    depthBiasSlopeFactor: f32;
    lineWidth: f32;
}

File: vulkan.bl

VkPipelineMultisampleStateCreateInfo

VkPipelineMultisampleStateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineMultisampleStateCreateFlags;
    rasterizationSamples: VkSampleCountFlagBits;
    sampleShadingEnable: VkBool32;
    minSampleShading: f32;
    pSampleMask: *VkSampleMask;
    alphaToCoverageEnable: VkBool32;
    alphaToOneEnable: VkBool32;
}

File: vulkan.bl

VkStencilOpState

VkStencilOpState :: struct {
    failOp: VkStencilOp;
    passOp: VkStencilOp;
    depthFailOp: VkStencilOp;
    compareOp: VkCompareOp;
    compareMask: u32;
    writeMask: u32;
    reference: u32;
}

File: vulkan.bl

VkPipelineDepthStencilStateCreateInfo

VkPipelineDepthStencilStateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineDepthStencilStateCreateFlags;
    depthTestEnable: VkBool32;
    depthWriteEnable: VkBool32;
    depthCompareOp: VkCompareOp;
    depthBoundsTestEnable: VkBool32;
    stencilTestEnable: VkBool32;
    front: VkStencilOpState;
    back: VkStencilOpState;
    minDepthBounds: f32;
    maxDepthBounds: f32;
}

File: vulkan.bl

VkPipelineColorBlendAttachmentState

VkPipelineColorBlendAttachmentState :: struct {
    blendEnable: VkBool32;
    srcColorBlendFactor: VkBlendFactor;
    dstColorBlendFactor: VkBlendFactor;
    colorBlendOp: VkBlendOp;
    srcAlphaBlendFactor: VkBlendFactor;
    dstAlphaBlendFactor: VkBlendFactor;
    alphaBlendOp: VkBlendOp;
    colorWriteMask: VkColorComponentFlags;
}

File: vulkan.bl

VkPipelineColorBlendStateCreateInfo

VkPipelineColorBlendStateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineColorBlendStateCreateFlags;
    logicOpEnable: VkBool32;
    logicOp: VkLogicOp;
    attachmentCount: u32;
    pAttachments: *VkPipelineColorBlendAttachmentState;
    blendConstants: ;
}

File: vulkan.bl

VkPipelineDynamicStateCreateInfo

VkPipelineDynamicStateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineDynamicStateCreateFlags;
    dynamicStateCount: u32;
    pDynamicStates: *VkDynamicState;
}

File: vulkan.bl

VkGraphicsPipelineCreateInfo

VkGraphicsPipelineCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineCreateFlags;
    stageCount: u32;
    pStages: *VkPipelineShaderStageCreateInfo;
    pVertexInputState: *VkPipelineVertexInputStateCreateInfo;
    pInputAssemblyState: *VkPipelineInputAssemblyStateCreateInfo;
    pTessellationState: *VkPipelineTessellationStateCreateInfo;
    pViewportState: *VkPipelineViewportStateCreateInfo;
    pRasterizationState: *VkPipelineRasterizationStateCreateInfo;
    pMultisampleState: *VkPipelineMultisampleStateCreateInfo;
    pDepthStencilState: *VkPipelineDepthStencilStateCreateInfo;
    pColorBlendState: *VkPipelineColorBlendStateCreateInfo;
    pDynamicState: *VkPipelineDynamicStateCreateInfo;
    layout: VkPipelineLayout;
    renderPass: VkRenderPass;
    subpass: u32;
    basePipelineHandle: VkPipeline;
    basePipelineIndex: s32;
}

File: vulkan.bl

VkPushConstantRange

VkPushConstantRange :: struct {
    stageFlags: VkShaderStageFlags;
    offset: u32;
    size: u32;
}

File: vulkan.bl

VkPipelineLayoutCreateInfo

VkPipelineLayoutCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineLayoutCreateFlags;
    setLayoutCount: u32;
    pSetLayouts: *VkDescriptorSetLayout;
    pushConstantRangeCount: u32;
    pPushConstantRanges: *VkPushConstantRange;
}

File: vulkan.bl

VkSamplerCreateInfo

VkSamplerCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkSamplerCreateFlags;
    magFilter: VkFilter;
    minFilter: VkFilter;
    mipmapMode: VkSamplerMipmapMode;
    addressModeU: VkSamplerAddressMode;
    addressModeV: VkSamplerAddressMode;
    addressModeW: VkSamplerAddressMode;
    mipLodBias: f32;
    anisotropyEnable: VkBool32;
    maxAnisotropy: f32;
    compareEnable: VkBool32;
    compareOp: VkCompareOp;
    minLod: f32;
    maxLod: f32;
    borderColor: VkBorderColor;
    unnormalizedCoordinates: VkBool32;
}

File: vulkan.bl

VkCopyDescriptorSet

VkCopyDescriptorSet :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcSet: VkDescriptorSet;
    srcBinding: u32;
    srcArrayElement: u32;
    dstSet: VkDescriptorSet;
    dstBinding: u32;
    dstArrayElement: u32;
    descriptorCount: u32;
}

File: vulkan.bl

VkDescriptorBufferInfo

VkDescriptorBufferInfo :: struct {
    buffer: VkBuffer;
    offset: VkDeviceSize;
    range: VkDeviceSize;
}

File: vulkan.bl

VkDescriptorImageInfo

VkDescriptorImageInfo :: struct {
    sampler: VkSampler;
    imageView: VkImageView;
    imageLayout: VkImageLayout;
}

File: vulkan.bl

VkDescriptorPoolSize

VkDescriptorPoolSize :: struct {
    t: VkDescriptorType;
    descriptorCount: u32;
}

File: vulkan.bl

VkDescriptorPoolCreateInfo

VkDescriptorPoolCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDescriptorPoolCreateFlags;
    maxSets: u32;
    poolSizeCount: u32;
    pPoolSizes: *VkDescriptorPoolSize;
}

File: vulkan.bl

VkDescriptorSetAllocateInfo

VkDescriptorSetAllocateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    descriptorPool: VkDescriptorPool;
    descriptorSetCount: u32;
    pSetLayouts: *VkDescriptorSetLayout;
}

File: vulkan.bl

VkDescriptorSetLayoutBinding

VkDescriptorSetLayoutBinding :: struct {
    binding: u32;
    descriptorType: VkDescriptorType;
    descriptorCount: u32;
    stageFlags: VkShaderStageFlags;
    pImmutableSamplers: *VkSampler;
}

File: vulkan.bl

VkDescriptorSetLayoutCreateInfo

VkDescriptorSetLayoutCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDescriptorSetLayoutCreateFlags;
    bindingCount: u32;
    pBindings: *VkDescriptorSetLayoutBinding;
}

File: vulkan.bl

VkWriteDescriptorSet

VkWriteDescriptorSet :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    dstSet: VkDescriptorSet;
    dstBinding: u32;
    dstArrayElement: u32;
    descriptorCount: u32;
    descriptorType: VkDescriptorType;
    pImageInfo: *VkDescriptorImageInfo;
    pBufferInfo: *VkDescriptorBufferInfo;
    pTexelBufferView: *VkBufferView;
}

File: vulkan.bl

VkAttachmentDescription

VkAttachmentDescription :: struct {
    flags: VkAttachmentDescriptionFlags;
    format: VkFormat;
    samples: VkSampleCountFlagBits;
    loadOp: VkAttachmentLoadOp;
    storeOp: VkAttachmentStoreOp;
    stencilLoadOp: VkAttachmentLoadOp;
    stencilStoreOp: VkAttachmentStoreOp;
    initialLayout: VkImageLayout;
    finalLayout: VkImageLayout;
}

File: vulkan.bl

VkAttachmentReference

VkAttachmentReference :: struct {
    attachment: u32;
    layout: VkImageLayout;
}

File: vulkan.bl

VkFramebufferCreateInfo

VkFramebufferCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkFramebufferCreateFlags;
    renderPass: VkRenderPass;
    attachmentCount: u32;
    pAttachments: *VkImageView;
    width: u32;
    height: u32;
    layers: u32;
}

File: vulkan.bl

VkSubpassDescription

VkSubpassDescription :: struct {
    flags: VkSubpassDescriptionFlags;
    pipelineBindPoint: VkPipelineBindPoint;
    inputAttachmentCount: u32;
    pInputAttachments: *VkAttachmentReference;
    colorAttachmentCount: u32;
    pColorAttachments: *VkAttachmentReference;
    pResolveAttachments: *VkAttachmentReference;
    pDepthStencilAttachment: *VkAttachmentReference;
    preserveAttachmentCount: u32;
    pPreserveAttachments: *u32;
}

File: vulkan.bl

VkSubpassDependency

VkSubpassDependency :: struct {
    srcSubpass: u32;
    dstSubpass: u32;
    srcStageMask: VkPipelineStageFlags;
    dstStageMask: VkPipelineStageFlags;
    srcAccessMask: VkAccessFlags;
    dstAccessMask: VkAccessFlags;
    dependencyFlags: VkDependencyFlags;
}

File: vulkan.bl

VkRenderPassCreateInfo

VkRenderPassCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkRenderPassCreateFlags;
    attachmentCount: u32;
    pAttachments: *VkAttachmentDescription;
    subpassCount: u32;
    pSubpasses: *VkSubpassDescription;
    dependencyCount: u32;
    pDependencies: *VkSubpassDependency;
}

File: vulkan.bl

VkCommandPoolCreateInfo

VkCommandPoolCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkCommandPoolCreateFlags;
    queueFamilyIndex: u32;
}

File: vulkan.bl

VkCommandBufferAllocateInfo

VkCommandBufferAllocateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    commandPool: VkCommandPool;
    level: VkCommandBufferLevel;
    commandBufferCount: u32;
}

File: vulkan.bl

VkCommandBufferInheritanceInfo

VkCommandBufferInheritanceInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    renderPass: VkRenderPass;
    subpass: u32;
    framebuffer: VkFramebuffer;
    occlusionQueryEnable: VkBool32;
    queryFlags: VkQueryControlFlags;
    pipelineStatistics: VkQueryPipelineStatisticFlags;
}

File: vulkan.bl

VkCommandBufferBeginInfo

VkCommandBufferBeginInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkCommandBufferUsageFlags;
    pInheritanceInfo: *VkCommandBufferInheritanceInfo;
}

File: vulkan.bl

VkBufferCopy

VkBufferCopy :: struct {
    srcOffset: VkDeviceSize;
    dstOffset: VkDeviceSize;
    size: VkDeviceSize;
}

File: vulkan.bl

VkImageSubresourceLayers

VkImageSubresourceLayers :: struct {
    aspectMask: VkImageAspectFlags;
    mipLevel: u32;
    baseArrayLayer: u32;
    layerCount: u32;
}

File: vulkan.bl

VkBufferImageCopy

VkBufferImageCopy :: struct {
    bufferOffset: VkDeviceSize;
    bufferRowLength: u32;
    bufferImageHeight: u32;
    imageSubresource: VkImageSubresourceLayers;
    imageOffset: VkOffset3D;
    imageExtent: VkExtent3D;
}

File: vulkan.bl

VkClearColorValue

VkClearColorValue :: union {
    float32: ;
    int32: ;
    uint32: ;
}

File: vulkan.bl

VkClearDepthStencilValue

VkClearDepthStencilValue :: struct {
    depth: f32;
    stencil: u32;
}

File: vulkan.bl

VkClearValue

VkClearValue :: union {
    color: VkClearColorValue;
    depthStencil: VkClearDepthStencilValue;
}

File: vulkan.bl

VkClearAttachment

VkClearAttachment :: struct {
    aspectMask: VkImageAspectFlags;
    colorAttachment: u32;
    clearValue: VkClearValue;
}

File: vulkan.bl

VkClearRect

VkClearRect :: struct {
    rect: VkRect2D;
    baseArrayLayer: u32;
    layerCount: u32;
}

File: vulkan.bl

VkImageBlit

VkImageBlit :: struct {
    srcSubresource: VkImageSubresourceLayers;
    srcOffsets: ;
    dstSubresource: VkImageSubresourceLayers;
    dstOffsets: ;
}

File: vulkan.bl

VkImageCopy

VkImageCopy :: struct {
    srcSubresource: VkImageSubresourceLayers;
    srcOffset: VkOffset3D;
    dstSubresource: VkImageSubresourceLayers;
    dstOffset: VkOffset3D;
    extent: VkExtent3D;
}

File: vulkan.bl

VkImageResolve

VkImageResolve :: struct {
    srcSubresource: VkImageSubresourceLayers;
    srcOffset: VkOffset3D;
    dstSubresource: VkImageSubresourceLayers;
    dstOffset: VkOffset3D;
    extent: VkExtent3D;
}

File: vulkan.bl

VkRenderPassBeginInfo

VkRenderPassBeginInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    renderPass: VkRenderPass;
    framebuffer: VkFramebuffer;
    renderArea: VkRect2D;
    clearValueCount: u32;
    pClearValues: *VkClearValue;
}

File: vulkan.bl

PFN_vkCreateInstance

PFN_vkCreateInstance :: *fn (: *VkInstanceCreateInfo, : *VkAllocationCallbacks, : *VkInstance) VkResult

File: vulkan.bl

PFN_vkDestroyInstance

PFN_vkDestroyInstance :: *fn (: VkInstance, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkEnumeratePhysicalDevices

PFN_vkEnumeratePhysicalDevices :: *fn (: VkInstance, : *u32, : *VkPhysicalDevice) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceFeatures

PFN_vkGetPhysicalDeviceFeatures :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceFeatures) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceFormatProperties

PFN_vkGetPhysicalDeviceFormatProperties :: *fn (: VkPhysicalDevice, : VkFormat, : *VkFormatProperties) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceImageFormatProperties

PFN_vkGetPhysicalDeviceImageFormatProperties :: *fn (: VkPhysicalDevice, : VkFormat, : VkImageType, : VkImageTiling, : VkImageUsageFlags, : VkImageCreateFlags, : *VkImageFormatProperties) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceProperties

PFN_vkGetPhysicalDeviceProperties :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceProperties) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceQueueFamilyProperties

PFN_vkGetPhysicalDeviceQueueFamilyProperties :: *fn (: VkPhysicalDevice, : *u32, : *VkQueueFamilyProperties) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceMemoryProperties

PFN_vkGetPhysicalDeviceMemoryProperties :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceMemoryProperties) 

File: vulkan.bl

PFN_vkGetInstanceProcAddr

PFN_vkGetInstanceProcAddr :: *fn (: VkInstance, : *C.char) PFN_vkVoidFunction

File: vulkan.bl

PFN_vkGetDeviceProcAddr

PFN_vkGetDeviceProcAddr :: *fn (: VkDevice, : *C.char) PFN_vkVoidFunction

File: vulkan.bl

PFN_vkCreateDevice

PFN_vkCreateDevice :: *fn (: VkPhysicalDevice, : *VkDeviceCreateInfo, : *VkAllocationCallbacks, : *VkDevice) VkResult

File: vulkan.bl

PFN_vkDestroyDevice

PFN_vkDestroyDevice :: *fn (: VkDevice, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkEnumerateInstanceExtensionProperties

PFN_vkEnumerateInstanceExtensionProperties :: *fn (: *C.char, : *u32, : *VkExtensionProperties) VkResult

File: vulkan.bl

PFN_vkEnumerateDeviceExtensionProperties

PFN_vkEnumerateDeviceExtensionProperties :: *fn (: VkPhysicalDevice, : *C.char, : *u32, : *VkExtensionProperties) VkResult

File: vulkan.bl

PFN_vkEnumerateInstanceLayerProperties

PFN_vkEnumerateInstanceLayerProperties :: *fn (: *u32, : *VkLayerProperties) VkResult

File: vulkan.bl

PFN_vkEnumerateDeviceLayerProperties

PFN_vkEnumerateDeviceLayerProperties :: *fn (: VkPhysicalDevice, : *u32, : *VkLayerProperties) VkResult

File: vulkan.bl

PFN_vkGetDeviceQueue

PFN_vkGetDeviceQueue :: *fn (: VkDevice, : u32, : u32, : *VkQueue) 

File: vulkan.bl

PFN_vkQueueSubmit

PFN_vkQueueSubmit :: *fn (: VkQueue, : u32, : *VkSubmitInfo, : VkFence) VkResult

File: vulkan.bl

PFN_vkQueueWaitIdle

PFN_vkQueueWaitIdle :: *fn (: VkQueue) VkResult

File: vulkan.bl

PFN_vkDeviceWaitIdle

PFN_vkDeviceWaitIdle :: *fn (: VkDevice) VkResult

File: vulkan.bl

PFN_vkAllocateMemory

PFN_vkAllocateMemory :: *fn (: VkDevice, : *VkMemoryAllocateInfo, : *VkAllocationCallbacks, : *VkDeviceMemory) VkResult

File: vulkan.bl

PFN_vkFreeMemory

PFN_vkFreeMemory :: *fn (: VkDevice, : VkDeviceMemory, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkMapMemory

PFN_vkMapMemory :: *fn (: VkDevice, : VkDeviceMemory, : VkDeviceSize, : VkDeviceSize, : VkMemoryMapFlags, : *C.void_ptr) VkResult

File: vulkan.bl

PFN_vkUnmapMemory

PFN_vkUnmapMemory :: *fn (: VkDevice, : VkDeviceMemory) 

File: vulkan.bl

PFN_vkFlushMappedMemoryRanges

PFN_vkFlushMappedMemoryRanges :: *fn (: VkDevice, : u32, : *VkMappedMemoryRange) VkResult

File: vulkan.bl

PFN_vkInvalidateMappedMemoryRanges

PFN_vkInvalidateMappedMemoryRanges :: *fn (: VkDevice, : u32, : *VkMappedMemoryRange) VkResult

File: vulkan.bl

PFN_vkGetDeviceMemoryCommitment

PFN_vkGetDeviceMemoryCommitment :: *fn (: VkDevice, : VkDeviceMemory, : *VkDeviceSize) 

File: vulkan.bl

PFN_vkBindBufferMemory

PFN_vkBindBufferMemory :: *fn (: VkDevice, : VkBuffer, : VkDeviceMemory, : VkDeviceSize) VkResult

File: vulkan.bl

PFN_vkBindImageMemory

PFN_vkBindImageMemory :: *fn (: VkDevice, : VkImage, : VkDeviceMemory, : VkDeviceSize) VkResult

File: vulkan.bl

PFN_vkGetBufferMemoryRequirements

PFN_vkGetBufferMemoryRequirements :: *fn (: VkDevice, : VkBuffer, : *VkMemoryRequirements) 

File: vulkan.bl

PFN_vkGetImageMemoryRequirements

PFN_vkGetImageMemoryRequirements :: *fn (: VkDevice, : VkImage, : *VkMemoryRequirements) 

File: vulkan.bl

PFN_vkGetImageSparseMemoryRequirements

PFN_vkGetImageSparseMemoryRequirements :: *fn (: VkDevice, : VkImage, : *u32, : *VkSparseImageMemoryRequirements) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceSparseImageFormatProperties

PFN_vkGetPhysicalDeviceSparseImageFormatProperties :: *fn (: VkPhysicalDevice, : VkFormat, : VkImageType, : VkSampleCountFlagBits, : VkImageUsageFlags, : VkImageTiling, : *u32, : *VkSparseImageFormatProperties) 

File: vulkan.bl

PFN_vkQueueBindSparse

PFN_vkQueueBindSparse :: *fn (: VkQueue, : u32, : *VkBindSparseInfo, : VkFence) VkResult

File: vulkan.bl

PFN_vkCreateFence

PFN_vkCreateFence :: *fn (: VkDevice, : *VkFenceCreateInfo, : *VkAllocationCallbacks, : *VkFence) VkResult

File: vulkan.bl

PFN_vkDestroyFence

PFN_vkDestroyFence :: *fn (: VkDevice, : VkFence, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkResetFences

PFN_vkResetFences :: *fn (: VkDevice, : u32, : *VkFence) VkResult

File: vulkan.bl

PFN_vkGetFenceStatus

PFN_vkGetFenceStatus :: *fn (: VkDevice, : VkFence) VkResult

File: vulkan.bl

PFN_vkWaitForFences

PFN_vkWaitForFences :: *fn (: VkDevice, : u32, : *VkFence, : VkBool32, : u64) VkResult

File: vulkan.bl

PFN_vkCreateSemaphore

PFN_vkCreateSemaphore :: *fn (: VkDevice, : *VkSemaphoreCreateInfo, : *VkAllocationCallbacks, : *VkSemaphore) VkResult

File: vulkan.bl

PFN_vkDestroySemaphore

PFN_vkDestroySemaphore :: *fn (: VkDevice, : VkSemaphore, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreateEvent

PFN_vkCreateEvent :: *fn (: VkDevice, : *VkEventCreateInfo, : *VkAllocationCallbacks, : *VkEvent) VkResult

File: vulkan.bl

PFN_vkDestroyEvent

PFN_vkDestroyEvent :: *fn (: VkDevice, : VkEvent, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkGetEventStatus

PFN_vkGetEventStatus :: *fn (: VkDevice, : VkEvent) VkResult

File: vulkan.bl

PFN_vkSetEvent

PFN_vkSetEvent :: *fn (: VkDevice, : VkEvent) VkResult

File: vulkan.bl

PFN_vkResetEvent

PFN_vkResetEvent :: *fn (: VkDevice, : VkEvent) VkResult

File: vulkan.bl

PFN_vkCreateQueryPool

PFN_vkCreateQueryPool :: *fn (: VkDevice, : *VkQueryPoolCreateInfo, : *VkAllocationCallbacks, : *VkQueryPool) VkResult

File: vulkan.bl

PFN_vkDestroyQueryPool

PFN_vkDestroyQueryPool :: *fn (: VkDevice, : VkQueryPool, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkGetQueryPoolResults

PFN_vkGetQueryPoolResults :: *fn (: VkDevice, : VkQueryPool, : u32, : u32, : usize, : C.void_ptr, : VkDeviceSize, : VkQueryResultFlags) VkResult

File: vulkan.bl

PFN_vkCreateBuffer

PFN_vkCreateBuffer :: *fn (: VkDevice, : *VkBufferCreateInfo, : *VkAllocationCallbacks, : *VkBuffer) VkResult

File: vulkan.bl

PFN_vkDestroyBuffer

PFN_vkDestroyBuffer :: *fn (: VkDevice, : VkBuffer, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreateBufferView

PFN_vkCreateBufferView :: *fn (: VkDevice, : *VkBufferViewCreateInfo, : *VkAllocationCallbacks, : *VkBufferView) VkResult

File: vulkan.bl

PFN_vkDestroyBufferView

PFN_vkDestroyBufferView :: *fn (: VkDevice, : VkBufferView, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreateImage

PFN_vkCreateImage :: *fn (: VkDevice, : *VkImageCreateInfo, : *VkAllocationCallbacks, : *VkImage) VkResult

File: vulkan.bl

PFN_vkDestroyImage

PFN_vkDestroyImage :: *fn (: VkDevice, : VkImage, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkGetImageSubresourceLayout

PFN_vkGetImageSubresourceLayout :: *fn (: VkDevice, : VkImage, : *VkImageSubresource, : *VkSubresourceLayout) 

File: vulkan.bl

PFN_vkCreateImageView

PFN_vkCreateImageView :: *fn (: VkDevice, : *VkImageViewCreateInfo, : *VkAllocationCallbacks, : *VkImageView) VkResult

File: vulkan.bl

PFN_vkDestroyImageView

PFN_vkDestroyImageView :: *fn (: VkDevice, : VkImageView, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreateShaderModule

PFN_vkCreateShaderModule :: *fn (: VkDevice, : *VkShaderModuleCreateInfo, : *VkAllocationCallbacks, : *VkShaderModule) VkResult

File: vulkan.bl

PFN_vkDestroyShaderModule

PFN_vkDestroyShaderModule :: *fn (: VkDevice, : VkShaderModule, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreatePipelineCache

PFN_vkCreatePipelineCache :: *fn (: VkDevice, : *VkPipelineCacheCreateInfo, : *VkAllocationCallbacks, : *VkPipelineCache) VkResult

File: vulkan.bl

PFN_vkDestroyPipelineCache

PFN_vkDestroyPipelineCache :: *fn (: VkDevice, : VkPipelineCache, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkGetPipelineCacheData

PFN_vkGetPipelineCacheData :: *fn (: VkDevice, : VkPipelineCache, : *usize, : C.void_ptr) VkResult

File: vulkan.bl

PFN_vkMergePipelineCaches

PFN_vkMergePipelineCaches :: *fn (: VkDevice, : VkPipelineCache, : u32, : *VkPipelineCache) VkResult

File: vulkan.bl

PFN_vkCreateGraphicsPipelines

PFN_vkCreateGraphicsPipelines :: *fn (: VkDevice, : VkPipelineCache, : u32, : *VkGraphicsPipelineCreateInfo, : *VkAllocationCallbacks, : *VkPipeline) VkResult

File: vulkan.bl

PFN_vkCreateComputePipelines

PFN_vkCreateComputePipelines :: *fn (: VkDevice, : VkPipelineCache, : u32, : *VkComputePipelineCreateInfo, : *VkAllocationCallbacks, : *VkPipeline) VkResult

File: vulkan.bl

PFN_vkDestroyPipeline

PFN_vkDestroyPipeline :: *fn (: VkDevice, : VkPipeline, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreatePipelineLayout

PFN_vkCreatePipelineLayout :: *fn (: VkDevice, : *VkPipelineLayoutCreateInfo, : *VkAllocationCallbacks, : *VkPipelineLayout) VkResult

File: vulkan.bl

PFN_vkDestroyPipelineLayout

PFN_vkDestroyPipelineLayout :: *fn (: VkDevice, : VkPipelineLayout, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreateSampler

PFN_vkCreateSampler :: *fn (: VkDevice, : *VkSamplerCreateInfo, : *VkAllocationCallbacks, : *VkSampler) VkResult

File: vulkan.bl

PFN_vkDestroySampler

PFN_vkDestroySampler :: *fn (: VkDevice, : VkSampler, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreateDescriptorSetLayout

PFN_vkCreateDescriptorSetLayout :: *fn (: VkDevice, : *VkDescriptorSetLayoutCreateInfo, : *VkAllocationCallbacks, : *VkDescriptorSetLayout) VkResult

File: vulkan.bl

PFN_vkDestroyDescriptorSetLayout

PFN_vkDestroyDescriptorSetLayout :: *fn (: VkDevice, : VkDescriptorSetLayout, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreateDescriptorPool

PFN_vkCreateDescriptorPool :: *fn (: VkDevice, : *VkDescriptorPoolCreateInfo, : *VkAllocationCallbacks, : *VkDescriptorPool) VkResult

File: vulkan.bl

PFN_vkDestroyDescriptorPool

PFN_vkDestroyDescriptorPool :: *fn (: VkDevice, : VkDescriptorPool, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkResetDescriptorPool

PFN_vkResetDescriptorPool :: *fn (: VkDevice, : VkDescriptorPool, : VkDescriptorPoolResetFlags) VkResult

File: vulkan.bl

PFN_vkAllocateDescriptorSets

PFN_vkAllocateDescriptorSets :: *fn (: VkDevice, : *VkDescriptorSetAllocateInfo, : *VkDescriptorSet) VkResult

File: vulkan.bl

PFN_vkFreeDescriptorSets

PFN_vkFreeDescriptorSets :: *fn (: VkDevice, : VkDescriptorPool, : u32, : *VkDescriptorSet) VkResult

File: vulkan.bl

PFN_vkUpdateDescriptorSets

PFN_vkUpdateDescriptorSets :: *fn (: VkDevice, : u32, : *VkWriteDescriptorSet, : u32, : *VkCopyDescriptorSet) 

File: vulkan.bl

PFN_vkCreateFramebuffer

PFN_vkCreateFramebuffer :: *fn (: VkDevice, : *VkFramebufferCreateInfo, : *VkAllocationCallbacks, : *VkFramebuffer) VkResult

File: vulkan.bl

PFN_vkDestroyFramebuffer

PFN_vkDestroyFramebuffer :: *fn (: VkDevice, : VkFramebuffer, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreateRenderPass

PFN_vkCreateRenderPass :: *fn (: VkDevice, : *VkRenderPassCreateInfo, : *VkAllocationCallbacks, : *VkRenderPass) VkResult

File: vulkan.bl

PFN_vkDestroyRenderPass

PFN_vkDestroyRenderPass :: *fn (: VkDevice, : VkRenderPass, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkGetRenderAreaGranularity

PFN_vkGetRenderAreaGranularity :: *fn (: VkDevice, : VkRenderPass, : *VkExtent2D) 

File: vulkan.bl

PFN_vkCreateCommandPool

PFN_vkCreateCommandPool :: *fn (: VkDevice, : *VkCommandPoolCreateInfo, : *VkAllocationCallbacks, : *VkCommandPool) VkResult

File: vulkan.bl

PFN_vkDestroyCommandPool

PFN_vkDestroyCommandPool :: *fn (: VkDevice, : VkCommandPool, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkResetCommandPool

PFN_vkResetCommandPool :: *fn (: VkDevice, : VkCommandPool, : VkCommandPoolResetFlags) VkResult

File: vulkan.bl

PFN_vkAllocateCommandBuffers

PFN_vkAllocateCommandBuffers :: *fn (: VkDevice, : *VkCommandBufferAllocateInfo, : *VkCommandBuffer) VkResult

File: vulkan.bl

PFN_vkFreeCommandBuffers

PFN_vkFreeCommandBuffers :: *fn (: VkDevice, : VkCommandPool, : u32, : *VkCommandBuffer) 

File: vulkan.bl

PFN_vkBeginCommandBuffer

PFN_vkBeginCommandBuffer :: *fn (: VkCommandBuffer, : *VkCommandBufferBeginInfo) VkResult

File: vulkan.bl

PFN_vkEndCommandBuffer

PFN_vkEndCommandBuffer :: *fn (: VkCommandBuffer) VkResult

File: vulkan.bl

PFN_vkResetCommandBuffer

PFN_vkResetCommandBuffer :: *fn (: VkCommandBuffer, : VkCommandBufferResetFlags) VkResult

File: vulkan.bl

PFN_vkCmdBindPipeline

PFN_vkCmdBindPipeline :: *fn (: VkCommandBuffer, : VkPipelineBindPoint, : VkPipeline) 

File: vulkan.bl

PFN_vkCmdSetViewport

PFN_vkCmdSetViewport :: *fn (: VkCommandBuffer, : u32, : u32, : *VkViewport) 

File: vulkan.bl

PFN_vkCmdSetScissor

PFN_vkCmdSetScissor :: *fn (: VkCommandBuffer, : u32, : u32, : *VkRect2D) 

File: vulkan.bl

PFN_vkCmdSetLineWidth

PFN_vkCmdSetLineWidth :: *fn (: VkCommandBuffer, : f32) 

File: vulkan.bl

PFN_vkCmdSetDepthBias

PFN_vkCmdSetDepthBias :: *fn (: VkCommandBuffer, : f32, : f32, : f32) 

File: vulkan.bl

PFN_vkCmdSetBlendConstants

PFN_vkCmdSetBlendConstants :: *fn (: VkCommandBuffer, : ) 

File: vulkan.bl

PFN_vkCmdSetDepthBounds

PFN_vkCmdSetDepthBounds :: *fn (: VkCommandBuffer, : f32, : f32) 

File: vulkan.bl

PFN_vkCmdSetStencilCompareMask

PFN_vkCmdSetStencilCompareMask :: *fn (: VkCommandBuffer, : VkStencilFaceFlags, : u32) 

File: vulkan.bl

PFN_vkCmdSetStencilWriteMask

PFN_vkCmdSetStencilWriteMask :: *fn (: VkCommandBuffer, : VkStencilFaceFlags, : u32) 

File: vulkan.bl

PFN_vkCmdSetStencilReference

PFN_vkCmdSetStencilReference :: *fn (: VkCommandBuffer, : VkStencilFaceFlags, : u32) 

File: vulkan.bl

PFN_vkCmdBindDescriptorSets

PFN_vkCmdBindDescriptorSets :: *fn (: VkCommandBuffer, : VkPipelineBindPoint, : VkPipelineLayout, : u32, : u32, : *VkDescriptorSet, : u32, : *u32) 

File: vulkan.bl

PFN_vkCmdBindIndexBuffer

PFN_vkCmdBindIndexBuffer :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkIndexType) 

File: vulkan.bl

PFN_vkCmdBindVertexBuffers

PFN_vkCmdBindVertexBuffers :: *fn (: VkCommandBuffer, : u32, : u32, : *VkBuffer, : *VkDeviceSize) 

File: vulkan.bl

PFN_vkCmdDraw

PFN_vkCmdDraw :: *fn (: VkCommandBuffer, : u32, : u32, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawIndexed

PFN_vkCmdDrawIndexed :: *fn (: VkCommandBuffer, : u32, : u32, : u32, : s32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawIndirect

PFN_vkCmdDrawIndirect :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawIndexedIndirect

PFN_vkCmdDrawIndexedIndirect :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDispatch

PFN_vkCmdDispatch :: *fn (: VkCommandBuffer, : u32, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDispatchIndirect

PFN_vkCmdDispatchIndirect :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize) 

File: vulkan.bl

PFN_vkCmdCopyBuffer

PFN_vkCmdCopyBuffer :: *fn (: VkCommandBuffer, : VkBuffer, : VkBuffer, : u32, : *VkBufferCopy) 

File: vulkan.bl

PFN_vkCmdCopyImage

PFN_vkCmdCopyImage :: *fn (: VkCommandBuffer, : VkImage, : VkImageLayout, : VkImage, : VkImageLayout, : u32, : *VkImageCopy) 

File: vulkan.bl

PFN_vkCmdBlitImage

PFN_vkCmdBlitImage :: *fn (: VkCommandBuffer, : VkImage, : VkImageLayout, : VkImage, : VkImageLayout, : u32, : *VkImageBlit, : VkFilter) 

File: vulkan.bl

PFN_vkCmdCopyBufferToImage

PFN_vkCmdCopyBufferToImage :: *fn (: VkCommandBuffer, : VkBuffer, : VkImage, : VkImageLayout, : u32, : *VkBufferImageCopy) 

File: vulkan.bl

PFN_vkCmdCopyImageToBuffer

PFN_vkCmdCopyImageToBuffer :: *fn (: VkCommandBuffer, : VkImage, : VkImageLayout, : VkBuffer, : u32, : *VkBufferImageCopy) 

File: vulkan.bl

PFN_vkCmdUpdateBuffer

PFN_vkCmdUpdateBuffer :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkDeviceSize, : C.void_ptr) 

File: vulkan.bl

PFN_vkCmdFillBuffer

PFN_vkCmdFillBuffer :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkDeviceSize, : u32) 

File: vulkan.bl

PFN_vkCmdClearColorImage

PFN_vkCmdClearColorImage :: *fn (: VkCommandBuffer, : VkImage, : VkImageLayout, : *VkClearColorValue, : u32, : *VkImageSubresourceRange) 

File: vulkan.bl

PFN_vkCmdClearDepthStencilImage

PFN_vkCmdClearDepthStencilImage :: *fn (: VkCommandBuffer, : VkImage, : VkImageLayout, : *VkClearDepthStencilValue, : u32, : *VkImageSubresourceRange) 

File: vulkan.bl

PFN_vkCmdClearAttachments

PFN_vkCmdClearAttachments :: *fn (: VkCommandBuffer, : u32, : *VkClearAttachment, : u32, : *VkClearRect) 

File: vulkan.bl

PFN_vkCmdResolveImage

PFN_vkCmdResolveImage :: *fn (: VkCommandBuffer, : VkImage, : VkImageLayout, : VkImage, : VkImageLayout, : u32, : *VkImageResolve) 

File: vulkan.bl

PFN_vkCmdSetEvent

PFN_vkCmdSetEvent :: *fn (: VkCommandBuffer, : VkEvent, : VkPipelineStageFlags) 

File: vulkan.bl

PFN_vkCmdResetEvent

PFN_vkCmdResetEvent :: *fn (: VkCommandBuffer, : VkEvent, : VkPipelineStageFlags) 

File: vulkan.bl

PFN_vkCmdWaitEvents

PFN_vkCmdWaitEvents :: *fn (: VkCommandBuffer, : u32, : *VkEvent, : VkPipelineStageFlags, : VkPipelineStageFlags, : u32, : *VkMemoryBarrier, : u32, : *VkBufferMemoryBarrier, : u32, : *VkImageMemoryBarrier) 

File: vulkan.bl

PFN_vkCmdPipelineBarrier

PFN_vkCmdPipelineBarrier :: *fn (: VkCommandBuffer, : VkPipelineStageFlags, : VkPipelineStageFlags, : VkDependencyFlags, : u32, : *VkMemoryBarrier, : u32, : *VkBufferMemoryBarrier, : u32, : *VkImageMemoryBarrier) 

File: vulkan.bl

PFN_vkCmdBeginQuery

PFN_vkCmdBeginQuery :: *fn (: VkCommandBuffer, : VkQueryPool, : u32, : VkQueryControlFlags) 

File: vulkan.bl

PFN_vkCmdEndQuery

PFN_vkCmdEndQuery :: *fn (: VkCommandBuffer, : VkQueryPool, : u32) 

File: vulkan.bl

PFN_vkCmdResetQueryPool

PFN_vkCmdResetQueryPool :: *fn (: VkCommandBuffer, : VkQueryPool, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdWriteTimestamp

PFN_vkCmdWriteTimestamp :: *fn (: VkCommandBuffer, : VkPipelineStageFlagBits, : VkQueryPool, : u32) 

File: vulkan.bl

PFN_vkCmdCopyQueryPoolResults

PFN_vkCmdCopyQueryPoolResults :: *fn (: VkCommandBuffer, : VkQueryPool, : u32, : u32, : VkBuffer, : VkDeviceSize, : VkDeviceSize, : VkQueryResultFlags) 

File: vulkan.bl

PFN_vkCmdPushConstants

PFN_vkCmdPushConstants :: *fn (: VkCommandBuffer, : VkPipelineLayout, : VkShaderStageFlags, : u32, : u32, : C.void_ptr) 

File: vulkan.bl

PFN_vkCmdBeginRenderPass

PFN_vkCmdBeginRenderPass :: *fn (: VkCommandBuffer, : *VkRenderPassBeginInfo, : VkSubpassContents) 

File: vulkan.bl

PFN_vkCmdNextSubpass

PFN_vkCmdNextSubpass :: *fn (: VkCommandBuffer, : VkSubpassContents) 

File: vulkan.bl

PFN_vkCmdEndRenderPass

PFN_vkCmdEndRenderPass :: *fn (: VkCommandBuffer) 

File: vulkan.bl

PFN_vkCmdExecuteCommands

PFN_vkCmdExecuteCommands :: *fn (: VkCommandBuffer, : u32, : *VkCommandBuffer) 

File: vulkan.bl

vkCreateInstance

vkCreateInstance :: fn (pCreateInfo: *VkInstanceCreateInfo, pAllocator: *VkAllocationCallbacks, pInstance: *VkInstance) VkResult #extern

File: vulkan.bl

vkDestroyInstance

vkDestroyInstance :: fn (instance: VkInstance, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkEnumeratePhysicalDevices

vkEnumeratePhysicalDevices :: fn (instance: VkInstance, pPhysicalDeviceCount: *u32, pPhysicalDevices: *VkPhysicalDevice) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceFeatures

vkGetPhysicalDeviceFeatures :: fn (physicalDevice: VkPhysicalDevice, pFeatures: *VkPhysicalDeviceFeatures)  #extern

File: vulkan.bl

vkGetPhysicalDeviceFormatProperties

vkGetPhysicalDeviceFormatProperties :: fn (physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: *VkFormatProperties)  #extern

File: vulkan.bl

vkGetPhysicalDeviceImageFormatProperties

vkGetPhysicalDeviceImageFormatProperties :: fn (physicalDevice: VkPhysicalDevice, format: VkFormat, t: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, pImageFormatProperties: *VkImageFormatProperties) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceProperties

vkGetPhysicalDeviceProperties :: fn (physicalDevice: VkPhysicalDevice, pProperties: *VkPhysicalDeviceProperties)  #extern

File: vulkan.bl

vkGetPhysicalDeviceQueueFamilyProperties

vkGetPhysicalDeviceQueueFamilyProperties :: fn (physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: *u32, pQueueFamilyProperties: *VkQueueFamilyProperties)  #extern

File: vulkan.bl

vkGetPhysicalDeviceMemoryProperties

vkGetPhysicalDeviceMemoryProperties :: fn (physicalDevice: VkPhysicalDevice, pMemoryProperties: *VkPhysicalDeviceMemoryProperties)  #extern

File: vulkan.bl

vkGetInstanceProcAddr

vkGetInstanceProcAddr :: fn (instance: VkInstance, pName: *C.char) PFN_vkVoidFunction #extern

File: vulkan.bl

vkGetDeviceProcAddr

vkGetDeviceProcAddr :: fn (device: VkDevice, pName: *C.char) PFN_vkVoidFunction #extern

File: vulkan.bl

vkCreateDevice

vkCreateDevice :: fn (physicalDevice: VkPhysicalDevice, pCreateInfo: *VkDeviceCreateInfo, pAllocator: *VkAllocationCallbacks, pDevice: *VkDevice) VkResult #extern

File: vulkan.bl

vkDestroyDevice

vkDestroyDevice :: fn (device: VkDevice, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkEnumerateInstanceExtensionProperties

vkEnumerateInstanceExtensionProperties :: fn (pLayerName: *C.char, pPropertyCount: *u32, pProperties: *VkExtensionProperties) VkResult #extern

File: vulkan.bl

vkEnumerateDeviceExtensionProperties

vkEnumerateDeviceExtensionProperties :: fn (physicalDevice: VkPhysicalDevice, pLayerName: *C.char, pPropertyCount: *u32, pProperties: *VkExtensionProperties) VkResult #extern

File: vulkan.bl

vkEnumerateInstanceLayerProperties

vkEnumerateInstanceLayerProperties :: fn (pPropertyCount: *u32, pProperties: *VkLayerProperties) VkResult #extern

File: vulkan.bl

vkEnumerateDeviceLayerProperties

vkEnumerateDeviceLayerProperties :: fn (physicalDevice: VkPhysicalDevice, pPropertyCount: *u32, pProperties: *VkLayerProperties) VkResult #extern

File: vulkan.bl

vkGetDeviceQueue

vkGetDeviceQueue :: fn (device: VkDevice, queueFamilyIndex: u32, queueIndex: u32, pQueue: *VkQueue)  #extern

File: vulkan.bl

vkQueueSubmit

vkQueueSubmit :: fn (queue: VkQueue, submitCount: u32, pSubmits: *VkSubmitInfo, fence: VkFence) VkResult #extern

File: vulkan.bl

vkQueueWaitIdle

vkQueueWaitIdle :: fn (queue: VkQueue) VkResult #extern

File: vulkan.bl

vkDeviceWaitIdle

vkDeviceWaitIdle :: fn (device: VkDevice) VkResult #extern

File: vulkan.bl

vkAllocateMemory

vkAllocateMemory :: fn (device: VkDevice, pAllocateInfo: *VkMemoryAllocateInfo, pAllocator: *VkAllocationCallbacks, pMemory: *VkDeviceMemory) VkResult #extern

File: vulkan.bl

vkFreeMemory

vkFreeMemory :: fn (device: VkDevice, memory: VkDeviceMemory, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkMapMemory

vkMapMemory :: fn (device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: *C.void_ptr) VkResult #extern

File: vulkan.bl

vkUnmapMemory

vkUnmapMemory :: fn (device: VkDevice, memory: VkDeviceMemory)  #extern

File: vulkan.bl

vkFlushMappedMemoryRanges

vkFlushMappedMemoryRanges :: fn (device: VkDevice, memoryRangeCount: u32, pMemoryRanges: *VkMappedMemoryRange) VkResult #extern

File: vulkan.bl

vkInvalidateMappedMemoryRanges

vkInvalidateMappedMemoryRanges :: fn (device: VkDevice, memoryRangeCount: u32, pMemoryRanges: *VkMappedMemoryRange) VkResult #extern

File: vulkan.bl

vkGetDeviceMemoryCommitment

vkGetDeviceMemoryCommitment :: fn (device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: *VkDeviceSize)  #extern

File: vulkan.bl

vkBindBufferMemory

vkBindBufferMemory :: fn (device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize) VkResult #extern

File: vulkan.bl

vkBindImageMemory

vkBindImageMemory :: fn (device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize) VkResult #extern

File: vulkan.bl

vkGetBufferMemoryRequirements

vkGetBufferMemoryRequirements :: fn (device: VkDevice, buffer: VkBuffer, pMemoryRequirements: *VkMemoryRequirements)  #extern

File: vulkan.bl

vkGetImageMemoryRequirements

vkGetImageMemoryRequirements :: fn (device: VkDevice, image: VkImage, pMemoryRequirements: *VkMemoryRequirements)  #extern

File: vulkan.bl

vkGetImageSparseMemoryRequirements

vkGetImageSparseMemoryRequirements :: fn (device: VkDevice, image: VkImage, pSparseMemoryRequirementCount: *u32, pSparseMemoryRequirements: *VkSparseImageMemoryRequirements)  #extern

File: vulkan.bl

vkGetPhysicalDeviceSparseImageFormatProperties

vkGetPhysicalDeviceSparseImageFormatProperties :: fn (physicalDevice: VkPhysicalDevice, format: VkFormat, t: VkImageType, samples: VkSampleCountFlagBits, usage: VkImageUsageFlags, tiling: VkImageTiling, pPropertyCount: *u32, pProperties: *VkSparseImageFormatProperties)  #extern

File: vulkan.bl

vkQueueBindSparse

vkQueueBindSparse :: fn (queue: VkQueue, bindInfoCount: u32, pBindInfo: *VkBindSparseInfo, fence: VkFence) VkResult #extern

File: vulkan.bl

vkCreateFence

vkCreateFence :: fn (device: VkDevice, pCreateInfo: *VkFenceCreateInfo, pAllocator: *VkAllocationCallbacks, pFence: *VkFence) VkResult #extern

File: vulkan.bl

vkDestroyFence

vkDestroyFence :: fn (device: VkDevice, fence: VkFence, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkResetFences

vkResetFences :: fn (device: VkDevice, fenceCount: u32, pFences: *VkFence) VkResult #extern

File: vulkan.bl

vkGetFenceStatus

vkGetFenceStatus :: fn (device: VkDevice, fence: VkFence) VkResult #extern

File: vulkan.bl

vkWaitForFences

vkWaitForFences :: fn (device: VkDevice, fenceCount: u32, pFences: *VkFence, waitAll: VkBool32, timeout: u64) VkResult #extern

File: vulkan.bl

vkCreateSemaphore

vkCreateSemaphore :: fn (device: VkDevice, pCreateInfo: *VkSemaphoreCreateInfo, pAllocator: *VkAllocationCallbacks, pSemaphore: *VkSemaphore) VkResult #extern

File: vulkan.bl

vkDestroySemaphore

vkDestroySemaphore :: fn (device: VkDevice, semaphore: VkSemaphore, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreateEvent

vkCreateEvent :: fn (device: VkDevice, pCreateInfo: *VkEventCreateInfo, pAllocator: *VkAllocationCallbacks, pEvent: *VkEvent) VkResult #extern

File: vulkan.bl

vkDestroyEvent

vkDestroyEvent :: fn (device: VkDevice, event: VkEvent, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkGetEventStatus

vkGetEventStatus :: fn (device: VkDevice, event: VkEvent) VkResult #extern

File: vulkan.bl

vkSetEvent

vkSetEvent :: fn (device: VkDevice, event: VkEvent) VkResult #extern

File: vulkan.bl

vkResetEvent

vkResetEvent :: fn (device: VkDevice, event: VkEvent) VkResult #extern

File: vulkan.bl

vkCreateQueryPool

vkCreateQueryPool :: fn (device: VkDevice, pCreateInfo: *VkQueryPoolCreateInfo, pAllocator: *VkAllocationCallbacks, pQueryPool: *VkQueryPool) VkResult #extern

File: vulkan.bl

vkDestroyQueryPool

vkDestroyQueryPool :: fn (device: VkDevice, queryPool: VkQueryPool, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkGetQueryPoolResults

vkGetQueryPoolResults :: fn (device: VkDevice, queryPool: VkQueryPool, firstQuery: u32, queryCount: u32, dataSize: usize, pData: C.void_ptr, stride: VkDeviceSize, flags: VkQueryResultFlags) VkResult #extern

File: vulkan.bl

vkCreateBuffer

vkCreateBuffer :: fn (device: VkDevice, pCreateInfo: *VkBufferCreateInfo, pAllocator: *VkAllocationCallbacks, pBuffer: *VkBuffer) VkResult #extern

File: vulkan.bl

vkDestroyBuffer

vkDestroyBuffer :: fn (device: VkDevice, buffer: VkBuffer, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreateBufferView

vkCreateBufferView :: fn (device: VkDevice, pCreateInfo: *VkBufferViewCreateInfo, pAllocator: *VkAllocationCallbacks, pView: *VkBufferView) VkResult #extern

File: vulkan.bl

vkDestroyBufferView

vkDestroyBufferView :: fn (device: VkDevice, bufferView: VkBufferView, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreateImage

vkCreateImage :: fn (device: VkDevice, pCreateInfo: *VkImageCreateInfo, pAllocator: *VkAllocationCallbacks, pImage: *VkImage) VkResult #extern

File: vulkan.bl

vkDestroyImage

vkDestroyImage :: fn (device: VkDevice, image: VkImage, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkGetImageSubresourceLayout

vkGetImageSubresourceLayout :: fn (device: VkDevice, image: VkImage, pSubresource: *VkImageSubresource, pLayout: *VkSubresourceLayout)  #extern

File: vulkan.bl

vkCreateImageView

vkCreateImageView :: fn (device: VkDevice, pCreateInfo: *VkImageViewCreateInfo, pAllocator: *VkAllocationCallbacks, pView: *VkImageView) VkResult #extern

File: vulkan.bl

vkDestroyImageView

vkDestroyImageView :: fn (device: VkDevice, imageView: VkImageView, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreateShaderModule

vkCreateShaderModule :: fn (device: VkDevice, pCreateInfo: *VkShaderModuleCreateInfo, pAllocator: *VkAllocationCallbacks, pShaderModule: *VkShaderModule) VkResult #extern

File: vulkan.bl

vkDestroyShaderModule

vkDestroyShaderModule :: fn (device: VkDevice, shaderModule: VkShaderModule, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreatePipelineCache

vkCreatePipelineCache :: fn (device: VkDevice, pCreateInfo: *VkPipelineCacheCreateInfo, pAllocator: *VkAllocationCallbacks, pPipelineCache: *VkPipelineCache) VkResult #extern

File: vulkan.bl

vkDestroyPipelineCache

vkDestroyPipelineCache :: fn (device: VkDevice, pipelineCache: VkPipelineCache, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkGetPipelineCacheData

vkGetPipelineCacheData :: fn (device: VkDevice, pipelineCache: VkPipelineCache, pDataSize: *usize, pData: C.void_ptr) VkResult #extern

File: vulkan.bl

vkMergePipelineCaches

vkMergePipelineCaches :: fn (device: VkDevice, dstCache: VkPipelineCache, srcCacheCount: u32, pSrcCaches: *VkPipelineCache) VkResult #extern

File: vulkan.bl

vkCreateGraphicsPipelines

vkCreateGraphicsPipelines :: fn (device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: u32, pCreateInfos: *VkGraphicsPipelineCreateInfo, pAllocator: *VkAllocationCallbacks, pPipelines: *VkPipeline) VkResult #extern

File: vulkan.bl

vkCreateComputePipelines

vkCreateComputePipelines :: fn (device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: u32, pCreateInfos: *VkComputePipelineCreateInfo, pAllocator: *VkAllocationCallbacks, pPipelines: *VkPipeline) VkResult #extern

File: vulkan.bl

vkDestroyPipeline

vkDestroyPipeline :: fn (device: VkDevice, pipeline: VkPipeline, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreatePipelineLayout

vkCreatePipelineLayout :: fn (device: VkDevice, pCreateInfo: *VkPipelineLayoutCreateInfo, pAllocator: *VkAllocationCallbacks, pPipelineLayout: *VkPipelineLayout) VkResult #extern

File: vulkan.bl

vkDestroyPipelineLayout

vkDestroyPipelineLayout :: fn (device: VkDevice, pipelineLayout: VkPipelineLayout, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreateSampler

vkCreateSampler :: fn (device: VkDevice, pCreateInfo: *VkSamplerCreateInfo, pAllocator: *VkAllocationCallbacks, pSampler: *VkSampler) VkResult #extern

File: vulkan.bl

vkDestroySampler

vkDestroySampler :: fn (device: VkDevice, sampler: VkSampler, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreateDescriptorSetLayout

vkCreateDescriptorSetLayout :: fn (device: VkDevice, pCreateInfo: *VkDescriptorSetLayoutCreateInfo, pAllocator: *VkAllocationCallbacks, pSetLayout: *VkDescriptorSetLayout) VkResult #extern

File: vulkan.bl

vkDestroyDescriptorSetLayout

vkDestroyDescriptorSetLayout :: fn (device: VkDevice, descriptorSetLayout: VkDescriptorSetLayout, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreateDescriptorPool

vkCreateDescriptorPool :: fn (device: VkDevice, pCreateInfo: *VkDescriptorPoolCreateInfo, pAllocator: *VkAllocationCallbacks, pDescriptorPool: *VkDescriptorPool) VkResult #extern

File: vulkan.bl

vkDestroyDescriptorPool

vkDestroyDescriptorPool :: fn (device: VkDevice, descriptorPool: VkDescriptorPool, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkResetDescriptorPool

vkResetDescriptorPool :: fn (device: VkDevice, descriptorPool: VkDescriptorPool, flags: VkDescriptorPoolResetFlags) VkResult #extern

File: vulkan.bl

vkAllocateDescriptorSets

vkAllocateDescriptorSets :: fn (device: VkDevice, pAllocateInfo: *VkDescriptorSetAllocateInfo, pDescriptorSets: *VkDescriptorSet) VkResult #extern

File: vulkan.bl

vkFreeDescriptorSets

vkFreeDescriptorSets :: fn (device: VkDevice, descriptorPool: VkDescriptorPool, descriptorSetCount: u32, pDescriptorSets: *VkDescriptorSet) VkResult #extern

File: vulkan.bl

vkUpdateDescriptorSets

vkUpdateDescriptorSets :: fn (device: VkDevice, descriptorWriteCount: u32, pDescriptorWrites: *VkWriteDescriptorSet, descriptorCopyCount: u32, pDescriptorCopies: *VkCopyDescriptorSet)  #extern

File: vulkan.bl

vkCreateFramebuffer

vkCreateFramebuffer :: fn (device: VkDevice, pCreateInfo: *VkFramebufferCreateInfo, pAllocator: *VkAllocationCallbacks, pFramebuffer: *VkFramebuffer) VkResult #extern

File: vulkan.bl

vkDestroyFramebuffer

vkDestroyFramebuffer :: fn (device: VkDevice, framebuffer: VkFramebuffer, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreateRenderPass

vkCreateRenderPass :: fn (device: VkDevice, pCreateInfo: *VkRenderPassCreateInfo, pAllocator: *VkAllocationCallbacks, pRenderPass: *VkRenderPass) VkResult #extern

File: vulkan.bl

vkDestroyRenderPass

vkDestroyRenderPass :: fn (device: VkDevice, renderPass: VkRenderPass, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkGetRenderAreaGranularity

vkGetRenderAreaGranularity :: fn (device: VkDevice, renderPass: VkRenderPass, pGranularity: *VkExtent2D)  #extern

File: vulkan.bl

vkCreateCommandPool

vkCreateCommandPool :: fn (device: VkDevice, pCreateInfo: *VkCommandPoolCreateInfo, pAllocator: *VkAllocationCallbacks, pCommandPool: *VkCommandPool) VkResult #extern

File: vulkan.bl

vkDestroyCommandPool

vkDestroyCommandPool :: fn (device: VkDevice, commandPool: VkCommandPool, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkResetCommandPool

vkResetCommandPool :: fn (device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags) VkResult #extern

File: vulkan.bl

vkAllocateCommandBuffers

vkAllocateCommandBuffers :: fn (device: VkDevice, pAllocateInfo: *VkCommandBufferAllocateInfo, pCommandBuffers: *VkCommandBuffer) VkResult #extern

File: vulkan.bl

vkFreeCommandBuffers

vkFreeCommandBuffers :: fn (device: VkDevice, commandPool: VkCommandPool, commandBufferCount: u32, pCommandBuffers: *VkCommandBuffer)  #extern

File: vulkan.bl

vkBeginCommandBuffer

vkBeginCommandBuffer :: fn (commandBuffer: VkCommandBuffer, pBeginInfo: *VkCommandBufferBeginInfo) VkResult #extern

File: vulkan.bl

vkEndCommandBuffer

vkEndCommandBuffer :: fn (commandBuffer: VkCommandBuffer) VkResult #extern

File: vulkan.bl

vkResetCommandBuffer

vkResetCommandBuffer :: fn (commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags) VkResult #extern

File: vulkan.bl

vkCmdBindPipeline

vkCmdBindPipeline :: fn (commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline)  #extern

File: vulkan.bl

vkCmdSetViewport

vkCmdSetViewport :: fn (commandBuffer: VkCommandBuffer, firstViewport: u32, viewportCount: u32, pViewports: *VkViewport)  #extern

File: vulkan.bl

vkCmdSetScissor

vkCmdSetScissor :: fn (commandBuffer: VkCommandBuffer, firstScissor: u32, scissorCount: u32, pScissors: *VkRect2D)  #extern

File: vulkan.bl

vkCmdSetLineWidth

vkCmdSetLineWidth :: fn (commandBuffer: VkCommandBuffer, lineWidth: f32)  #extern

File: vulkan.bl

vkCmdSetDepthBias

vkCmdSetDepthBias :: fn (commandBuffer: VkCommandBuffer, depthBiasConstantFactor: f32, depthBiasClamp: f32, depthBiasSlopeFactor: f32)  #extern

File: vulkan.bl

vkCmdSetBlendConstants

vkCmdSetBlendConstants :: fn (commandBuffer: VkCommandBuffer, blendConstants: )  #extern

File: vulkan.bl

vkCmdSetDepthBounds

vkCmdSetDepthBounds :: fn (commandBuffer: VkCommandBuffer, minDepthBounds: f32, maxDepthBounds: f32)  #extern

File: vulkan.bl

vkCmdSetStencilCompareMask

vkCmdSetStencilCompareMask :: fn (commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: u32)  #extern

File: vulkan.bl

vkCmdSetStencilWriteMask

vkCmdSetStencilWriteMask :: fn (commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: u32)  #extern

File: vulkan.bl

vkCmdSetStencilReference

vkCmdSetStencilReference :: fn (commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: u32)  #extern

File: vulkan.bl

vkCmdBindDescriptorSets

vkCmdBindDescriptorSets :: fn (commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: u32, descriptorSetCount: u32, pDescriptorSets: *VkDescriptorSet, dynamicOffsetCount: u32, pDynamicOffsets: *u32)  #extern

File: vulkan.bl

vkCmdBindIndexBuffer

vkCmdBindIndexBuffer :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, indexType: VkIndexType)  #extern

File: vulkan.bl

vkCmdBindVertexBuffers

vkCmdBindVertexBuffers :: fn (commandBuffer: VkCommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: *VkBuffer, pOffsets: *VkDeviceSize)  #extern

File: vulkan.bl

vkCmdDraw

vkCmdDraw :: fn (commandBuffer: VkCommandBuffer, vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32)  #extern

File: vulkan.bl

vkCmdDrawIndexed

vkCmdDrawIndexed :: fn (commandBuffer: VkCommandBuffer, indexCount: u32, instanceCount: u32, firstIndex: u32, vertexOffset: s32, firstInstance: u32)  #extern

File: vulkan.bl

vkCmdDrawIndirect

vkCmdDrawIndirect :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: u32, stride: u32)  #extern

File: vulkan.bl

vkCmdDrawIndexedIndirect

vkCmdDrawIndexedIndirect :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: u32, stride: u32)  #extern

File: vulkan.bl

vkCmdDispatch

vkCmdDispatch :: fn (commandBuffer: VkCommandBuffer, groupCountX: u32, groupCountY: u32, groupCountZ: u32)  #extern

File: vulkan.bl

vkCmdDispatchIndirect

vkCmdDispatchIndirect :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize)  #extern

File: vulkan.bl

vkCmdCopyBuffer

vkCmdCopyBuffer :: fn (commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: u32, pRegions: *VkBufferCopy)  #extern

File: vulkan.bl

vkCmdCopyImage

vkCmdCopyImage :: fn (commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: u32, pRegions: *VkImageCopy)  #extern

File: vulkan.bl

vkCmdBlitImage

vkCmdBlitImage :: fn (commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: u32, pRegions: *VkImageBlit, filter: VkFilter)  #extern

File: vulkan.bl

vkCmdCopyBufferToImage

vkCmdCopyBufferToImage :: fn (commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: u32, pRegions: *VkBufferImageCopy)  #extern

File: vulkan.bl

vkCmdCopyImageToBuffer

vkCmdCopyImageToBuffer :: fn (commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstBuffer: VkBuffer, regionCount: u32, pRegions: *VkBufferImageCopy)  #extern

File: vulkan.bl

vkCmdUpdateBuffer

vkCmdUpdateBuffer :: fn (commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, dataSize: VkDeviceSize, pData: C.void_ptr)  #extern

File: vulkan.bl

vkCmdFillBuffer

vkCmdFillBuffer :: fn (commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, size: VkDeviceSize, data: u32)  #extern

File: vulkan.bl

vkCmdClearColorImage

vkCmdClearColorImage :: fn (commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pColor: *VkClearColorValue, rangeCount: u32, pRanges: *VkImageSubresourceRange)  #extern

File: vulkan.bl

vkCmdClearDepthStencilImage

vkCmdClearDepthStencilImage :: fn (commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pDepthStencil: *VkClearDepthStencilValue, rangeCount: u32, pRanges: *VkImageSubresourceRange)  #extern

File: vulkan.bl

vkCmdClearAttachments

vkCmdClearAttachments :: fn (commandBuffer: VkCommandBuffer, attachmentCount: u32, pAttachments: *VkClearAttachment, rectCount: u32, pRects: *VkClearRect)  #extern

File: vulkan.bl

vkCmdResolveImage

vkCmdResolveImage :: fn (commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: u32, pRegions: *VkImageResolve)  #extern

File: vulkan.bl

vkCmdSetEvent

vkCmdSetEvent :: fn (commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags)  #extern

File: vulkan.bl

vkCmdResetEvent

vkCmdResetEvent :: fn (commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags)  #extern

File: vulkan.bl

vkCmdWaitEvents

vkCmdWaitEvents :: fn (commandBuffer: VkCommandBuffer, eventCount: u32, pEvents: *VkEvent, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, memoryBarrierCount: u32, pMemoryBarriers: *VkMemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: *VkBufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: *VkImageMemoryBarrier)  #extern

File: vulkan.bl

vkCmdPipelineBarrier

vkCmdPipelineBarrier :: fn (commandBuffer: VkCommandBuffer, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, dependencyFlags: VkDependencyFlags, memoryBarrierCount: u32, pMemoryBarriers: *VkMemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: *VkBufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: *VkImageMemoryBarrier)  #extern

File: vulkan.bl

vkCmdBeginQuery

vkCmdBeginQuery :: fn (commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: u32, flags: VkQueryControlFlags)  #extern

File: vulkan.bl

vkCmdEndQuery

vkCmdEndQuery :: fn (commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: u32)  #extern

File: vulkan.bl

vkCmdResetQueryPool

vkCmdResetQueryPool :: fn (commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: u32, queryCount: u32)  #extern

File: vulkan.bl

vkCmdWriteTimestamp

vkCmdWriteTimestamp :: fn (commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, queryPool: VkQueryPool, query: u32)  #extern

File: vulkan.bl

vkCmdCopyQueryPoolResults

vkCmdCopyQueryPoolResults :: fn (commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: u32, queryCount: u32, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, stride: VkDeviceSize, flags: VkQueryResultFlags)  #extern

File: vulkan.bl

vkCmdPushConstants

vkCmdPushConstants :: fn (commandBuffer: VkCommandBuffer, layout: VkPipelineLayout, stageFlags: VkShaderStageFlags, offset: u32, size: u32, pValues: C.void_ptr)  #extern

File: vulkan.bl

vkCmdBeginRenderPass

vkCmdBeginRenderPass :: fn (commandBuffer: VkCommandBuffer, pRenderPassBegin: *VkRenderPassBeginInfo, contents: VkSubpassContents)  #extern

File: vulkan.bl

vkCmdNextSubpass

vkCmdNextSubpass :: fn (commandBuffer: VkCommandBuffer, contents: VkSubpassContents)  #extern

File: vulkan.bl

vkCmdEndRenderPass

vkCmdEndRenderPass :: fn (commandBuffer: VkCommandBuffer)  #extern

File: vulkan.bl

vkCmdExecuteCommands

vkCmdExecuteCommands :: fn (commandBuffer: VkCommandBuffer, commandBufferCount: u32, pCommandBuffers: *VkCommandBuffer)  #extern

File: vulkan.bl

VkPointClippingBehavior

VkPointClippingBehavior :: enum s32 {
    VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0;
    VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1;
    VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0;
    VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1;
    VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkTessellationDomainOrigin

VkTessellationDomainOrigin :: enum s32 {
    VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0;
    VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1;
    VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0;
    VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1;
    VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSamplerYcbcrModelConversion

VkSamplerYcbcrModelConversion :: enum s32 {
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0;
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1;
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2;
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3;
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4;
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0;
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1;
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2;
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3;
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4;
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSamplerYcbcrRange

VkSamplerYcbcrRange :: enum s32 {
    VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0;
    VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1;
    VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0;
    VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1;
    VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkChromaLocation

VkChromaLocation :: enum s32 {
    VK_CHROMA_LOCATION_COSITED_EVEN = 0;
    VK_CHROMA_LOCATION_MIDPOINT = 1;
    VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0;
    VK_CHROMA_LOCATION_MIDPOINT_KHR = 1;
    VK_CHROMA_LOCATION_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkDescriptorUpdateTemplateType

VkDescriptorUpdateTemplateType :: enum s32 {
    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0;
    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1;
    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0;
    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSubgroupFeatureFlagBits

VkSubgroupFeatureFlagBits :: enum u32 {
    VK_SUBGROUP_FEATURE_BASIC_BIT = 1;
    VK_SUBGROUP_FEATURE_VOTE_BIT = 2;
    VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 4;
    VK_SUBGROUP_FEATURE_BALLOT_BIT = 8;
    VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 16;
    VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 32;
    VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 64;
    VK_SUBGROUP_FEATURE_QUAD_BIT = 128;
    VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 256;
    VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSubgroupFeatureFlags

VkSubgroupFeatureFlags :: VkFlags

File: vulkan.bl

VkPeerMemoryFeatureFlagBits

VkPeerMemoryFeatureFlagBits :: enum u32 {
    VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 1;
    VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 2;
    VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 4;
    VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 8;
    VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 1;
    VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 2;
    VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 4;
    VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 8;
    VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPeerMemoryFeatureFlags

VkPeerMemoryFeatureFlags :: VkFlags

File: vulkan.bl

VkMemoryAllocateFlagBits

VkMemoryAllocateFlagBits :: enum u32 {
    VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 1;
    VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 2;
    VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 4;
    VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 1;
    VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = 2;
    VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 4;
    VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkMemoryAllocateFlags

VkMemoryAllocateFlags :: VkFlags

File: vulkan.bl

VkCommandPoolTrimFlags

VkCommandPoolTrimFlags :: VkFlags

File: vulkan.bl

VkDescriptorUpdateTemplateCreateFlags

VkDescriptorUpdateTemplateCreateFlags :: VkFlags

File: vulkan.bl

VkExternalMemoryHandleTypeFlagBits

VkExternalMemoryHandleTypeFlagBits :: enum u32 {
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 1;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 8;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 16;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 32;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 64;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 512;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 1024;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 128;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 256;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 2048;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 4096;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 1;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 2;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 4;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 8;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 16;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 32;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 64;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkExternalMemoryHandleTypeFlags

VkExternalMemoryHandleTypeFlags :: VkFlags

File: vulkan.bl

VkExternalMemoryFeatureFlagBits

VkExternalMemoryFeatureFlagBits :: enum u32 {
    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 1;
    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 2;
    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 4;
    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 1;
    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 2;
    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 4;
    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkExternalMemoryFeatureFlags

VkExternalMemoryFeatureFlags :: VkFlags

File: vulkan.bl

VkExternalFenceHandleTypeFlagBits

VkExternalFenceHandleTypeFlagBits :: enum u32 {
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 1;
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2;
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4;
    VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 8;
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 1;
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 2;
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 4;
    VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 8;
    VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkExternalFenceHandleTypeFlags

VkExternalFenceHandleTypeFlags :: VkFlags

File: vulkan.bl

VkExternalFenceFeatureFlagBits

VkExternalFenceFeatureFlagBits :: enum u32 {
    VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 1;
    VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 2;
    VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 1;
    VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 2;
    VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkExternalFenceFeatureFlags

VkExternalFenceFeatureFlags :: VkFlags

File: vulkan.bl

VkFenceImportFlagBits

VkFenceImportFlagBits :: enum u32 {
    VK_FENCE_IMPORT_TEMPORARY_BIT = 1;
    VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 1;
    VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkFenceImportFlags

VkFenceImportFlags :: VkFlags

File: vulkan.bl

VkSemaphoreImportFlagBits

VkSemaphoreImportFlagBits :: enum u32 {
    VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 1;
    VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 1;
    VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSemaphoreImportFlags

VkSemaphoreImportFlags :: VkFlags

File: vulkan.bl

VkExternalSemaphoreHandleTypeFlagBits

VkExternalSemaphoreHandleTypeFlagBits :: enum u32 {
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 1;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 8;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 16;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 128;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = 8;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 1;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 2;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 4;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 8;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 16;
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkExternalSemaphoreHandleTypeFlags

VkExternalSemaphoreHandleTypeFlags :: VkFlags

File: vulkan.bl

VkExternalSemaphoreFeatureFlagBits

VkExternalSemaphoreFeatureFlagBits :: enum u32 {
    VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 1;
    VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 2;
    VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 1;
    VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 2;
    VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkExternalSemaphoreFeatureFlags

VkExternalSemaphoreFeatureFlags :: VkFlags

File: vulkan.bl

VkPhysicalDeviceSubgroupProperties

VkPhysicalDeviceSubgroupProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    subgroupSize: u32;
    supportedStages: VkShaderStageFlags;
    supportedOperations: VkSubgroupFeatureFlags;
    quadOperationsInAllStages: VkBool32;
}

File: vulkan.bl

VkBindBufferMemoryInfo

VkBindBufferMemoryInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    buffer: VkBuffer;
    memory: VkDeviceMemory;
    memoryOffset: VkDeviceSize;
}

File: vulkan.bl

VkBindImageMemoryInfo

VkBindImageMemoryInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    image: VkImage;
    memory: VkDeviceMemory;
    memoryOffset: VkDeviceSize;
}

File: vulkan.bl

VkPhysicalDevice16BitStorageFeatures

VkPhysicalDevice16BitStorageFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    storageBuffer16BitAccess: VkBool32;
    uniformAndStorageBuffer16BitAccess: VkBool32;
    storagePushConstant16: VkBool32;
    storageInputOutput16: VkBool32;
}

File: vulkan.bl

VkMemoryDedicatedRequirements

VkMemoryDedicatedRequirements :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    prefersDedicatedAllocation: VkBool32;
    requiresDedicatedAllocation: VkBool32;
}

File: vulkan.bl

VkMemoryDedicatedAllocateInfo

VkMemoryDedicatedAllocateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    image: VkImage;
    buffer: VkBuffer;
}

File: vulkan.bl

VkMemoryAllocateFlagsInfo

VkMemoryAllocateFlagsInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkMemoryAllocateFlags;
    deviceMask: u32;
}

File: vulkan.bl

VkDeviceGroupRenderPassBeginInfo

VkDeviceGroupRenderPassBeginInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceMask: u32;
    deviceRenderAreaCount: u32;
    pDeviceRenderAreas: *VkRect2D;
}

File: vulkan.bl

VkDeviceGroupCommandBufferBeginInfo

VkDeviceGroupCommandBufferBeginInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceMask: u32;
}

File: vulkan.bl

VkDeviceGroupSubmitInfo

VkDeviceGroupSubmitInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    waitSemaphoreCount: u32;
    pWaitSemaphoreDeviceIndices: *u32;
    commandBufferCount: u32;
    pCommandBufferDeviceMasks: *u32;
    signalSemaphoreCount: u32;
    pSignalSemaphoreDeviceIndices: *u32;
}

File: vulkan.bl

VkDeviceGroupBindSparseInfo

VkDeviceGroupBindSparseInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    resourceDeviceIndex: u32;
    memoryDeviceIndex: u32;
}

File: vulkan.bl

VkBindBufferMemoryDeviceGroupInfo

VkBindBufferMemoryDeviceGroupInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceIndexCount: u32;
    pDeviceIndices: *u32;
}

File: vulkan.bl

VkBindImageMemoryDeviceGroupInfo

VkBindImageMemoryDeviceGroupInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceIndexCount: u32;
    pDeviceIndices: *u32;
    splitInstanceBindRegionCount: u32;
    pSplitInstanceBindRegions: *VkRect2D;
}

File: vulkan.bl

VkPhysicalDeviceGroupProperties

VkPhysicalDeviceGroupProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    physicalDeviceCount: u32;
    physicalDevices: ;
    subsetAllocation: VkBool32;
}

File: vulkan.bl

VkDeviceGroupDeviceCreateInfo

VkDeviceGroupDeviceCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    physicalDeviceCount: u32;
    pPhysicalDevices: *VkPhysicalDevice;
}

File: vulkan.bl

VkBufferMemoryRequirementsInfo2

VkBufferMemoryRequirementsInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    buffer: VkBuffer;
}

File: vulkan.bl

VkImageMemoryRequirementsInfo2

VkImageMemoryRequirementsInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    image: VkImage;
}

File: vulkan.bl

VkImageSparseMemoryRequirementsInfo2

VkImageSparseMemoryRequirementsInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    image: VkImage;
}

File: vulkan.bl

VkMemoryRequirements2

VkMemoryRequirements2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    memoryRequirements: VkMemoryRequirements;
}

File: vulkan.bl

VkSparseImageMemoryRequirements2

VkSparseImageMemoryRequirements2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    memoryRequirements: VkSparseImageMemoryRequirements;
}

File: vulkan.bl

VkPhysicalDeviceFeatures2

VkPhysicalDeviceFeatures2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    features: VkPhysicalDeviceFeatures;
}

File: vulkan.bl

VkPhysicalDeviceProperties2

VkPhysicalDeviceProperties2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    properties: VkPhysicalDeviceProperties;
}

File: vulkan.bl

VkFormatProperties2

VkFormatProperties2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    formatProperties: VkFormatProperties;
}

File: vulkan.bl

VkImageFormatProperties2

VkImageFormatProperties2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageFormatProperties: VkImageFormatProperties;
}

File: vulkan.bl

VkPhysicalDeviceImageFormatInfo2

VkPhysicalDeviceImageFormatInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    format: VkFormat;
    t: VkImageType;
    tiling: VkImageTiling;
    usage: VkImageUsageFlags;
    flags: VkImageCreateFlags;
}

File: vulkan.bl

VkQueueFamilyProperties2

VkQueueFamilyProperties2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    queueFamilyProperties: VkQueueFamilyProperties;
}

File: vulkan.bl

VkPhysicalDeviceMemoryProperties2

VkPhysicalDeviceMemoryProperties2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    memoryProperties: VkPhysicalDeviceMemoryProperties;
}

File: vulkan.bl

VkSparseImageFormatProperties2

VkSparseImageFormatProperties2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    properties: VkSparseImageFormatProperties;
}

File: vulkan.bl

VkPhysicalDeviceSparseImageFormatInfo2

VkPhysicalDeviceSparseImageFormatInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    format: VkFormat;
    t: VkImageType;
    samples: VkSampleCountFlagBits;
    usage: VkImageUsageFlags;
    tiling: VkImageTiling;
}

File: vulkan.bl

VkPhysicalDevicePointClippingProperties

VkPhysicalDevicePointClippingProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pointClippingBehavior: VkPointClippingBehavior;
}

File: vulkan.bl

VkInputAttachmentAspectReference

VkInputAttachmentAspectReference :: struct {
    subpass: u32;
    inputAttachmentIndex: u32;
    aspectMask: VkImageAspectFlags;
}

File: vulkan.bl

VkRenderPassInputAttachmentAspectCreateInfo

VkRenderPassInputAttachmentAspectCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    aspectReferenceCount: u32;
    pAspectReferences: *VkInputAttachmentAspectReference;
}

File: vulkan.bl

VkImageViewUsageCreateInfo

VkImageViewUsageCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    usage: VkImageUsageFlags;
}

File: vulkan.bl

VkPipelineTessellationDomainOriginStateCreateInfo

VkPipelineTessellationDomainOriginStateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    domainOrigin: VkTessellationDomainOrigin;
}

File: vulkan.bl

VkRenderPassMultiviewCreateInfo

VkRenderPassMultiviewCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    subpassCount: u32;
    pViewMasks: *u32;
    dependencyCount: u32;
    pViewOffsets: *s32;
    correlationMaskCount: u32;
    pCorrelationMasks: *u32;
}

File: vulkan.bl

VkPhysicalDeviceMultiviewFeatures

VkPhysicalDeviceMultiviewFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    multiview: VkBool32;
    multiviewGeometryShader: VkBool32;
    multiviewTessellationShader: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceMultiviewProperties

VkPhysicalDeviceMultiviewProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxMultiviewViewCount: u32;
    maxMultiviewInstanceIndex: u32;
}

File: vulkan.bl

VkPhysicalDeviceVariablePointersFeatures

VkPhysicalDeviceVariablePointersFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    variablePointersStorageBuffer: VkBool32;
    variablePointers: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceVariablePointerFeatures

VkPhysicalDeviceVariablePointerFeatures :: VkPhysicalDeviceVariablePointersFeatures

File: vulkan.bl

VkPhysicalDeviceProtectedMemoryFeatures

VkPhysicalDeviceProtectedMemoryFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    protectedMemory: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceProtectedMemoryProperties

VkPhysicalDeviceProtectedMemoryProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    protectedNoFault: VkBool32;
}

File: vulkan.bl

VkDeviceQueueInfo2

VkDeviceQueueInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDeviceQueueCreateFlags;
    queueFamilyIndex: u32;
    queueIndex: u32;
}

File: vulkan.bl

VkProtectedSubmitInfo

VkProtectedSubmitInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    protectedSubmit: VkBool32;
}

File: vulkan.bl

VkSamplerYcbcrConversionCreateInfo

VkSamplerYcbcrConversionCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    format: VkFormat;
    ycbcrModel: VkSamplerYcbcrModelConversion;
    ycbcrRange: VkSamplerYcbcrRange;
    components: VkComponentMapping;
    xChromaOffset: VkChromaLocation;
    yChromaOffset: VkChromaLocation;
    chromaFilter: VkFilter;
    forceExplicitReconstruction: VkBool32;
}

File: vulkan.bl

VkSamplerYcbcrConversionInfo

VkSamplerYcbcrConversionInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    conversion: VkSamplerYcbcrConversion;
}

File: vulkan.bl

VkBindImagePlaneMemoryInfo

VkBindImagePlaneMemoryInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    planeAspect: VkImageAspectFlagBits;
}

File: vulkan.bl

VkImagePlaneMemoryRequirementsInfo

VkImagePlaneMemoryRequirementsInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    planeAspect: VkImageAspectFlagBits;
}

File: vulkan.bl

VkPhysicalDeviceSamplerYcbcrConversionFeatures

VkPhysicalDeviceSamplerYcbcrConversionFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    samplerYcbcrConversion: VkBool32;
}

File: vulkan.bl

VkSamplerYcbcrConversionImageFormatProperties

VkSamplerYcbcrConversionImageFormatProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    combinedImageSamplerDescriptorCount: u32;
}

File: vulkan.bl

VkDescriptorUpdateTemplateEntry

VkDescriptorUpdateTemplateEntry :: struct {
    dstBinding: u32;
    dstArrayElement: u32;
    descriptorCount: u32;
    descriptorType: VkDescriptorType;
    offset: usize;
    stride: usize;
}

File: vulkan.bl

VkDescriptorUpdateTemplateCreateInfo

VkDescriptorUpdateTemplateCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDescriptorUpdateTemplateCreateFlags;
    descriptorUpdateEntryCount: u32;
    pDescriptorUpdateEntries: *VkDescriptorUpdateTemplateEntry;
    templateType: VkDescriptorUpdateTemplateType;
    descriptorSetLayout: VkDescriptorSetLayout;
    pipelineBindPoint: VkPipelineBindPoint;
    pipelineLayout: VkPipelineLayout;
    set: u32;
}

File: vulkan.bl

VkExternalMemoryProperties

VkExternalMemoryProperties :: struct {
    externalMemoryFeatures: VkExternalMemoryFeatureFlags;
    exportFromImportedHandleTypes: VkExternalMemoryHandleTypeFlags;
    compatibleHandleTypes: VkExternalMemoryHandleTypeFlags;
}

File: vulkan.bl

VkPhysicalDeviceExternalImageFormatInfo

VkPhysicalDeviceExternalImageFormatInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleType: VkExternalMemoryHandleTypeFlagBits;
}

File: vulkan.bl

VkExternalImageFormatProperties

VkExternalImageFormatProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    externalMemoryProperties: VkExternalMemoryProperties;
}

File: vulkan.bl

VkPhysicalDeviceExternalBufferInfo

VkPhysicalDeviceExternalBufferInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkBufferCreateFlags;
    usage: VkBufferUsageFlags;
    handleType: VkExternalMemoryHandleTypeFlagBits;
}

File: vulkan.bl

VkExternalBufferProperties

VkExternalBufferProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    externalMemoryProperties: VkExternalMemoryProperties;
}

File: vulkan.bl

VkPhysicalDeviceIDProperties

VkPhysicalDeviceIDProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceUUID: ;
    driverUUID: ;
    deviceLUID: ;
    deviceNodeMask: u32;
    deviceLUIDValid: VkBool32;
}

File: vulkan.bl

VkExternalMemoryImageCreateInfo

VkExternalMemoryImageCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleTypes: VkExternalMemoryHandleTypeFlags;
}

File: vulkan.bl

VkExternalMemoryBufferCreateInfo

VkExternalMemoryBufferCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleTypes: VkExternalMemoryHandleTypeFlags;
}

File: vulkan.bl

VkExportMemoryAllocateInfo

VkExportMemoryAllocateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleTypes: VkExternalMemoryHandleTypeFlags;
}

File: vulkan.bl

VkPhysicalDeviceExternalFenceInfo

VkPhysicalDeviceExternalFenceInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleType: VkExternalFenceHandleTypeFlagBits;
}

File: vulkan.bl

VkExternalFenceProperties

VkExternalFenceProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    exportFromImportedHandleTypes: VkExternalFenceHandleTypeFlags;
    compatibleHandleTypes: VkExternalFenceHandleTypeFlags;
    externalFenceFeatures: VkExternalFenceFeatureFlags;
}

File: vulkan.bl

VkExportFenceCreateInfo

VkExportFenceCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleTypes: VkExternalFenceHandleTypeFlags;
}

File: vulkan.bl

VkExportSemaphoreCreateInfo

VkExportSemaphoreCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleTypes: VkExternalSemaphoreHandleTypeFlags;
}

File: vulkan.bl

VkPhysicalDeviceExternalSemaphoreInfo

VkPhysicalDeviceExternalSemaphoreInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleType: VkExternalSemaphoreHandleTypeFlagBits;
}

File: vulkan.bl

VkExternalSemaphoreProperties

VkExternalSemaphoreProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    exportFromImportedHandleTypes: VkExternalSemaphoreHandleTypeFlags;
    compatibleHandleTypes: VkExternalSemaphoreHandleTypeFlags;
    externalSemaphoreFeatures: VkExternalSemaphoreFeatureFlags;
}

File: vulkan.bl

VkPhysicalDeviceMaintenance3Properties

VkPhysicalDeviceMaintenance3Properties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxPerSetDescriptors: u32;
    maxMemoryAllocationSize: VkDeviceSize;
}

File: vulkan.bl

VkDescriptorSetLayoutSupport

VkDescriptorSetLayoutSupport :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    supported: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShaderDrawParametersFeatures

VkPhysicalDeviceShaderDrawParametersFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderDrawParameters: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShaderDrawParameterFeatures

VkPhysicalDeviceShaderDrawParameterFeatures :: VkPhysicalDeviceShaderDrawParametersFeatures

File: vulkan.bl

PFN_vkEnumerateInstanceVersion

PFN_vkEnumerateInstanceVersion :: *fn (: *u32) VkResult

File: vulkan.bl

PFN_vkBindBufferMemory2

PFN_vkBindBufferMemory2 :: *fn (: VkDevice, : u32, : *VkBindBufferMemoryInfo) VkResult

File: vulkan.bl

PFN_vkBindImageMemory2

PFN_vkBindImageMemory2 :: *fn (: VkDevice, : u32, : *VkBindImageMemoryInfo) VkResult

File: vulkan.bl

PFN_vkGetDeviceGroupPeerMemoryFeatures

PFN_vkGetDeviceGroupPeerMemoryFeatures :: *fn (: VkDevice, : u32, : u32, : u32, : *VkPeerMemoryFeatureFlags) 

File: vulkan.bl

PFN_vkCmdSetDeviceMask

PFN_vkCmdSetDeviceMask :: *fn (: VkCommandBuffer, : u32) 

File: vulkan.bl

PFN_vkCmdDispatchBase

PFN_vkCmdDispatchBase :: *fn (: VkCommandBuffer, : u32, : u32, : u32, : u32, : u32, : u32) 

File: vulkan.bl

PFN_vkEnumeratePhysicalDeviceGroups

PFN_vkEnumeratePhysicalDeviceGroups :: *fn (: VkInstance, : *u32, : *VkPhysicalDeviceGroupProperties) VkResult

File: vulkan.bl

PFN_vkGetImageMemoryRequirements2

PFN_vkGetImageMemoryRequirements2 :: *fn (: VkDevice, : *VkImageMemoryRequirementsInfo2, : *VkMemoryRequirements2) 

File: vulkan.bl

PFN_vkGetBufferMemoryRequirements2

PFN_vkGetBufferMemoryRequirements2 :: *fn (: VkDevice, : *VkBufferMemoryRequirementsInfo2, : *VkMemoryRequirements2) 

File: vulkan.bl

PFN_vkGetImageSparseMemoryRequirements2

PFN_vkGetImageSparseMemoryRequirements2 :: *fn (: VkDevice, : *VkImageSparseMemoryRequirementsInfo2, : *u32, : *VkSparseImageMemoryRequirements2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceFeatures2

PFN_vkGetPhysicalDeviceFeatures2 :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceFeatures2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceProperties2

PFN_vkGetPhysicalDeviceProperties2 :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceProperties2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceFormatProperties2

PFN_vkGetPhysicalDeviceFormatProperties2 :: *fn (: VkPhysicalDevice, : VkFormat, : *VkFormatProperties2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceImageFormatProperties2

PFN_vkGetPhysicalDeviceImageFormatProperties2 :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceImageFormatInfo2, : *VkImageFormatProperties2) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceQueueFamilyProperties2

PFN_vkGetPhysicalDeviceQueueFamilyProperties2 :: *fn (: VkPhysicalDevice, : *u32, : *VkQueueFamilyProperties2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceMemoryProperties2

PFN_vkGetPhysicalDeviceMemoryProperties2 :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceMemoryProperties2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceSparseImageFormatProperties2

PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceSparseImageFormatInfo2, : *u32, : *VkSparseImageFormatProperties2) 

File: vulkan.bl

PFN_vkTrimCommandPool

PFN_vkTrimCommandPool :: *fn (: VkDevice, : VkCommandPool, : VkCommandPoolTrimFlags) 

File: vulkan.bl

PFN_vkGetDeviceQueue2

PFN_vkGetDeviceQueue2 :: *fn (: VkDevice, : *VkDeviceQueueInfo2, : *VkQueue) 

File: vulkan.bl

PFN_vkCreateSamplerYcbcrConversion

PFN_vkCreateSamplerYcbcrConversion :: *fn (: VkDevice, : *VkSamplerYcbcrConversionCreateInfo, : *VkAllocationCallbacks, : *VkSamplerYcbcrConversion) VkResult

File: vulkan.bl

PFN_vkDestroySamplerYcbcrConversion

PFN_vkDestroySamplerYcbcrConversion :: *fn (: VkDevice, : VkSamplerYcbcrConversion, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCreateDescriptorUpdateTemplate

PFN_vkCreateDescriptorUpdateTemplate :: *fn (: VkDevice, : *VkDescriptorUpdateTemplateCreateInfo, : *VkAllocationCallbacks, : *VkDescriptorUpdateTemplate) VkResult

File: vulkan.bl

PFN_vkDestroyDescriptorUpdateTemplate

PFN_vkDestroyDescriptorUpdateTemplate :: *fn (: VkDevice, : VkDescriptorUpdateTemplate, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkUpdateDescriptorSetWithTemplate

PFN_vkUpdateDescriptorSetWithTemplate :: *fn (: VkDevice, : VkDescriptorSet, : VkDescriptorUpdateTemplate, : C.void_ptr) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceExternalBufferProperties

PFN_vkGetPhysicalDeviceExternalBufferProperties :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceExternalBufferInfo, : *VkExternalBufferProperties) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceExternalFenceProperties

PFN_vkGetPhysicalDeviceExternalFenceProperties :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceExternalFenceInfo, : *VkExternalFenceProperties) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceExternalSemaphoreProperties

PFN_vkGetPhysicalDeviceExternalSemaphoreProperties :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceExternalSemaphoreInfo, : *VkExternalSemaphoreProperties) 

File: vulkan.bl

PFN_vkGetDescriptorSetLayoutSupport

PFN_vkGetDescriptorSetLayoutSupport :: *fn (: VkDevice, : *VkDescriptorSetLayoutCreateInfo, : *VkDescriptorSetLayoutSupport) 

File: vulkan.bl

vkEnumerateInstanceVersion

vkEnumerateInstanceVersion :: fn (pApiVersion: *u32) VkResult #extern

File: vulkan.bl

vkBindBufferMemory2

vkBindBufferMemory2 :: fn (device: VkDevice, bindInfoCount: u32, pBindInfos: *VkBindBufferMemoryInfo) VkResult #extern

File: vulkan.bl

vkBindImageMemory2

vkBindImageMemory2 :: fn (device: VkDevice, bindInfoCount: u32, pBindInfos: *VkBindImageMemoryInfo) VkResult #extern

File: vulkan.bl

vkGetDeviceGroupPeerMemoryFeatures

vkGetDeviceGroupPeerMemoryFeatures :: fn (device: VkDevice, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32, pPeerMemoryFeatures: *VkPeerMemoryFeatureFlags)  #extern

File: vulkan.bl

vkCmdSetDeviceMask

vkCmdSetDeviceMask :: fn (commandBuffer: VkCommandBuffer, deviceMask: u32)  #extern

File: vulkan.bl

vkCmdDispatchBase

vkCmdDispatchBase :: fn (commandBuffer: VkCommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32)  #extern

File: vulkan.bl

vkEnumeratePhysicalDeviceGroups

vkEnumeratePhysicalDeviceGroups :: fn (instance: VkInstance, pPhysicalDeviceGroupCount: *u32, pPhysicalDeviceGroupProperties: *VkPhysicalDeviceGroupProperties) VkResult #extern

File: vulkan.bl

vkGetImageMemoryRequirements2

vkGetImageMemoryRequirements2 :: fn (device: VkDevice, pInfo: *VkImageMemoryRequirementsInfo2, pMemoryRequirements: *VkMemoryRequirements2)  #extern

File: vulkan.bl

vkGetBufferMemoryRequirements2

vkGetBufferMemoryRequirements2 :: fn (device: VkDevice, pInfo: *VkBufferMemoryRequirementsInfo2, pMemoryRequirements: *VkMemoryRequirements2)  #extern

File: vulkan.bl

vkGetImageSparseMemoryRequirements2

vkGetImageSparseMemoryRequirements2 :: fn (device: VkDevice, pInfo: *VkImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: *u32, pSparseMemoryRequirements: *VkSparseImageMemoryRequirements2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceFeatures2

vkGetPhysicalDeviceFeatures2 :: fn (physicalDevice: VkPhysicalDevice, pFeatures: *VkPhysicalDeviceFeatures2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceProperties2

vkGetPhysicalDeviceProperties2 :: fn (physicalDevice: VkPhysicalDevice, pProperties: *VkPhysicalDeviceProperties2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceFormatProperties2

vkGetPhysicalDeviceFormatProperties2 :: fn (physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: *VkFormatProperties2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceImageFormatProperties2

vkGetPhysicalDeviceImageFormatProperties2 :: fn (physicalDevice: VkPhysicalDevice, pImageFormatInfo: *VkPhysicalDeviceImageFormatInfo2, pImageFormatProperties: *VkImageFormatProperties2) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceQueueFamilyProperties2

vkGetPhysicalDeviceQueueFamilyProperties2 :: fn (physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: *u32, pQueueFamilyProperties: *VkQueueFamilyProperties2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceMemoryProperties2

vkGetPhysicalDeviceMemoryProperties2 :: fn (physicalDevice: VkPhysicalDevice, pMemoryProperties: *VkPhysicalDeviceMemoryProperties2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceSparseImageFormatProperties2

vkGetPhysicalDeviceSparseImageFormatProperties2 :: fn (physicalDevice: VkPhysicalDevice, pFormatInfo: *VkPhysicalDeviceSparseImageFormatInfo2, pPropertyCount: *u32, pProperties: *VkSparseImageFormatProperties2)  #extern

File: vulkan.bl

vkTrimCommandPool

vkTrimCommandPool :: fn (device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags)  #extern

File: vulkan.bl

vkGetDeviceQueue2

vkGetDeviceQueue2 :: fn (device: VkDevice, pQueueInfo: *VkDeviceQueueInfo2, pQueue: *VkQueue)  #extern

File: vulkan.bl

vkCreateSamplerYcbcrConversion

vkCreateSamplerYcbcrConversion :: fn (device: VkDevice, pCreateInfo: *VkSamplerYcbcrConversionCreateInfo, pAllocator: *VkAllocationCallbacks, pYcbcrConversion: *VkSamplerYcbcrConversion) VkResult #extern

File: vulkan.bl

vkDestroySamplerYcbcrConversion

vkDestroySamplerYcbcrConversion :: fn (device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCreateDescriptorUpdateTemplate

vkCreateDescriptorUpdateTemplate :: fn (device: VkDevice, pCreateInfo: *VkDescriptorUpdateTemplateCreateInfo, pAllocator: *VkAllocationCallbacks, pDescriptorUpdateTemplate: *VkDescriptorUpdateTemplate) VkResult #extern

File: vulkan.bl

vkDestroyDescriptorUpdateTemplate

vkDestroyDescriptorUpdateTemplate :: fn (device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkUpdateDescriptorSetWithTemplate

vkUpdateDescriptorSetWithTemplate :: fn (device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: C.void_ptr)  #extern

File: vulkan.bl

vkGetPhysicalDeviceExternalBufferProperties

vkGetPhysicalDeviceExternalBufferProperties :: fn (physicalDevice: VkPhysicalDevice, pExternalBufferInfo: *VkPhysicalDeviceExternalBufferInfo, pExternalBufferProperties: *VkExternalBufferProperties)  #extern

File: vulkan.bl

vkGetPhysicalDeviceExternalFenceProperties

vkGetPhysicalDeviceExternalFenceProperties :: fn (physicalDevice: VkPhysicalDevice, pExternalFenceInfo: *VkPhysicalDeviceExternalFenceInfo, pExternalFenceProperties: *VkExternalFenceProperties)  #extern

File: vulkan.bl

vkGetPhysicalDeviceExternalSemaphoreProperties

vkGetPhysicalDeviceExternalSemaphoreProperties :: fn (physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: *VkPhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: *VkExternalSemaphoreProperties)  #extern

File: vulkan.bl

vkGetDescriptorSetLayoutSupport

vkGetDescriptorSetLayoutSupport :: fn (device: VkDevice, pCreateInfo: *VkDescriptorSetLayoutCreateInfo, pSupport: *VkDescriptorSetLayoutSupport)  #extern

File: vulkan.bl

VkDriverId

VkDriverId :: enum s32 {
    VK_DRIVER_ID_AMD_PROPRIETARY = 1;
    VK_DRIVER_ID_AMD_OPEN_SOURCE = 2;
    VK_DRIVER_ID_MESA_RADV = 3;
    VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4;
    VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5;
    VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6;
    VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7;
    VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8;
    VK_DRIVER_ID_ARM_PROPRIETARY = 9;
    VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10;
    VK_DRIVER_ID_GGP_PROPRIETARY = 11;
    VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12;
    VK_DRIVER_ID_MESA_LLVMPIPE = 13;
    VK_DRIVER_ID_MOLTENVK = 14;
    VK_DRIVER_ID_COREAVI_PROPRIETARY = 15;
    VK_DRIVER_ID_JUICE_PROPRIETARY = 16;
    VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17;
    VK_DRIVER_ID_MESA_TURNIP = 18;
    VK_DRIVER_ID_MESA_V3DV = 19;
    VK_DRIVER_ID_MESA_PANVK = 20;
    VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21;
    VK_DRIVER_ID_MESA_VENUS = 22;
    VK_DRIVER_ID_MESA_DOZEN = 23;
    VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1;
    VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2;
    VK_DRIVER_ID_MESA_RADV_KHR = 3;
    VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4;
    VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5;
    VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6;
    VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7;
    VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8;
    VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9;
    VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = 10;
    VK_DRIVER_ID_GGP_PROPRIETARY_KHR = 11;
    VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = 12;
    VK_DRIVER_ID_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkShaderFloatControlsIndependence

VkShaderFloatControlsIndependence :: enum s32 {
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0;
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1;
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2;
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = 0;
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = 1;
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = 2;
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSamplerReductionMode

VkSamplerReductionMode :: enum s32 {
    VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0;
    VK_SAMPLER_REDUCTION_MODE_MIN = 1;
    VK_SAMPLER_REDUCTION_MODE_MAX = 2;
    VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0;
    VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1;
    VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2;
    VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSemaphoreType

VkSemaphoreType :: enum s32 {
    VK_SEMAPHORE_TYPE_BINARY = 0;
    VK_SEMAPHORE_TYPE_TIMELINE = 1;
    VK_SEMAPHORE_TYPE_BINARY_KHR = 0;
    VK_SEMAPHORE_TYPE_TIMELINE_KHR = 1;
    VK_SEMAPHORE_TYPE_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkResolveModeFlagBits

VkResolveModeFlagBits :: enum u32 {
    VK_RESOLVE_MODE_NONE = 0;
    VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 1;
    VK_RESOLVE_MODE_AVERAGE_BIT = 2;
    VK_RESOLVE_MODE_MIN_BIT = 4;
    VK_RESOLVE_MODE_MAX_BIT = 8;
    VK_RESOLVE_MODE_NONE_KHR = 0;
    VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = 1;
    VK_RESOLVE_MODE_AVERAGE_BIT_KHR = 2;
    VK_RESOLVE_MODE_MIN_BIT_KHR = 4;
    VK_RESOLVE_MODE_MAX_BIT_KHR = 8;
    VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkResolveModeFlags

VkResolveModeFlags :: VkFlags

File: vulkan.bl

VkDescriptorBindingFlagBits

VkDescriptorBindingFlagBits :: enum u32 {
    VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 1;
    VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 2;
    VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 4;
    VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 8;
    VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 1;
    VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 2;
    VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 4;
    VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 8;
    VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkDescriptorBindingFlags

VkDescriptorBindingFlags :: VkFlags

File: vulkan.bl

VkSemaphoreWaitFlagBits

VkSemaphoreWaitFlagBits :: enum u32 {
    VK_SEMAPHORE_WAIT_ANY_BIT = 1;
    VK_SEMAPHORE_WAIT_ANY_BIT_KHR = 1;
    VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSemaphoreWaitFlags

VkSemaphoreWaitFlags :: VkFlags

File: vulkan.bl

VkPhysicalDeviceVulkan11Features

VkPhysicalDeviceVulkan11Features :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    storageBuffer16BitAccess: VkBool32;
    uniformAndStorageBuffer16BitAccess: VkBool32;
    storagePushConstant16: VkBool32;
    storageInputOutput16: VkBool32;
    multiview: VkBool32;
    multiviewGeometryShader: VkBool32;
    multiviewTessellationShader: VkBool32;
    variablePointersStorageBuffer: VkBool32;
    variablePointers: VkBool32;
    protectedMemory: VkBool32;
    samplerYcbcrConversion: VkBool32;
    shaderDrawParameters: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceVulkan11Properties

VkPhysicalDeviceVulkan11Properties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceUUID: ;
    driverUUID: ;
    deviceLUID: ;
    deviceNodeMask: u32;
    deviceLUIDValid: VkBool32;
    subgroupSize: u32;
    subgroupSupportedStages: VkShaderStageFlags;
    subgroupSupportedOperations: VkSubgroupFeatureFlags;
    subgroupQuadOperationsInAllStages: VkBool32;
    pointClippingBehavior: VkPointClippingBehavior;
    maxMultiviewViewCount: u32;
    maxMultiviewInstanceIndex: u32;
    protectedNoFault: VkBool32;
    maxPerSetDescriptors: u32;
    maxMemoryAllocationSize: VkDeviceSize;
}

File: vulkan.bl

VkPhysicalDeviceVulkan12Features

VkPhysicalDeviceVulkan12Features :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    samplerMirrorClampToEdge: VkBool32;
    drawIndirectCount: VkBool32;
    storageBuffer8BitAccess: VkBool32;
    uniformAndStorageBuffer8BitAccess: VkBool32;
    storagePushConstant8: VkBool32;
    shaderBufferInt64Atomics: VkBool32;
    shaderSharedInt64Atomics: VkBool32;
    shaderFloat16: VkBool32;
    shaderInt8: VkBool32;
    descriptorIndexing: VkBool32;
    shaderInputAttachmentArrayDynamicIndexing: VkBool32;
    shaderUniformTexelBufferArrayDynamicIndexing: VkBool32;
    shaderStorageTexelBufferArrayDynamicIndexing: VkBool32;
    shaderUniformBufferArrayNonUniformIndexing: VkBool32;
    shaderSampledImageArrayNonUniformIndexing: VkBool32;
    shaderStorageBufferArrayNonUniformIndexing: VkBool32;
    shaderStorageImageArrayNonUniformIndexing: VkBool32;
    shaderInputAttachmentArrayNonUniformIndexing: VkBool32;
    shaderUniformTexelBufferArrayNonUniformIndexing: VkBool32;
    shaderStorageTexelBufferArrayNonUniformIndexing: VkBool32;
    descriptorBindingUniformBufferUpdateAfterBind: VkBool32;
    descriptorBindingSampledImageUpdateAfterBind: VkBool32;
    descriptorBindingStorageImageUpdateAfterBind: VkBool32;
    descriptorBindingStorageBufferUpdateAfterBind: VkBool32;
    descriptorBindingUniformTexelBufferUpdateAfterBind: VkBool32;
    descriptorBindingStorageTexelBufferUpdateAfterBind: VkBool32;
    descriptorBindingUpdateUnusedWhilePending: VkBool32;
    descriptorBindingPartiallyBound: VkBool32;
    descriptorBindingVariableDescriptorCount: VkBool32;
    runtimeDescriptorArray: VkBool32;
    samplerFilterMinmax: VkBool32;
    scalarBlockLayout: VkBool32;
    imagelessFramebuffer: VkBool32;
    uniformBufferStandardLayout: VkBool32;
    shaderSubgroupExtendedTypes: VkBool32;
    separateDepthStencilLayouts: VkBool32;
    hostQueryReset: VkBool32;
    timelineSemaphore: VkBool32;
    bufferDeviceAddress: VkBool32;
    bufferDeviceAddressCaptureReplay: VkBool32;
    bufferDeviceAddressMultiDevice: VkBool32;
    vulkanMemoryModel: VkBool32;
    vulkanMemoryModelDeviceScope: VkBool32;
    vulkanMemoryModelAvailabilityVisibilityChains: VkBool32;
    shaderOutputViewportIndex: VkBool32;
    shaderOutputLayer: VkBool32;
    subgroupBroadcastDynamicId: VkBool32;
}

File: vulkan.bl

VkConformanceVersion

VkConformanceVersion :: struct {
    major: u8;
    minor: u8;
    subminor: u8;
    patch: u8;
}

File: vulkan.bl

VkPhysicalDeviceVulkan12Properties

VkPhysicalDeviceVulkan12Properties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    driverID: VkDriverId;
    driverName: ;
    driverInfo: ;
    conformanceVersion: VkConformanceVersion;
    denormBehaviorIndependence: VkShaderFloatControlsIndependence;
    roundingModeIndependence: VkShaderFloatControlsIndependence;
    shaderSignedZeroInfNanPreserveFloat16: VkBool32;
    shaderSignedZeroInfNanPreserveFloat32: VkBool32;
    shaderSignedZeroInfNanPreserveFloat64: VkBool32;
    shaderDenormPreserveFloat16: VkBool32;
    shaderDenormPreserveFloat32: VkBool32;
    shaderDenormPreserveFloat64: VkBool32;
    shaderDenormFlushToZeroFloat16: VkBool32;
    shaderDenormFlushToZeroFloat32: VkBool32;
    shaderDenormFlushToZeroFloat64: VkBool32;
    shaderRoundingModeRTEFloat16: VkBool32;
    shaderRoundingModeRTEFloat32: VkBool32;
    shaderRoundingModeRTEFloat64: VkBool32;
    shaderRoundingModeRTZFloat16: VkBool32;
    shaderRoundingModeRTZFloat32: VkBool32;
    shaderRoundingModeRTZFloat64: VkBool32;
    maxUpdateAfterBindDescriptorsInAllPools: u32;
    shaderUniformBufferArrayNonUniformIndexingNative: VkBool32;
    shaderSampledImageArrayNonUniformIndexingNative: VkBool32;
    shaderStorageBufferArrayNonUniformIndexingNative: VkBool32;
    shaderStorageImageArrayNonUniformIndexingNative: VkBool32;
    shaderInputAttachmentArrayNonUniformIndexingNative: VkBool32;
    robustBufferAccessUpdateAfterBind: VkBool32;
    quadDivergentImplicitLod: VkBool32;
    maxPerStageDescriptorUpdateAfterBindSamplers: u32;
    maxPerStageDescriptorUpdateAfterBindUniformBuffers: u32;
    maxPerStageDescriptorUpdateAfterBindStorageBuffers: u32;
    maxPerStageDescriptorUpdateAfterBindSampledImages: u32;
    maxPerStageDescriptorUpdateAfterBindStorageImages: u32;
    maxPerStageDescriptorUpdateAfterBindInputAttachments: u32;
    maxPerStageUpdateAfterBindResources: u32;
    maxDescriptorSetUpdateAfterBindSamplers: u32;
    maxDescriptorSetUpdateAfterBindUniformBuffers: u32;
    maxDescriptorSetUpdateAfterBindUniformBuffersDynamic: u32;
    maxDescriptorSetUpdateAfterBindStorageBuffers: u32;
    maxDescriptorSetUpdateAfterBindStorageBuffersDynamic: u32;
    maxDescriptorSetUpdateAfterBindSampledImages: u32;
    maxDescriptorSetUpdateAfterBindStorageImages: u32;
    maxDescriptorSetUpdateAfterBindInputAttachments: u32;
    supportedDepthResolveModes: VkResolveModeFlags;
    supportedStencilResolveModes: VkResolveModeFlags;
    independentResolveNone: VkBool32;
    independentResolve: VkBool32;
    filterMinmaxSingleComponentFormats: VkBool32;
    filterMinmaxImageComponentMapping: VkBool32;
    maxTimelineSemaphoreValueDifference: u64;
    framebufferIntegerColorSampleCounts: VkSampleCountFlags;
}

File: vulkan.bl

VkImageFormatListCreateInfo

VkImageFormatListCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    viewFormatCount: u32;
    pViewFormats: *VkFormat;
}

File: vulkan.bl

VkAttachmentDescription2

VkAttachmentDescription2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkAttachmentDescriptionFlags;
    format: VkFormat;
    samples: VkSampleCountFlagBits;
    loadOp: VkAttachmentLoadOp;
    storeOp: VkAttachmentStoreOp;
    stencilLoadOp: VkAttachmentLoadOp;
    stencilStoreOp: VkAttachmentStoreOp;
    initialLayout: VkImageLayout;
    finalLayout: VkImageLayout;
}

File: vulkan.bl

VkAttachmentReference2

VkAttachmentReference2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    attachment: u32;
    layout: VkImageLayout;
    aspectMask: VkImageAspectFlags;
}

File: vulkan.bl

VkSubpassDescription2

VkSubpassDescription2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkSubpassDescriptionFlags;
    pipelineBindPoint: VkPipelineBindPoint;
    viewMask: u32;
    inputAttachmentCount: u32;
    pInputAttachments: *VkAttachmentReference2;
    colorAttachmentCount: u32;
    pColorAttachments: *VkAttachmentReference2;
    pResolveAttachments: *VkAttachmentReference2;
    pDepthStencilAttachment: *VkAttachmentReference2;
    preserveAttachmentCount: u32;
    pPreserveAttachments: *u32;
}

File: vulkan.bl

VkSubpassDependency2

VkSubpassDependency2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcSubpass: u32;
    dstSubpass: u32;
    srcStageMask: VkPipelineStageFlags;
    dstStageMask: VkPipelineStageFlags;
    srcAccessMask: VkAccessFlags;
    dstAccessMask: VkAccessFlags;
    dependencyFlags: VkDependencyFlags;
    viewOffset: s32;
}

File: vulkan.bl

VkRenderPassCreateInfo2

VkRenderPassCreateInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkRenderPassCreateFlags;
    attachmentCount: u32;
    pAttachments: *VkAttachmentDescription2;
    subpassCount: u32;
    pSubpasses: *VkSubpassDescription2;
    dependencyCount: u32;
    pDependencies: *VkSubpassDependency2;
    correlatedViewMaskCount: u32;
    pCorrelatedViewMasks: *u32;
}

File: vulkan.bl

VkSubpassBeginInfo

VkSubpassBeginInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    contents: VkSubpassContents;
}

File: vulkan.bl

VkSubpassEndInfo

VkSubpassEndInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
}

File: vulkan.bl

VkPhysicalDevice8BitStorageFeatures

VkPhysicalDevice8BitStorageFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    storageBuffer8BitAccess: VkBool32;
    uniformAndStorageBuffer8BitAccess: VkBool32;
    storagePushConstant8: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceDriverProperties

VkPhysicalDeviceDriverProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    driverID: VkDriverId;
    driverName: ;
    driverInfo: ;
    conformanceVersion: VkConformanceVersion;
}

File: vulkan.bl

VkPhysicalDeviceShaderAtomicInt64Features

VkPhysicalDeviceShaderAtomicInt64Features :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderBufferInt64Atomics: VkBool32;
    shaderSharedInt64Atomics: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShaderFloat16Int8Features

VkPhysicalDeviceShaderFloat16Int8Features :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderFloat16: VkBool32;
    shaderInt8: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceFloatControlsProperties

VkPhysicalDeviceFloatControlsProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    denormBehaviorIndependence: VkShaderFloatControlsIndependence;
    roundingModeIndependence: VkShaderFloatControlsIndependence;
    shaderSignedZeroInfNanPreserveFloat16: VkBool32;
    shaderSignedZeroInfNanPreserveFloat32: VkBool32;
    shaderSignedZeroInfNanPreserveFloat64: VkBool32;
    shaderDenormPreserveFloat16: VkBool32;
    shaderDenormPreserveFloat32: VkBool32;
    shaderDenormPreserveFloat64: VkBool32;
    shaderDenormFlushToZeroFloat16: VkBool32;
    shaderDenormFlushToZeroFloat32: VkBool32;
    shaderDenormFlushToZeroFloat64: VkBool32;
    shaderRoundingModeRTEFloat16: VkBool32;
    shaderRoundingModeRTEFloat32: VkBool32;
    shaderRoundingModeRTEFloat64: VkBool32;
    shaderRoundingModeRTZFloat16: VkBool32;
    shaderRoundingModeRTZFloat32: VkBool32;
    shaderRoundingModeRTZFloat64: VkBool32;
}

File: vulkan.bl

VkDescriptorSetLayoutBindingFlagsCreateInfo

VkDescriptorSetLayoutBindingFlagsCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    bindingCount: u32;
    pBindingFlags: *VkDescriptorBindingFlags;
}

File: vulkan.bl

VkPhysicalDeviceDescriptorIndexingFeatures

VkPhysicalDeviceDescriptorIndexingFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderInputAttachmentArrayDynamicIndexing: VkBool32;
    shaderUniformTexelBufferArrayDynamicIndexing: VkBool32;
    shaderStorageTexelBufferArrayDynamicIndexing: VkBool32;
    shaderUniformBufferArrayNonUniformIndexing: VkBool32;
    shaderSampledImageArrayNonUniformIndexing: VkBool32;
    shaderStorageBufferArrayNonUniformIndexing: VkBool32;
    shaderStorageImageArrayNonUniformIndexing: VkBool32;
    shaderInputAttachmentArrayNonUniformIndexing: VkBool32;
    shaderUniformTexelBufferArrayNonUniformIndexing: VkBool32;
    shaderStorageTexelBufferArrayNonUniformIndexing: VkBool32;
    descriptorBindingUniformBufferUpdateAfterBind: VkBool32;
    descriptorBindingSampledImageUpdateAfterBind: VkBool32;
    descriptorBindingStorageImageUpdateAfterBind: VkBool32;
    descriptorBindingStorageBufferUpdateAfterBind: VkBool32;
    descriptorBindingUniformTexelBufferUpdateAfterBind: VkBool32;
    descriptorBindingStorageTexelBufferUpdateAfterBind: VkBool32;
    descriptorBindingUpdateUnusedWhilePending: VkBool32;
    descriptorBindingPartiallyBound: VkBool32;
    descriptorBindingVariableDescriptorCount: VkBool32;
    runtimeDescriptorArray: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceDescriptorIndexingProperties

VkPhysicalDeviceDescriptorIndexingProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxUpdateAfterBindDescriptorsInAllPools: u32;
    shaderUniformBufferArrayNonUniformIndexingNative: VkBool32;
    shaderSampledImageArrayNonUniformIndexingNative: VkBool32;
    shaderStorageBufferArrayNonUniformIndexingNative: VkBool32;
    shaderStorageImageArrayNonUniformIndexingNative: VkBool32;
    shaderInputAttachmentArrayNonUniformIndexingNative: VkBool32;
    robustBufferAccessUpdateAfterBind: VkBool32;
    quadDivergentImplicitLod: VkBool32;
    maxPerStageDescriptorUpdateAfterBindSamplers: u32;
    maxPerStageDescriptorUpdateAfterBindUniformBuffers: u32;
    maxPerStageDescriptorUpdateAfterBindStorageBuffers: u32;
    maxPerStageDescriptorUpdateAfterBindSampledImages: u32;
    maxPerStageDescriptorUpdateAfterBindStorageImages: u32;
    maxPerStageDescriptorUpdateAfterBindInputAttachments: u32;
    maxPerStageUpdateAfterBindResources: u32;
    maxDescriptorSetUpdateAfterBindSamplers: u32;
    maxDescriptorSetUpdateAfterBindUniformBuffers: u32;
    maxDescriptorSetUpdateAfterBindUniformBuffersDynamic: u32;
    maxDescriptorSetUpdateAfterBindStorageBuffers: u32;
    maxDescriptorSetUpdateAfterBindStorageBuffersDynamic: u32;
    maxDescriptorSetUpdateAfterBindSampledImages: u32;
    maxDescriptorSetUpdateAfterBindStorageImages: u32;
    maxDescriptorSetUpdateAfterBindInputAttachments: u32;
}

File: vulkan.bl

VkDescriptorSetVariableDescriptorCountAllocateInfo

VkDescriptorSetVariableDescriptorCountAllocateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    descriptorSetCount: u32;
    pDescriptorCounts: *u32;
}

File: vulkan.bl

VkDescriptorSetVariableDescriptorCountLayoutSupport

VkDescriptorSetVariableDescriptorCountLayoutSupport :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxVariableDescriptorCount: u32;
}

File: vulkan.bl

VkSubpassDescriptionDepthStencilResolve

VkSubpassDescriptionDepthStencilResolve :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    depthResolveMode: VkResolveModeFlagBits;
    stencilResolveMode: VkResolveModeFlagBits;
    pDepthStencilResolveAttachment: *VkAttachmentReference2;
}

File: vulkan.bl

VkPhysicalDeviceDepthStencilResolveProperties

VkPhysicalDeviceDepthStencilResolveProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    supportedDepthResolveModes: VkResolveModeFlags;
    supportedStencilResolveModes: VkResolveModeFlags;
    independentResolveNone: VkBool32;
    independentResolve: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceScalarBlockLayoutFeatures

VkPhysicalDeviceScalarBlockLayoutFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    scalarBlockLayout: VkBool32;
}

File: vulkan.bl

VkImageStencilUsageCreateInfo

VkImageStencilUsageCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    stencilUsage: VkImageUsageFlags;
}

File: vulkan.bl

VkSamplerReductionModeCreateInfo

VkSamplerReductionModeCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    reductionMode: VkSamplerReductionMode;
}

File: vulkan.bl

VkPhysicalDeviceSamplerFilterMinmaxProperties

VkPhysicalDeviceSamplerFilterMinmaxProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    filterMinmaxSingleComponentFormats: VkBool32;
    filterMinmaxImageComponentMapping: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceVulkanMemoryModelFeatures

VkPhysicalDeviceVulkanMemoryModelFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    vulkanMemoryModel: VkBool32;
    vulkanMemoryModelDeviceScope: VkBool32;
    vulkanMemoryModelAvailabilityVisibilityChains: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceImagelessFramebufferFeatures

VkPhysicalDeviceImagelessFramebufferFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imagelessFramebuffer: VkBool32;
}

File: vulkan.bl

VkFramebufferAttachmentImageInfo

VkFramebufferAttachmentImageInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkImageCreateFlags;
    usage: VkImageUsageFlags;
    width: u32;
    height: u32;
    layerCount: u32;
    viewFormatCount: u32;
    pViewFormats: *VkFormat;
}

File: vulkan.bl

VkFramebufferAttachmentsCreateInfo

VkFramebufferAttachmentsCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    attachmentImageInfoCount: u32;
    pAttachmentImageInfos: *VkFramebufferAttachmentImageInfo;
}

File: vulkan.bl

VkRenderPassAttachmentBeginInfo

VkRenderPassAttachmentBeginInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    attachmentCount: u32;
    pAttachments: *VkImageView;
}

File: vulkan.bl

VkPhysicalDeviceUniformBufferStandardLayoutFeatures

VkPhysicalDeviceUniformBufferStandardLayoutFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    uniformBufferStandardLayout: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures

VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderSubgroupExtendedTypes: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures

VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    separateDepthStencilLayouts: VkBool32;
}

File: vulkan.bl

VkAttachmentReferenceStencilLayout

VkAttachmentReferenceStencilLayout :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    stencilLayout: VkImageLayout;
}

File: vulkan.bl

VkAttachmentDescriptionStencilLayout

VkAttachmentDescriptionStencilLayout :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    stencilInitialLayout: VkImageLayout;
    stencilFinalLayout: VkImageLayout;
}

File: vulkan.bl

VkPhysicalDeviceHostQueryResetFeatures

VkPhysicalDeviceHostQueryResetFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    hostQueryReset: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceTimelineSemaphoreFeatures

VkPhysicalDeviceTimelineSemaphoreFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    timelineSemaphore: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceTimelineSemaphoreProperties

VkPhysicalDeviceTimelineSemaphoreProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxTimelineSemaphoreValueDifference: u64;
}

File: vulkan.bl

VkSemaphoreTypeCreateInfo

VkSemaphoreTypeCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    semaphoreType: VkSemaphoreType;
    initialValue: u64;
}

File: vulkan.bl

VkTimelineSemaphoreSubmitInfo

VkTimelineSemaphoreSubmitInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    waitSemaphoreValueCount: u32;
    pWaitSemaphoreValues: *u64;
    signalSemaphoreValueCount: u32;
    pSignalSemaphoreValues: *u64;
}

File: vulkan.bl

VkSemaphoreWaitInfo

VkSemaphoreWaitInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkSemaphoreWaitFlags;
    semaphoreCount: u32;
    pSemaphores: *VkSemaphore;
    pValues: *u64;
}

File: vulkan.bl

VkSemaphoreSignalInfo

VkSemaphoreSignalInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    semaphore: VkSemaphore;
    value: u64;
}

File: vulkan.bl

VkPhysicalDeviceBufferDeviceAddressFeatures

VkPhysicalDeviceBufferDeviceAddressFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    bufferDeviceAddress: VkBool32;
    bufferDeviceAddressCaptureReplay: VkBool32;
    bufferDeviceAddressMultiDevice: VkBool32;
}

File: vulkan.bl

VkBufferDeviceAddressInfo

VkBufferDeviceAddressInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    buffer: VkBuffer;
}

File: vulkan.bl

VkBufferOpaqueCaptureAddressCreateInfo

VkBufferOpaqueCaptureAddressCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    opaqueCaptureAddress: u64;
}

File: vulkan.bl

VkMemoryOpaqueCaptureAddressAllocateInfo

VkMemoryOpaqueCaptureAddressAllocateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    opaqueCaptureAddress: u64;
}

File: vulkan.bl

VkDeviceMemoryOpaqueCaptureAddressInfo

VkDeviceMemoryOpaqueCaptureAddressInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    memory: VkDeviceMemory;
}

File: vulkan.bl

PFN_vkCmdDrawIndirectCount

PFN_vkCmdDrawIndirectCount :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawIndexedIndirectCount

PFN_vkCmdDrawIndexedIndirectCount :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

PFN_vkCreateRenderPass2

PFN_vkCreateRenderPass2 :: *fn (: VkDevice, : *VkRenderPassCreateInfo2, : *VkAllocationCallbacks, : *VkRenderPass) VkResult

File: vulkan.bl

PFN_vkCmdBeginRenderPass2

PFN_vkCmdBeginRenderPass2 :: *fn (: VkCommandBuffer, : *VkRenderPassBeginInfo, : *VkSubpassBeginInfo) 

File: vulkan.bl

PFN_vkCmdNextSubpass2

PFN_vkCmdNextSubpass2 :: *fn (: VkCommandBuffer, : *VkSubpassBeginInfo, : *VkSubpassEndInfo) 

File: vulkan.bl

PFN_vkCmdEndRenderPass2

PFN_vkCmdEndRenderPass2 :: *fn (: VkCommandBuffer, : *VkSubpassEndInfo) 

File: vulkan.bl

PFN_vkResetQueryPool

PFN_vkResetQueryPool :: *fn (: VkDevice, : VkQueryPool, : u32, : u32) 

File: vulkan.bl

PFN_vkGetSemaphoreCounterValue

PFN_vkGetSemaphoreCounterValue :: *fn (: VkDevice, : VkSemaphore, : *u64) VkResult

File: vulkan.bl

PFN_vkWaitSemaphores

PFN_vkWaitSemaphores :: *fn (: VkDevice, : *VkSemaphoreWaitInfo, : u64) VkResult

File: vulkan.bl

PFN_vkSignalSemaphore

PFN_vkSignalSemaphore :: *fn (: VkDevice, : *VkSemaphoreSignalInfo) VkResult

File: vulkan.bl

PFN_vkGetBufferDeviceAddress

PFN_vkGetBufferDeviceAddress :: *fn (: VkDevice, : *VkBufferDeviceAddressInfo) VkDeviceAddress

File: vulkan.bl

PFN_vkGetBufferOpaqueCaptureAddress

PFN_vkGetBufferOpaqueCaptureAddress :: *fn (: VkDevice, : *VkBufferDeviceAddressInfo) u64

File: vulkan.bl

PFN_vkGetDeviceMemoryOpaqueCaptureAddress

PFN_vkGetDeviceMemoryOpaqueCaptureAddress :: *fn (: VkDevice, : *VkDeviceMemoryOpaqueCaptureAddressInfo) u64

File: vulkan.bl

vkCmdDrawIndirectCount

vkCmdDrawIndirectCount :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: u32, stride: u32)  #extern

File: vulkan.bl

vkCmdDrawIndexedIndirectCount

vkCmdDrawIndexedIndirectCount :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: u32, stride: u32)  #extern

File: vulkan.bl

vkCreateRenderPass2

vkCreateRenderPass2 :: fn (device: VkDevice, pCreateInfo: *VkRenderPassCreateInfo2, pAllocator: *VkAllocationCallbacks, pRenderPass: *VkRenderPass) VkResult #extern

File: vulkan.bl

vkCmdBeginRenderPass2

vkCmdBeginRenderPass2 :: fn (commandBuffer: VkCommandBuffer, pRenderPassBegin: *VkRenderPassBeginInfo, pSubpassBeginInfo: *VkSubpassBeginInfo)  #extern

File: vulkan.bl

vkCmdNextSubpass2

vkCmdNextSubpass2 :: fn (commandBuffer: VkCommandBuffer, pSubpassBeginInfo: *VkSubpassBeginInfo, pSubpassEndInfo: *VkSubpassEndInfo)  #extern

File: vulkan.bl

vkCmdEndRenderPass2

vkCmdEndRenderPass2 :: fn (commandBuffer: VkCommandBuffer, pSubpassEndInfo: *VkSubpassEndInfo)  #extern

File: vulkan.bl

vkResetQueryPool

vkResetQueryPool :: fn (device: VkDevice, queryPool: VkQueryPool, firstQuery: u32, queryCount: u32)  #extern

File: vulkan.bl

vkGetSemaphoreCounterValue

vkGetSemaphoreCounterValue :: fn (device: VkDevice, semaphore: VkSemaphore, pValue: *u64) VkResult #extern

File: vulkan.bl

vkWaitSemaphores

vkWaitSemaphores :: fn (device: VkDevice, pWaitInfo: *VkSemaphoreWaitInfo, timeout: u64) VkResult #extern

File: vulkan.bl

vkSignalSemaphore

vkSignalSemaphore :: fn (device: VkDevice, pSignalInfo: *VkSemaphoreSignalInfo) VkResult #extern

File: vulkan.bl

vkGetBufferDeviceAddress

vkGetBufferDeviceAddress :: fn (device: VkDevice, pInfo: *VkBufferDeviceAddressInfo) VkDeviceAddress #extern

File: vulkan.bl

vkGetBufferOpaqueCaptureAddress

vkGetBufferOpaqueCaptureAddress :: fn (device: VkDevice, pInfo: *VkBufferDeviceAddressInfo) u64 #extern

File: vulkan.bl

vkGetDeviceMemoryOpaqueCaptureAddress

vkGetDeviceMemoryOpaqueCaptureAddress :: fn (device: VkDevice, pInfo: *VkDeviceMemoryOpaqueCaptureAddressInfo) u64 #extern

File: vulkan.bl

VkFlags64

VkFlags64 :: u64

File: vulkan.bl

VkPipelineCreationFeedbackFlagBits

VkPipelineCreationFeedbackFlagBits :: enum u32 {
    VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 1;
    VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 2;
    VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 4;
    VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 1;
    VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 2;
    VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 4;
    VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkPipelineCreationFeedbackFlags

VkPipelineCreationFeedbackFlags :: VkFlags

File: vulkan.bl

VkToolPurposeFlagBits

VkToolPurposeFlagBits :: enum u32 {
    VK_TOOL_PURPOSE_VALIDATION_BIT = 1;
    VK_TOOL_PURPOSE_PROFILING_BIT = 2;
    VK_TOOL_PURPOSE_TRACING_BIT = 4;
    VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 8;
    VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 16;
    VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 32;
    VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 64;
    VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = 1;
    VK_TOOL_PURPOSE_PROFILING_BIT_EXT = 2;
    VK_TOOL_PURPOSE_TRACING_BIT_EXT = 4;
    VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = 8;
    VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = 16;
    VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkToolPurposeFlags

VkToolPurposeFlags :: VkFlags

File: vulkan.bl

VkPrivateDataSlotCreateFlags

VkPrivateDataSlotCreateFlags :: VkFlags

File: vulkan.bl

VkPipelineStageFlags2

VkPipelineStageFlags2 :: VkFlags64

File: vulkan.bl

VkPipelineStageFlagBits2

VkPipelineStageFlagBits2 :: VkFlags64

File: vulkan.bl

VK_PIPELINE_STAGE_2_NONE

VK_PIPELINE_STAGE_2_NONE : VkPipelineStageFlagBits2 : 0

File: vulkan.bl

VK_PIPELINE_STAGE_2_NONE_KHR

VK_PIPELINE_STAGE_2_NONE_KHR : VkPipelineStageFlagBits2 : 0

File: vulkan.bl

VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT

VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT : VkPipelineStageFlagBits2 : 1

File: vulkan.bl

VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR

VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR : VkPipelineStageFlagBits2 : 1

File: vulkan.bl

VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT

VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT : VkPipelineStageFlagBits2 : 2

File: vulkan.bl

VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR

VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR : VkPipelineStageFlagBits2 : 2

File: vulkan.bl

VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT

VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT : VkPipelineStageFlagBits2 : 4

File: vulkan.bl

VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR

VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR : VkPipelineStageFlagBits2 : 4

File: vulkan.bl

VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT

VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT : VkPipelineStageFlagBits2 : 8

File: vulkan.bl

VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR

VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR : VkPipelineStageFlagBits2 : 8

File: vulkan.bl

VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT

VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT : VkPipelineStageFlagBits2 : 16

File: vulkan.bl

VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR

VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR : VkPipelineStageFlagBits2 : 16

File: vulkan.bl

VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT

VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT : VkPipelineStageFlagBits2 : 32

File: vulkan.bl

VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR

VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR : VkPipelineStageFlagBits2 : 32

File: vulkan.bl

VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT

VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT : VkPipelineStageFlagBits2 : 64

File: vulkan.bl

VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR

VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR : VkPipelineStageFlagBits2 : 64

File: vulkan.bl

VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT

VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT : VkPipelineStageFlagBits2 : 128

File: vulkan.bl

VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR

VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR : VkPipelineStageFlagBits2 : 128

File: vulkan.bl

VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT

VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT : VkPipelineStageFlagBits2 : 256

File: vulkan.bl

VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR

VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR : VkPipelineStageFlagBits2 : 256

File: vulkan.bl

VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT

VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT : VkPipelineStageFlagBits2 : 512

File: vulkan.bl

VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR

VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR : VkPipelineStageFlagBits2 : 512

File: vulkan.bl

VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT

VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT : VkPipelineStageFlagBits2 : 1024

File: vulkan.bl

VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR

VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR : VkPipelineStageFlagBits2 : 1024

File: vulkan.bl

VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT

VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT : VkPipelineStageFlagBits2 : 2048

File: vulkan.bl

VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR

VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR : VkPipelineStageFlagBits2 : 2048

File: vulkan.bl

VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT

VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT : VkPipelineStageFlagBits2 : 4096

File: vulkan.bl

VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR

VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR : VkPipelineStageFlagBits2 : 4096

File: vulkan.bl

VK_PIPELINE_STAGE_2_TRANSFER_BIT

VK_PIPELINE_STAGE_2_TRANSFER_BIT : VkPipelineStageFlagBits2 : 4096

File: vulkan.bl

VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR

VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR : VkPipelineStageFlagBits2 : 4096

File: vulkan.bl

VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT

VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT : VkPipelineStageFlagBits2 : 8192

File: vulkan.bl

VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR

VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR : VkPipelineStageFlagBits2 : 8192

File: vulkan.bl

VK_PIPELINE_STAGE_2_HOST_BIT

VK_PIPELINE_STAGE_2_HOST_BIT : VkPipelineStageFlagBits2 : 16384

File: vulkan.bl

VK_PIPELINE_STAGE_2_HOST_BIT_KHR

VK_PIPELINE_STAGE_2_HOST_BIT_KHR : VkPipelineStageFlagBits2 : 16384

File: vulkan.bl

VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT

VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT : VkPipelineStageFlagBits2 : 32768

File: vulkan.bl

VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR

VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR : VkPipelineStageFlagBits2 : 32768

File: vulkan.bl

VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT

VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT : VkPipelineStageFlagBits2 : 65536

File: vulkan.bl

VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR

VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR : VkPipelineStageFlagBits2 : 65536

File: vulkan.bl

VK_PIPELINE_STAGE_2_COPY_BIT

VK_PIPELINE_STAGE_2_COPY_BIT : VkPipelineStageFlagBits2 : 4294967296

File: vulkan.bl

VK_PIPELINE_STAGE_2_COPY_BIT_KHR

VK_PIPELINE_STAGE_2_COPY_BIT_KHR : VkPipelineStageFlagBits2 : 4294967296

File: vulkan.bl

VK_PIPELINE_STAGE_2_RESOLVE_BIT

VK_PIPELINE_STAGE_2_RESOLVE_BIT : VkPipelineStageFlagBits2 : 8589934592

File: vulkan.bl

VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR

VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR : VkPipelineStageFlagBits2 : 8589934592

File: vulkan.bl

VK_PIPELINE_STAGE_2_BLIT_BIT

VK_PIPELINE_STAGE_2_BLIT_BIT : VkPipelineStageFlagBits2 : 17179869184

File: vulkan.bl

VK_PIPELINE_STAGE_2_BLIT_BIT_KHR

VK_PIPELINE_STAGE_2_BLIT_BIT_KHR : VkPipelineStageFlagBits2 : 17179869184

File: vulkan.bl

VK_PIPELINE_STAGE_2_CLEAR_BIT

VK_PIPELINE_STAGE_2_CLEAR_BIT : VkPipelineStageFlagBits2 : 34359738368

File: vulkan.bl

VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR

VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR : VkPipelineStageFlagBits2 : 34359738368

File: vulkan.bl

VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT

VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT : VkPipelineStageFlagBits2 : 68719476736

File: vulkan.bl

VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR

VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR : VkPipelineStageFlagBits2 : 68719476736

File: vulkan.bl

VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT

VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT : VkPipelineStageFlagBits2 : 137438953472

File: vulkan.bl

VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR

VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR : VkPipelineStageFlagBits2 : 137438953472

File: vulkan.bl

VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT

VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT : VkPipelineStageFlagBits2 : 274877906944

File: vulkan.bl

VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR

VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR : VkPipelineStageFlagBits2 : 274877906944

File: vulkan.bl

VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR

VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR : VkPipelineStageFlagBits2 : 67108864

File: vulkan.bl

VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR

VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR : VkPipelineStageFlagBits2 : 134217728

File: vulkan.bl

VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT

VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT : VkPipelineStageFlagBits2 : 16777216

File: vulkan.bl

VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT

VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT : VkPipelineStageFlagBits2 : 262144

File: vulkan.bl

VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV

VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV : VkPipelineStageFlagBits2 : 131072

File: vulkan.bl

VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR

VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR : VkPipelineStageFlagBits2 : 4194304

File: vulkan.bl

VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV

VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV : VkPipelineStageFlagBits2 : 4194304

File: vulkan.bl

VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR

VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR : VkPipelineStageFlagBits2 : 33554432

File: vulkan.bl

VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR

VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR : VkPipelineStageFlagBits2 : 2097152

File: vulkan.bl

VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV

VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV : VkPipelineStageFlagBits2 : 2097152

File: vulkan.bl

VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV

VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV : VkPipelineStageFlagBits2 : 33554432

File: vulkan.bl

VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT

VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT : VkPipelineStageFlagBits2 : 8388608

File: vulkan.bl

VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV

VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV : VkPipelineStageFlagBits2 : 524288

File: vulkan.bl

VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV

VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV : VkPipelineStageFlagBits2 : 1048576

File: vulkan.bl

VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT

VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT : VkPipelineStageFlagBits2 : 524288

File: vulkan.bl

VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT

VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT : VkPipelineStageFlagBits2 : 1048576

File: vulkan.bl

VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI

VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI : VkPipelineStageFlagBits2 : 549755813888

File: vulkan.bl

VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI

VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI : VkPipelineStageFlagBits2 : 549755813888

File: vulkan.bl

VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI

VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI : VkPipelineStageFlagBits2 : 1099511627776

File: vulkan.bl

VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR

VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR : VkPipelineStageFlagBits2 : 268435456

File: vulkan.bl

VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT

VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT : VkPipelineStageFlagBits2 : 1073741824

File: vulkan.bl

VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI

VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI : VkPipelineStageFlagBits2 : 2199023255552

File: vulkan.bl

VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV

VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV : VkPipelineStageFlagBits2 : 536870912

File: vulkan.bl

VkAccessFlags2

VkAccessFlags2 :: VkFlags64

File: vulkan.bl

VkAccessFlagBits2

VkAccessFlagBits2 :: VkFlags64

File: vulkan.bl

VK_ACCESS_2_NONE

VK_ACCESS_2_NONE : VkAccessFlagBits2 : 0

File: vulkan.bl

VK_ACCESS_2_NONE_KHR

VK_ACCESS_2_NONE_KHR : VkAccessFlagBits2 : 0

File: vulkan.bl

VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT

VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT : VkAccessFlagBits2 : 1

File: vulkan.bl

VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR

VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR : VkAccessFlagBits2 : 1

File: vulkan.bl

VK_ACCESS_2_INDEX_READ_BIT

VK_ACCESS_2_INDEX_READ_BIT : VkAccessFlagBits2 : 2

File: vulkan.bl

VK_ACCESS_2_INDEX_READ_BIT_KHR

VK_ACCESS_2_INDEX_READ_BIT_KHR : VkAccessFlagBits2 : 2

File: vulkan.bl

VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT

VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT : VkAccessFlagBits2 : 4

File: vulkan.bl

VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR

VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR : VkAccessFlagBits2 : 4

File: vulkan.bl

VK_ACCESS_2_UNIFORM_READ_BIT

VK_ACCESS_2_UNIFORM_READ_BIT : VkAccessFlagBits2 : 8

File: vulkan.bl

VK_ACCESS_2_UNIFORM_READ_BIT_KHR

VK_ACCESS_2_UNIFORM_READ_BIT_KHR : VkAccessFlagBits2 : 8

File: vulkan.bl

VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT

VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT : VkAccessFlagBits2 : 16

File: vulkan.bl

VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR

VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR : VkAccessFlagBits2 : 16

File: vulkan.bl

VK_ACCESS_2_SHADER_READ_BIT

VK_ACCESS_2_SHADER_READ_BIT : VkAccessFlagBits2 : 32

File: vulkan.bl

VK_ACCESS_2_SHADER_READ_BIT_KHR

VK_ACCESS_2_SHADER_READ_BIT_KHR : VkAccessFlagBits2 : 32

File: vulkan.bl

VK_ACCESS_2_SHADER_WRITE_BIT

VK_ACCESS_2_SHADER_WRITE_BIT : VkAccessFlagBits2 : 64

File: vulkan.bl

VK_ACCESS_2_SHADER_WRITE_BIT_KHR

VK_ACCESS_2_SHADER_WRITE_BIT_KHR : VkAccessFlagBits2 : 64

File: vulkan.bl

VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT

VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT : VkAccessFlagBits2 : 128

File: vulkan.bl

VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR

VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR : VkAccessFlagBits2 : 128

File: vulkan.bl

VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT

VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT : VkAccessFlagBits2 : 256

File: vulkan.bl

VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR

VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR : VkAccessFlagBits2 : 256

File: vulkan.bl

VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT

VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT : VkAccessFlagBits2 : 512

File: vulkan.bl

VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR

VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR : VkAccessFlagBits2 : 512

File: vulkan.bl

VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT

VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT : VkAccessFlagBits2 : 1024

File: vulkan.bl

VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR

VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR : VkAccessFlagBits2 : 1024

File: vulkan.bl

VK_ACCESS_2_TRANSFER_READ_BIT

VK_ACCESS_2_TRANSFER_READ_BIT : VkAccessFlagBits2 : 2048

File: vulkan.bl

VK_ACCESS_2_TRANSFER_READ_BIT_KHR

VK_ACCESS_2_TRANSFER_READ_BIT_KHR : VkAccessFlagBits2 : 2048

File: vulkan.bl

VK_ACCESS_2_TRANSFER_WRITE_BIT

VK_ACCESS_2_TRANSFER_WRITE_BIT : VkAccessFlagBits2 : 4096

File: vulkan.bl

VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR

VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR : VkAccessFlagBits2 : 4096

File: vulkan.bl

VK_ACCESS_2_HOST_READ_BIT

VK_ACCESS_2_HOST_READ_BIT : VkAccessFlagBits2 : 8192

File: vulkan.bl

VK_ACCESS_2_HOST_READ_BIT_KHR

VK_ACCESS_2_HOST_READ_BIT_KHR : VkAccessFlagBits2 : 8192

File: vulkan.bl

VK_ACCESS_2_HOST_WRITE_BIT

VK_ACCESS_2_HOST_WRITE_BIT : VkAccessFlagBits2 : 16384

File: vulkan.bl

VK_ACCESS_2_HOST_WRITE_BIT_KHR

VK_ACCESS_2_HOST_WRITE_BIT_KHR : VkAccessFlagBits2 : 16384

File: vulkan.bl

VK_ACCESS_2_MEMORY_READ_BIT

VK_ACCESS_2_MEMORY_READ_BIT : VkAccessFlagBits2 : 32768

File: vulkan.bl

VK_ACCESS_2_MEMORY_READ_BIT_KHR

VK_ACCESS_2_MEMORY_READ_BIT_KHR : VkAccessFlagBits2 : 32768

File: vulkan.bl

VK_ACCESS_2_MEMORY_WRITE_BIT

VK_ACCESS_2_MEMORY_WRITE_BIT : VkAccessFlagBits2 : 65536

File: vulkan.bl

VK_ACCESS_2_MEMORY_WRITE_BIT_KHR

VK_ACCESS_2_MEMORY_WRITE_BIT_KHR : VkAccessFlagBits2 : 65536

File: vulkan.bl

VK_ACCESS_2_SHADER_SAMPLED_READ_BIT

VK_ACCESS_2_SHADER_SAMPLED_READ_BIT : VkAccessFlagBits2 : 4294967296

File: vulkan.bl

VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR

VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR : VkAccessFlagBits2 : 4294967296

File: vulkan.bl

VK_ACCESS_2_SHADER_STORAGE_READ_BIT

VK_ACCESS_2_SHADER_STORAGE_READ_BIT : VkAccessFlagBits2 : 8589934592

File: vulkan.bl

VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR

VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR : VkAccessFlagBits2 : 8589934592

File: vulkan.bl

VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT

VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT : VkAccessFlagBits2 : 17179869184

File: vulkan.bl

VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR

VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR : VkAccessFlagBits2 : 17179869184

File: vulkan.bl

VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR

VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR : VkAccessFlagBits2 : 34359738368

File: vulkan.bl

VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR

VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR : VkAccessFlagBits2 : 68719476736

File: vulkan.bl

VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR

VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR : VkAccessFlagBits2 : 137438953472

File: vulkan.bl

VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR

VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR : VkAccessFlagBits2 : 274877906944

File: vulkan.bl

VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT

VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT : VkAccessFlagBits2 : 33554432

File: vulkan.bl

VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT

VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT : VkAccessFlagBits2 : 67108864

File: vulkan.bl

VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT

VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT : VkAccessFlagBits2 : 134217728

File: vulkan.bl

VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT

VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT : VkAccessFlagBits2 : 1048576

File: vulkan.bl

VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV

VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV : VkAccessFlagBits2 : 131072

File: vulkan.bl

VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV

VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV : VkAccessFlagBits2 : 262144

File: vulkan.bl

VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR

VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR : VkAccessFlagBits2 : 8388608

File: vulkan.bl

VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV

VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV : VkAccessFlagBits2 : 8388608

File: vulkan.bl

VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR

VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR : VkAccessFlagBits2 : 2097152

File: vulkan.bl

VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR

VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR : VkAccessFlagBits2 : 4194304

File: vulkan.bl

VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV

VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV : VkAccessFlagBits2 : 2097152

File: vulkan.bl

VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV

VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV : VkAccessFlagBits2 : 4194304

File: vulkan.bl

VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT

VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT : VkAccessFlagBits2 : 16777216

File: vulkan.bl

VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT

VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT : VkAccessFlagBits2 : 524288

File: vulkan.bl

VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT

VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT : VkAccessFlagBits2 : 2199023255552

File: vulkan.bl

VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI

VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI : VkAccessFlagBits2 : 549755813888

File: vulkan.bl

VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR

VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR : VkAccessFlagBits2 : 1099511627776

File: vulkan.bl

VK_ACCESS_2_MICROMAP_READ_BIT_EXT

VK_ACCESS_2_MICROMAP_READ_BIT_EXT : VkAccessFlagBits2 : 17592186044416

File: vulkan.bl

VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT

VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT : VkAccessFlagBits2 : 35184372088832

File: vulkan.bl

VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV

VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV : VkAccessFlagBits2 : 4398046511104

File: vulkan.bl

VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV

VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV : VkAccessFlagBits2 : 8796093022208

File: vulkan.bl

VkSubmitFlagBits

VkSubmitFlagBits :: enum u32 {
    VK_SUBMIT_PROTECTED_BIT = 1;
    VK_SUBMIT_PROTECTED_BIT_KHR = 1;
    VK_SUBMIT_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkSubmitFlags

VkSubmitFlags :: VkFlags

File: vulkan.bl

VkRenderingFlagBits

VkRenderingFlagBits :: enum u32 {
    VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 1;
    VK_RENDERING_SUSPENDING_BIT = 2;
    VK_RENDERING_RESUMING_BIT = 4;
    VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 8;
    VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 1;
    VK_RENDERING_SUSPENDING_BIT_KHR = 2;
    VK_RENDERING_RESUMING_BIT_KHR = 4;
    VK_RENDERING_FLAG_BITS_MAX_ENUM = 2147483647;
}

File: vulkan.bl

VkRenderingFlags

VkRenderingFlags :: VkFlags

File: vulkan.bl

VkFormatFeatureFlags2

VkFormatFeatureFlags2 :: VkFlags64

File: vulkan.bl

VkFormatFeatureFlagBits2

VkFormatFeatureFlagBits2 :: VkFlags64

File: vulkan.bl

VkPhysicalDeviceVulkan13Features

VkPhysicalDeviceVulkan13Features :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    robustImageAccess: VkBool32;
    inlineUniformBlock: VkBool32;
    descriptorBindingInlineUniformBlockUpdateAfterBind: VkBool32;
    pipelineCreationCacheControl: VkBool32;
    privateData: VkBool32;
    shaderDemoteToHelperInvocation: VkBool32;
    shaderTerminateInvocation: VkBool32;
    subgroupSizeControl: VkBool32;
    computeFullSubgroups: VkBool32;
    synchronization2: VkBool32;
    textureCompressionASTC_HDR: VkBool32;
    shaderZeroInitializeWorkgroupMemory: VkBool32;
    dynamicRendering: VkBool32;
    shaderIntegerDotProduct: VkBool32;
    maintenance4: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceVulkan13Properties

VkPhysicalDeviceVulkan13Properties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    minSubgroupSize: u32;
    maxSubgroupSize: u32;
    maxComputeWorkgroupSubgroups: u32;
    requiredSubgroupSizeStages: VkShaderStageFlags;
    maxInlineUniformBlockSize: u32;
    maxPerStageDescriptorInlineUniformBlocks: u32;
    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks: u32;
    maxDescriptorSetInlineUniformBlocks: u32;
    maxDescriptorSetUpdateAfterBindInlineUniformBlocks: u32;
    maxInlineUniformTotalSize: u32;
    integerDotProduct8BitUnsignedAccelerated: VkBool32;
    integerDotProduct8BitSignedAccelerated: VkBool32;
    integerDotProduct8BitMixedSignednessAccelerated: VkBool32;
    integerDotProduct4x8BitPackedUnsignedAccelerated: VkBool32;
    integerDotProduct4x8BitPackedSignedAccelerated: VkBool32;
    integerDotProduct4x8BitPackedMixedSignednessAccelerated: VkBool32;
    integerDotProduct16BitUnsignedAccelerated: VkBool32;
    integerDotProduct16BitSignedAccelerated: VkBool32;
    integerDotProduct16BitMixedSignednessAccelerated: VkBool32;
    integerDotProduct32BitUnsignedAccelerated: VkBool32;
    integerDotProduct32BitSignedAccelerated: VkBool32;
    integerDotProduct32BitMixedSignednessAccelerated: VkBool32;
    integerDotProduct64BitUnsignedAccelerated: VkBool32;
    integerDotProduct64BitSignedAccelerated: VkBool32;
    integerDotProduct64BitMixedSignednessAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating8BitUnsignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating8BitSignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating16BitUnsignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating16BitSignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating32BitUnsignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating32BitSignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating64BitUnsignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating64BitSignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated: VkBool32;
    storageTexelBufferOffsetAlignmentBytes: VkDeviceSize;
    storageTexelBufferOffsetSingleTexelAlignment: VkBool32;
    uniformTexelBufferOffsetAlignmentBytes: VkDeviceSize;
    uniformTexelBufferOffsetSingleTexelAlignment: VkBool32;
    maxBufferSize: VkDeviceSize;
}

File: vulkan.bl

VkPipelineCreationFeedback

VkPipelineCreationFeedback :: struct {
    flags: VkPipelineCreationFeedbackFlags;
    duration: u64;
}

File: vulkan.bl

VkPipelineCreationFeedbackCreateInfo

VkPipelineCreationFeedbackCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pPipelineCreationFeedback: *VkPipelineCreationFeedback;
    pipelineStageCreationFeedbackCount: u32;
    pPipelineStageCreationFeedbacks: *VkPipelineCreationFeedback;
}

File: vulkan.bl

VkPhysicalDeviceShaderTerminateInvocationFeatures

VkPhysicalDeviceShaderTerminateInvocationFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderTerminateInvocation: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceToolProperties

VkPhysicalDeviceToolProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    name: ;
    version: ;
    purposes: VkToolPurposeFlags;
    description: ;
    layer: ;
}

File: vulkan.bl

VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures

VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderDemoteToHelperInvocation: VkBool32;
}

File: vulkan.bl

VkPhysicalDevicePrivateDataFeatures

VkPhysicalDevicePrivateDataFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    privateData: VkBool32;
}

File: vulkan.bl

VkDevicePrivateDataCreateInfo

VkDevicePrivateDataCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    privateDataSlotRequestCount: u32;
}

File: vulkan.bl

VkPrivateDataSlotCreateInfo

VkPrivateDataSlotCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPrivateDataSlotCreateFlags;
}

File: vulkan.bl

VkPhysicalDevicePipelineCreationCacheControlFeatures

VkPhysicalDevicePipelineCreationCacheControlFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipelineCreationCacheControl: VkBool32;
}

File: vulkan.bl

VkMemoryBarrier2

VkMemoryBarrier2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcStageMask: VkPipelineStageFlags2;
    srcAccessMask: VkAccessFlags2;
    dstStageMask: VkPipelineStageFlags2;
    dstAccessMask: VkAccessFlags2;
}

File: vulkan.bl

VkBufferMemoryBarrier2

VkBufferMemoryBarrier2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcStageMask: VkPipelineStageFlags2;
    srcAccessMask: VkAccessFlags2;
    dstStageMask: VkPipelineStageFlags2;
    dstAccessMask: VkAccessFlags2;
    srcQueueFamilyIndex: u32;
    dstQueueFamilyIndex: u32;
    buffer: VkBuffer;
    offset: VkDeviceSize;
    size: VkDeviceSize;
}

File: vulkan.bl

VkImageMemoryBarrier2

VkImageMemoryBarrier2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcStageMask: VkPipelineStageFlags2;
    srcAccessMask: VkAccessFlags2;
    dstStageMask: VkPipelineStageFlags2;
    dstAccessMask: VkAccessFlags2;
    oldLayout: VkImageLayout;
    newLayout: VkImageLayout;
    srcQueueFamilyIndex: u32;
    dstQueueFamilyIndex: u32;
    image: VkImage;
    subresourceRange: VkImageSubresourceRange;
}

File: vulkan.bl

VkDependencyInfo

VkDependencyInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    dependencyFlags: VkDependencyFlags;
    memoryBarrierCount: u32;
    pMemoryBarriers: *VkMemoryBarrier2;
    bufferMemoryBarrierCount: u32;
    pBufferMemoryBarriers: *VkBufferMemoryBarrier2;
    imageMemoryBarrierCount: u32;
    pImageMemoryBarriers: *VkImageMemoryBarrier2;
}

File: vulkan.bl

VkSemaphoreSubmitInfo

VkSemaphoreSubmitInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    semaphore: VkSemaphore;
    value: u64;
    stageMask: VkPipelineStageFlags2;
    deviceIndex: u32;
}

File: vulkan.bl

VkCommandBufferSubmitInfo

VkCommandBufferSubmitInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    commandBuffer: VkCommandBuffer;
    deviceMask: u32;
}

File: vulkan.bl

VkSubmitInfo2

VkSubmitInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkSubmitFlags;
    waitSemaphoreInfoCount: u32;
    pWaitSemaphoreInfos: *VkSemaphoreSubmitInfo;
    commandBufferInfoCount: u32;
    pCommandBufferInfos: *VkCommandBufferSubmitInfo;
    signalSemaphoreInfoCount: u32;
    pSignalSemaphoreInfos: *VkSemaphoreSubmitInfo;
}

File: vulkan.bl

VkPhysicalDeviceSynchronization2Features

VkPhysicalDeviceSynchronization2Features :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    synchronization2: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderZeroInitializeWorkgroupMemory: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceImageRobustnessFeatures

VkPhysicalDeviceImageRobustnessFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    robustImageAccess: VkBool32;
}

File: vulkan.bl

VkBufferCopy2

VkBufferCopy2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcOffset: VkDeviceSize;
    dstOffset: VkDeviceSize;
    size: VkDeviceSize;
}

File: vulkan.bl

VkCopyBufferInfo2

VkCopyBufferInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcBuffer: VkBuffer;
    dstBuffer: VkBuffer;
    regionCount: u32;
    pRegions: *VkBufferCopy2;
}

File: vulkan.bl

VkImageCopy2

VkImageCopy2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcSubresource: VkImageSubresourceLayers;
    srcOffset: VkOffset3D;
    dstSubresource: VkImageSubresourceLayers;
    dstOffset: VkOffset3D;
    extent: VkExtent3D;
}

File: vulkan.bl

VkCopyImageInfo2

VkCopyImageInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcImage: VkImage;
    srcImageLayout: VkImageLayout;
    dstImage: VkImage;
    dstImageLayout: VkImageLayout;
    regionCount: u32;
    pRegions: *VkImageCopy2;
}

File: vulkan.bl

VkBufferImageCopy2

VkBufferImageCopy2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    bufferOffset: VkDeviceSize;
    bufferRowLength: u32;
    bufferImageHeight: u32;
    imageSubresource: VkImageSubresourceLayers;
    imageOffset: VkOffset3D;
    imageExtent: VkExtent3D;
}

File: vulkan.bl

VkCopyBufferToImageInfo2

VkCopyBufferToImageInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcBuffer: VkBuffer;
    dstImage: VkImage;
    dstImageLayout: VkImageLayout;
    regionCount: u32;
    pRegions: *VkBufferImageCopy2;
}

File: vulkan.bl

VkCopyImageToBufferInfo2

VkCopyImageToBufferInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcImage: VkImage;
    srcImageLayout: VkImageLayout;
    dstBuffer: VkBuffer;
    regionCount: u32;
    pRegions: *VkBufferImageCopy2;
}

File: vulkan.bl

VkImageBlit2

VkImageBlit2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcSubresource: VkImageSubresourceLayers;
    srcOffsets: ;
    dstSubresource: VkImageSubresourceLayers;
    dstOffsets: ;
}

File: vulkan.bl

VkBlitImageInfo2

VkBlitImageInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcImage: VkImage;
    srcImageLayout: VkImageLayout;
    dstImage: VkImage;
    dstImageLayout: VkImageLayout;
    regionCount: u32;
    pRegions: *VkImageBlit2;
    filter: VkFilter;
}

File: vulkan.bl

VkImageResolve2

VkImageResolve2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcSubresource: VkImageSubresourceLayers;
    srcOffset: VkOffset3D;
    dstSubresource: VkImageSubresourceLayers;
    dstOffset: VkOffset3D;
    extent: VkExtent3D;
}

File: vulkan.bl

VkResolveImageInfo2

VkResolveImageInfo2 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcImage: VkImage;
    srcImageLayout: VkImageLayout;
    dstImage: VkImage;
    dstImageLayout: VkImageLayout;
    regionCount: u32;
    pRegions: *VkImageResolve2;
}

File: vulkan.bl

VkPhysicalDeviceSubgroupSizeControlFeatures

VkPhysicalDeviceSubgroupSizeControlFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    subgroupSizeControl: VkBool32;
    computeFullSubgroups: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceSubgroupSizeControlProperties

VkPhysicalDeviceSubgroupSizeControlProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    minSubgroupSize: u32;
    maxSubgroupSize: u32;
    maxComputeWorkgroupSubgroups: u32;
    requiredSubgroupSizeStages: VkShaderStageFlags;
}

File: vulkan.bl

VkPipelineShaderStageRequiredSubgroupSizeCreateInfo

VkPipelineShaderStageRequiredSubgroupSizeCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    requiredSubgroupSize: u32;
}

File: vulkan.bl

VkPhysicalDeviceInlineUniformBlockFeatures

VkPhysicalDeviceInlineUniformBlockFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    inlineUniformBlock: VkBool32;
    descriptorBindingInlineUniformBlockUpdateAfterBind: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceInlineUniformBlockProperties

VkPhysicalDeviceInlineUniformBlockProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxInlineUniformBlockSize: u32;
    maxPerStageDescriptorInlineUniformBlocks: u32;
    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks: u32;
    maxDescriptorSetInlineUniformBlocks: u32;
    maxDescriptorSetUpdateAfterBindInlineUniformBlocks: u32;
}

File: vulkan.bl

VkWriteDescriptorSetInlineUniformBlock

VkWriteDescriptorSetInlineUniformBlock :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    dataSize: u32;
    pData: C.void_ptr;
}

File: vulkan.bl

VkDescriptorPoolInlineUniformBlockCreateInfo

VkDescriptorPoolInlineUniformBlockCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxInlineUniformBlockBindings: u32;
}

File: vulkan.bl

VkPhysicalDeviceTextureCompressionASTCHDRFeatures

VkPhysicalDeviceTextureCompressionASTCHDRFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    textureCompressionASTC_HDR: VkBool32;
}

File: vulkan.bl

VkRenderingAttachmentInfo

VkRenderingAttachmentInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageView: VkImageView;
    imageLayout: VkImageLayout;
    resolveMode: VkResolveModeFlagBits;
    resolveImageView: VkImageView;
    resolveImageLayout: VkImageLayout;
    loadOp: VkAttachmentLoadOp;
    storeOp: VkAttachmentStoreOp;
    clearValue: VkClearValue;
}

File: vulkan.bl

VkRenderingInfo

VkRenderingInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkRenderingFlags;
    renderArea: VkRect2D;
    layerCount: u32;
    viewMask: u32;
    colorAttachmentCount: u32;
    pColorAttachments: *VkRenderingAttachmentInfo;
    pDepthAttachment: *VkRenderingAttachmentInfo;
    pStencilAttachment: *VkRenderingAttachmentInfo;
}

File: vulkan.bl

VkPipelineRenderingCreateInfo

VkPipelineRenderingCreateInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    viewMask: u32;
    colorAttachmentCount: u32;
    pColorAttachmentFormats: *VkFormat;
    depthAttachmentFormat: VkFormat;
    stencilAttachmentFormat: VkFormat;
}

File: vulkan.bl

VkPhysicalDeviceDynamicRenderingFeatures

VkPhysicalDeviceDynamicRenderingFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    dynamicRendering: VkBool32;
}

File: vulkan.bl

VkCommandBufferInheritanceRenderingInfo

VkCommandBufferInheritanceRenderingInfo :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkRenderingFlags;
    viewMask: u32;
    colorAttachmentCount: u32;
    pColorAttachmentFormats: *VkFormat;
    depthAttachmentFormat: VkFormat;
    stencilAttachmentFormat: VkFormat;
    rasterizationSamples: VkSampleCountFlagBits;
}

File: vulkan.bl

VkPhysicalDeviceShaderIntegerDotProductFeatures

VkPhysicalDeviceShaderIntegerDotProductFeatures :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderIntegerDotProduct: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShaderIntegerDotProductProperties

VkPhysicalDeviceShaderIntegerDotProductProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    integerDotProduct8BitUnsignedAccelerated: VkBool32;
    integerDotProduct8BitSignedAccelerated: VkBool32;
    integerDotProduct8BitMixedSignednessAccelerated: VkBool32;
    integerDotProduct4x8BitPackedUnsignedAccelerated: VkBool32;
    integerDotProduct4x8BitPackedSignedAccelerated: VkBool32;
    integerDotProduct4x8BitPackedMixedSignednessAccelerated: VkBool32;
    integerDotProduct16BitUnsignedAccelerated: VkBool32;
    integerDotProduct16BitSignedAccelerated: VkBool32;
    integerDotProduct16BitMixedSignednessAccelerated: VkBool32;
    integerDotProduct32BitUnsignedAccelerated: VkBool32;
    integerDotProduct32BitSignedAccelerated: VkBool32;
    integerDotProduct32BitMixedSignednessAccelerated: VkBool32;
    integerDotProduct64BitUnsignedAccelerated: VkBool32;
    integerDotProduct64BitSignedAccelerated: VkBool32;
    integerDotProduct64BitMixedSignednessAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating8BitUnsignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating8BitSignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating16BitUnsignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating16BitSignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating32BitUnsignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating32BitSignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating64BitUnsignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating64BitSignedAccelerated: VkBool32;
    integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceTexelBufferAlignmentProperties

VkPhysicalDeviceTexelBufferAlignmentProperties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    storageTexelBufferOffsetAlignmentBytes: VkDeviceSize;
    storageTexelBufferOffsetSingleTexelAlignment: VkBool32;
    uniformTexelBufferOffsetAlignmentBytes: VkDeviceSize;
    uniformTexelBufferOffsetSingleTexelAlignment: VkBool32;
}

File: vulkan.bl

VkFormatProperties3

VkFormatProperties3 :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    linearTilingFeatures: VkFormatFeatureFlags2;
    optimalTilingFeatures: VkFormatFeatureFlags2;
    bufferFeatures: VkFormatFeatureFlags2;
}

File: vulkan.bl

VkPhysicalDeviceMaintenance4Features

VkPhysicalDeviceMaintenance4Features :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maintenance4: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceMaintenance4Properties

VkPhysicalDeviceMaintenance4Properties :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxBufferSize: VkDeviceSize;
}

File: vulkan.bl

VkDeviceBufferMemoryRequirements

VkDeviceBufferMemoryRequirements :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pCreateInfo: *VkBufferCreateInfo;
}

File: vulkan.bl

VkDeviceImageMemoryRequirements

VkDeviceImageMemoryRequirements :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pCreateInfo: *VkImageCreateInfo;
    planeAspect: VkImageAspectFlagBits;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceToolProperties

PFN_vkGetPhysicalDeviceToolProperties :: *fn (: VkPhysicalDevice, : *u32, : *VkPhysicalDeviceToolProperties) VkResult

File: vulkan.bl

PFN_vkCreatePrivateDataSlot

PFN_vkCreatePrivateDataSlot :: *fn (: VkDevice, : *VkPrivateDataSlotCreateInfo, : *VkAllocationCallbacks, : *VkPrivateDataSlot) VkResult

File: vulkan.bl

PFN_vkDestroyPrivateDataSlot

PFN_vkDestroyPrivateDataSlot :: *fn (: VkDevice, : VkPrivateDataSlot, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkSetPrivateData

PFN_vkSetPrivateData :: *fn (: VkDevice, : VkObjectType, : u64, : VkPrivateDataSlot, : u64) VkResult

File: vulkan.bl

PFN_vkGetPrivateData

PFN_vkGetPrivateData :: *fn (: VkDevice, : VkObjectType, : u64, : VkPrivateDataSlot, : *u64) 

File: vulkan.bl

PFN_vkCmdSetEvent2

PFN_vkCmdSetEvent2 :: *fn (: VkCommandBuffer, : VkEvent, : *VkDependencyInfo) 

File: vulkan.bl

PFN_vkCmdResetEvent2

PFN_vkCmdResetEvent2 :: *fn (: VkCommandBuffer, : VkEvent, : VkPipelineStageFlags2) 

File: vulkan.bl

PFN_vkCmdWaitEvents2

PFN_vkCmdWaitEvents2 :: *fn (: VkCommandBuffer, : u32, : *VkEvent, : *VkDependencyInfo) 

File: vulkan.bl

PFN_vkCmdPipelineBarrier2

PFN_vkCmdPipelineBarrier2 :: *fn (: VkCommandBuffer, : *VkDependencyInfo) 

File: vulkan.bl

PFN_vkCmdWriteTimestamp2

PFN_vkCmdWriteTimestamp2 :: *fn (: VkCommandBuffer, : VkPipelineStageFlags2, : VkQueryPool, : u32) 

File: vulkan.bl

PFN_vkQueueSubmit2

PFN_vkQueueSubmit2 :: *fn (: VkQueue, : u32, : *VkSubmitInfo2, : VkFence) VkResult

File: vulkan.bl

PFN_vkCmdCopyBuffer2

PFN_vkCmdCopyBuffer2 :: *fn (: VkCommandBuffer, : *VkCopyBufferInfo2) 

File: vulkan.bl

PFN_vkCmdCopyImage2

PFN_vkCmdCopyImage2 :: *fn (: VkCommandBuffer, : *VkCopyImageInfo2) 

File: vulkan.bl

PFN_vkCmdCopyBufferToImage2

PFN_vkCmdCopyBufferToImage2 :: *fn (: VkCommandBuffer, : *VkCopyBufferToImageInfo2) 

File: vulkan.bl

PFN_vkCmdCopyImageToBuffer2

PFN_vkCmdCopyImageToBuffer2 :: *fn (: VkCommandBuffer, : *VkCopyImageToBufferInfo2) 

File: vulkan.bl

PFN_vkCmdBlitImage2

PFN_vkCmdBlitImage2 :: *fn (: VkCommandBuffer, : *VkBlitImageInfo2) 

File: vulkan.bl

PFN_vkCmdResolveImage2

PFN_vkCmdResolveImage2 :: *fn (: VkCommandBuffer, : *VkResolveImageInfo2) 

File: vulkan.bl

PFN_vkCmdBeginRendering

PFN_vkCmdBeginRendering :: *fn (: VkCommandBuffer, : *VkRenderingInfo) 

File: vulkan.bl

PFN_vkCmdEndRendering

PFN_vkCmdEndRendering :: *fn (: VkCommandBuffer) 

File: vulkan.bl

PFN_vkCmdSetCullMode

PFN_vkCmdSetCullMode :: *fn (: VkCommandBuffer, : VkCullModeFlags) 

File: vulkan.bl

PFN_vkCmdSetFrontFace

PFN_vkCmdSetFrontFace :: *fn (: VkCommandBuffer, : VkFrontFace) 

File: vulkan.bl

PFN_vkCmdSetPrimitiveTopology

PFN_vkCmdSetPrimitiveTopology :: *fn (: VkCommandBuffer, : VkPrimitiveTopology) 

File: vulkan.bl

PFN_vkCmdSetViewportWithCount

PFN_vkCmdSetViewportWithCount :: *fn (: VkCommandBuffer, : u32, : *VkViewport) 

File: vulkan.bl

PFN_vkCmdSetScissorWithCount

PFN_vkCmdSetScissorWithCount :: *fn (: VkCommandBuffer, : u32, : *VkRect2D) 

File: vulkan.bl

PFN_vkCmdBindVertexBuffers2

PFN_vkCmdBindVertexBuffers2 :: *fn (: VkCommandBuffer, : u32, : u32, : *VkBuffer, : *VkDeviceSize, : *VkDeviceSize, : *VkDeviceSize) 

File: vulkan.bl

PFN_vkCmdSetDepthTestEnable

PFN_vkCmdSetDepthTestEnable :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetDepthWriteEnable

PFN_vkCmdSetDepthWriteEnable :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetDepthCompareOp

PFN_vkCmdSetDepthCompareOp :: *fn (: VkCommandBuffer, : VkCompareOp) 

File: vulkan.bl

PFN_vkCmdSetDepthBoundsTestEnable

PFN_vkCmdSetDepthBoundsTestEnable :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetStencilTestEnable

PFN_vkCmdSetStencilTestEnable :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetStencilOp

PFN_vkCmdSetStencilOp :: *fn (: VkCommandBuffer, : VkStencilFaceFlags, : VkStencilOp, : VkStencilOp, : VkStencilOp, : VkCompareOp) 

File: vulkan.bl

PFN_vkCmdSetRasterizerDiscardEnable

PFN_vkCmdSetRasterizerDiscardEnable :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetDepthBiasEnable

PFN_vkCmdSetDepthBiasEnable :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetPrimitiveRestartEnable

PFN_vkCmdSetPrimitiveRestartEnable :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkGetDeviceBufferMemoryRequirements

PFN_vkGetDeviceBufferMemoryRequirements :: *fn (: VkDevice, : *VkDeviceBufferMemoryRequirements, : *VkMemoryRequirements2) 

File: vulkan.bl

PFN_vkGetDeviceImageMemoryRequirements

PFN_vkGetDeviceImageMemoryRequirements :: *fn (: VkDevice, : *VkDeviceImageMemoryRequirements, : *VkMemoryRequirements2) 

File: vulkan.bl

PFN_vkGetDeviceImageSparseMemoryRequirements

PFN_vkGetDeviceImageSparseMemoryRequirements :: *fn (: VkDevice, : *VkDeviceImageMemoryRequirements, : *u32, : *VkSparseImageMemoryRequirements2) 

File: vulkan.bl

vkGetPhysicalDeviceToolProperties

vkGetPhysicalDeviceToolProperties :: fn (physicalDevice: VkPhysicalDevice, pToolCount: *u32, pToolProperties: *VkPhysicalDeviceToolProperties) VkResult #extern

File: vulkan.bl

vkCreatePrivateDataSlot

vkCreatePrivateDataSlot :: fn (device: VkDevice, pCreateInfo: *VkPrivateDataSlotCreateInfo, pAllocator: *VkAllocationCallbacks, pPrivateDataSlot: *VkPrivateDataSlot) VkResult #extern

File: vulkan.bl

vkDestroyPrivateDataSlot

vkDestroyPrivateDataSlot :: fn (device: VkDevice, privateDataSlot: VkPrivateDataSlot, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkSetPrivateData

vkSetPrivateData :: fn (device: VkDevice, objectType: VkObjectType, objectHandle: u64, privateDataSlot: VkPrivateDataSlot, data: u64) VkResult #extern

File: vulkan.bl

vkGetPrivateData

vkGetPrivateData :: fn (device: VkDevice, objectType: VkObjectType, objectHandle: u64, privateDataSlot: VkPrivateDataSlot, pData: *u64)  #extern

File: vulkan.bl

vkCmdSetEvent2

vkCmdSetEvent2 :: fn (commandBuffer: VkCommandBuffer, event: VkEvent, pDependencyInfo: *VkDependencyInfo)  #extern

File: vulkan.bl

vkCmdResetEvent2

vkCmdResetEvent2 :: fn (commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags2)  #extern

File: vulkan.bl

vkCmdWaitEvents2

vkCmdWaitEvents2 :: fn (commandBuffer: VkCommandBuffer, eventCount: u32, pEvents: *VkEvent, pDependencyInfos: *VkDependencyInfo)  #extern

File: vulkan.bl

vkCmdPipelineBarrier2

vkCmdPipelineBarrier2 :: fn (commandBuffer: VkCommandBuffer, pDependencyInfo: *VkDependencyInfo)  #extern

File: vulkan.bl

vkCmdWriteTimestamp2

vkCmdWriteTimestamp2 :: fn (commandBuffer: VkCommandBuffer, stage: VkPipelineStageFlags2, queryPool: VkQueryPool, query: u32)  #extern

File: vulkan.bl

vkQueueSubmit2

vkQueueSubmit2 :: fn (queue: VkQueue, submitCount: u32, pSubmits: *VkSubmitInfo2, fence: VkFence) VkResult #extern

File: vulkan.bl

vkCmdCopyBuffer2

vkCmdCopyBuffer2 :: fn (commandBuffer: VkCommandBuffer, pCopyBufferInfo: *VkCopyBufferInfo2)  #extern

File: vulkan.bl

vkCmdCopyImage2

vkCmdCopyImage2 :: fn (commandBuffer: VkCommandBuffer, pCopyImageInfo: *VkCopyImageInfo2)  #extern

File: vulkan.bl

vkCmdCopyBufferToImage2

vkCmdCopyBufferToImage2 :: fn (commandBuffer: VkCommandBuffer, pCopyBufferToImageInfo: *VkCopyBufferToImageInfo2)  #extern

File: vulkan.bl

vkCmdCopyImageToBuffer2

vkCmdCopyImageToBuffer2 :: fn (commandBuffer: VkCommandBuffer, pCopyImageToBufferInfo: *VkCopyImageToBufferInfo2)  #extern

File: vulkan.bl

vkCmdBlitImage2

vkCmdBlitImage2 :: fn (commandBuffer: VkCommandBuffer, pBlitImageInfo: *VkBlitImageInfo2)  #extern

File: vulkan.bl

vkCmdResolveImage2

vkCmdResolveImage2 :: fn (commandBuffer: VkCommandBuffer, pResolveImageInfo: *VkResolveImageInfo2)  #extern

File: vulkan.bl

vkCmdBeginRendering

vkCmdBeginRendering :: fn (commandBuffer: VkCommandBuffer, pRenderingInfo: *VkRenderingInfo)  #extern

File: vulkan.bl

vkCmdEndRendering

vkCmdEndRendering :: fn (commandBuffer: VkCommandBuffer)  #extern

File: vulkan.bl

vkCmdSetCullMode

vkCmdSetCullMode :: fn (commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags)  #extern

File: vulkan.bl

vkCmdSetFrontFace

vkCmdSetFrontFace :: fn (commandBuffer: VkCommandBuffer, frontFace: VkFrontFace)  #extern

File: vulkan.bl

vkCmdSetPrimitiveTopology

vkCmdSetPrimitiveTopology :: fn (commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology)  #extern

File: vulkan.bl

vkCmdSetViewportWithCount

vkCmdSetViewportWithCount :: fn (commandBuffer: VkCommandBuffer, viewportCount: u32, pViewports: *VkViewport)  #extern

File: vulkan.bl

vkCmdSetScissorWithCount

vkCmdSetScissorWithCount :: fn (commandBuffer: VkCommandBuffer, scissorCount: u32, pScissors: *VkRect2D)  #extern

File: vulkan.bl

vkCmdBindVertexBuffers2

vkCmdBindVertexBuffers2 :: fn (commandBuffer: VkCommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: *VkBuffer, pOffsets: *VkDeviceSize, pSizes: *VkDeviceSize, pStrides: *VkDeviceSize)  #extern

File: vulkan.bl

vkCmdSetDepthTestEnable

vkCmdSetDepthTestEnable :: fn (commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetDepthWriteEnable

vkCmdSetDepthWriteEnable :: fn (commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetDepthCompareOp

vkCmdSetDepthCompareOp :: fn (commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp)  #extern

File: vulkan.bl

vkCmdSetDepthBoundsTestEnable

vkCmdSetDepthBoundsTestEnable :: fn (commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetStencilTestEnable

vkCmdSetStencilTestEnable :: fn (commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetStencilOp

vkCmdSetStencilOp :: fn (commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, failOp: VkStencilOp, passOp: VkStencilOp, depthFailOp: VkStencilOp, compareOp: VkCompareOp)  #extern

File: vulkan.bl

vkCmdSetRasterizerDiscardEnable

vkCmdSetRasterizerDiscardEnable :: fn (commandBuffer: VkCommandBuffer, rasterizerDiscardEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetDepthBiasEnable

vkCmdSetDepthBiasEnable :: fn (commandBuffer: VkCommandBuffer, depthBiasEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetPrimitiveRestartEnable

vkCmdSetPrimitiveRestartEnable :: fn (commandBuffer: VkCommandBuffer, primitiveRestartEnable: VkBool32)  #extern

File: vulkan.bl

vkGetDeviceBufferMemoryRequirements

vkGetDeviceBufferMemoryRequirements :: fn (device: VkDevice, pInfo: *VkDeviceBufferMemoryRequirements, pMemoryRequirements: *VkMemoryRequirements2)  #extern

File: vulkan.bl

vkGetDeviceImageMemoryRequirements

vkGetDeviceImageMemoryRequirements :: fn (device: VkDevice, pInfo: *VkDeviceImageMemoryRequirements, pMemoryRequirements: *VkMemoryRequirements2)  #extern

File: vulkan.bl

vkGetDeviceImageSparseMemoryRequirements

vkGetDeviceImageSparseMemoryRequirements :: fn (device: VkDevice, pInfo: *VkDeviceImageMemoryRequirements, pSparseMemoryRequirementCount: *u32, pSparseMemoryRequirements: *VkSparseImageMemoryRequirements2)  #extern

File: vulkan.bl

VkPresentModeKHR

VkPresentModeKHR :: enum s32 {
    VK_PRESENT_MODE_IMMEDIATE_KHR = 0;
    VK_PRESENT_MODE_MAILBOX_KHR = 1;
    VK_PRESENT_MODE_FIFO_KHR = 2;
    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3;
    VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000;
    VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001;
    VK_PRESENT_MODE_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkColorSpaceKHR

VkColorSpaceKHR :: enum s32 {
    VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0;
    VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001;
    VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002;
    VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003;
    VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004;
    VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005;
    VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006;
    VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007;
    VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008;
    VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009;
    VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010;
    VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011;
    VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012;
    VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013;
    VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014;
    VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000;
    VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0;
    VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003;
    VK_COLOR_SPACE_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkSurfaceTransformFlagBitsKHR

VkSurfaceTransformFlagBitsKHR :: enum s32 {
    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 1;
    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 2;
    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 4;
    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 8;
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 16;
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 32;
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 64;
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 128;
    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 256;
    VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkCompositeAlphaFlagBitsKHR

VkCompositeAlphaFlagBitsKHR :: enum s32 {
    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 1;
    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 2;
    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 4;
    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 8;
    VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkCompositeAlphaFlagsKHR

VkCompositeAlphaFlagsKHR :: VkFlags

File: vulkan.bl

VkSurfaceTransformFlagsKHR

VkSurfaceTransformFlagsKHR :: VkFlags

File: vulkan.bl

VkSurfaceCapabilitiesKHR

VkSurfaceCapabilitiesKHR :: struct {
    minImageCount: u32;
    maxImageCount: u32;
    currentExtent: VkExtent2D;
    minImageExtent: VkExtent2D;
    maxImageExtent: VkExtent2D;
    maxImageArrayLayers: u32;
    supportedTransforms: VkSurfaceTransformFlagsKHR;
    currentTransform: VkSurfaceTransformFlagBitsKHR;
    supportedCompositeAlpha: VkCompositeAlphaFlagsKHR;
    supportedUsageFlags: VkImageUsageFlags;
}

File: vulkan.bl

VkSurfaceFormatKHR

VkSurfaceFormatKHR :: struct {
    format: VkFormat;
    colorSpace: VkColorSpaceKHR;
}

File: vulkan.bl

PFN_vkDestroySurfaceKHR

PFN_vkDestroySurfaceKHR :: *fn (: VkInstance, : VkSurfaceKHR, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceSurfaceSupportKHR

PFN_vkGetPhysicalDeviceSurfaceSupportKHR :: *fn (: VkPhysicalDevice, : u32, : VkSurfaceKHR, : *VkBool32) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR

PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR :: *fn (: VkPhysicalDevice, : VkSurfaceKHR, : *VkSurfaceCapabilitiesKHR) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceSurfaceFormatsKHR

PFN_vkGetPhysicalDeviceSurfaceFormatsKHR :: *fn (: VkPhysicalDevice, : VkSurfaceKHR, : *u32, : *VkSurfaceFormatKHR) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceSurfacePresentModesKHR

PFN_vkGetPhysicalDeviceSurfacePresentModesKHR :: *fn (: VkPhysicalDevice, : VkSurfaceKHR, : *u32, : *VkPresentModeKHR) VkResult

File: vulkan.bl

vkDestroySurfaceKHR

vkDestroySurfaceKHR :: fn (instance: VkInstance, surface: VkSurfaceKHR, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkGetPhysicalDeviceSurfaceSupportKHR

vkGetPhysicalDeviceSurfaceSupportKHR :: fn (physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, surface: VkSurfaceKHR, pSupported: *VkBool32) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceSurfaceCapabilitiesKHR

vkGetPhysicalDeviceSurfaceCapabilitiesKHR :: fn (physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: *VkSurfaceCapabilitiesKHR) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceSurfaceFormatsKHR

vkGetPhysicalDeviceSurfaceFormatsKHR :: fn (physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceFormatCount: *u32, pSurfaceFormats: *VkSurfaceFormatKHR) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceSurfacePresentModesKHR

vkGetPhysicalDeviceSurfacePresentModesKHR :: fn (physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pPresentModeCount: *u32, pPresentModes: *VkPresentModeKHR) VkResult #extern

File: vulkan.bl

VkSwapchainCreateFlagBitsKHR

VkSwapchainCreateFlagBitsKHR :: enum s32 {
    VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1;
    VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2;
    VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4;
    VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkSwapchainCreateFlagsKHR

VkSwapchainCreateFlagsKHR :: VkFlags

File: vulkan.bl

VkDeviceGroupPresentModeFlagBitsKHR

VkDeviceGroupPresentModeFlagBitsKHR :: enum s32 {
    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 1;
    VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 2;
    VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 4;
    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 8;
    VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkDeviceGroupPresentModeFlagsKHR

VkDeviceGroupPresentModeFlagsKHR :: VkFlags

File: vulkan.bl

VkSwapchainCreateInfoKHR

VkSwapchainCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkSwapchainCreateFlagsKHR;
    surface: VkSurfaceKHR;
    minImageCount: u32;
    imageFormat: VkFormat;
    imageColorSpace: VkColorSpaceKHR;
    imageExtent: VkExtent2D;
    imageArrayLayers: u32;
    imageUsage: VkImageUsageFlags;
    imageSharingMode: VkSharingMode;
    queueFamilyIndexCount: u32;
    pQueueFamilyIndices: *u32;
    preTransform: VkSurfaceTransformFlagBitsKHR;
    compositeAlpha: VkCompositeAlphaFlagBitsKHR;
    presentMode: VkPresentModeKHR;
    clipped: VkBool32;
    oldSwapchain: VkSwapchainKHR;
}

File: vulkan.bl

VkPresentInfoKHR

VkPresentInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    waitSemaphoreCount: u32;
    pWaitSemaphores: *VkSemaphore;
    swapchainCount: u32;
    pSwapchains: *VkSwapchainKHR;
    pImageIndices: *u32;
    pResults: *VkResult;
}

File: vulkan.bl

VkImageSwapchainCreateInfoKHR

VkImageSwapchainCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    swapchain: VkSwapchainKHR;
}

File: vulkan.bl

VkBindImageMemorySwapchainInfoKHR

VkBindImageMemorySwapchainInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    swapchain: VkSwapchainKHR;
    imageIndex: u32;
}

File: vulkan.bl

VkAcquireNextImageInfoKHR

VkAcquireNextImageInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    swapchain: VkSwapchainKHR;
    timeout: u64;
    semaphore: VkSemaphore;
    fence: VkFence;
    deviceMask: u32;
}

File: vulkan.bl

VkDeviceGroupPresentCapabilitiesKHR

VkDeviceGroupPresentCapabilitiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    presentMask: ;
    modes: VkDeviceGroupPresentModeFlagsKHR;
}

File: vulkan.bl

VkDeviceGroupPresentInfoKHR

VkDeviceGroupPresentInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    swapchainCount: u32;
    pDeviceMasks: *u32;
    mode: VkDeviceGroupPresentModeFlagBitsKHR;
}

File: vulkan.bl

VkDeviceGroupSwapchainCreateInfoKHR

VkDeviceGroupSwapchainCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    modes: VkDeviceGroupPresentModeFlagsKHR;
}

File: vulkan.bl

PFN_vkCreateSwapchainKHR

PFN_vkCreateSwapchainKHR :: *fn (: VkDevice, : *VkSwapchainCreateInfoKHR, : *VkAllocationCallbacks, : *VkSwapchainKHR) VkResult

File: vulkan.bl

PFN_vkDestroySwapchainKHR

PFN_vkDestroySwapchainKHR :: *fn (: VkDevice, : VkSwapchainKHR, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkGetSwapchainImagesKHR

PFN_vkGetSwapchainImagesKHR :: *fn (: VkDevice, : VkSwapchainKHR, : *u32, : *VkImage) VkResult

File: vulkan.bl

PFN_vkAcquireNextImageKHR

PFN_vkAcquireNextImageKHR :: *fn (: VkDevice, : VkSwapchainKHR, : u64, : VkSemaphore, : VkFence, : *u32) VkResult

File: vulkan.bl

PFN_vkQueuePresentKHR

PFN_vkQueuePresentKHR :: *fn (: VkQueue, : *VkPresentInfoKHR) VkResult

File: vulkan.bl

PFN_vkGetDeviceGroupPresentCapabilitiesKHR

PFN_vkGetDeviceGroupPresentCapabilitiesKHR :: *fn (: VkDevice, : *VkDeviceGroupPresentCapabilitiesKHR) VkResult

File: vulkan.bl

PFN_vkGetDeviceGroupSurfacePresentModesKHR

PFN_vkGetDeviceGroupSurfacePresentModesKHR :: *fn (: VkDevice, : VkSurfaceKHR, : *VkDeviceGroupPresentModeFlagsKHR) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDevicePresentRectanglesKHR

PFN_vkGetPhysicalDevicePresentRectanglesKHR :: *fn (: VkPhysicalDevice, : VkSurfaceKHR, : *u32, : *VkRect2D) VkResult

File: vulkan.bl

PFN_vkAcquireNextImage2KHR

PFN_vkAcquireNextImage2KHR :: *fn (: VkDevice, : *VkAcquireNextImageInfoKHR, : *u32) VkResult

File: vulkan.bl

vkCreateSwapchainKHR

vkCreateSwapchainKHR :: fn (device: VkDevice, pCreateInfo: *VkSwapchainCreateInfoKHR, pAllocator: *VkAllocationCallbacks, pSwapchain: *VkSwapchainKHR) VkResult #extern

File: vulkan.bl

vkDestroySwapchainKHR

vkDestroySwapchainKHR :: fn (device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkGetSwapchainImagesKHR

vkGetSwapchainImagesKHR :: fn (device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: *u32, pSwapchainImages: *VkImage) VkResult #extern

File: vulkan.bl

vkAcquireNextImageKHR

vkAcquireNextImageKHR :: fn (device: VkDevice, swapchain: VkSwapchainKHR, timeout: u64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: *u32) VkResult #extern

File: vulkan.bl

vkQueuePresentKHR

vkQueuePresentKHR :: fn (queue: VkQueue, pPresentInfo: *VkPresentInfoKHR) VkResult #extern

File: vulkan.bl

vkGetDeviceGroupPresentCapabilitiesKHR

vkGetDeviceGroupPresentCapabilitiesKHR :: fn (device: VkDevice, pDeviceGroupPresentCapabilities: *VkDeviceGroupPresentCapabilitiesKHR) VkResult #extern

File: vulkan.bl

vkGetDeviceGroupSurfacePresentModesKHR

vkGetDeviceGroupSurfacePresentModesKHR :: fn (device: VkDevice, surface: VkSurfaceKHR, pModes: *VkDeviceGroupPresentModeFlagsKHR) VkResult #extern

File: vulkan.bl

vkGetPhysicalDevicePresentRectanglesKHR

vkGetPhysicalDevicePresentRectanglesKHR :: fn (physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: *u32, pRects: *VkRect2D) VkResult #extern

File: vulkan.bl

vkAcquireNextImage2KHR

vkAcquireNextImage2KHR :: fn (device: VkDevice, pAcquireInfo: *VkAcquireNextImageInfoKHR, pImageIndex: *u32) VkResult #extern

File: vulkan.bl

VkDisplayModeCreateFlagsKHR

VkDisplayModeCreateFlagsKHR :: VkFlags

File: vulkan.bl

VkDisplayPlaneAlphaFlagBitsKHR

VkDisplayPlaneAlphaFlagBitsKHR :: enum s32 {
    VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 1;
    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 2;
    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 4;
    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 8;
    VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkDisplayPlaneAlphaFlagsKHR

VkDisplayPlaneAlphaFlagsKHR :: VkFlags

File: vulkan.bl

VkDisplaySurfaceCreateFlagsKHR

VkDisplaySurfaceCreateFlagsKHR :: VkFlags

File: vulkan.bl

VkDisplayModeParametersKHR

VkDisplayModeParametersKHR :: struct {
    visibleRegion: VkExtent2D;
    refreshRate: u32;
}

File: vulkan.bl

VkDisplayModeCreateInfoKHR

VkDisplayModeCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDisplayModeCreateFlagsKHR;
    parameters: VkDisplayModeParametersKHR;
}

File: vulkan.bl

VkDisplayModePropertiesKHR

VkDisplayModePropertiesKHR :: struct {
    displayMode: VkDisplayModeKHR;
    parameters: VkDisplayModeParametersKHR;
}

File: vulkan.bl

VkDisplayPlaneCapabilitiesKHR

VkDisplayPlaneCapabilitiesKHR :: struct {
    supportedAlpha: VkDisplayPlaneAlphaFlagsKHR;
    minSrcPosition: VkOffset2D;
    maxSrcPosition: VkOffset2D;
    minSrcExtent: VkExtent2D;
    maxSrcExtent: VkExtent2D;
    minDstPosition: VkOffset2D;
    maxDstPosition: VkOffset2D;
    minDstExtent: VkExtent2D;
    maxDstExtent: VkExtent2D;
}

File: vulkan.bl

VkDisplayPlanePropertiesKHR

VkDisplayPlanePropertiesKHR :: struct {
    currentDisplay: VkDisplayKHR;
    currentStackIndex: u32;
}

File: vulkan.bl

VkDisplayPropertiesKHR

VkDisplayPropertiesKHR :: struct {
    display: VkDisplayKHR;
    displayName: *C.char;
    physicalDimensions: VkExtent2D;
    physicalResolution: VkExtent2D;
    supportedTransforms: VkSurfaceTransformFlagsKHR;
    planeReorderPossible: VkBool32;
    persistentContent: VkBool32;
}

File: vulkan.bl

VkDisplaySurfaceCreateInfoKHR

VkDisplaySurfaceCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDisplaySurfaceCreateFlagsKHR;
    displayMode: VkDisplayModeKHR;
    planeIndex: u32;
    planeStackIndex: u32;
    transform: VkSurfaceTransformFlagBitsKHR;
    globalAlpha: f32;
    alphaMode: VkDisplayPlaneAlphaFlagBitsKHR;
    imageExtent: VkExtent2D;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceDisplayPropertiesKHR

PFN_vkGetPhysicalDeviceDisplayPropertiesKHR :: *fn (: VkPhysicalDevice, : *u32, : *VkDisplayPropertiesKHR) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR

PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR :: *fn (: VkPhysicalDevice, : *u32, : *VkDisplayPlanePropertiesKHR) VkResult

File: vulkan.bl

PFN_vkGetDisplayPlaneSupportedDisplaysKHR

PFN_vkGetDisplayPlaneSupportedDisplaysKHR :: *fn (: VkPhysicalDevice, : u32, : *u32, : *VkDisplayKHR) VkResult

File: vulkan.bl

PFN_vkGetDisplayModePropertiesKHR

PFN_vkGetDisplayModePropertiesKHR :: *fn (: VkPhysicalDevice, : VkDisplayKHR, : *u32, : *VkDisplayModePropertiesKHR) VkResult

File: vulkan.bl

PFN_vkCreateDisplayModeKHR

PFN_vkCreateDisplayModeKHR :: *fn (: VkPhysicalDevice, : VkDisplayKHR, : *VkDisplayModeCreateInfoKHR, : *VkAllocationCallbacks, : *VkDisplayModeKHR) VkResult

File: vulkan.bl

PFN_vkGetDisplayPlaneCapabilitiesKHR

PFN_vkGetDisplayPlaneCapabilitiesKHR :: *fn (: VkPhysicalDevice, : VkDisplayModeKHR, : u32, : *VkDisplayPlaneCapabilitiesKHR) VkResult

File: vulkan.bl

PFN_vkCreateDisplayPlaneSurfaceKHR

PFN_vkCreateDisplayPlaneSurfaceKHR :: *fn (: VkInstance, : *VkDisplaySurfaceCreateInfoKHR, : *VkAllocationCallbacks, : *VkSurfaceKHR) VkResult

File: vulkan.bl

vkGetPhysicalDeviceDisplayPropertiesKHR

vkGetPhysicalDeviceDisplayPropertiesKHR :: fn (physicalDevice: VkPhysicalDevice, pPropertyCount: *u32, pProperties: *VkDisplayPropertiesKHR) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceDisplayPlanePropertiesKHR

vkGetPhysicalDeviceDisplayPlanePropertiesKHR :: fn (physicalDevice: VkPhysicalDevice, pPropertyCount: *u32, pProperties: *VkDisplayPlanePropertiesKHR) VkResult #extern

File: vulkan.bl

vkGetDisplayPlaneSupportedDisplaysKHR

vkGetDisplayPlaneSupportedDisplaysKHR :: fn (physicalDevice: VkPhysicalDevice, planeIndex: u32, pDisplayCount: *u32, pDisplays: *VkDisplayKHR) VkResult #extern

File: vulkan.bl

vkGetDisplayModePropertiesKHR

vkGetDisplayModePropertiesKHR :: fn (physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: *u32, pProperties: *VkDisplayModePropertiesKHR) VkResult #extern

File: vulkan.bl

vkCreateDisplayModeKHR

vkCreateDisplayModeKHR :: fn (physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: *VkDisplayModeCreateInfoKHR, pAllocator: *VkAllocationCallbacks, pMode: *VkDisplayModeKHR) VkResult #extern

File: vulkan.bl

vkGetDisplayPlaneCapabilitiesKHR

vkGetDisplayPlaneCapabilitiesKHR :: fn (physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: u32, pCapabilities: *VkDisplayPlaneCapabilitiesKHR) VkResult #extern

File: vulkan.bl

vkCreateDisplayPlaneSurfaceKHR

vkCreateDisplayPlaneSurfaceKHR :: fn (instance: VkInstance, pCreateInfo: *VkDisplaySurfaceCreateInfoKHR, pAllocator: *VkAllocationCallbacks, pSurface: *VkSurfaceKHR) VkResult #extern

File: vulkan.bl

VkDisplayPresentInfoKHR

VkDisplayPresentInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcRect: VkRect2D;
    dstRect: VkRect2D;
    persistent: VkBool32;
}

File: vulkan.bl

PFN_vkCreateSharedSwapchainsKHR

PFN_vkCreateSharedSwapchainsKHR :: *fn (: VkDevice, : u32, : *VkSwapchainCreateInfoKHR, : *VkAllocationCallbacks, : *VkSwapchainKHR) VkResult

File: vulkan.bl

vkCreateSharedSwapchainsKHR

vkCreateSharedSwapchainsKHR :: fn (device: VkDevice, swapchainCount: u32, pCreateInfos: *VkSwapchainCreateInfoKHR, pAllocator: *VkAllocationCallbacks, pSwapchains: *VkSwapchainKHR) VkResult #extern

File: vulkan.bl

VkRenderingFlagsKHR

VkRenderingFlagsKHR :: VkRenderingFlags

File: vulkan.bl

VkRenderingFlagBitsKHR

VkRenderingFlagBitsKHR :: VkRenderingFlagBits

File: vulkan.bl

VkRenderingInfoKHR

VkRenderingInfoKHR :: VkRenderingInfo

File: vulkan.bl

VkRenderingAttachmentInfoKHR

VkRenderingAttachmentInfoKHR :: VkRenderingAttachmentInfo

File: vulkan.bl

VkPipelineRenderingCreateInfoKHR

VkPipelineRenderingCreateInfoKHR :: VkPipelineRenderingCreateInfo

File: vulkan.bl

VkPhysicalDeviceDynamicRenderingFeaturesKHR

VkPhysicalDeviceDynamicRenderingFeaturesKHR :: VkPhysicalDeviceDynamicRenderingFeatures

File: vulkan.bl

VkCommandBufferInheritanceRenderingInfoKHR

VkCommandBufferInheritanceRenderingInfoKHR :: VkCommandBufferInheritanceRenderingInfo

File: vulkan.bl

VkRenderingFragmentShadingRateAttachmentInfoKHR

VkRenderingFragmentShadingRateAttachmentInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageView: VkImageView;
    imageLayout: VkImageLayout;
    shadingRateAttachmentTexelSize: VkExtent2D;
}

File: vulkan.bl

VkRenderingFragmentDensityMapAttachmentInfoEXT

VkRenderingFragmentDensityMapAttachmentInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageView: VkImageView;
    imageLayout: VkImageLayout;
}

File: vulkan.bl

VkAttachmentSampleCountInfoAMD

VkAttachmentSampleCountInfoAMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    colorAttachmentCount: u32;
    pColorAttachmentSamples: *VkSampleCountFlagBits;
    depthStencilAttachmentSamples: VkSampleCountFlagBits;
}

File: vulkan.bl

VkAttachmentSampleCountInfoNV

VkAttachmentSampleCountInfoNV :: VkAttachmentSampleCountInfoAMD

File: vulkan.bl

VkMultiviewPerViewAttributesInfoNVX

VkMultiviewPerViewAttributesInfoNVX :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    perViewAttributes: VkBool32;
    perViewAttributesPositionXOnly: VkBool32;
}

File: vulkan.bl

PFN_vkCmdBeginRenderingKHR

PFN_vkCmdBeginRenderingKHR :: *fn (: VkCommandBuffer, : *VkRenderingInfo) 

File: vulkan.bl

PFN_vkCmdEndRenderingKHR

PFN_vkCmdEndRenderingKHR :: *fn (: VkCommandBuffer) 

File: vulkan.bl

vkCmdBeginRenderingKHR

vkCmdBeginRenderingKHR :: fn (commandBuffer: VkCommandBuffer, pRenderingInfo: *VkRenderingInfo)  #extern

File: vulkan.bl

vkCmdEndRenderingKHR

vkCmdEndRenderingKHR :: fn (commandBuffer: VkCommandBuffer)  #extern

File: vulkan.bl

VkRenderPassMultiviewCreateInfoKHR

VkRenderPassMultiviewCreateInfoKHR :: VkRenderPassMultiviewCreateInfo

File: vulkan.bl

VkPhysicalDeviceMultiviewFeaturesKHR

VkPhysicalDeviceMultiviewFeaturesKHR :: VkPhysicalDeviceMultiviewFeatures

File: vulkan.bl

VkPhysicalDeviceMultiviewPropertiesKHR

VkPhysicalDeviceMultiviewPropertiesKHR :: VkPhysicalDeviceMultiviewProperties

File: vulkan.bl

VkPhysicalDeviceFeatures2KHR

VkPhysicalDeviceFeatures2KHR :: VkPhysicalDeviceFeatures2

File: vulkan.bl

VkPhysicalDeviceProperties2KHR

VkPhysicalDeviceProperties2KHR :: VkPhysicalDeviceProperties2

File: vulkan.bl

VkFormatProperties2KHR

VkFormatProperties2KHR :: VkFormatProperties2

File: vulkan.bl

VkImageFormatProperties2KHR

VkImageFormatProperties2KHR :: VkImageFormatProperties2

File: vulkan.bl

VkPhysicalDeviceImageFormatInfo2KHR

VkPhysicalDeviceImageFormatInfo2KHR :: VkPhysicalDeviceImageFormatInfo2

File: vulkan.bl

VkQueueFamilyProperties2KHR

VkQueueFamilyProperties2KHR :: VkQueueFamilyProperties2

File: vulkan.bl

VkPhysicalDeviceMemoryProperties2KHR

VkPhysicalDeviceMemoryProperties2KHR :: VkPhysicalDeviceMemoryProperties2

File: vulkan.bl

VkSparseImageFormatProperties2KHR

VkSparseImageFormatProperties2KHR :: VkSparseImageFormatProperties2

File: vulkan.bl

VkPhysicalDeviceSparseImageFormatInfo2KHR

VkPhysicalDeviceSparseImageFormatInfo2KHR :: VkPhysicalDeviceSparseImageFormatInfo2

File: vulkan.bl

PFN_vkGetPhysicalDeviceFeatures2KHR

PFN_vkGetPhysicalDeviceFeatures2KHR :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceFeatures2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceProperties2KHR

PFN_vkGetPhysicalDeviceProperties2KHR :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceProperties2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceFormatProperties2KHR

PFN_vkGetPhysicalDeviceFormatProperties2KHR :: *fn (: VkPhysicalDevice, : VkFormat, : *VkFormatProperties2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceImageFormatProperties2KHR

PFN_vkGetPhysicalDeviceImageFormatProperties2KHR :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceImageFormatInfo2, : *VkImageFormatProperties2) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR

PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR :: *fn (: VkPhysicalDevice, : *u32, : *VkQueueFamilyProperties2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceMemoryProperties2KHR

PFN_vkGetPhysicalDeviceMemoryProperties2KHR :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceMemoryProperties2) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR

PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceSparseImageFormatInfo2, : *u32, : *VkSparseImageFormatProperties2) 

File: vulkan.bl

vkGetPhysicalDeviceFeatures2KHR

vkGetPhysicalDeviceFeatures2KHR :: fn (physicalDevice: VkPhysicalDevice, pFeatures: *VkPhysicalDeviceFeatures2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceProperties2KHR

vkGetPhysicalDeviceProperties2KHR :: fn (physicalDevice: VkPhysicalDevice, pProperties: *VkPhysicalDeviceProperties2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceFormatProperties2KHR

vkGetPhysicalDeviceFormatProperties2KHR :: fn (physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: *VkFormatProperties2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceImageFormatProperties2KHR

vkGetPhysicalDeviceImageFormatProperties2KHR :: fn (physicalDevice: VkPhysicalDevice, pImageFormatInfo: *VkPhysicalDeviceImageFormatInfo2, pImageFormatProperties: *VkImageFormatProperties2) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceQueueFamilyProperties2KHR

vkGetPhysicalDeviceQueueFamilyProperties2KHR :: fn (physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: *u32, pQueueFamilyProperties: *VkQueueFamilyProperties2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceMemoryProperties2KHR

vkGetPhysicalDeviceMemoryProperties2KHR :: fn (physicalDevice: VkPhysicalDevice, pMemoryProperties: *VkPhysicalDeviceMemoryProperties2)  #extern

File: vulkan.bl

vkGetPhysicalDeviceSparseImageFormatProperties2KHR

vkGetPhysicalDeviceSparseImageFormatProperties2KHR :: fn (physicalDevice: VkPhysicalDevice, pFormatInfo: *VkPhysicalDeviceSparseImageFormatInfo2, pPropertyCount: *u32, pProperties: *VkSparseImageFormatProperties2)  #extern

File: vulkan.bl

VkPeerMemoryFeatureFlagsKHR

VkPeerMemoryFeatureFlagsKHR :: VkPeerMemoryFeatureFlags

File: vulkan.bl

VkPeerMemoryFeatureFlagBitsKHR

VkPeerMemoryFeatureFlagBitsKHR :: VkPeerMemoryFeatureFlagBits

File: vulkan.bl

VkMemoryAllocateFlagsKHR

VkMemoryAllocateFlagsKHR :: VkMemoryAllocateFlags

File: vulkan.bl

VkMemoryAllocateFlagBitsKHR

VkMemoryAllocateFlagBitsKHR :: VkMemoryAllocateFlagBits

File: vulkan.bl

VkMemoryAllocateFlagsInfoKHR

VkMemoryAllocateFlagsInfoKHR :: VkMemoryAllocateFlagsInfo

File: vulkan.bl

VkDeviceGroupRenderPassBeginInfoKHR

VkDeviceGroupRenderPassBeginInfoKHR :: VkDeviceGroupRenderPassBeginInfo

File: vulkan.bl

VkDeviceGroupCommandBufferBeginInfoKHR

VkDeviceGroupCommandBufferBeginInfoKHR :: VkDeviceGroupCommandBufferBeginInfo

File: vulkan.bl

VkDeviceGroupSubmitInfoKHR

VkDeviceGroupSubmitInfoKHR :: VkDeviceGroupSubmitInfo

File: vulkan.bl

VkDeviceGroupBindSparseInfoKHR

VkDeviceGroupBindSparseInfoKHR :: VkDeviceGroupBindSparseInfo

File: vulkan.bl

VkBindBufferMemoryDeviceGroupInfoKHR

VkBindBufferMemoryDeviceGroupInfoKHR :: VkBindBufferMemoryDeviceGroupInfo

File: vulkan.bl

VkBindImageMemoryDeviceGroupInfoKHR

VkBindImageMemoryDeviceGroupInfoKHR :: VkBindImageMemoryDeviceGroupInfo

File: vulkan.bl

PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR

PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR :: *fn (: VkDevice, : u32, : u32, : u32, : *VkPeerMemoryFeatureFlags) 

File: vulkan.bl

PFN_vkCmdSetDeviceMaskKHR

PFN_vkCmdSetDeviceMaskKHR :: *fn (: VkCommandBuffer, : u32) 

File: vulkan.bl

PFN_vkCmdDispatchBaseKHR

PFN_vkCmdDispatchBaseKHR :: *fn (: VkCommandBuffer, : u32, : u32, : u32, : u32, : u32, : u32) 

File: vulkan.bl

vkGetDeviceGroupPeerMemoryFeaturesKHR

vkGetDeviceGroupPeerMemoryFeaturesKHR :: fn (device: VkDevice, heapIndex: u32, localDeviceIndex: u32, remoteDeviceIndex: u32, pPeerMemoryFeatures: *VkPeerMemoryFeatureFlags)  #extern

File: vulkan.bl

vkCmdSetDeviceMaskKHR

vkCmdSetDeviceMaskKHR :: fn (commandBuffer: VkCommandBuffer, deviceMask: u32)  #extern

File: vulkan.bl

vkCmdDispatchBaseKHR

vkCmdDispatchBaseKHR :: fn (commandBuffer: VkCommandBuffer, baseGroupX: u32, baseGroupY: u32, baseGroupZ: u32, groupCountX: u32, groupCountY: u32, groupCountZ: u32)  #extern

File: vulkan.bl

VkCommandPoolTrimFlagsKHR

VkCommandPoolTrimFlagsKHR :: VkCommandPoolTrimFlags

File: vulkan.bl

PFN_vkTrimCommandPoolKHR

PFN_vkTrimCommandPoolKHR :: *fn (: VkDevice, : VkCommandPool, : VkCommandPoolTrimFlags) 

File: vulkan.bl

vkTrimCommandPoolKHR

vkTrimCommandPoolKHR :: fn (device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags)  #extern

File: vulkan.bl

VkPhysicalDeviceGroupPropertiesKHR

VkPhysicalDeviceGroupPropertiesKHR :: VkPhysicalDeviceGroupProperties

File: vulkan.bl

VkDeviceGroupDeviceCreateInfoKHR

VkDeviceGroupDeviceCreateInfoKHR :: VkDeviceGroupDeviceCreateInfo

File: vulkan.bl

PFN_vkEnumeratePhysicalDeviceGroupsKHR

PFN_vkEnumeratePhysicalDeviceGroupsKHR :: *fn (: VkInstance, : *u32, : *VkPhysicalDeviceGroupProperties) VkResult

File: vulkan.bl

vkEnumeratePhysicalDeviceGroupsKHR

vkEnumeratePhysicalDeviceGroupsKHR :: fn (instance: VkInstance, pPhysicalDeviceGroupCount: *u32, pPhysicalDeviceGroupProperties: *VkPhysicalDeviceGroupProperties) VkResult #extern

File: vulkan.bl

VkExternalMemoryHandleTypeFlagsKHR

VkExternalMemoryHandleTypeFlagsKHR :: VkExternalMemoryHandleTypeFlags

File: vulkan.bl

VkExternalMemoryHandleTypeFlagBitsKHR

VkExternalMemoryHandleTypeFlagBitsKHR :: VkExternalMemoryHandleTypeFlagBits

File: vulkan.bl

VkExternalMemoryFeatureFlagsKHR

VkExternalMemoryFeatureFlagsKHR :: VkExternalMemoryFeatureFlags

File: vulkan.bl

VkExternalMemoryFeatureFlagBitsKHR

VkExternalMemoryFeatureFlagBitsKHR :: VkExternalMemoryFeatureFlagBits

File: vulkan.bl

VkExternalMemoryPropertiesKHR

VkExternalMemoryPropertiesKHR :: VkExternalMemoryProperties

File: vulkan.bl

VkPhysicalDeviceExternalImageFormatInfoKHR

VkPhysicalDeviceExternalImageFormatInfoKHR :: VkPhysicalDeviceExternalImageFormatInfo

File: vulkan.bl

VkExternalImageFormatPropertiesKHR

VkExternalImageFormatPropertiesKHR :: VkExternalImageFormatProperties

File: vulkan.bl

VkPhysicalDeviceExternalBufferInfoKHR

VkPhysicalDeviceExternalBufferInfoKHR :: VkPhysicalDeviceExternalBufferInfo

File: vulkan.bl

VkExternalBufferPropertiesKHR

VkExternalBufferPropertiesKHR :: VkExternalBufferProperties

File: vulkan.bl

VkPhysicalDeviceIDPropertiesKHR

VkPhysicalDeviceIDPropertiesKHR :: VkPhysicalDeviceIDProperties

File: vulkan.bl

PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR

PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceExternalBufferInfo, : *VkExternalBufferProperties) 

File: vulkan.bl

vkGetPhysicalDeviceExternalBufferPropertiesKHR

vkGetPhysicalDeviceExternalBufferPropertiesKHR :: fn (physicalDevice: VkPhysicalDevice, pExternalBufferInfo: *VkPhysicalDeviceExternalBufferInfo, pExternalBufferProperties: *VkExternalBufferProperties)  #extern

File: vulkan.bl

VkExternalMemoryImageCreateInfoKHR

VkExternalMemoryImageCreateInfoKHR :: VkExternalMemoryImageCreateInfo

File: vulkan.bl

VkExternalMemoryBufferCreateInfoKHR

VkExternalMemoryBufferCreateInfoKHR :: VkExternalMemoryBufferCreateInfo

File: vulkan.bl

VkExportMemoryAllocateInfoKHR

VkExportMemoryAllocateInfoKHR :: VkExportMemoryAllocateInfo

File: vulkan.bl

VkImportMemoryFdInfoKHR

VkImportMemoryFdInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleType: VkExternalMemoryHandleTypeFlagBits;
    fd: C.int;
}

File: vulkan.bl

VkMemoryFdPropertiesKHR

VkMemoryFdPropertiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    memoryTypeBits: u32;
}

File: vulkan.bl

VkMemoryGetFdInfoKHR

VkMemoryGetFdInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    memory: VkDeviceMemory;
    handleType: VkExternalMemoryHandleTypeFlagBits;
}

File: vulkan.bl

PFN_vkGetMemoryFdKHR

PFN_vkGetMemoryFdKHR :: *fn (: VkDevice, : *VkMemoryGetFdInfoKHR, : *C.int) VkResult

File: vulkan.bl

PFN_vkGetMemoryFdPropertiesKHR

PFN_vkGetMemoryFdPropertiesKHR :: *fn (: VkDevice, : VkExternalMemoryHandleTypeFlagBits, : C.int, : *VkMemoryFdPropertiesKHR) VkResult

File: vulkan.bl

vkGetMemoryFdKHR

vkGetMemoryFdKHR :: fn (device: VkDevice, pGetFdInfo: *VkMemoryGetFdInfoKHR, pFd: *C.int) VkResult #extern

File: vulkan.bl

vkGetMemoryFdPropertiesKHR

vkGetMemoryFdPropertiesKHR :: fn (device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, fd: C.int, pMemoryFdProperties: *VkMemoryFdPropertiesKHR) VkResult #extern

File: vulkan.bl

VkExternalSemaphoreHandleTypeFlagsKHR

VkExternalSemaphoreHandleTypeFlagsKHR :: VkExternalSemaphoreHandleTypeFlags

File: vulkan.bl

VkExternalSemaphoreHandleTypeFlagBitsKHR

VkExternalSemaphoreHandleTypeFlagBitsKHR :: VkExternalSemaphoreHandleTypeFlagBits

File: vulkan.bl

VkExternalSemaphoreFeatureFlagsKHR

VkExternalSemaphoreFeatureFlagsKHR :: VkExternalSemaphoreFeatureFlags

File: vulkan.bl

VkExternalSemaphoreFeatureFlagBitsKHR

VkExternalSemaphoreFeatureFlagBitsKHR :: VkExternalSemaphoreFeatureFlagBits

File: vulkan.bl

VkPhysicalDeviceExternalSemaphoreInfoKHR

VkPhysicalDeviceExternalSemaphoreInfoKHR :: VkPhysicalDeviceExternalSemaphoreInfo

File: vulkan.bl

VkExternalSemaphorePropertiesKHR

VkExternalSemaphorePropertiesKHR :: VkExternalSemaphoreProperties

File: vulkan.bl

PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR

PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceExternalSemaphoreInfo, : *VkExternalSemaphoreProperties) 

File: vulkan.bl

vkGetPhysicalDeviceExternalSemaphorePropertiesKHR

vkGetPhysicalDeviceExternalSemaphorePropertiesKHR :: fn (physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: *VkPhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: *VkExternalSemaphoreProperties)  #extern

File: vulkan.bl

VkSemaphoreImportFlagsKHR

VkSemaphoreImportFlagsKHR :: VkSemaphoreImportFlags

File: vulkan.bl

VkSemaphoreImportFlagBitsKHR

VkSemaphoreImportFlagBitsKHR :: VkSemaphoreImportFlagBits

File: vulkan.bl

VkExportSemaphoreCreateInfoKHR

VkExportSemaphoreCreateInfoKHR :: VkExportSemaphoreCreateInfo

File: vulkan.bl

VkImportSemaphoreFdInfoKHR

VkImportSemaphoreFdInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    semaphore: VkSemaphore;
    flags: VkSemaphoreImportFlags;
    handleType: VkExternalSemaphoreHandleTypeFlagBits;
    fd: C.int;
}

File: vulkan.bl

VkSemaphoreGetFdInfoKHR

VkSemaphoreGetFdInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    semaphore: VkSemaphore;
    handleType: VkExternalSemaphoreHandleTypeFlagBits;
}

File: vulkan.bl

PFN_vkImportSemaphoreFdKHR

PFN_vkImportSemaphoreFdKHR :: *fn (: VkDevice, : *VkImportSemaphoreFdInfoKHR) VkResult

File: vulkan.bl

PFN_vkGetSemaphoreFdKHR

PFN_vkGetSemaphoreFdKHR :: *fn (: VkDevice, : *VkSemaphoreGetFdInfoKHR, : *C.int) VkResult

File: vulkan.bl

vkImportSemaphoreFdKHR

vkImportSemaphoreFdKHR :: fn (device: VkDevice, pImportSemaphoreFdInfo: *VkImportSemaphoreFdInfoKHR) VkResult #extern

File: vulkan.bl

vkGetSemaphoreFdKHR

vkGetSemaphoreFdKHR :: fn (device: VkDevice, pGetFdInfo: *VkSemaphoreGetFdInfoKHR, pFd: *C.int) VkResult #extern

File: vulkan.bl

VkPhysicalDevicePushDescriptorPropertiesKHR

VkPhysicalDevicePushDescriptorPropertiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxPushDescriptors: u32;
}

File: vulkan.bl

PFN_vkCmdPushDescriptorSetKHR

PFN_vkCmdPushDescriptorSetKHR :: *fn (: VkCommandBuffer, : VkPipelineBindPoint, : VkPipelineLayout, : u32, : u32, : *VkWriteDescriptorSet) 

File: vulkan.bl

PFN_vkCmdPushDescriptorSetWithTemplateKHR

PFN_vkCmdPushDescriptorSetWithTemplateKHR :: *fn (: VkCommandBuffer, : VkDescriptorUpdateTemplate, : VkPipelineLayout, : u32, : C.void_ptr) 

File: vulkan.bl

vkCmdPushDescriptorSetKHR

vkCmdPushDescriptorSetKHR :: fn (commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: u32, descriptorWriteCount: u32, pDescriptorWrites: *VkWriteDescriptorSet)  #extern

File: vulkan.bl

vkCmdPushDescriptorSetWithTemplateKHR

vkCmdPushDescriptorSetWithTemplateKHR :: fn (commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: u32, pData: C.void_ptr)  #extern

File: vulkan.bl

VkPhysicalDeviceShaderFloat16Int8FeaturesKHR

VkPhysicalDeviceShaderFloat16Int8FeaturesKHR :: VkPhysicalDeviceShaderFloat16Int8Features

File: vulkan.bl

VkPhysicalDeviceFloat16Int8FeaturesKHR

VkPhysicalDeviceFloat16Int8FeaturesKHR :: VkPhysicalDeviceShaderFloat16Int8Features

File: vulkan.bl

VkPhysicalDevice16BitStorageFeaturesKHR

VkPhysicalDevice16BitStorageFeaturesKHR :: VkPhysicalDevice16BitStorageFeatures

File: vulkan.bl

VkRectLayerKHR

VkRectLayerKHR :: struct {
    offset: VkOffset2D;
    extent: VkExtent2D;
    layer: u32;
}

File: vulkan.bl

VkPresentRegionKHR

VkPresentRegionKHR :: struct {
    rectangleCount: u32;
    pRectangles: *VkRectLayerKHR;
}

File: vulkan.bl

VkPresentRegionsKHR

VkPresentRegionsKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    swapchainCount: u32;
    pRegions: *VkPresentRegionKHR;
}

File: vulkan.bl

VkDescriptorUpdateTemplateKHR

VkDescriptorUpdateTemplateKHR :: VkDescriptorUpdateTemplate

File: vulkan.bl

VkDescriptorUpdateTemplateTypeKHR

VkDescriptorUpdateTemplateTypeKHR :: VkDescriptorUpdateTemplateType

File: vulkan.bl

VkDescriptorUpdateTemplateCreateFlagsKHR

VkDescriptorUpdateTemplateCreateFlagsKHR :: VkDescriptorUpdateTemplateCreateFlags

File: vulkan.bl

VkDescriptorUpdateTemplateEntryKHR

VkDescriptorUpdateTemplateEntryKHR :: VkDescriptorUpdateTemplateEntry

File: vulkan.bl

VkDescriptorUpdateTemplateCreateInfoKHR

VkDescriptorUpdateTemplateCreateInfoKHR :: VkDescriptorUpdateTemplateCreateInfo

File: vulkan.bl

PFN_vkCreateDescriptorUpdateTemplateKHR

PFN_vkCreateDescriptorUpdateTemplateKHR :: *fn (: VkDevice, : *VkDescriptorUpdateTemplateCreateInfo, : *VkAllocationCallbacks, : *VkDescriptorUpdateTemplate) VkResult

File: vulkan.bl

PFN_vkDestroyDescriptorUpdateTemplateKHR

PFN_vkDestroyDescriptorUpdateTemplateKHR :: *fn (: VkDevice, : VkDescriptorUpdateTemplate, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkUpdateDescriptorSetWithTemplateKHR

PFN_vkUpdateDescriptorSetWithTemplateKHR :: *fn (: VkDevice, : VkDescriptorSet, : VkDescriptorUpdateTemplate, : C.void_ptr) 

File: vulkan.bl

vkCreateDescriptorUpdateTemplateKHR

vkCreateDescriptorUpdateTemplateKHR :: fn (device: VkDevice, pCreateInfo: *VkDescriptorUpdateTemplateCreateInfo, pAllocator: *VkAllocationCallbacks, pDescriptorUpdateTemplate: *VkDescriptorUpdateTemplate) VkResult #extern

File: vulkan.bl

vkDestroyDescriptorUpdateTemplateKHR

vkDestroyDescriptorUpdateTemplateKHR :: fn (device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkUpdateDescriptorSetWithTemplateKHR

vkUpdateDescriptorSetWithTemplateKHR :: fn (device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: C.void_ptr)  #extern

File: vulkan.bl

VkPhysicalDeviceImagelessFramebufferFeaturesKHR

VkPhysicalDeviceImagelessFramebufferFeaturesKHR :: VkPhysicalDeviceImagelessFramebufferFeatures

File: vulkan.bl

VkFramebufferAttachmentsCreateInfoKHR

VkFramebufferAttachmentsCreateInfoKHR :: VkFramebufferAttachmentsCreateInfo

File: vulkan.bl

VkFramebufferAttachmentImageInfoKHR

VkFramebufferAttachmentImageInfoKHR :: VkFramebufferAttachmentImageInfo

File: vulkan.bl

VkRenderPassAttachmentBeginInfoKHR

VkRenderPassAttachmentBeginInfoKHR :: VkRenderPassAttachmentBeginInfo

File: vulkan.bl

VkRenderPassCreateInfo2KHR

VkRenderPassCreateInfo2KHR :: VkRenderPassCreateInfo2

File: vulkan.bl

VkAttachmentDescription2KHR

VkAttachmentDescription2KHR :: VkAttachmentDescription2

File: vulkan.bl

VkAttachmentReference2KHR

VkAttachmentReference2KHR :: VkAttachmentReference2

File: vulkan.bl

VkSubpassDescription2KHR

VkSubpassDescription2KHR :: VkSubpassDescription2

File: vulkan.bl

VkSubpassDependency2KHR

VkSubpassDependency2KHR :: VkSubpassDependency2

File: vulkan.bl

VkSubpassBeginInfoKHR

VkSubpassBeginInfoKHR :: VkSubpassBeginInfo

File: vulkan.bl

VkSubpassEndInfoKHR

VkSubpassEndInfoKHR :: VkSubpassEndInfo

File: vulkan.bl

PFN_vkCreateRenderPass2KHR

PFN_vkCreateRenderPass2KHR :: *fn (: VkDevice, : *VkRenderPassCreateInfo2, : *VkAllocationCallbacks, : *VkRenderPass) VkResult

File: vulkan.bl

PFN_vkCmdBeginRenderPass2KHR

PFN_vkCmdBeginRenderPass2KHR :: *fn (: VkCommandBuffer, : *VkRenderPassBeginInfo, : *VkSubpassBeginInfo) 

File: vulkan.bl

PFN_vkCmdNextSubpass2KHR

PFN_vkCmdNextSubpass2KHR :: *fn (: VkCommandBuffer, : *VkSubpassBeginInfo, : *VkSubpassEndInfo) 

File: vulkan.bl

PFN_vkCmdEndRenderPass2KHR

PFN_vkCmdEndRenderPass2KHR :: *fn (: VkCommandBuffer, : *VkSubpassEndInfo) 

File: vulkan.bl

vkCreateRenderPass2KHR

vkCreateRenderPass2KHR :: fn (device: VkDevice, pCreateInfo: *VkRenderPassCreateInfo2, pAllocator: *VkAllocationCallbacks, pRenderPass: *VkRenderPass) VkResult #extern

File: vulkan.bl

vkCmdBeginRenderPass2KHR

vkCmdBeginRenderPass2KHR :: fn (commandBuffer: VkCommandBuffer, pRenderPassBegin: *VkRenderPassBeginInfo, pSubpassBeginInfo: *VkSubpassBeginInfo)  #extern

File: vulkan.bl

vkCmdNextSubpass2KHR

vkCmdNextSubpass2KHR :: fn (commandBuffer: VkCommandBuffer, pSubpassBeginInfo: *VkSubpassBeginInfo, pSubpassEndInfo: *VkSubpassEndInfo)  #extern

File: vulkan.bl

vkCmdEndRenderPass2KHR

vkCmdEndRenderPass2KHR :: fn (commandBuffer: VkCommandBuffer, pSubpassEndInfo: *VkSubpassEndInfo)  #extern

File: vulkan.bl

VkSharedPresentSurfaceCapabilitiesKHR

VkSharedPresentSurfaceCapabilitiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    sharedPresentSupportedUsageFlags: VkImageUsageFlags;
}

File: vulkan.bl

PFN_vkGetSwapchainStatusKHR

PFN_vkGetSwapchainStatusKHR :: *fn (: VkDevice, : VkSwapchainKHR) VkResult

File: vulkan.bl

vkGetSwapchainStatusKHR

vkGetSwapchainStatusKHR :: fn (device: VkDevice, swapchain: VkSwapchainKHR) VkResult #extern

File: vulkan.bl

VkExternalFenceHandleTypeFlagsKHR

VkExternalFenceHandleTypeFlagsKHR :: VkExternalFenceHandleTypeFlags

File: vulkan.bl

VkExternalFenceHandleTypeFlagBitsKHR

VkExternalFenceHandleTypeFlagBitsKHR :: VkExternalFenceHandleTypeFlagBits

File: vulkan.bl

VkExternalFenceFeatureFlagsKHR

VkExternalFenceFeatureFlagsKHR :: VkExternalFenceFeatureFlags

File: vulkan.bl

VkExternalFenceFeatureFlagBitsKHR

VkExternalFenceFeatureFlagBitsKHR :: VkExternalFenceFeatureFlagBits

File: vulkan.bl

VkPhysicalDeviceExternalFenceInfoKHR

VkPhysicalDeviceExternalFenceInfoKHR :: VkPhysicalDeviceExternalFenceInfo

File: vulkan.bl

VkExternalFencePropertiesKHR

VkExternalFencePropertiesKHR :: VkExternalFenceProperties

File: vulkan.bl

PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR

PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceExternalFenceInfo, : *VkExternalFenceProperties) 

File: vulkan.bl

vkGetPhysicalDeviceExternalFencePropertiesKHR

vkGetPhysicalDeviceExternalFencePropertiesKHR :: fn (physicalDevice: VkPhysicalDevice, pExternalFenceInfo: *VkPhysicalDeviceExternalFenceInfo, pExternalFenceProperties: *VkExternalFenceProperties)  #extern

File: vulkan.bl

VkFenceImportFlagsKHR

VkFenceImportFlagsKHR :: VkFenceImportFlags

File: vulkan.bl

VkFenceImportFlagBitsKHR

VkFenceImportFlagBitsKHR :: VkFenceImportFlagBits

File: vulkan.bl

VkExportFenceCreateInfoKHR

VkExportFenceCreateInfoKHR :: VkExportFenceCreateInfo

File: vulkan.bl

VkImportFenceFdInfoKHR

VkImportFenceFdInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fence: VkFence;
    flags: VkFenceImportFlags;
    handleType: VkExternalFenceHandleTypeFlagBits;
    fd: C.int;
}

File: vulkan.bl

VkFenceGetFdInfoKHR

VkFenceGetFdInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fence: VkFence;
    handleType: VkExternalFenceHandleTypeFlagBits;
}

File: vulkan.bl

PFN_vkImportFenceFdKHR

PFN_vkImportFenceFdKHR :: *fn (: VkDevice, : *VkImportFenceFdInfoKHR) VkResult

File: vulkan.bl

PFN_vkGetFenceFdKHR

PFN_vkGetFenceFdKHR :: *fn (: VkDevice, : *VkFenceGetFdInfoKHR, : *C.int) VkResult

File: vulkan.bl

vkImportFenceFdKHR

vkImportFenceFdKHR :: fn (device: VkDevice, pImportFenceFdInfo: *VkImportFenceFdInfoKHR) VkResult #extern

File: vulkan.bl

vkGetFenceFdKHR

vkGetFenceFdKHR :: fn (device: VkDevice, pGetFdInfo: *VkFenceGetFdInfoKHR, pFd: *C.int) VkResult #extern

File: vulkan.bl

VkPerformanceCounterUnitKHR

VkPerformanceCounterUnitKHR :: enum s32 {
    VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0;
    VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1;
    VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2;
    VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3;
    VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4;
    VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5;
    VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6;
    VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7;
    VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8;
    VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9;
    VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10;
    VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkPerformanceCounterScopeKHR

VkPerformanceCounterScopeKHR :: enum s32 {
    VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0;
    VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1;
    VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2;
    VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = 0;
    VK_QUERY_SCOPE_RENDER_PASS_KHR = 1;
    VK_QUERY_SCOPE_COMMAND_KHR = 2;
    VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkPerformanceCounterStorageKHR

VkPerformanceCounterStorageKHR :: enum s32 {
    VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0;
    VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1;
    VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2;
    VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3;
    VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4;
    VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5;
    VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkPerformanceCounterDescriptionFlagBitsKHR

VkPerformanceCounterDescriptionFlagBitsKHR :: enum s32 {
    VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 1;
    VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 2;
    VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1;
    VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2;
    VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkPerformanceCounterDescriptionFlagsKHR

VkPerformanceCounterDescriptionFlagsKHR :: VkFlags

File: vulkan.bl

VkAcquireProfilingLockFlagBitsKHR

VkAcquireProfilingLockFlagBitsKHR :: enum s32 {
    VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkAcquireProfilingLockFlagsKHR

VkAcquireProfilingLockFlagsKHR :: VkFlags

File: vulkan.bl

VkPhysicalDevicePerformanceQueryFeaturesKHR

VkPhysicalDevicePerformanceQueryFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    performanceCounterQueryPools: VkBool32;
    performanceCounterMultipleQueryPools: VkBool32;
}

File: vulkan.bl

VkPhysicalDevicePerformanceQueryPropertiesKHR

VkPhysicalDevicePerformanceQueryPropertiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    allowCommandBufferQueryCopies: VkBool32;
}

File: vulkan.bl

VkPerformanceCounterKHR

VkPerformanceCounterKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    unit: VkPerformanceCounterUnitKHR;
    scope: VkPerformanceCounterScopeKHR;
    storage: VkPerformanceCounterStorageKHR;
    uuid: ;
}

File: vulkan.bl

VkPerformanceCounterDescriptionKHR

VkPerformanceCounterDescriptionKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPerformanceCounterDescriptionFlagsKHR;
    name: ;
    category: ;
    description: ;
}

File: vulkan.bl

VkQueryPoolPerformanceCreateInfoKHR

VkQueryPoolPerformanceCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    queueFamilyIndex: u32;
    counterIndexCount: u32;
    pCounterIndices: *u32;
}

File: vulkan.bl

VkPerformanceCounterResultKHR

VkPerformanceCounterResultKHR :: union {
    int32: s32;
    int64: s64;
    uint32: u32;
    uint64: u64;
    float32: f32;
    float64: f64;
}

File: vulkan.bl

VkAcquireProfilingLockInfoKHR

VkAcquireProfilingLockInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkAcquireProfilingLockFlagsKHR;
    timeout: u64;
}

File: vulkan.bl

VkPerformanceQuerySubmitInfoKHR

VkPerformanceQuerySubmitInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    counterPassIndex: u32;
}

File: vulkan.bl

PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR

PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR :: *fn (: VkPhysicalDevice, : u32, : *u32, : *VkPerformanceCounterKHR, : *VkPerformanceCounterDescriptionKHR) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR

PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR :: *fn (: VkPhysicalDevice, : *VkQueryPoolPerformanceCreateInfoKHR, : *u32) 

File: vulkan.bl

PFN_vkAcquireProfilingLockKHR

PFN_vkAcquireProfilingLockKHR :: *fn (: VkDevice, : *VkAcquireProfilingLockInfoKHR) VkResult

File: vulkan.bl

PFN_vkReleaseProfilingLockKHR

PFN_vkReleaseProfilingLockKHR :: *fn (: VkDevice) 

File: vulkan.bl

vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR

vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR :: fn (physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, pCounterCount: *u32, pCounters: *VkPerformanceCounterKHR, pCounterDescriptions: *VkPerformanceCounterDescriptionKHR) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR

vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR :: fn (physicalDevice: VkPhysicalDevice, pPerformanceQueryCreateInfo: *VkQueryPoolPerformanceCreateInfoKHR, pNumPasses: *u32)  #extern

File: vulkan.bl

vkAcquireProfilingLockKHR

vkAcquireProfilingLockKHR :: fn (device: VkDevice, pInfo: *VkAcquireProfilingLockInfoKHR) VkResult #extern

File: vulkan.bl

vkReleaseProfilingLockKHR

vkReleaseProfilingLockKHR :: fn (device: VkDevice)  #extern

File: vulkan.bl

VkPointClippingBehaviorKHR

VkPointClippingBehaviorKHR :: VkPointClippingBehavior

File: vulkan.bl

VkTessellationDomainOriginKHR

VkTessellationDomainOriginKHR :: VkTessellationDomainOrigin

File: vulkan.bl

VkPhysicalDevicePointClippingPropertiesKHR

VkPhysicalDevicePointClippingPropertiesKHR :: VkPhysicalDevicePointClippingProperties

File: vulkan.bl

VkRenderPassInputAttachmentAspectCreateInfoKHR

VkRenderPassInputAttachmentAspectCreateInfoKHR :: VkRenderPassInputAttachmentAspectCreateInfo

File: vulkan.bl

VkInputAttachmentAspectReferenceKHR

VkInputAttachmentAspectReferenceKHR :: VkInputAttachmentAspectReference

File: vulkan.bl

VkImageViewUsageCreateInfoKHR

VkImageViewUsageCreateInfoKHR :: VkImageViewUsageCreateInfo

File: vulkan.bl

VkPipelineTessellationDomainOriginStateCreateInfoKHR

VkPipelineTessellationDomainOriginStateCreateInfoKHR :: VkPipelineTessellationDomainOriginStateCreateInfo

File: vulkan.bl

VkPhysicalDeviceSurfaceInfo2KHR

VkPhysicalDeviceSurfaceInfo2KHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    surface: VkSurfaceKHR;
}

File: vulkan.bl

VkSurfaceCapabilities2KHR

VkSurfaceCapabilities2KHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    surfaceCapabilities: VkSurfaceCapabilitiesKHR;
}

File: vulkan.bl

VkSurfaceFormat2KHR

VkSurfaceFormat2KHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    surfaceFormat: VkSurfaceFormatKHR;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR

PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceSurfaceInfo2KHR, : *VkSurfaceCapabilities2KHR) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceSurfaceFormats2KHR

PFN_vkGetPhysicalDeviceSurfaceFormats2KHR :: *fn (: VkPhysicalDevice, : *VkPhysicalDeviceSurfaceInfo2KHR, : *u32, : *VkSurfaceFormat2KHR) VkResult

File: vulkan.bl

vkGetPhysicalDeviceSurfaceCapabilities2KHR

vkGetPhysicalDeviceSurfaceCapabilities2KHR :: fn (physicalDevice: VkPhysicalDevice, pSurfaceInfo: *VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: *VkSurfaceCapabilities2KHR) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceSurfaceFormats2KHR

vkGetPhysicalDeviceSurfaceFormats2KHR :: fn (physicalDevice: VkPhysicalDevice, pSurfaceInfo: *VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: *u32, pSurfaceFormats: *VkSurfaceFormat2KHR) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceVariablePointerFeaturesKHR

VkPhysicalDeviceVariablePointerFeaturesKHR :: VkPhysicalDeviceVariablePointersFeatures

File: vulkan.bl

VkPhysicalDeviceVariablePointersFeaturesKHR

VkPhysicalDeviceVariablePointersFeaturesKHR :: VkPhysicalDeviceVariablePointersFeatures

File: vulkan.bl

VkDisplayProperties2KHR

VkDisplayProperties2KHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    displayProperties: VkDisplayPropertiesKHR;
}

File: vulkan.bl

VkDisplayPlaneProperties2KHR

VkDisplayPlaneProperties2KHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    displayPlaneProperties: VkDisplayPlanePropertiesKHR;
}

File: vulkan.bl

VkDisplayModeProperties2KHR

VkDisplayModeProperties2KHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    displayModeProperties: VkDisplayModePropertiesKHR;
}

File: vulkan.bl

VkDisplayPlaneInfo2KHR

VkDisplayPlaneInfo2KHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    mode: VkDisplayModeKHR;
    planeIndex: u32;
}

File: vulkan.bl

VkDisplayPlaneCapabilities2KHR

VkDisplayPlaneCapabilities2KHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    capabilities: VkDisplayPlaneCapabilitiesKHR;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceDisplayProperties2KHR

PFN_vkGetPhysicalDeviceDisplayProperties2KHR :: *fn (: VkPhysicalDevice, : *u32, : *VkDisplayProperties2KHR) VkResult

File: vulkan.bl

PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR

PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR :: *fn (: VkPhysicalDevice, : *u32, : *VkDisplayPlaneProperties2KHR) VkResult

File: vulkan.bl

PFN_vkGetDisplayModeProperties2KHR

PFN_vkGetDisplayModeProperties2KHR :: *fn (: VkPhysicalDevice, : VkDisplayKHR, : *u32, : *VkDisplayModeProperties2KHR) VkResult

File: vulkan.bl

PFN_vkGetDisplayPlaneCapabilities2KHR

PFN_vkGetDisplayPlaneCapabilities2KHR :: *fn (: VkPhysicalDevice, : *VkDisplayPlaneInfo2KHR, : *VkDisplayPlaneCapabilities2KHR) VkResult

File: vulkan.bl

vkGetPhysicalDeviceDisplayProperties2KHR

vkGetPhysicalDeviceDisplayProperties2KHR :: fn (physicalDevice: VkPhysicalDevice, pPropertyCount: *u32, pProperties: *VkDisplayProperties2KHR) VkResult #extern

File: vulkan.bl

vkGetPhysicalDeviceDisplayPlaneProperties2KHR

vkGetPhysicalDeviceDisplayPlaneProperties2KHR :: fn (physicalDevice: VkPhysicalDevice, pPropertyCount: *u32, pProperties: *VkDisplayPlaneProperties2KHR) VkResult #extern

File: vulkan.bl

vkGetDisplayModeProperties2KHR

vkGetDisplayModeProperties2KHR :: fn (physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: *u32, pProperties: *VkDisplayModeProperties2KHR) VkResult #extern

File: vulkan.bl

vkGetDisplayPlaneCapabilities2KHR

vkGetDisplayPlaneCapabilities2KHR :: fn (physicalDevice: VkPhysicalDevice, pDisplayPlaneInfo: *VkDisplayPlaneInfo2KHR, pCapabilities: *VkDisplayPlaneCapabilities2KHR) VkResult #extern

File: vulkan.bl

VkMemoryDedicatedRequirementsKHR

VkMemoryDedicatedRequirementsKHR :: VkMemoryDedicatedRequirements

File: vulkan.bl

VkMemoryDedicatedAllocateInfoKHR

VkMemoryDedicatedAllocateInfoKHR :: VkMemoryDedicatedAllocateInfo

File: vulkan.bl

VkBufferMemoryRequirementsInfo2KHR

VkBufferMemoryRequirementsInfo2KHR :: VkBufferMemoryRequirementsInfo2

File: vulkan.bl

VkImageMemoryRequirementsInfo2KHR

VkImageMemoryRequirementsInfo2KHR :: VkImageMemoryRequirementsInfo2

File: vulkan.bl

VkImageSparseMemoryRequirementsInfo2KHR

VkImageSparseMemoryRequirementsInfo2KHR :: VkImageSparseMemoryRequirementsInfo2

File: vulkan.bl

VkMemoryRequirements2KHR

VkMemoryRequirements2KHR :: VkMemoryRequirements2

File: vulkan.bl

VkSparseImageMemoryRequirements2KHR

VkSparseImageMemoryRequirements2KHR :: VkSparseImageMemoryRequirements2

File: vulkan.bl

PFN_vkGetImageMemoryRequirements2KHR

PFN_vkGetImageMemoryRequirements2KHR :: *fn (: VkDevice, : *VkImageMemoryRequirementsInfo2, : *VkMemoryRequirements2) 

File: vulkan.bl

PFN_vkGetBufferMemoryRequirements2KHR

PFN_vkGetBufferMemoryRequirements2KHR :: *fn (: VkDevice, : *VkBufferMemoryRequirementsInfo2, : *VkMemoryRequirements2) 

File: vulkan.bl

PFN_vkGetImageSparseMemoryRequirements2KHR

PFN_vkGetImageSparseMemoryRequirements2KHR :: *fn (: VkDevice, : *VkImageSparseMemoryRequirementsInfo2, : *u32, : *VkSparseImageMemoryRequirements2) 

File: vulkan.bl

vkGetImageMemoryRequirements2KHR

vkGetImageMemoryRequirements2KHR :: fn (device: VkDevice, pInfo: *VkImageMemoryRequirementsInfo2, pMemoryRequirements: *VkMemoryRequirements2)  #extern

File: vulkan.bl

vkGetBufferMemoryRequirements2KHR

vkGetBufferMemoryRequirements2KHR :: fn (device: VkDevice, pInfo: *VkBufferMemoryRequirementsInfo2, pMemoryRequirements: *VkMemoryRequirements2)  #extern

File: vulkan.bl

vkGetImageSparseMemoryRequirements2KHR

vkGetImageSparseMemoryRequirements2KHR :: fn (device: VkDevice, pInfo: *VkImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: *u32, pSparseMemoryRequirements: *VkSparseImageMemoryRequirements2)  #extern

File: vulkan.bl

VkImageFormatListCreateInfoKHR

VkImageFormatListCreateInfoKHR :: VkImageFormatListCreateInfo

File: vulkan.bl

VkSamplerYcbcrConversionKHR

VkSamplerYcbcrConversionKHR :: VkSamplerYcbcrConversion

File: vulkan.bl

VkSamplerYcbcrModelConversionKHR

VkSamplerYcbcrModelConversionKHR :: VkSamplerYcbcrModelConversion

File: vulkan.bl

VkSamplerYcbcrRangeKHR

VkSamplerYcbcrRangeKHR :: VkSamplerYcbcrRange

File: vulkan.bl

VkChromaLocationKHR

VkChromaLocationKHR :: VkChromaLocation

File: vulkan.bl

VkSamplerYcbcrConversionCreateInfoKHR

VkSamplerYcbcrConversionCreateInfoKHR :: VkSamplerYcbcrConversionCreateInfo

File: vulkan.bl

VkSamplerYcbcrConversionInfoKHR

VkSamplerYcbcrConversionInfoKHR :: VkSamplerYcbcrConversionInfo

File: vulkan.bl

VkBindImagePlaneMemoryInfoKHR

VkBindImagePlaneMemoryInfoKHR :: VkBindImagePlaneMemoryInfo

File: vulkan.bl

VkImagePlaneMemoryRequirementsInfoKHR

VkImagePlaneMemoryRequirementsInfoKHR :: VkImagePlaneMemoryRequirementsInfo

File: vulkan.bl

VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR

VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR :: VkPhysicalDeviceSamplerYcbcrConversionFeatures

File: vulkan.bl

VkSamplerYcbcrConversionImageFormatPropertiesKHR

VkSamplerYcbcrConversionImageFormatPropertiesKHR :: VkSamplerYcbcrConversionImageFormatProperties

File: vulkan.bl

PFN_vkCreateSamplerYcbcrConversionKHR

PFN_vkCreateSamplerYcbcrConversionKHR :: *fn (: VkDevice, : *VkSamplerYcbcrConversionCreateInfo, : *VkAllocationCallbacks, : *VkSamplerYcbcrConversion) VkResult

File: vulkan.bl

PFN_vkDestroySamplerYcbcrConversionKHR

PFN_vkDestroySamplerYcbcrConversionKHR :: *fn (: VkDevice, : VkSamplerYcbcrConversion, : *VkAllocationCallbacks) 

File: vulkan.bl

vkCreateSamplerYcbcrConversionKHR

vkCreateSamplerYcbcrConversionKHR :: fn (device: VkDevice, pCreateInfo: *VkSamplerYcbcrConversionCreateInfo, pAllocator: *VkAllocationCallbacks, pYcbcrConversion: *VkSamplerYcbcrConversion) VkResult #extern

File: vulkan.bl

vkDestroySamplerYcbcrConversionKHR

vkDestroySamplerYcbcrConversionKHR :: fn (device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

VkBindBufferMemoryInfoKHR

VkBindBufferMemoryInfoKHR :: VkBindBufferMemoryInfo

File: vulkan.bl

VkBindImageMemoryInfoKHR

VkBindImageMemoryInfoKHR :: VkBindImageMemoryInfo

File: vulkan.bl

PFN_vkBindBufferMemory2KHR

PFN_vkBindBufferMemory2KHR :: *fn (: VkDevice, : u32, : *VkBindBufferMemoryInfo) VkResult

File: vulkan.bl

PFN_vkBindImageMemory2KHR

PFN_vkBindImageMemory2KHR :: *fn (: VkDevice, : u32, : *VkBindImageMemoryInfo) VkResult

File: vulkan.bl

vkBindBufferMemory2KHR

vkBindBufferMemory2KHR :: fn (device: VkDevice, bindInfoCount: u32, pBindInfos: *VkBindBufferMemoryInfo) VkResult #extern

File: vulkan.bl

vkBindImageMemory2KHR

vkBindImageMemory2KHR :: fn (device: VkDevice, bindInfoCount: u32, pBindInfos: *VkBindImageMemoryInfo) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceMaintenance3PropertiesKHR

VkPhysicalDeviceMaintenance3PropertiesKHR :: VkPhysicalDeviceMaintenance3Properties

File: vulkan.bl

VkDescriptorSetLayoutSupportKHR

VkDescriptorSetLayoutSupportKHR :: VkDescriptorSetLayoutSupport

File: vulkan.bl

PFN_vkGetDescriptorSetLayoutSupportKHR

PFN_vkGetDescriptorSetLayoutSupportKHR :: *fn (: VkDevice, : *VkDescriptorSetLayoutCreateInfo, : *VkDescriptorSetLayoutSupport) 

File: vulkan.bl

vkGetDescriptorSetLayoutSupportKHR

vkGetDescriptorSetLayoutSupportKHR :: fn (device: VkDevice, pCreateInfo: *VkDescriptorSetLayoutCreateInfo, pSupport: *VkDescriptorSetLayoutSupport)  #extern

File: vulkan.bl

PFN_vkCmdDrawIndirectCountKHR

PFN_vkCmdDrawIndirectCountKHR :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawIndexedIndirectCountKHR

PFN_vkCmdDrawIndexedIndirectCountKHR :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

vkCmdDrawIndirectCountKHR

vkCmdDrawIndirectCountKHR :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: u32, stride: u32)  #extern

File: vulkan.bl

vkCmdDrawIndexedIndirectCountKHR

vkCmdDrawIndexedIndirectCountKHR :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: u32, stride: u32)  #extern

File: vulkan.bl

VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR

VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR :: VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures

File: vulkan.bl

VkPhysicalDevice8BitStorageFeaturesKHR

VkPhysicalDevice8BitStorageFeaturesKHR :: VkPhysicalDevice8BitStorageFeatures

File: vulkan.bl

VkPhysicalDeviceShaderAtomicInt64FeaturesKHR

VkPhysicalDeviceShaderAtomicInt64FeaturesKHR :: VkPhysicalDeviceShaderAtomicInt64Features

File: vulkan.bl

VkPhysicalDeviceShaderClockFeaturesKHR

VkPhysicalDeviceShaderClockFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderSubgroupClock: VkBool32;
    shaderDeviceClock: VkBool32;
}

File: vulkan.bl

VkQueueGlobalPriorityKHR

VkQueueGlobalPriorityKHR :: enum s32 {
    VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128;
    VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256;
    VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512;
    VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024;
    VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128;
    VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256;
    VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512;
    VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024;
    VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkDeviceQueueGlobalPriorityCreateInfoKHR

VkDeviceQueueGlobalPriorityCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    globalPriority: VkQueueGlobalPriorityKHR;
}

File: vulkan.bl

VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR

VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    globalPriorityQuery: VkBool32;
}

File: vulkan.bl

VkQueueFamilyGlobalPriorityPropertiesKHR

VkQueueFamilyGlobalPriorityPropertiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    priorityCount: u32;
    priorities: ;
}

File: vulkan.bl

VkDriverIdKHR

VkDriverIdKHR :: VkDriverId

File: vulkan.bl

VkConformanceVersionKHR

VkConformanceVersionKHR :: VkConformanceVersion

File: vulkan.bl

VkPhysicalDeviceDriverPropertiesKHR

VkPhysicalDeviceDriverPropertiesKHR :: VkPhysicalDeviceDriverProperties

File: vulkan.bl

VkShaderFloatControlsIndependenceKHR

VkShaderFloatControlsIndependenceKHR :: VkShaderFloatControlsIndependence

File: vulkan.bl

VkPhysicalDeviceFloatControlsPropertiesKHR

VkPhysicalDeviceFloatControlsPropertiesKHR :: VkPhysicalDeviceFloatControlsProperties

File: vulkan.bl

VkResolveModeFlagBitsKHR

VkResolveModeFlagBitsKHR :: VkResolveModeFlagBits

File: vulkan.bl

VkResolveModeFlagsKHR

VkResolveModeFlagsKHR :: VkResolveModeFlags

File: vulkan.bl

VkSubpassDescriptionDepthStencilResolveKHR

VkSubpassDescriptionDepthStencilResolveKHR :: VkSubpassDescriptionDepthStencilResolve

File: vulkan.bl

VkPhysicalDeviceDepthStencilResolvePropertiesKHR

VkPhysicalDeviceDepthStencilResolvePropertiesKHR :: VkPhysicalDeviceDepthStencilResolveProperties

File: vulkan.bl

VkSemaphoreTypeKHR

VkSemaphoreTypeKHR :: VkSemaphoreType

File: vulkan.bl

VkSemaphoreWaitFlagBitsKHR

VkSemaphoreWaitFlagBitsKHR :: VkSemaphoreWaitFlagBits

File: vulkan.bl

VkSemaphoreWaitFlagsKHR

VkSemaphoreWaitFlagsKHR :: VkSemaphoreWaitFlags

File: vulkan.bl

VkPhysicalDeviceTimelineSemaphoreFeaturesKHR

VkPhysicalDeviceTimelineSemaphoreFeaturesKHR :: VkPhysicalDeviceTimelineSemaphoreFeatures

File: vulkan.bl

VkPhysicalDeviceTimelineSemaphorePropertiesKHR

VkPhysicalDeviceTimelineSemaphorePropertiesKHR :: VkPhysicalDeviceTimelineSemaphoreProperties

File: vulkan.bl

VkSemaphoreTypeCreateInfoKHR

VkSemaphoreTypeCreateInfoKHR :: VkSemaphoreTypeCreateInfo

File: vulkan.bl

VkTimelineSemaphoreSubmitInfoKHR

VkTimelineSemaphoreSubmitInfoKHR :: VkTimelineSemaphoreSubmitInfo

File: vulkan.bl

VkSemaphoreWaitInfoKHR

VkSemaphoreWaitInfoKHR :: VkSemaphoreWaitInfo

File: vulkan.bl

VkSemaphoreSignalInfoKHR

VkSemaphoreSignalInfoKHR :: VkSemaphoreSignalInfo

File: vulkan.bl

PFN_vkGetSemaphoreCounterValueKHR

PFN_vkGetSemaphoreCounterValueKHR :: *fn (: VkDevice, : VkSemaphore, : *u64) VkResult

File: vulkan.bl

PFN_vkWaitSemaphoresKHR

PFN_vkWaitSemaphoresKHR :: *fn (: VkDevice, : *VkSemaphoreWaitInfo, : u64) VkResult

File: vulkan.bl

PFN_vkSignalSemaphoreKHR

PFN_vkSignalSemaphoreKHR :: *fn (: VkDevice, : *VkSemaphoreSignalInfo) VkResult

File: vulkan.bl

vkGetSemaphoreCounterValueKHR

vkGetSemaphoreCounterValueKHR :: fn (device: VkDevice, semaphore: VkSemaphore, pValue: *u64) VkResult #extern

File: vulkan.bl

vkWaitSemaphoresKHR

vkWaitSemaphoresKHR :: fn (device: VkDevice, pWaitInfo: *VkSemaphoreWaitInfo, timeout: u64) VkResult #extern

File: vulkan.bl

vkSignalSemaphoreKHR

vkSignalSemaphoreKHR :: fn (device: VkDevice, pSignalInfo: *VkSemaphoreSignalInfo) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceVulkanMemoryModelFeaturesKHR

VkPhysicalDeviceVulkanMemoryModelFeaturesKHR :: VkPhysicalDeviceVulkanMemoryModelFeatures

File: vulkan.bl

VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR

VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR :: VkPhysicalDeviceShaderTerminateInvocationFeatures

File: vulkan.bl

VkFragmentShadingRateCombinerOpKHR

VkFragmentShadingRateCombinerOpKHR :: enum s32 {
    VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0;
    VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1;
    VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2;
    VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3;
    VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4;
    VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkFragmentShadingRateAttachmentInfoKHR

VkFragmentShadingRateAttachmentInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pFragmentShadingRateAttachment: *VkAttachmentReference2;
    shadingRateAttachmentTexelSize: VkExtent2D;
}

File: vulkan.bl

VkPipelineFragmentShadingRateStateCreateInfoKHR

VkPipelineFragmentShadingRateStateCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fragmentSize: VkExtent2D;
    combinerOps: ;
}

File: vulkan.bl

VkPhysicalDeviceFragmentShadingRateFeaturesKHR

VkPhysicalDeviceFragmentShadingRateFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipelineFragmentShadingRate: VkBool32;
    primitiveFragmentShadingRate: VkBool32;
    attachmentFragmentShadingRate: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceFragmentShadingRatePropertiesKHR

VkPhysicalDeviceFragmentShadingRatePropertiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    minFragmentShadingRateAttachmentTexelSize: VkExtent2D;
    maxFragmentShadingRateAttachmentTexelSize: VkExtent2D;
    maxFragmentShadingRateAttachmentTexelSizeAspectRatio: u32;
    primitiveFragmentShadingRateWithMultipleViewports: VkBool32;
    layeredShadingRateAttachments: VkBool32;
    fragmentShadingRateNonTrivialCombinerOps: VkBool32;
    maxFragmentSize: VkExtent2D;
    maxFragmentSizeAspectRatio: u32;
    maxFragmentShadingRateCoverageSamples: u32;
    maxFragmentShadingRateRasterizationSamples: VkSampleCountFlagBits;
    fragmentShadingRateWithShaderDepthStencilWrites: VkBool32;
    fragmentShadingRateWithSampleMask: VkBool32;
    fragmentShadingRateWithShaderSampleMask: VkBool32;
    fragmentShadingRateWithConservativeRasterization: VkBool32;
    fragmentShadingRateWithFragmentShaderInterlock: VkBool32;
    fragmentShadingRateWithCustomSampleLocations: VkBool32;
    fragmentShadingRateStrictMultiplyCombiner: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceFragmentShadingRateKHR

VkPhysicalDeviceFragmentShadingRateKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    sampleCounts: VkSampleCountFlags;
    fragmentSize: VkExtent2D;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR

PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR :: *fn (: VkPhysicalDevice, : *u32, : *VkPhysicalDeviceFragmentShadingRateKHR) VkResult

File: vulkan.bl

PFN_vkCmdSetFragmentShadingRateKHR

PFN_vkCmdSetFragmentShadingRateKHR :: *fn (: VkCommandBuffer, : *VkExtent2D, : ) 

File: vulkan.bl

vkGetPhysicalDeviceFragmentShadingRatesKHR

vkGetPhysicalDeviceFragmentShadingRatesKHR :: fn (physicalDevice: VkPhysicalDevice, pFragmentShadingRateCount: *u32, pFragmentShadingRates: *VkPhysicalDeviceFragmentShadingRateKHR) VkResult #extern

File: vulkan.bl

vkCmdSetFragmentShadingRateKHR

vkCmdSetFragmentShadingRateKHR :: fn (commandBuffer: VkCommandBuffer, pFragmentSize: *VkExtent2D, combinerOps: )  #extern

File: vulkan.bl

VkSurfaceProtectedCapabilitiesKHR

VkSurfaceProtectedCapabilitiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    supportsProtected: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR

VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR :: VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures

File: vulkan.bl

VkAttachmentReferenceStencilLayoutKHR

VkAttachmentReferenceStencilLayoutKHR :: VkAttachmentReferenceStencilLayout

File: vulkan.bl

VkAttachmentDescriptionStencilLayoutKHR

VkAttachmentDescriptionStencilLayoutKHR :: VkAttachmentDescriptionStencilLayout

File: vulkan.bl

VkPhysicalDevicePresentWaitFeaturesKHR

VkPhysicalDevicePresentWaitFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    presentWait: VkBool32;
}

File: vulkan.bl

PFN_vkWaitForPresentKHR

PFN_vkWaitForPresentKHR :: *fn (: VkDevice, : VkSwapchainKHR, : u64, : u64) VkResult

File: vulkan.bl

vkWaitForPresentKHR

vkWaitForPresentKHR :: fn (device: VkDevice, swapchain: VkSwapchainKHR, presentId: u64, timeout: u64) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR

VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR :: VkPhysicalDeviceUniformBufferStandardLayoutFeatures

File: vulkan.bl

VkPhysicalDeviceBufferDeviceAddressFeaturesKHR

VkPhysicalDeviceBufferDeviceAddressFeaturesKHR :: VkPhysicalDeviceBufferDeviceAddressFeatures

File: vulkan.bl

VkBufferDeviceAddressInfoKHR

VkBufferDeviceAddressInfoKHR :: VkBufferDeviceAddressInfo

File: vulkan.bl

VkBufferOpaqueCaptureAddressCreateInfoKHR

VkBufferOpaqueCaptureAddressCreateInfoKHR :: VkBufferOpaqueCaptureAddressCreateInfo

File: vulkan.bl

VkMemoryOpaqueCaptureAddressAllocateInfoKHR

VkMemoryOpaqueCaptureAddressAllocateInfoKHR :: VkMemoryOpaqueCaptureAddressAllocateInfo

File: vulkan.bl

VkDeviceMemoryOpaqueCaptureAddressInfoKHR

VkDeviceMemoryOpaqueCaptureAddressInfoKHR :: VkDeviceMemoryOpaqueCaptureAddressInfo

File: vulkan.bl

PFN_vkGetBufferDeviceAddressKHR

PFN_vkGetBufferDeviceAddressKHR :: *fn (: VkDevice, : *VkBufferDeviceAddressInfo) VkDeviceAddress

File: vulkan.bl

PFN_vkGetBufferOpaqueCaptureAddressKHR

PFN_vkGetBufferOpaqueCaptureAddressKHR :: *fn (: VkDevice, : *VkBufferDeviceAddressInfo) u64

File: vulkan.bl

PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR

PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR :: *fn (: VkDevice, : *VkDeviceMemoryOpaqueCaptureAddressInfo) u64

File: vulkan.bl

vkGetBufferDeviceAddressKHR

vkGetBufferDeviceAddressKHR :: fn (device: VkDevice, pInfo: *VkBufferDeviceAddressInfo) VkDeviceAddress #extern

File: vulkan.bl

vkGetBufferOpaqueCaptureAddressKHR

vkGetBufferOpaqueCaptureAddressKHR :: fn (device: VkDevice, pInfo: *VkBufferDeviceAddressInfo) u64 #extern

File: vulkan.bl

vkGetDeviceMemoryOpaqueCaptureAddressKHR

vkGetDeviceMemoryOpaqueCaptureAddressKHR :: fn (device: VkDevice, pInfo: *VkDeviceMemoryOpaqueCaptureAddressInfo) u64 #extern

File: vulkan.bl

PFN_vkCreateDeferredOperationKHR

PFN_vkCreateDeferredOperationKHR :: *fn (: VkDevice, : *VkAllocationCallbacks, : *VkDeferredOperationKHR) VkResult

File: vulkan.bl

PFN_vkDestroyDeferredOperationKHR

PFN_vkDestroyDeferredOperationKHR :: *fn (: VkDevice, : VkDeferredOperationKHR, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkGetDeferredOperationMaxConcurrencyKHR

PFN_vkGetDeferredOperationMaxConcurrencyKHR :: *fn (: VkDevice, : VkDeferredOperationKHR) u32

File: vulkan.bl

PFN_vkGetDeferredOperationResultKHR

PFN_vkGetDeferredOperationResultKHR :: *fn (: VkDevice, : VkDeferredOperationKHR) VkResult

File: vulkan.bl

PFN_vkDeferredOperationJoinKHR

PFN_vkDeferredOperationJoinKHR :: *fn (: VkDevice, : VkDeferredOperationKHR) VkResult

File: vulkan.bl

vkCreateDeferredOperationKHR

vkCreateDeferredOperationKHR :: fn (device: VkDevice, pAllocator: *VkAllocationCallbacks, pDeferredOperation: *VkDeferredOperationKHR) VkResult #extern

File: vulkan.bl

vkDestroyDeferredOperationKHR

vkDestroyDeferredOperationKHR :: fn (device: VkDevice, operation: VkDeferredOperationKHR, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkGetDeferredOperationMaxConcurrencyKHR

vkGetDeferredOperationMaxConcurrencyKHR :: fn (device: VkDevice, operation: VkDeferredOperationKHR) u32 #extern

File: vulkan.bl

vkGetDeferredOperationResultKHR

vkGetDeferredOperationResultKHR :: fn (device: VkDevice, operation: VkDeferredOperationKHR) VkResult #extern

File: vulkan.bl

vkDeferredOperationJoinKHR

vkDeferredOperationJoinKHR :: fn (device: VkDevice, operation: VkDeferredOperationKHR) VkResult #extern

File: vulkan.bl

VkPipelineExecutableStatisticFormatKHR

VkPipelineExecutableStatisticFormatKHR :: enum s32 {
    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0;
    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1;
    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2;
    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3;
    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR

VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipelineExecutableInfo: VkBool32;
}

File: vulkan.bl

VkPipelineInfoKHR

VkPipelineInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipeline: VkPipeline;
}

File: vulkan.bl

VkPipelineExecutablePropertiesKHR

VkPipelineExecutablePropertiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    stages: VkShaderStageFlags;
    name: ;
    description: ;
    subgroupSize: u32;
}

File: vulkan.bl

VkPipelineExecutableInfoKHR

VkPipelineExecutableInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipeline: VkPipeline;
    executableIndex: u32;
}

File: vulkan.bl

VkPipelineExecutableStatisticValueKHR

VkPipelineExecutableStatisticValueKHR :: union {
    bool_32: VkBool32;
    int_64: s64;
    uint_64: u64;
    float_64: f64;
}

File: vulkan.bl

VkPipelineExecutableStatisticKHR

VkPipelineExecutableStatisticKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    name: ;
    description: ;
    format: VkPipelineExecutableStatisticFormatKHR;
    value: VkPipelineExecutableStatisticValueKHR;
}

File: vulkan.bl

VkPipelineExecutableInternalRepresentationKHR

VkPipelineExecutableInternalRepresentationKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    name: ;
    description: ;
    isText: VkBool32;
    dataSize: usize;
    pData: C.void_ptr;
}

File: vulkan.bl

PFN_vkGetPipelineExecutablePropertiesKHR

PFN_vkGetPipelineExecutablePropertiesKHR :: *fn (: VkDevice, : *VkPipelineInfoKHR, : *u32, : *VkPipelineExecutablePropertiesKHR) VkResult

File: vulkan.bl

PFN_vkGetPipelineExecutableStatisticsKHR

PFN_vkGetPipelineExecutableStatisticsKHR :: *fn (: VkDevice, : *VkPipelineExecutableInfoKHR, : *u32, : *VkPipelineExecutableStatisticKHR) VkResult

File: vulkan.bl

PFN_vkGetPipelineExecutableInternalRepresentationsKHR

PFN_vkGetPipelineExecutableInternalRepresentationsKHR :: *fn (: VkDevice, : *VkPipelineExecutableInfoKHR, : *u32, : *VkPipelineExecutableInternalRepresentationKHR) VkResult

File: vulkan.bl

vkGetPipelineExecutablePropertiesKHR

vkGetPipelineExecutablePropertiesKHR :: fn (device: VkDevice, pPipelineInfo: *VkPipelineInfoKHR, pExecutableCount: *u32, pProperties: *VkPipelineExecutablePropertiesKHR) VkResult #extern

File: vulkan.bl

vkGetPipelineExecutableStatisticsKHR

vkGetPipelineExecutableStatisticsKHR :: fn (device: VkDevice, pExecutableInfo: *VkPipelineExecutableInfoKHR, pStatisticCount: *u32, pStatistics: *VkPipelineExecutableStatisticKHR) VkResult #extern

File: vulkan.bl

vkGetPipelineExecutableInternalRepresentationsKHR

vkGetPipelineExecutableInternalRepresentationsKHR :: fn (device: VkDevice, pExecutableInfo: *VkPipelineExecutableInfoKHR, pInternalRepresentationCount: *u32, pInternalRepresentations: *VkPipelineExecutableInternalRepresentationKHR) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR

VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR :: VkPhysicalDeviceShaderIntegerDotProductFeatures

File: vulkan.bl

VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR

VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR :: VkPhysicalDeviceShaderIntegerDotProductProperties

File: vulkan.bl

VkPipelineLibraryCreateInfoKHR

VkPipelineLibraryCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    libraryCount: u32;
    pLibraries: *VkPipeline;
}

File: vulkan.bl

VkPresentIdKHR

VkPresentIdKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    swapchainCount: u32;
    pPresentIds: *u64;
}

File: vulkan.bl

VkPhysicalDevicePresentIdFeaturesKHR

VkPhysicalDevicePresentIdFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    presentId: VkBool32;
}

File: vulkan.bl

VkPipelineStageFlags2KHR

VkPipelineStageFlags2KHR :: VkPipelineStageFlags2

File: vulkan.bl

VkPipelineStageFlagBits2KHR

VkPipelineStageFlagBits2KHR :: VkPipelineStageFlagBits2

File: vulkan.bl

VkAccessFlags2KHR

VkAccessFlags2KHR :: VkAccessFlags2

File: vulkan.bl

VkAccessFlagBits2KHR

VkAccessFlagBits2KHR :: VkAccessFlagBits2

File: vulkan.bl

VkSubmitFlagBitsKHR

VkSubmitFlagBitsKHR :: VkSubmitFlagBits

File: vulkan.bl

VkSubmitFlagsKHR

VkSubmitFlagsKHR :: VkSubmitFlags

File: vulkan.bl

VkMemoryBarrier2KHR

VkMemoryBarrier2KHR :: VkMemoryBarrier2

File: vulkan.bl

VkBufferMemoryBarrier2KHR

VkBufferMemoryBarrier2KHR :: VkBufferMemoryBarrier2

File: vulkan.bl

VkImageMemoryBarrier2KHR

VkImageMemoryBarrier2KHR :: VkImageMemoryBarrier2

File: vulkan.bl

VkDependencyInfoKHR

VkDependencyInfoKHR :: VkDependencyInfo

File: vulkan.bl

VkSubmitInfo2KHR

VkSubmitInfo2KHR :: VkSubmitInfo2

File: vulkan.bl

VkSemaphoreSubmitInfoKHR

VkSemaphoreSubmitInfoKHR :: VkSemaphoreSubmitInfo

File: vulkan.bl

VkCommandBufferSubmitInfoKHR

VkCommandBufferSubmitInfoKHR :: VkCommandBufferSubmitInfo

File: vulkan.bl

VkPhysicalDeviceSynchronization2FeaturesKHR

VkPhysicalDeviceSynchronization2FeaturesKHR :: VkPhysicalDeviceSynchronization2Features

File: vulkan.bl

VkQueueFamilyCheckpointProperties2NV

VkQueueFamilyCheckpointProperties2NV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    checkpointExecutionStageMask: VkPipelineStageFlags2;
}

File: vulkan.bl

VkCheckpointData2NV

VkCheckpointData2NV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    stage: VkPipelineStageFlags2;
    pCheckpointMarker: C.void_ptr;
}

File: vulkan.bl

PFN_vkCmdSetEvent2KHR

PFN_vkCmdSetEvent2KHR :: *fn (: VkCommandBuffer, : VkEvent, : *VkDependencyInfo) 

File: vulkan.bl

PFN_vkCmdResetEvent2KHR

PFN_vkCmdResetEvent2KHR :: *fn (: VkCommandBuffer, : VkEvent, : VkPipelineStageFlags2) 

File: vulkan.bl

PFN_vkCmdWaitEvents2KHR

PFN_vkCmdWaitEvents2KHR :: *fn (: VkCommandBuffer, : u32, : *VkEvent, : *VkDependencyInfo) 

File: vulkan.bl

PFN_vkCmdPipelineBarrier2KHR

PFN_vkCmdPipelineBarrier2KHR :: *fn (: VkCommandBuffer, : *VkDependencyInfo) 

File: vulkan.bl

PFN_vkCmdWriteTimestamp2KHR

PFN_vkCmdWriteTimestamp2KHR :: *fn (: VkCommandBuffer, : VkPipelineStageFlags2, : VkQueryPool, : u32) 

File: vulkan.bl

PFN_vkQueueSubmit2KHR

PFN_vkQueueSubmit2KHR :: *fn (: VkQueue, : u32, : *VkSubmitInfo2, : VkFence) VkResult

File: vulkan.bl

PFN_vkCmdWriteBufferMarker2AMD

PFN_vkCmdWriteBufferMarker2AMD :: *fn (: VkCommandBuffer, : VkPipelineStageFlags2, : VkBuffer, : VkDeviceSize, : u32) 

File: vulkan.bl

PFN_vkGetQueueCheckpointData2NV

PFN_vkGetQueueCheckpointData2NV :: *fn (: VkQueue, : *u32, : *VkCheckpointData2NV) 

File: vulkan.bl

vkCmdSetEvent2KHR

vkCmdSetEvent2KHR :: fn (commandBuffer: VkCommandBuffer, event: VkEvent, pDependencyInfo: *VkDependencyInfo)  #extern

File: vulkan.bl

vkCmdResetEvent2KHR

vkCmdResetEvent2KHR :: fn (commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags2)  #extern

File: vulkan.bl

vkCmdWaitEvents2KHR

vkCmdWaitEvents2KHR :: fn (commandBuffer: VkCommandBuffer, eventCount: u32, pEvents: *VkEvent, pDependencyInfos: *VkDependencyInfo)  #extern

File: vulkan.bl

vkCmdPipelineBarrier2KHR

vkCmdPipelineBarrier2KHR :: fn (commandBuffer: VkCommandBuffer, pDependencyInfo: *VkDependencyInfo)  #extern

File: vulkan.bl

vkCmdWriteTimestamp2KHR

vkCmdWriteTimestamp2KHR :: fn (commandBuffer: VkCommandBuffer, stage: VkPipelineStageFlags2, queryPool: VkQueryPool, query: u32)  #extern

File: vulkan.bl

vkQueueSubmit2KHR

vkQueueSubmit2KHR :: fn (queue: VkQueue, submitCount: u32, pSubmits: *VkSubmitInfo2, fence: VkFence) VkResult #extern

File: vulkan.bl

vkCmdWriteBufferMarker2AMD

vkCmdWriteBufferMarker2AMD :: fn (commandBuffer: VkCommandBuffer, stage: VkPipelineStageFlags2, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, marker: u32)  #extern

File: vulkan.bl

vkGetQueueCheckpointData2NV

vkGetQueueCheckpointData2NV :: fn (queue: VkQueue, pCheckpointDataCount: *u32, pCheckpointData: *VkCheckpointData2NV)  #extern

File: vulkan.bl

VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR

VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fragmentShaderBarycentric: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR

VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    triStripVertexOrderIndependentOfProvokingVertex: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR

VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderSubgroupUniformControlFlow: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR :: VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures

File: vulkan.bl

VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR

VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    workgroupMemoryExplicitLayout: VkBool32;
    workgroupMemoryExplicitLayoutScalarBlockLayout: VkBool32;
    workgroupMemoryExplicitLayout8BitAccess: VkBool32;
    workgroupMemoryExplicitLayout16BitAccess: VkBool32;
}

File: vulkan.bl

VkCopyBufferInfo2KHR

VkCopyBufferInfo2KHR :: VkCopyBufferInfo2

File: vulkan.bl

VkCopyImageInfo2KHR

VkCopyImageInfo2KHR :: VkCopyImageInfo2

File: vulkan.bl

VkCopyBufferToImageInfo2KHR

VkCopyBufferToImageInfo2KHR :: VkCopyBufferToImageInfo2

File: vulkan.bl

VkCopyImageToBufferInfo2KHR

VkCopyImageToBufferInfo2KHR :: VkCopyImageToBufferInfo2

File: vulkan.bl

VkBlitImageInfo2KHR

VkBlitImageInfo2KHR :: VkBlitImageInfo2

File: vulkan.bl

VkResolveImageInfo2KHR

VkResolveImageInfo2KHR :: VkResolveImageInfo2

File: vulkan.bl

VkBufferCopy2KHR

VkBufferCopy2KHR :: VkBufferCopy2

File: vulkan.bl

VkImageCopy2KHR

VkImageCopy2KHR :: VkImageCopy2

File: vulkan.bl

VkImageBlit2KHR

VkImageBlit2KHR :: VkImageBlit2

File: vulkan.bl

VkBufferImageCopy2KHR

VkBufferImageCopy2KHR :: VkBufferImageCopy2

File: vulkan.bl

VkImageResolve2KHR

VkImageResolve2KHR :: VkImageResolve2

File: vulkan.bl

PFN_vkCmdCopyBuffer2KHR

PFN_vkCmdCopyBuffer2KHR :: *fn (: VkCommandBuffer, : *VkCopyBufferInfo2) 

File: vulkan.bl

PFN_vkCmdCopyImage2KHR

PFN_vkCmdCopyImage2KHR :: *fn (: VkCommandBuffer, : *VkCopyImageInfo2) 

File: vulkan.bl

PFN_vkCmdCopyBufferToImage2KHR

PFN_vkCmdCopyBufferToImage2KHR :: *fn (: VkCommandBuffer, : *VkCopyBufferToImageInfo2) 

File: vulkan.bl

PFN_vkCmdCopyImageToBuffer2KHR

PFN_vkCmdCopyImageToBuffer2KHR :: *fn (: VkCommandBuffer, : *VkCopyImageToBufferInfo2) 

File: vulkan.bl

PFN_vkCmdBlitImage2KHR

PFN_vkCmdBlitImage2KHR :: *fn (: VkCommandBuffer, : *VkBlitImageInfo2) 

File: vulkan.bl

PFN_vkCmdResolveImage2KHR

PFN_vkCmdResolveImage2KHR :: *fn (: VkCommandBuffer, : *VkResolveImageInfo2) 

File: vulkan.bl

vkCmdCopyBuffer2KHR

vkCmdCopyBuffer2KHR :: fn (commandBuffer: VkCommandBuffer, pCopyBufferInfo: *VkCopyBufferInfo2)  #extern

File: vulkan.bl

vkCmdCopyImage2KHR

vkCmdCopyImage2KHR :: fn (commandBuffer: VkCommandBuffer, pCopyImageInfo: *VkCopyImageInfo2)  #extern

File: vulkan.bl

vkCmdCopyBufferToImage2KHR

vkCmdCopyBufferToImage2KHR :: fn (commandBuffer: VkCommandBuffer, pCopyBufferToImageInfo: *VkCopyBufferToImageInfo2)  #extern

File: vulkan.bl

vkCmdCopyImageToBuffer2KHR

vkCmdCopyImageToBuffer2KHR :: fn (commandBuffer: VkCommandBuffer, pCopyImageToBufferInfo: *VkCopyImageToBufferInfo2)  #extern

File: vulkan.bl

vkCmdBlitImage2KHR

vkCmdBlitImage2KHR :: fn (commandBuffer: VkCommandBuffer, pBlitImageInfo: *VkBlitImageInfo2)  #extern

File: vulkan.bl

vkCmdResolveImage2KHR

vkCmdResolveImage2KHR :: fn (commandBuffer: VkCommandBuffer, pResolveImageInfo: *VkResolveImageInfo2)  #extern

File: vulkan.bl

VkFormatFeatureFlags2KHR

VkFormatFeatureFlags2KHR :: VkFormatFeatureFlags2

File: vulkan.bl

VkFormatFeatureFlagBits2KHR

VkFormatFeatureFlagBits2KHR :: VkFormatFeatureFlagBits2

File: vulkan.bl

VkFormatProperties3KHR

VkFormatProperties3KHR :: VkFormatProperties3

File: vulkan.bl

VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR

VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    rayTracingMaintenance1: VkBool32;
    rayTracingPipelineTraceRaysIndirect2: VkBool32;
}

File: vulkan.bl

VkTraceRaysIndirectCommand2KHR

VkTraceRaysIndirectCommand2KHR :: struct {
    raygenShaderRecordAddress: VkDeviceAddress;
    raygenShaderRecordSize: VkDeviceSize;
    missShaderBindingTableAddress: VkDeviceAddress;
    missShaderBindingTableSize: VkDeviceSize;
    missShaderBindingTableStride: VkDeviceSize;
    hitShaderBindingTableAddress: VkDeviceAddress;
    hitShaderBindingTableSize: VkDeviceSize;
    hitShaderBindingTableStride: VkDeviceSize;
    callableShaderBindingTableAddress: VkDeviceAddress;
    callableShaderBindingTableSize: VkDeviceSize;
    callableShaderBindingTableStride: VkDeviceSize;
    width: u32;
    height: u32;
    depth: u32;
}

File: vulkan.bl

PFN_vkCmdTraceRaysIndirect2KHR

PFN_vkCmdTraceRaysIndirect2KHR :: *fn (: VkCommandBuffer, : VkDeviceAddress) 

File: vulkan.bl

vkCmdTraceRaysIndirect2KHR

vkCmdTraceRaysIndirect2KHR :: fn (commandBuffer: VkCommandBuffer, indirectDeviceAddress: VkDeviceAddress)  #extern

File: vulkan.bl

VkPhysicalDeviceMaintenance4FeaturesKHR

VkPhysicalDeviceMaintenance4FeaturesKHR :: VkPhysicalDeviceMaintenance4Features

File: vulkan.bl

VkPhysicalDeviceMaintenance4PropertiesKHR

VkPhysicalDeviceMaintenance4PropertiesKHR :: VkPhysicalDeviceMaintenance4Properties

File: vulkan.bl

VkDeviceBufferMemoryRequirementsKHR

VkDeviceBufferMemoryRequirementsKHR :: VkDeviceBufferMemoryRequirements

File: vulkan.bl

VkDeviceImageMemoryRequirementsKHR

VkDeviceImageMemoryRequirementsKHR :: VkDeviceImageMemoryRequirements

File: vulkan.bl

PFN_vkGetDeviceBufferMemoryRequirementsKHR

PFN_vkGetDeviceBufferMemoryRequirementsKHR :: *fn (: VkDevice, : *VkDeviceBufferMemoryRequirements, : *VkMemoryRequirements2) 

File: vulkan.bl

PFN_vkGetDeviceImageMemoryRequirementsKHR

PFN_vkGetDeviceImageMemoryRequirementsKHR :: *fn (: VkDevice, : *VkDeviceImageMemoryRequirements, : *VkMemoryRequirements2) 

File: vulkan.bl

PFN_vkGetDeviceImageSparseMemoryRequirementsKHR

PFN_vkGetDeviceImageSparseMemoryRequirementsKHR :: *fn (: VkDevice, : *VkDeviceImageMemoryRequirements, : *u32, : *VkSparseImageMemoryRequirements2) 

File: vulkan.bl

vkGetDeviceBufferMemoryRequirementsKHR

vkGetDeviceBufferMemoryRequirementsKHR :: fn (device: VkDevice, pInfo: *VkDeviceBufferMemoryRequirements, pMemoryRequirements: *VkMemoryRequirements2)  #extern

File: vulkan.bl

vkGetDeviceImageMemoryRequirementsKHR

vkGetDeviceImageMemoryRequirementsKHR :: fn (device: VkDevice, pInfo: *VkDeviceImageMemoryRequirements, pMemoryRequirements: *VkMemoryRequirements2)  #extern

File: vulkan.bl

vkGetDeviceImageSparseMemoryRequirementsKHR

vkGetDeviceImageSparseMemoryRequirementsKHR :: fn (device: VkDevice, pInfo: *VkDeviceImageMemoryRequirements, pSparseMemoryRequirementCount: *u32, pSparseMemoryRequirements: *VkSparseImageMemoryRequirements2)  #extern

File: vulkan.bl

VkDebugReportObjectTypeEXT

VkDebugReportObjectTypeEXT :: enum s32 {
    VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0;
    VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1;
    VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2;
    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3;
    VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4;
    VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5;
    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6;
    VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7;
    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8;
    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9;
    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10;
    VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11;
    VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12;
    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13;
    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14;
    VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15;
    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16;
    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17;
    VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18;
    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19;
    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20;
    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21;
    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22;
    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23;
    VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24;
    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25;
    VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26;
    VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27;
    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28;
    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29;
    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30;
    VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33;
    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000;
    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000;
    VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000;
    VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001;
    VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000;
    VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000;
    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000;
    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28;
    VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33;
    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000;
    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000;
    VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDebugReportFlagBitsEXT

VkDebugReportFlagBitsEXT :: enum u32 {
    VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1;
    VK_DEBUG_REPORT_WARNING_BIT_EXT = 2;
    VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4;
    VK_DEBUG_REPORT_ERROR_BIT_EXT = 8;
    VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16;
    VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDebugReportFlagsEXT

VkDebugReportFlagsEXT :: VkFlags

File: vulkan.bl

PFN_vkDebugReportCallbackEXT

PFN_vkDebugReportCallbackEXT :: *fn (: VkDebugReportFlagsEXT, : VkDebugReportObjectTypeEXT, : u64, : usize, : s32, : *C.char, : *C.char, : C.void_ptr) VkBool32

File: vulkan.bl

VkDebugReportCallbackCreateInfoEXT

VkDebugReportCallbackCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDebugReportFlagsEXT;
    pfnCallback: PFN_vkDebugReportCallbackEXT;
    pUserData: C.void_ptr;
}

File: vulkan.bl

PFN_vkCreateDebugReportCallbackEXT

PFN_vkCreateDebugReportCallbackEXT :: *fn (: VkInstance, : *VkDebugReportCallbackCreateInfoEXT, : *VkAllocationCallbacks, : *VkDebugReportCallbackEXT) VkResult

File: vulkan.bl

PFN_vkDestroyDebugReportCallbackEXT

PFN_vkDestroyDebugReportCallbackEXT :: *fn (: VkInstance, : VkDebugReportCallbackEXT, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkDebugReportMessageEXT

PFN_vkDebugReportMessageEXT :: *fn (: VkInstance, : VkDebugReportFlagsEXT, : VkDebugReportObjectTypeEXT, : u64, : usize, : s32, : *C.char, : *C.char) 

File: vulkan.bl

vkCreateDebugReportCallbackEXT

vkCreateDebugReportCallbackEXT :: fn (instance: VkInstance, pCreateInfo: *VkDebugReportCallbackCreateInfoEXT, pAllocator: *VkAllocationCallbacks, pCallback: *VkDebugReportCallbackEXT) VkResult #extern

File: vulkan.bl

vkDestroyDebugReportCallbackEXT

vkDestroyDebugReportCallbackEXT :: fn (instance: VkInstance, callback: VkDebugReportCallbackEXT, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkDebugReportMessageEXT

vkDebugReportMessageEXT :: fn (instance: VkInstance, flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, object: u64, location: usize, messageCode: s32, pLayerPrefix: *C.char, pMessage: *C.char)  #extern

File: vulkan.bl

VkRasterizationOrderAMD

VkRasterizationOrderAMD :: enum s32 {
    VK_RASTERIZATION_ORDER_STRICT_AMD = 0;
    VK_RASTERIZATION_ORDER_RELAXED_AMD = 1;
    VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 2147483647;
}

File: vulkan.bl

VkPipelineRasterizationStateRasterizationOrderAMD

VkPipelineRasterizationStateRasterizationOrderAMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    rasterizationOrder: VkRasterizationOrderAMD;
}

File: vulkan.bl

VkDebugMarkerObjectNameInfoEXT

VkDebugMarkerObjectNameInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    objectType: VkDebugReportObjectTypeEXT;
    object: u64;
    pObjectName: *C.char;
}

File: vulkan.bl

VkDebugMarkerObjectTagInfoEXT

VkDebugMarkerObjectTagInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    objectType: VkDebugReportObjectTypeEXT;
    object: u64;
    tagName: u64;
    tagSize: usize;
    pTag: C.void_ptr;
}

File: vulkan.bl

VkDebugMarkerMarkerInfoEXT

VkDebugMarkerMarkerInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pMarkerName: *C.char;
    color: ;
}

File: vulkan.bl

PFN_vkDebugMarkerSetObjectTagEXT

PFN_vkDebugMarkerSetObjectTagEXT :: *fn (: VkDevice, : *VkDebugMarkerObjectTagInfoEXT) VkResult

File: vulkan.bl

PFN_vkDebugMarkerSetObjectNameEXT

PFN_vkDebugMarkerSetObjectNameEXT :: *fn (: VkDevice, : *VkDebugMarkerObjectNameInfoEXT) VkResult

File: vulkan.bl

PFN_vkCmdDebugMarkerBeginEXT

PFN_vkCmdDebugMarkerBeginEXT :: *fn (: VkCommandBuffer, : *VkDebugMarkerMarkerInfoEXT) 

File: vulkan.bl

PFN_vkCmdDebugMarkerEndEXT

PFN_vkCmdDebugMarkerEndEXT :: *fn (: VkCommandBuffer) 

File: vulkan.bl

PFN_vkCmdDebugMarkerInsertEXT

PFN_vkCmdDebugMarkerInsertEXT :: *fn (: VkCommandBuffer, : *VkDebugMarkerMarkerInfoEXT) 

File: vulkan.bl

vkDebugMarkerSetObjectTagEXT

vkDebugMarkerSetObjectTagEXT :: fn (device: VkDevice, pTagInfo: *VkDebugMarkerObjectTagInfoEXT) VkResult #extern

File: vulkan.bl

vkDebugMarkerSetObjectNameEXT

vkDebugMarkerSetObjectNameEXT :: fn (device: VkDevice, pNameInfo: *VkDebugMarkerObjectNameInfoEXT) VkResult #extern

File: vulkan.bl

vkCmdDebugMarkerBeginEXT

vkCmdDebugMarkerBeginEXT :: fn (commandBuffer: VkCommandBuffer, pMarkerInfo: *VkDebugMarkerMarkerInfoEXT)  #extern

File: vulkan.bl

vkCmdDebugMarkerEndEXT

vkCmdDebugMarkerEndEXT :: fn (commandBuffer: VkCommandBuffer)  #extern

File: vulkan.bl

vkCmdDebugMarkerInsertEXT

vkCmdDebugMarkerInsertEXT :: fn (commandBuffer: VkCommandBuffer, pMarkerInfo: *VkDebugMarkerMarkerInfoEXT)  #extern

File: vulkan.bl

VkDedicatedAllocationImageCreateInfoNV

VkDedicatedAllocationImageCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    dedicatedAllocation: VkBool32;
}

File: vulkan.bl

VkDedicatedAllocationBufferCreateInfoNV

VkDedicatedAllocationBufferCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    dedicatedAllocation: VkBool32;
}

File: vulkan.bl

VkDedicatedAllocationMemoryAllocateInfoNV

VkDedicatedAllocationMemoryAllocateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    image: VkImage;
    buffer: VkBuffer;
}

File: vulkan.bl

VkPipelineRasterizationStateStreamCreateFlagsEXT

VkPipelineRasterizationStateStreamCreateFlagsEXT :: VkFlags

File: vulkan.bl

VkPhysicalDeviceTransformFeedbackFeaturesEXT

VkPhysicalDeviceTransformFeedbackFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    transformFeedback: VkBool32;
    geometryStreams: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceTransformFeedbackPropertiesEXT

VkPhysicalDeviceTransformFeedbackPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxTransformFeedbackStreams: u32;
    maxTransformFeedbackBuffers: u32;
    maxTransformFeedbackBufferSize: VkDeviceSize;
    maxTransformFeedbackStreamDataSize: u32;
    maxTransformFeedbackBufferDataSize: u32;
    maxTransformFeedbackBufferDataStride: u32;
    transformFeedbackQueries: VkBool32;
    transformFeedbackStreamsLinesTriangles: VkBool32;
    transformFeedbackRasterizationStreamSelect: VkBool32;
    transformFeedbackDraw: VkBool32;
}

File: vulkan.bl

VkPipelineRasterizationStateStreamCreateInfoEXT

VkPipelineRasterizationStateStreamCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineRasterizationStateStreamCreateFlagsEXT;
    rasterizationStream: u32;
}

File: vulkan.bl

PFN_vkCmdBindTransformFeedbackBuffersEXT

PFN_vkCmdBindTransformFeedbackBuffersEXT :: *fn (: VkCommandBuffer, : u32, : u32, : *VkBuffer, : *VkDeviceSize, : *VkDeviceSize) 

File: vulkan.bl

PFN_vkCmdBeginTransformFeedbackEXT

PFN_vkCmdBeginTransformFeedbackEXT :: *fn (: VkCommandBuffer, : u32, : u32, : *VkBuffer, : *VkDeviceSize) 

File: vulkan.bl

PFN_vkCmdEndTransformFeedbackEXT

PFN_vkCmdEndTransformFeedbackEXT :: *fn (: VkCommandBuffer, : u32, : u32, : *VkBuffer, : *VkDeviceSize) 

File: vulkan.bl

PFN_vkCmdBeginQueryIndexedEXT

PFN_vkCmdBeginQueryIndexedEXT :: *fn (: VkCommandBuffer, : VkQueryPool, : u32, : VkQueryControlFlags, : u32) 

File: vulkan.bl

PFN_vkCmdEndQueryIndexedEXT

PFN_vkCmdEndQueryIndexedEXT :: *fn (: VkCommandBuffer, : VkQueryPool, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawIndirectByteCountEXT

PFN_vkCmdDrawIndirectByteCountEXT :: *fn (: VkCommandBuffer, : u32, : u32, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

vkCmdBindTransformFeedbackBuffersEXT

vkCmdBindTransformFeedbackBuffersEXT :: fn (commandBuffer: VkCommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: *VkBuffer, pOffsets: *VkDeviceSize, pSizes: *VkDeviceSize)  #extern

File: vulkan.bl

vkCmdBeginTransformFeedbackEXT

vkCmdBeginTransformFeedbackEXT :: fn (commandBuffer: VkCommandBuffer, firstCounterBuffer: u32, counterBufferCount: u32, pCounterBuffers: *VkBuffer, pCounterBufferOffsets: *VkDeviceSize)  #extern

File: vulkan.bl

vkCmdEndTransformFeedbackEXT

vkCmdEndTransformFeedbackEXT :: fn (commandBuffer: VkCommandBuffer, firstCounterBuffer: u32, counterBufferCount: u32, pCounterBuffers: *VkBuffer, pCounterBufferOffsets: *VkDeviceSize)  #extern

File: vulkan.bl

vkCmdBeginQueryIndexedEXT

vkCmdBeginQueryIndexedEXT :: fn (commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: u32, flags: VkQueryControlFlags, index: u32)  #extern

File: vulkan.bl

vkCmdEndQueryIndexedEXT

vkCmdEndQueryIndexedEXT :: fn (commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: u32, index: u32)  #extern

File: vulkan.bl

vkCmdDrawIndirectByteCountEXT

vkCmdDrawIndirectByteCountEXT :: fn (commandBuffer: VkCommandBuffer, instanceCount: u32, firstInstance: u32, counterBuffer: VkBuffer, counterBufferOffset: VkDeviceSize, counterOffset: u32, vertexStride: u32)  #extern

File: vulkan.bl

VkCuModuleCreateInfoNVX

VkCuModuleCreateInfoNVX :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    dataSize: usize;
    pData: C.void_ptr;
}

File: vulkan.bl

VkCuFunctionCreateInfoNVX

VkCuFunctionCreateInfoNVX :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    module: VkCuModuleNVX;
    pName: *C.char;
}

File: vulkan.bl

VkCuLaunchInfoNVX

VkCuLaunchInfoNVX :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    function: VkCuFunctionNVX;
    gridDimX: u32;
    gridDimY: u32;
    gridDimZ: u32;
    blockDimX: u32;
    blockDimY: u32;
    blockDimZ: u32;
    sharedMemBytes: u32;
    paramCount: usize;
    pParams: *C.void_ptr;
    extraCount: usize;
    pExtras: *C.void_ptr;
}

File: vulkan.bl

PFN_vkCreateCuModuleNVX

PFN_vkCreateCuModuleNVX :: *fn (: VkDevice, : *VkCuModuleCreateInfoNVX, : *VkAllocationCallbacks, : *VkCuModuleNVX) VkResult

File: vulkan.bl

PFN_vkCreateCuFunctionNVX

PFN_vkCreateCuFunctionNVX :: *fn (: VkDevice, : *VkCuFunctionCreateInfoNVX, : *VkAllocationCallbacks, : *VkCuFunctionNVX) VkResult

File: vulkan.bl

PFN_vkDestroyCuModuleNVX

PFN_vkDestroyCuModuleNVX :: *fn (: VkDevice, : VkCuModuleNVX, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkDestroyCuFunctionNVX

PFN_vkDestroyCuFunctionNVX :: *fn (: VkDevice, : VkCuFunctionNVX, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCmdCuLaunchKernelNVX

PFN_vkCmdCuLaunchKernelNVX :: *fn (: VkCommandBuffer, : *VkCuLaunchInfoNVX) 

File: vulkan.bl

vkCreateCuModuleNVX

vkCreateCuModuleNVX :: fn (device: VkDevice, pCreateInfo: *VkCuModuleCreateInfoNVX, pAllocator: *VkAllocationCallbacks, pModule: *VkCuModuleNVX) VkResult #extern

File: vulkan.bl

vkCreateCuFunctionNVX

vkCreateCuFunctionNVX :: fn (device: VkDevice, pCreateInfo: *VkCuFunctionCreateInfoNVX, pAllocator: *VkAllocationCallbacks, pFunction: *VkCuFunctionNVX) VkResult #extern

File: vulkan.bl

vkDestroyCuModuleNVX

vkDestroyCuModuleNVX :: fn (device: VkDevice, module: VkCuModuleNVX, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkDestroyCuFunctionNVX

vkDestroyCuFunctionNVX :: fn (device: VkDevice, function: VkCuFunctionNVX, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCmdCuLaunchKernelNVX

vkCmdCuLaunchKernelNVX :: fn (commandBuffer: VkCommandBuffer, pLaunchInfo: *VkCuLaunchInfoNVX)  #extern

File: vulkan.bl

VkImageViewHandleInfoNVX

VkImageViewHandleInfoNVX :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageView: VkImageView;
    descriptorType: VkDescriptorType;
    sampler: VkSampler;
}

File: vulkan.bl

VkImageViewAddressPropertiesNVX

VkImageViewAddressPropertiesNVX :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceAddress: VkDeviceAddress;
    size: VkDeviceSize;
}

File: vulkan.bl

PFN_vkGetImageViewHandleNVX

PFN_vkGetImageViewHandleNVX :: *fn (: VkDevice, : *VkImageViewHandleInfoNVX) u32

File: vulkan.bl

PFN_vkGetImageViewAddressNVX

PFN_vkGetImageViewAddressNVX :: *fn (: VkDevice, : VkImageView, : *VkImageViewAddressPropertiesNVX) VkResult

File: vulkan.bl

vkGetImageViewHandleNVX

vkGetImageViewHandleNVX :: fn (device: VkDevice, pInfo: *VkImageViewHandleInfoNVX) u32 #extern

File: vulkan.bl

vkGetImageViewAddressNVX

vkGetImageViewAddressNVX :: fn (device: VkDevice, imageView: VkImageView, pProperties: *VkImageViewAddressPropertiesNVX) VkResult #extern

File: vulkan.bl

PFN_vkCmdDrawIndirectCountAMD

PFN_vkCmdDrawIndirectCountAMD :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawIndexedIndirectCountAMD

PFN_vkCmdDrawIndexedIndirectCountAMD :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

vkCmdDrawIndirectCountAMD

vkCmdDrawIndirectCountAMD :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: u32, stride: u32)  #extern

File: vulkan.bl

vkCmdDrawIndexedIndirectCountAMD

vkCmdDrawIndexedIndirectCountAMD :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: u32, stride: u32)  #extern

File: vulkan.bl

VkTextureLODGatherFormatPropertiesAMD

VkTextureLODGatherFormatPropertiesAMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    supportsTextureGatherLODBiasAMD: VkBool32;
}

File: vulkan.bl

VkShaderInfoTypeAMD

VkShaderInfoTypeAMD :: enum s32 {
    VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0;
    VK_SHADER_INFO_TYPE_BINARY_AMD = 1;
    VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2;
    VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 2147483647;
}

File: vulkan.bl

VkShaderResourceUsageAMD

VkShaderResourceUsageAMD :: struct {
    numUsedVgprs: u32;
    numUsedSgprs: u32;
    ldsSizePerLocalWorkGroup: u32;
    ldsUsageSizeInBytes: usize;
    scratchMemUsageInBytes: usize;
}

File: vulkan.bl

VkShaderStatisticsInfoAMD

VkShaderStatisticsInfoAMD :: struct {
    shaderStageMask: VkShaderStageFlags;
    resourceUsage: VkShaderResourceUsageAMD;
    numPhysicalVgprs: u32;
    numPhysicalSgprs: u32;
    numAvailableVgprs: u32;
    numAvailableSgprs: u32;
    computeWorkGroupSize: ;
}

File: vulkan.bl

PFN_vkGetShaderInfoAMD

PFN_vkGetShaderInfoAMD :: *fn (: VkDevice, : VkPipeline, : VkShaderStageFlagBits, : VkShaderInfoTypeAMD, : *usize, : C.void_ptr) VkResult

File: vulkan.bl

vkGetShaderInfoAMD

vkGetShaderInfoAMD :: fn (device: VkDevice, pipeline: VkPipeline, shaderStage: VkShaderStageFlagBits, infoType: VkShaderInfoTypeAMD, pInfoSize: *usize, pInfo: C.void_ptr) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceCornerSampledImageFeaturesNV

VkPhysicalDeviceCornerSampledImageFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    cornerSampledImage: VkBool32;
}

File: vulkan.bl

VkExternalMemoryHandleTypeFlagBitsNV

VkExternalMemoryHandleTypeFlagBitsNV :: enum s32 {
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8;
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkExternalMemoryHandleTypeFlagsNV

VkExternalMemoryHandleTypeFlagsNV :: VkFlags

File: vulkan.bl

VkExternalMemoryFeatureFlagBitsNV

VkExternalMemoryFeatureFlagBitsNV :: enum s32 {
    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1;
    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2;
    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4;
    VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkExternalMemoryFeatureFlagsNV

VkExternalMemoryFeatureFlagsNV :: VkFlags

File: vulkan.bl

VkExternalImageFormatPropertiesNV

VkExternalImageFormatPropertiesNV :: struct {
    imageFormatProperties: VkImageFormatProperties;
    externalMemoryFeatures: VkExternalMemoryFeatureFlagsNV;
    exportFromImportedHandleTypes: VkExternalMemoryHandleTypeFlagsNV;
    compatibleHandleTypes: VkExternalMemoryHandleTypeFlagsNV;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV

PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV :: *fn (: VkPhysicalDevice, : VkFormat, : VkImageType, : VkImageTiling, : VkImageUsageFlags, : VkImageCreateFlags, : VkExternalMemoryHandleTypeFlagsNV, : *VkExternalImageFormatPropertiesNV) VkResult

File: vulkan.bl

vkGetPhysicalDeviceExternalImageFormatPropertiesNV

vkGetPhysicalDeviceExternalImageFormatPropertiesNV :: fn (physicalDevice: VkPhysicalDevice, format: VkFormat, t: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, externalHandleType: VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: *VkExternalImageFormatPropertiesNV) VkResult #extern

File: vulkan.bl

VkExternalMemoryImageCreateInfoNV

VkExternalMemoryImageCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleTypes: VkExternalMemoryHandleTypeFlagsNV;
}

File: vulkan.bl

VkExportMemoryAllocateInfoNV

VkExportMemoryAllocateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleTypes: VkExternalMemoryHandleTypeFlagsNV;
}

File: vulkan.bl

VkValidationCheckEXT

VkValidationCheckEXT :: enum s32 {
    VK_VALIDATION_CHECK_ALL_EXT = 0;
    VK_VALIDATION_CHECK_SHADERS_EXT = 1;
    VK_VALIDATION_CHECK_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkValidationFlagsEXT

VkValidationFlagsEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    disabledValidationCheckCount: u32;
    pDisabledValidationChecks: *VkValidationCheckEXT;
}

File: vulkan.bl

VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT

VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT :: VkPhysicalDeviceTextureCompressionASTCHDRFeatures

File: vulkan.bl

VkImageViewASTCDecodeModeEXT

VkImageViewASTCDecodeModeEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    decodeMode: VkFormat;
}

File: vulkan.bl

VkPhysicalDeviceASTCDecodeFeaturesEXT

VkPhysicalDeviceASTCDecodeFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    decodeModeSharedExponent: VkBool32;
}

File: vulkan.bl

VkPipelineRobustnessBufferBehaviorEXT

VkPipelineRobustnessBufferBehaviorEXT :: enum s32 {
    VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0;
    VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1;
    VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2;
    VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3;
    VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkPipelineRobustnessImageBehaviorEXT

VkPipelineRobustnessImageBehaviorEXT :: enum s32 {
    VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0;
    VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1;
    VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2;
    VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3;
    VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkPhysicalDevicePipelineRobustnessFeaturesEXT

VkPhysicalDevicePipelineRobustnessFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipelineRobustness: VkBool32;
}

File: vulkan.bl

VkPhysicalDevicePipelineRobustnessPropertiesEXT

VkPhysicalDevicePipelineRobustnessPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    defaultRobustnessStorageBuffers: VkPipelineRobustnessBufferBehaviorEXT;
    defaultRobustnessUniformBuffers: VkPipelineRobustnessBufferBehaviorEXT;
    defaultRobustnessVertexInputs: VkPipelineRobustnessBufferBehaviorEXT;
    defaultRobustnessImages: VkPipelineRobustnessImageBehaviorEXT;
}

File: vulkan.bl

VkPipelineRobustnessCreateInfoEXT

VkPipelineRobustnessCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    storageBuffers: VkPipelineRobustnessBufferBehaviorEXT;
    uniformBuffers: VkPipelineRobustnessBufferBehaviorEXT;
    vertexInputs: VkPipelineRobustnessBufferBehaviorEXT;
    images: VkPipelineRobustnessImageBehaviorEXT;
}

File: vulkan.bl

VkConditionalRenderingFlagBitsEXT

VkConditionalRenderingFlagBitsEXT :: enum u32 {
    VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1;
    VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkConditionalRenderingFlagsEXT

VkConditionalRenderingFlagsEXT :: VkFlags

File: vulkan.bl

VkConditionalRenderingBeginInfoEXT

VkConditionalRenderingBeginInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    buffer: VkBuffer;
    offset: VkDeviceSize;
    flags: VkConditionalRenderingFlagsEXT;
}

File: vulkan.bl

VkPhysicalDeviceConditionalRenderingFeaturesEXT

VkPhysicalDeviceConditionalRenderingFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    conditionalRendering: VkBool32;
    inheritedConditionalRendering: VkBool32;
}

File: vulkan.bl

VkCommandBufferInheritanceConditionalRenderingInfoEXT

VkCommandBufferInheritanceConditionalRenderingInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    conditionalRenderingEnable: VkBool32;
}

File: vulkan.bl

PFN_vkCmdBeginConditionalRenderingEXT

PFN_vkCmdBeginConditionalRenderingEXT :: *fn (: VkCommandBuffer, : *VkConditionalRenderingBeginInfoEXT) 

File: vulkan.bl

PFN_vkCmdEndConditionalRenderingEXT

PFN_vkCmdEndConditionalRenderingEXT :: *fn (: VkCommandBuffer) 

File: vulkan.bl

vkCmdBeginConditionalRenderingEXT

vkCmdBeginConditionalRenderingEXT :: fn (commandBuffer: VkCommandBuffer, pConditionalRenderingBegin: *VkConditionalRenderingBeginInfoEXT)  #extern

File: vulkan.bl

vkCmdEndConditionalRenderingEXT

vkCmdEndConditionalRenderingEXT :: fn (commandBuffer: VkCommandBuffer)  #extern

File: vulkan.bl

VkViewportWScalingNV

VkViewportWScalingNV :: struct {
    xcoeff: f32;
    ycoeff: f32;
}

File: vulkan.bl

VkPipelineViewportWScalingStateCreateInfoNV

VkPipelineViewportWScalingStateCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    viewportWScalingEnable: VkBool32;
    viewportCount: u32;
    pViewportWScalings: *VkViewportWScalingNV;
}

File: vulkan.bl

PFN_vkCmdSetViewportWScalingNV

PFN_vkCmdSetViewportWScalingNV :: *fn (: VkCommandBuffer, : u32, : u32, : *VkViewportWScalingNV) 

File: vulkan.bl

vkCmdSetViewportWScalingNV

vkCmdSetViewportWScalingNV :: fn (commandBuffer: VkCommandBuffer, firstViewport: u32, viewportCount: u32, pViewportWScalings: *VkViewportWScalingNV)  #extern

File: vulkan.bl

PFN_vkReleaseDisplayEXT

PFN_vkReleaseDisplayEXT :: *fn (: VkPhysicalDevice, : VkDisplayKHR) VkResult

File: vulkan.bl

vkReleaseDisplayEXT

vkReleaseDisplayEXT :: fn (physicalDevice: VkPhysicalDevice, display: VkDisplayKHR) VkResult #extern

File: vulkan.bl

VkSurfaceCounterFlagBitsEXT

VkSurfaceCounterFlagBitsEXT :: enum u32 {
    VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 1;
    VK_SURFACE_COUNTER_VBLANK_EXT = 1;
    VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkSurfaceCounterFlagsEXT

VkSurfaceCounterFlagsEXT :: VkFlags

File: vulkan.bl

VkSurfaceCapabilities2EXT

VkSurfaceCapabilities2EXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    minImageCount: u32;
    maxImageCount: u32;
    currentExtent: VkExtent2D;
    minImageExtent: VkExtent2D;
    maxImageExtent: VkExtent2D;
    maxImageArrayLayers: u32;
    supportedTransforms: VkSurfaceTransformFlagsKHR;
    currentTransform: VkSurfaceTransformFlagBitsKHR;
    supportedCompositeAlpha: VkCompositeAlphaFlagsKHR;
    supportedUsageFlags: VkImageUsageFlags;
    supportedSurfaceCounters: VkSurfaceCounterFlagsEXT;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT

PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT :: *fn (: VkPhysicalDevice, : VkSurfaceKHR, : *VkSurfaceCapabilities2EXT) VkResult

File: vulkan.bl

vkGetPhysicalDeviceSurfaceCapabilities2EXT

vkGetPhysicalDeviceSurfaceCapabilities2EXT :: fn (physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: *VkSurfaceCapabilities2EXT) VkResult #extern

File: vulkan.bl

VkDisplayPowerStateEXT

VkDisplayPowerStateEXT :: enum s32 {
    VK_DISPLAY_POWER_STATE_OFF_EXT = 0;
    VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1;
    VK_DISPLAY_POWER_STATE_ON_EXT = 2;
    VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDeviceEventTypeEXT

VkDeviceEventTypeEXT :: enum s32 {
    VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0;
    VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDisplayEventTypeEXT

VkDisplayEventTypeEXT :: enum s32 {
    VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0;
    VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDisplayPowerInfoEXT

VkDisplayPowerInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    powerState: VkDisplayPowerStateEXT;
}

File: vulkan.bl

VkDeviceEventInfoEXT

VkDeviceEventInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceEvent: VkDeviceEventTypeEXT;
}

File: vulkan.bl

VkDisplayEventInfoEXT

VkDisplayEventInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    displayEvent: VkDisplayEventTypeEXT;
}

File: vulkan.bl

VkSwapchainCounterCreateInfoEXT

VkSwapchainCounterCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    surfaceCounters: VkSurfaceCounterFlagsEXT;
}

File: vulkan.bl

PFN_vkDisplayPowerControlEXT

PFN_vkDisplayPowerControlEXT :: *fn (: VkDevice, : VkDisplayKHR, : *VkDisplayPowerInfoEXT) VkResult

File: vulkan.bl

PFN_vkRegisterDeviceEventEXT

PFN_vkRegisterDeviceEventEXT :: *fn (: VkDevice, : *VkDeviceEventInfoEXT, : *VkAllocationCallbacks, : *VkFence) VkResult

File: vulkan.bl

PFN_vkRegisterDisplayEventEXT

PFN_vkRegisterDisplayEventEXT :: *fn (: VkDevice, : VkDisplayKHR, : *VkDisplayEventInfoEXT, : *VkAllocationCallbacks, : *VkFence) VkResult

File: vulkan.bl

PFN_vkGetSwapchainCounterEXT

PFN_vkGetSwapchainCounterEXT :: *fn (: VkDevice, : VkSwapchainKHR, : VkSurfaceCounterFlagBitsEXT, : *u64) VkResult

File: vulkan.bl

vkDisplayPowerControlEXT

vkDisplayPowerControlEXT :: fn (device: VkDevice, display: VkDisplayKHR, pDisplayPowerInfo: *VkDisplayPowerInfoEXT) VkResult #extern

File: vulkan.bl

vkRegisterDeviceEventEXT

vkRegisterDeviceEventEXT :: fn (device: VkDevice, pDeviceEventInfo: *VkDeviceEventInfoEXT, pAllocator: *VkAllocationCallbacks, pFence: *VkFence) VkResult #extern

File: vulkan.bl

vkRegisterDisplayEventEXT

vkRegisterDisplayEventEXT :: fn (device: VkDevice, display: VkDisplayKHR, pDisplayEventInfo: *VkDisplayEventInfoEXT, pAllocator: *VkAllocationCallbacks, pFence: *VkFence) VkResult #extern

File: vulkan.bl

vkGetSwapchainCounterEXT

vkGetSwapchainCounterEXT :: fn (device: VkDevice, swapchain: VkSwapchainKHR, counter: VkSurfaceCounterFlagBitsEXT, pCounterValue: *u64) VkResult #extern

File: vulkan.bl

VkRefreshCycleDurationGOOGLE

VkRefreshCycleDurationGOOGLE :: struct {
    refreshDuration: u64;
}

File: vulkan.bl

VkPastPresentationTimingGOOGLE

VkPastPresentationTimingGOOGLE :: struct {
    presentID: u32;
    desiredPresentTime: u64;
    actualPresentTime: u64;
    earliestPresentTime: u64;
    presentMargin: u64;
}

File: vulkan.bl

VkPresentTimeGOOGLE

VkPresentTimeGOOGLE :: struct {
    presentID: u32;
    desiredPresentTime: u64;
}

File: vulkan.bl

VkPresentTimesInfoGOOGLE

VkPresentTimesInfoGOOGLE :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    swapchainCount: u32;
    pTimes: *VkPresentTimeGOOGLE;
}

File: vulkan.bl

PFN_vkGetRefreshCycleDurationGOOGLE

PFN_vkGetRefreshCycleDurationGOOGLE :: *fn (: VkDevice, : VkSwapchainKHR, : *VkRefreshCycleDurationGOOGLE) VkResult

File: vulkan.bl

PFN_vkGetPastPresentationTimingGOOGLE

PFN_vkGetPastPresentationTimingGOOGLE :: *fn (: VkDevice, : VkSwapchainKHR, : *u32, : *VkPastPresentationTimingGOOGLE) VkResult

File: vulkan.bl

vkGetRefreshCycleDurationGOOGLE

vkGetRefreshCycleDurationGOOGLE :: fn (device: VkDevice, swapchain: VkSwapchainKHR, pDisplayTimingProperties: *VkRefreshCycleDurationGOOGLE) VkResult #extern

File: vulkan.bl

vkGetPastPresentationTimingGOOGLE

vkGetPastPresentationTimingGOOGLE :: fn (device: VkDevice, swapchain: VkSwapchainKHR, pPresentationTimingCount: *u32, pPresentationTimings: *VkPastPresentationTimingGOOGLE) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX

VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    perViewPositionAllComponents: VkBool32;
}

File: vulkan.bl

VkViewportCoordinateSwizzleNV

VkViewportCoordinateSwizzleNV :: enum s32 {
    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0;
    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1;
    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2;
    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3;
    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4;
    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5;
    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6;
    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7;
    VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkPipelineViewportSwizzleStateCreateFlagsNV

VkPipelineViewportSwizzleStateCreateFlagsNV :: VkFlags

File: vulkan.bl

VkViewportSwizzleNV

VkViewportSwizzleNV :: struct {
    x: VkViewportCoordinateSwizzleNV;
    y: VkViewportCoordinateSwizzleNV;
    z: VkViewportCoordinateSwizzleNV;
    w: VkViewportCoordinateSwizzleNV;
}

File: vulkan.bl

VkPipelineViewportSwizzleStateCreateInfoNV

VkPipelineViewportSwizzleStateCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineViewportSwizzleStateCreateFlagsNV;
    viewportCount: u32;
    pViewportSwizzles: *VkViewportSwizzleNV;
}

File: vulkan.bl

VkDiscardRectangleModeEXT

VkDiscardRectangleModeEXT :: enum s32 {
    VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0;
    VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1;
    VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkPipelineDiscardRectangleStateCreateFlagsEXT

VkPipelineDiscardRectangleStateCreateFlagsEXT :: VkFlags

File: vulkan.bl

VkPhysicalDeviceDiscardRectanglePropertiesEXT

VkPhysicalDeviceDiscardRectanglePropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxDiscardRectangles: u32;
}

File: vulkan.bl

VkPipelineDiscardRectangleStateCreateInfoEXT

VkPipelineDiscardRectangleStateCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineDiscardRectangleStateCreateFlagsEXT;
    discardRectangleMode: VkDiscardRectangleModeEXT;
    discardRectangleCount: u32;
    pDiscardRectangles: *VkRect2D;
}

File: vulkan.bl

PFN_vkCmdSetDiscardRectangleEXT

PFN_vkCmdSetDiscardRectangleEXT :: *fn (: VkCommandBuffer, : u32, : u32, : *VkRect2D) 

File: vulkan.bl

vkCmdSetDiscardRectangleEXT

vkCmdSetDiscardRectangleEXT :: fn (commandBuffer: VkCommandBuffer, firstDiscardRectangle: u32, discardRectangleCount: u32, pDiscardRectangles: *VkRect2D)  #extern

File: vulkan.bl

VkConservativeRasterizationModeEXT

VkConservativeRasterizationModeEXT :: enum s32 {
    VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0;
    VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1;
    VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2;
    VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkPipelineRasterizationConservativeStateCreateFlagsEXT

VkPipelineRasterizationConservativeStateCreateFlagsEXT :: VkFlags

File: vulkan.bl

VkPhysicalDeviceConservativeRasterizationPropertiesEXT

VkPhysicalDeviceConservativeRasterizationPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    primitiveOverestimationSize: f32;
    maxExtraPrimitiveOverestimationSize: f32;
    extraPrimitiveOverestimationSizeGranularity: f32;
    primitiveUnderestimation: VkBool32;
    conservativePointAndLineRasterization: VkBool32;
    degenerateTrianglesRasterized: VkBool32;
    degenerateLinesRasterized: VkBool32;
    fullyCoveredFragmentShaderInputVariable: VkBool32;
    conservativeRasterizationPostDepthCoverage: VkBool32;
}

File: vulkan.bl

VkPipelineRasterizationConservativeStateCreateInfoEXT

VkPipelineRasterizationConservativeStateCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineRasterizationConservativeStateCreateFlagsEXT;
    conservativeRasterizationMode: VkConservativeRasterizationModeEXT;
    extraPrimitiveOverestimationSize: f32;
}

File: vulkan.bl

VkPipelineRasterizationDepthClipStateCreateFlagsEXT

VkPipelineRasterizationDepthClipStateCreateFlagsEXT :: VkFlags

File: vulkan.bl

VkPhysicalDeviceDepthClipEnableFeaturesEXT

VkPhysicalDeviceDepthClipEnableFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    depthClipEnable: VkBool32;
}

File: vulkan.bl

VkPipelineRasterizationDepthClipStateCreateInfoEXT

VkPipelineRasterizationDepthClipStateCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
    depthClipEnable: VkBool32;
}

File: vulkan.bl

VkXYColorEXT

VkXYColorEXT :: struct {
    x: f32;
    y: f32;
}

File: vulkan.bl

VkHdrMetadataEXT

VkHdrMetadataEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    displayPrimaryRed: VkXYColorEXT;
    displayPrimaryGreen: VkXYColorEXT;
    displayPrimaryBlue: VkXYColorEXT;
    whitePoint: VkXYColorEXT;
    maxLuminance: f32;
    minLuminance: f32;
    maxContentLightLevel: f32;
    maxFrameAverageLightLevel: f32;
}

File: vulkan.bl

PFN_vkSetHdrMetadataEXT

PFN_vkSetHdrMetadataEXT :: *fn (: VkDevice, : u32, : *VkSwapchainKHR, : *VkHdrMetadataEXT) 

File: vulkan.bl

vkSetHdrMetadataEXT

vkSetHdrMetadataEXT :: fn (device: VkDevice, swapchainCount: u32, pSwapchains: *VkSwapchainKHR, pMetadata: *VkHdrMetadataEXT)  #extern

File: vulkan.bl

VkDebugUtilsMessengerCallbackDataFlagsEXT

VkDebugUtilsMessengerCallbackDataFlagsEXT :: VkFlags

File: vulkan.bl

VkDebugUtilsMessageSeverityFlagBitsEXT

VkDebugUtilsMessageSeverityFlagBitsEXT :: enum u32 {
    VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1;
    VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16;
    VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256;
    VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096;
    VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDebugUtilsMessageTypeFlagBitsEXT

VkDebugUtilsMessageTypeFlagBitsEXT :: enum u32 {
    VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1;
    VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2;
    VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4;
    VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 8;
    VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDebugUtilsMessageTypeFlagsEXT

VkDebugUtilsMessageTypeFlagsEXT :: VkFlags

File: vulkan.bl

VkDebugUtilsMessageSeverityFlagsEXT

VkDebugUtilsMessageSeverityFlagsEXT :: VkFlags

File: vulkan.bl

VkDebugUtilsMessengerCreateFlagsEXT

VkDebugUtilsMessengerCreateFlagsEXT :: VkFlags

File: vulkan.bl

VkDebugUtilsLabelEXT

VkDebugUtilsLabelEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pLabelName: *C.char;
    color: ;
}

File: vulkan.bl

VkDebugUtilsObjectNameInfoEXT

VkDebugUtilsObjectNameInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    objectType: VkObjectType;
    objectHandle: u64;
    pObjectName: *C.char;
}

File: vulkan.bl

VkDebugUtilsMessengerCallbackDataEXT

VkDebugUtilsMessengerCallbackDataEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDebugUtilsMessengerCallbackDataFlagsEXT;
    pMessageIdName: *C.char;
    messageIdNumber: s32;
    pMessage: *C.char;
    queueLabelCount: u32;
    pQueueLabels: *VkDebugUtilsLabelEXT;
    cmdBufLabelCount: u32;
    pCmdBufLabels: *VkDebugUtilsLabelEXT;
    objectCount: u32;
    pObjects: *VkDebugUtilsObjectNameInfoEXT;
}

File: vulkan.bl

PFN_vkDebugUtilsMessengerCallbackEXT

PFN_vkDebugUtilsMessengerCallbackEXT :: *fn (: VkDebugUtilsMessageSeverityFlagBitsEXT, : VkDebugUtilsMessageTypeFlagsEXT, : *VkDebugUtilsMessengerCallbackDataEXT, : C.void_ptr) VkBool32

File: vulkan.bl

VkDebugUtilsMessengerCreateInfoEXT

VkDebugUtilsMessengerCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDebugUtilsMessengerCreateFlagsEXT;
    messageSeverity: VkDebugUtilsMessageSeverityFlagsEXT;
    messageType: VkDebugUtilsMessageTypeFlagsEXT;
    pfnUserCallback: PFN_vkDebugUtilsMessengerCallbackEXT;
    pUserData: C.void_ptr;
}

File: vulkan.bl

VkDebugUtilsObjectTagInfoEXT

VkDebugUtilsObjectTagInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    objectType: VkObjectType;
    objectHandle: u64;
    tagName: u64;
    tagSize: usize;
    pTag: C.void_ptr;
}

File: vulkan.bl

PFN_vkSetDebugUtilsObjectNameEXT

PFN_vkSetDebugUtilsObjectNameEXT :: *fn (: VkDevice, : *VkDebugUtilsObjectNameInfoEXT) VkResult

File: vulkan.bl

PFN_vkSetDebugUtilsObjectTagEXT

PFN_vkSetDebugUtilsObjectTagEXT :: *fn (: VkDevice, : *VkDebugUtilsObjectTagInfoEXT) VkResult

File: vulkan.bl

PFN_vkQueueBeginDebugUtilsLabelEXT

PFN_vkQueueBeginDebugUtilsLabelEXT :: *fn (: VkQueue, : *VkDebugUtilsLabelEXT) 

File: vulkan.bl

PFN_vkQueueEndDebugUtilsLabelEXT

PFN_vkQueueEndDebugUtilsLabelEXT :: *fn (: VkQueue) 

File: vulkan.bl

PFN_vkQueueInsertDebugUtilsLabelEXT

PFN_vkQueueInsertDebugUtilsLabelEXT :: *fn (: VkQueue, : *VkDebugUtilsLabelEXT) 

File: vulkan.bl

PFN_vkCmdBeginDebugUtilsLabelEXT

PFN_vkCmdBeginDebugUtilsLabelEXT :: *fn (: VkCommandBuffer, : *VkDebugUtilsLabelEXT) 

File: vulkan.bl

PFN_vkCmdEndDebugUtilsLabelEXT

PFN_vkCmdEndDebugUtilsLabelEXT :: *fn (: VkCommandBuffer) 

File: vulkan.bl

PFN_vkCmdInsertDebugUtilsLabelEXT

PFN_vkCmdInsertDebugUtilsLabelEXT :: *fn (: VkCommandBuffer, : *VkDebugUtilsLabelEXT) 

File: vulkan.bl

PFN_vkCreateDebugUtilsMessengerEXT

PFN_vkCreateDebugUtilsMessengerEXT :: *fn (: VkInstance, : *VkDebugUtilsMessengerCreateInfoEXT, : *VkAllocationCallbacks, : *VkDebugUtilsMessengerEXT) VkResult

File: vulkan.bl

PFN_vkDestroyDebugUtilsMessengerEXT

PFN_vkDestroyDebugUtilsMessengerEXT :: *fn (: VkInstance, : VkDebugUtilsMessengerEXT, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkSubmitDebugUtilsMessageEXT

PFN_vkSubmitDebugUtilsMessageEXT :: *fn (: VkInstance, : VkDebugUtilsMessageSeverityFlagBitsEXT, : VkDebugUtilsMessageTypeFlagsEXT, : *VkDebugUtilsMessengerCallbackDataEXT) 

File: vulkan.bl

vkSetDebugUtilsObjectNameEXT

vkSetDebugUtilsObjectNameEXT :: fn (device: VkDevice, pNameInfo: *VkDebugUtilsObjectNameInfoEXT) VkResult #extern

File: vulkan.bl

vkSetDebugUtilsObjectTagEXT

vkSetDebugUtilsObjectTagEXT :: fn (device: VkDevice, pTagInfo: *VkDebugUtilsObjectTagInfoEXT) VkResult #extern

File: vulkan.bl

vkQueueBeginDebugUtilsLabelEXT

vkQueueBeginDebugUtilsLabelEXT :: fn (queue: VkQueue, pLabelInfo: *VkDebugUtilsLabelEXT)  #extern

File: vulkan.bl

vkQueueEndDebugUtilsLabelEXT

vkQueueEndDebugUtilsLabelEXT :: fn (queue: VkQueue)  #extern

File: vulkan.bl

vkQueueInsertDebugUtilsLabelEXT

vkQueueInsertDebugUtilsLabelEXT :: fn (queue: VkQueue, pLabelInfo: *VkDebugUtilsLabelEXT)  #extern

File: vulkan.bl

vkCmdBeginDebugUtilsLabelEXT

vkCmdBeginDebugUtilsLabelEXT :: fn (commandBuffer: VkCommandBuffer, pLabelInfo: *VkDebugUtilsLabelEXT)  #extern

File: vulkan.bl

vkCmdEndDebugUtilsLabelEXT

vkCmdEndDebugUtilsLabelEXT :: fn (commandBuffer: VkCommandBuffer)  #extern

File: vulkan.bl

vkCmdInsertDebugUtilsLabelEXT

vkCmdInsertDebugUtilsLabelEXT :: fn (commandBuffer: VkCommandBuffer, pLabelInfo: *VkDebugUtilsLabelEXT)  #extern

File: vulkan.bl

vkCreateDebugUtilsMessengerEXT

vkCreateDebugUtilsMessengerEXT :: fn (instance: VkInstance, pCreateInfo: *VkDebugUtilsMessengerCreateInfoEXT, pAllocator: *VkAllocationCallbacks, pMessenger: *VkDebugUtilsMessengerEXT) VkResult #extern

File: vulkan.bl

vkDestroyDebugUtilsMessengerEXT

vkDestroyDebugUtilsMessengerEXT :: fn (instance: VkInstance, messenger: VkDebugUtilsMessengerEXT, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkSubmitDebugUtilsMessageEXT

vkSubmitDebugUtilsMessageEXT :: fn (instance: VkInstance, messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: *VkDebugUtilsMessengerCallbackDataEXT)  #extern

File: vulkan.bl

VkSamplerReductionModeEXT

VkSamplerReductionModeEXT :: VkSamplerReductionMode

File: vulkan.bl

VkSamplerReductionModeCreateInfoEXT

VkSamplerReductionModeCreateInfoEXT :: VkSamplerReductionModeCreateInfo

File: vulkan.bl

VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT

VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT :: VkPhysicalDeviceSamplerFilterMinmaxProperties

File: vulkan.bl

VkPhysicalDeviceInlineUniformBlockFeaturesEXT

VkPhysicalDeviceInlineUniformBlockFeaturesEXT :: VkPhysicalDeviceInlineUniformBlockFeatures

File: vulkan.bl

VkPhysicalDeviceInlineUniformBlockPropertiesEXT

VkPhysicalDeviceInlineUniformBlockPropertiesEXT :: VkPhysicalDeviceInlineUniformBlockProperties

File: vulkan.bl

VkWriteDescriptorSetInlineUniformBlockEXT

VkWriteDescriptorSetInlineUniformBlockEXT :: VkWriteDescriptorSetInlineUniformBlock

File: vulkan.bl

VkDescriptorPoolInlineUniformBlockCreateInfoEXT

VkDescriptorPoolInlineUniformBlockCreateInfoEXT :: VkDescriptorPoolInlineUniformBlockCreateInfo

File: vulkan.bl

VkSampleLocationEXT

VkSampleLocationEXT :: struct {
    x: f32;
    y: f32;
}

File: vulkan.bl

VkSampleLocationsInfoEXT

VkSampleLocationsInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    sampleLocationsPerPixel: VkSampleCountFlagBits;
    sampleLocationGridSize: VkExtent2D;
    sampleLocationsCount: u32;
    pSampleLocations: *VkSampleLocationEXT;
}

File: vulkan.bl

VkAttachmentSampleLocationsEXT

VkAttachmentSampleLocationsEXT :: struct {
    attachmentIndex: u32;
    sampleLocationsInfo: VkSampleLocationsInfoEXT;
}

File: vulkan.bl

VkSubpassSampleLocationsEXT

VkSubpassSampleLocationsEXT :: struct {
    subpassIndex: u32;
    sampleLocationsInfo: VkSampleLocationsInfoEXT;
}

File: vulkan.bl

VkRenderPassSampleLocationsBeginInfoEXT

VkRenderPassSampleLocationsBeginInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    attachmentInitialSampleLocationsCount: u32;
    pAttachmentInitialSampleLocations: *VkAttachmentSampleLocationsEXT;
    postSubpassSampleLocationsCount: u32;
    pPostSubpassSampleLocations: *VkSubpassSampleLocationsEXT;
}

File: vulkan.bl

VkPipelineSampleLocationsStateCreateInfoEXT

VkPipelineSampleLocationsStateCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    sampleLocationsEnable: VkBool32;
    sampleLocationsInfo: VkSampleLocationsInfoEXT;
}

File: vulkan.bl

VkPhysicalDeviceSampleLocationsPropertiesEXT

VkPhysicalDeviceSampleLocationsPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    sampleLocationSampleCounts: VkSampleCountFlags;
    maxSampleLocationGridSize: VkExtent2D;
    sampleLocationCoordinateRange: ;
    sampleLocationSubPixelBits: u32;
    variableSampleLocations: VkBool32;
}

File: vulkan.bl

VkMultisamplePropertiesEXT

VkMultisamplePropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxSampleLocationGridSize: VkExtent2D;
}

File: vulkan.bl

PFN_vkCmdSetSampleLocationsEXT

PFN_vkCmdSetSampleLocationsEXT :: *fn (: VkCommandBuffer, : *VkSampleLocationsInfoEXT) 

File: vulkan.bl

PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT

PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT :: *fn (: VkPhysicalDevice, : VkSampleCountFlagBits, : *VkMultisamplePropertiesEXT) 

File: vulkan.bl

vkCmdSetSampleLocationsEXT

vkCmdSetSampleLocationsEXT :: fn (commandBuffer: VkCommandBuffer, pSampleLocationsInfo: *VkSampleLocationsInfoEXT)  #extern

File: vulkan.bl

vkGetPhysicalDeviceMultisamplePropertiesEXT

vkGetPhysicalDeviceMultisamplePropertiesEXT :: fn (physicalDevice: VkPhysicalDevice, samples: VkSampleCountFlagBits, pMultisampleProperties: *VkMultisamplePropertiesEXT)  #extern

File: vulkan.bl

VkBlendOverlapEXT

VkBlendOverlapEXT :: enum s32 {
    VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0;
    VK_BLEND_OVERLAP_DISJOINT_EXT = 1;
    VK_BLEND_OVERLAP_CONJOINT_EXT = 2;
    VK_BLEND_OVERLAP_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT

VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    advancedBlendCoherentOperations: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT

VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    advancedBlendMaxColorAttachments: u32;
    advancedBlendIndependentBlend: VkBool32;
    advancedBlendNonPremultipliedSrcColor: VkBool32;
    advancedBlendNonPremultipliedDstColor: VkBool32;
    advancedBlendCorrelatedOverlap: VkBool32;
    advancedBlendAllOperations: VkBool32;
}

File: vulkan.bl

VkPipelineColorBlendAdvancedStateCreateInfoEXT

VkPipelineColorBlendAdvancedStateCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    srcPremultiplied: VkBool32;
    dstPremultiplied: VkBool32;
    blendOverlap: VkBlendOverlapEXT;
}

File: vulkan.bl

VkPipelineCoverageToColorStateCreateFlagsNV

VkPipelineCoverageToColorStateCreateFlagsNV :: VkFlags

File: vulkan.bl

VkPipelineCoverageToColorStateCreateInfoNV

VkPipelineCoverageToColorStateCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineCoverageToColorStateCreateFlagsNV;
    coverageToColorEnable: VkBool32;
    coverageToColorLocation: u32;
}

File: vulkan.bl

VkCoverageModulationModeNV

VkCoverageModulationModeNV :: enum s32 {
    VK_COVERAGE_MODULATION_MODE_NONE_NV = 0;
    VK_COVERAGE_MODULATION_MODE_RGB_NV = 1;
    VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2;
    VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3;
    VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkPipelineCoverageModulationStateCreateFlagsNV

VkPipelineCoverageModulationStateCreateFlagsNV :: VkFlags

File: vulkan.bl

VkPipelineCoverageModulationStateCreateInfoNV

VkPipelineCoverageModulationStateCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineCoverageModulationStateCreateFlagsNV;
    coverageModulationMode: VkCoverageModulationModeNV;
    coverageModulationTableEnable: VkBool32;
    coverageModulationTableCount: u32;
    pCoverageModulationTable: *f32;
}

File: vulkan.bl

VkPhysicalDeviceShaderSMBuiltinsPropertiesNV

VkPhysicalDeviceShaderSMBuiltinsPropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderSMCount: u32;
    shaderWarpsPerSM: u32;
}

File: vulkan.bl

VkPhysicalDeviceShaderSMBuiltinsFeaturesNV

VkPhysicalDeviceShaderSMBuiltinsFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderSMBuiltins: VkBool32;
}

File: vulkan.bl

VkDrmFormatModifierPropertiesEXT

VkDrmFormatModifierPropertiesEXT :: struct {
    drmFormatModifier: u64;
    drmFormatModifierPlaneCount: u32;
    drmFormatModifierTilingFeatures: VkFormatFeatureFlags;
}

File: vulkan.bl

VkDrmFormatModifierPropertiesListEXT

VkDrmFormatModifierPropertiesListEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    drmFormatModifierCount: u32;
    pDrmFormatModifierProperties: *VkDrmFormatModifierPropertiesEXT;
}

File: vulkan.bl

VkPhysicalDeviceImageDrmFormatModifierInfoEXT

VkPhysicalDeviceImageDrmFormatModifierInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    drmFormatModifier: u64;
    sharingMode: VkSharingMode;
    queueFamilyIndexCount: u32;
    pQueueFamilyIndices: *u32;
}

File: vulkan.bl

VkImageDrmFormatModifierListCreateInfoEXT

VkImageDrmFormatModifierListCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    drmFormatModifierCount: u32;
    pDrmFormatModifiers: *u64;
}

File: vulkan.bl

VkImageDrmFormatModifierExplicitCreateInfoEXT

VkImageDrmFormatModifierExplicitCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    drmFormatModifier: u64;
    drmFormatModifierPlaneCount: u32;
    pPlaneLayouts: *VkSubresourceLayout;
}

File: vulkan.bl

VkImageDrmFormatModifierPropertiesEXT

VkImageDrmFormatModifierPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    drmFormatModifier: u64;
}

File: vulkan.bl

VkDrmFormatModifierProperties2EXT

VkDrmFormatModifierProperties2EXT :: struct {
    drmFormatModifier: u64;
    drmFormatModifierPlaneCount: u32;
    drmFormatModifierTilingFeatures: VkFormatFeatureFlags2;
}

File: vulkan.bl

VkDrmFormatModifierPropertiesList2EXT

VkDrmFormatModifierPropertiesList2EXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    drmFormatModifierCount: u32;
    pDrmFormatModifierProperties: *VkDrmFormatModifierProperties2EXT;
}

File: vulkan.bl

PFN_vkGetImageDrmFormatModifierPropertiesEXT

PFN_vkGetImageDrmFormatModifierPropertiesEXT :: *fn (: VkDevice, : VkImage, : *VkImageDrmFormatModifierPropertiesEXT) VkResult

File: vulkan.bl

vkGetImageDrmFormatModifierPropertiesEXT

vkGetImageDrmFormatModifierPropertiesEXT :: fn (device: VkDevice, image: VkImage, pProperties: *VkImageDrmFormatModifierPropertiesEXT) VkResult #extern

File: vulkan.bl

VkValidationCacheHeaderVersionEXT

VkValidationCacheHeaderVersionEXT :: enum s32 {
    VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1;
    VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkValidationCacheCreateFlagsEXT

VkValidationCacheCreateFlagsEXT :: VkFlags

File: vulkan.bl

VkValidationCacheCreateInfoEXT

VkValidationCacheCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkValidationCacheCreateFlagsEXT;
    initialDataSize: usize;
    pInitialData: C.void_ptr;
}

File: vulkan.bl

VkShaderModuleValidationCacheCreateInfoEXT

VkShaderModuleValidationCacheCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    validationCache: VkValidationCacheEXT;
}

File: vulkan.bl

PFN_vkCreateValidationCacheEXT

PFN_vkCreateValidationCacheEXT :: *fn (: VkDevice, : *VkValidationCacheCreateInfoEXT, : *VkAllocationCallbacks, : *VkValidationCacheEXT) VkResult

File: vulkan.bl

PFN_vkDestroyValidationCacheEXT

PFN_vkDestroyValidationCacheEXT :: *fn (: VkDevice, : VkValidationCacheEXT, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkMergeValidationCachesEXT

PFN_vkMergeValidationCachesEXT :: *fn (: VkDevice, : VkValidationCacheEXT, : u32, : *VkValidationCacheEXT) VkResult

File: vulkan.bl

PFN_vkGetValidationCacheDataEXT

PFN_vkGetValidationCacheDataEXT :: *fn (: VkDevice, : VkValidationCacheEXT, : *usize, : C.void_ptr) VkResult

File: vulkan.bl

vkCreateValidationCacheEXT

vkCreateValidationCacheEXT :: fn (device: VkDevice, pCreateInfo: *VkValidationCacheCreateInfoEXT, pAllocator: *VkAllocationCallbacks, pValidationCache: *VkValidationCacheEXT) VkResult #extern

File: vulkan.bl

vkDestroyValidationCacheEXT

vkDestroyValidationCacheEXT :: fn (device: VkDevice, validationCache: VkValidationCacheEXT, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkMergeValidationCachesEXT

vkMergeValidationCachesEXT :: fn (device: VkDevice, dstCache: VkValidationCacheEXT, srcCacheCount: u32, pSrcCaches: *VkValidationCacheEXT) VkResult #extern

File: vulkan.bl

vkGetValidationCacheDataEXT

vkGetValidationCacheDataEXT :: fn (device: VkDevice, validationCache: VkValidationCacheEXT, pDataSize: *usize, pData: C.void_ptr) VkResult #extern

File: vulkan.bl

VkDescriptorBindingFlagBitsEXT

VkDescriptorBindingFlagBitsEXT :: VkDescriptorBindingFlagBits

File: vulkan.bl

VkDescriptorBindingFlagsEXT

VkDescriptorBindingFlagsEXT :: VkDescriptorBindingFlags

File: vulkan.bl

VkDescriptorSetLayoutBindingFlagsCreateInfoEXT

VkDescriptorSetLayoutBindingFlagsCreateInfoEXT :: VkDescriptorSetLayoutBindingFlagsCreateInfo

File: vulkan.bl

VkPhysicalDeviceDescriptorIndexingFeaturesEXT

VkPhysicalDeviceDescriptorIndexingFeaturesEXT :: VkPhysicalDeviceDescriptorIndexingFeatures

File: vulkan.bl

VkPhysicalDeviceDescriptorIndexingPropertiesEXT

VkPhysicalDeviceDescriptorIndexingPropertiesEXT :: VkPhysicalDeviceDescriptorIndexingProperties

File: vulkan.bl

VkDescriptorSetVariableDescriptorCountAllocateInfoEXT

VkDescriptorSetVariableDescriptorCountAllocateInfoEXT :: VkDescriptorSetVariableDescriptorCountAllocateInfo

File: vulkan.bl

VkDescriptorSetVariableDescriptorCountLayoutSupportEXT

VkDescriptorSetVariableDescriptorCountLayoutSupportEXT :: VkDescriptorSetVariableDescriptorCountLayoutSupport

File: vulkan.bl

VkShadingRatePaletteEntryNV

VkShadingRatePaletteEntryNV :: enum s32 {
    VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0;
    VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1;
    VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2;
    VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3;
    VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4;
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5;
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6;
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7;
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8;
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9;
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10;
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11;
    VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkCoarseSampleOrderTypeNV

VkCoarseSampleOrderTypeNV :: enum s32 {
    VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0;
    VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1;
    VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2;
    VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3;
    VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkShadingRatePaletteNV

VkShadingRatePaletteNV :: struct {
    shadingRatePaletteEntryCount: u32;
    pShadingRatePaletteEntries: *VkShadingRatePaletteEntryNV;
}

File: vulkan.bl

VkPipelineViewportShadingRateImageStateCreateInfoNV

VkPipelineViewportShadingRateImageStateCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shadingRateImageEnable: VkBool32;
    viewportCount: u32;
    pShadingRatePalettes: *VkShadingRatePaletteNV;
}

File: vulkan.bl

VkPhysicalDeviceShadingRateImageFeaturesNV

VkPhysicalDeviceShadingRateImageFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shadingRateImage: VkBool32;
    shadingRateCoarseSampleOrder: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShadingRateImagePropertiesNV

VkPhysicalDeviceShadingRateImagePropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shadingRateTexelSize: VkExtent2D;
    shadingRatePaletteSize: u32;
    shadingRateMaxCoarseSamples: u32;
}

File: vulkan.bl

VkCoarseSampleLocationNV

VkCoarseSampleLocationNV :: struct {
    pixelX: u32;
    pixelY: u32;
    sample: u32;
}

File: vulkan.bl

VkCoarseSampleOrderCustomNV

VkCoarseSampleOrderCustomNV :: struct {
    shadingRate: VkShadingRatePaletteEntryNV;
    sampleCount: u32;
    sampleLocationCount: u32;
    pSampleLocations: *VkCoarseSampleLocationNV;
}

File: vulkan.bl

VkPipelineViewportCoarseSampleOrderStateCreateInfoNV

VkPipelineViewportCoarseSampleOrderStateCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    sampleOrderType: VkCoarseSampleOrderTypeNV;
    customSampleOrderCount: u32;
    pCustomSampleOrders: *VkCoarseSampleOrderCustomNV;
}

File: vulkan.bl

PFN_vkCmdBindShadingRateImageNV

PFN_vkCmdBindShadingRateImageNV :: *fn (: VkCommandBuffer, : VkImageView, : VkImageLayout) 

File: vulkan.bl

PFN_vkCmdSetViewportShadingRatePaletteNV

PFN_vkCmdSetViewportShadingRatePaletteNV :: *fn (: VkCommandBuffer, : u32, : u32, : *VkShadingRatePaletteNV) 

File: vulkan.bl

PFN_vkCmdSetCoarseSampleOrderNV

PFN_vkCmdSetCoarseSampleOrderNV :: *fn (: VkCommandBuffer, : VkCoarseSampleOrderTypeNV, : u32, : *VkCoarseSampleOrderCustomNV) 

File: vulkan.bl

vkCmdBindShadingRateImageNV

vkCmdBindShadingRateImageNV :: fn (commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout)  #extern

File: vulkan.bl

vkCmdSetViewportShadingRatePaletteNV

vkCmdSetViewportShadingRatePaletteNV :: fn (commandBuffer: VkCommandBuffer, firstViewport: u32, viewportCount: u32, pShadingRatePalettes: *VkShadingRatePaletteNV)  #extern

File: vulkan.bl

vkCmdSetCoarseSampleOrderNV

vkCmdSetCoarseSampleOrderNV :: fn (commandBuffer: VkCommandBuffer, sampleOrderType: VkCoarseSampleOrderTypeNV, customSampleOrderCount: u32, pCustomSampleOrders: *VkCoarseSampleOrderCustomNV)  #extern

File: vulkan.bl

VkRayTracingShaderGroupTypeKHR

VkRayTracingShaderGroupTypeKHR :: enum s32 {
    VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0;
    VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1;
    VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2;
    VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0;
    VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1;
    VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2;
    VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkRayTracingShaderGroupTypeNV

VkRayTracingShaderGroupTypeNV :: VkRayTracingShaderGroupTypeKHR

File: vulkan.bl

VkGeometryTypeKHR

VkGeometryTypeKHR :: enum s32 {
    VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0;
    VK_GEOMETRY_TYPE_AABBS_KHR = 1;
    VK_GEOMETRY_TYPE_INSTANCES_KHR = 2;
    VK_GEOMETRY_TYPE_TRIANGLES_NV = 0;
    VK_GEOMETRY_TYPE_AABBS_NV = 1;
    VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkGeometryTypeNV

VkGeometryTypeNV :: VkGeometryTypeKHR

File: vulkan.bl

VkAccelerationStructureTypeKHR

VkAccelerationStructureTypeKHR :: enum s32 {
    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0;
    VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1;
    VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2;
    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0;
    VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1;
    VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkAccelerationStructureTypeNV

VkAccelerationStructureTypeNV :: VkAccelerationStructureTypeKHR

File: vulkan.bl

VkCopyAccelerationStructureModeKHR

VkCopyAccelerationStructureModeKHR :: enum s32 {
    VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0;
    VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1;
    VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2;
    VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3;
    VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0;
    VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1;
    VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkCopyAccelerationStructureModeNV

VkCopyAccelerationStructureModeNV :: VkCopyAccelerationStructureModeKHR

File: vulkan.bl

VkAccelerationStructureMemoryRequirementsTypeNV

VkAccelerationStructureMemoryRequirementsTypeNV :: enum s32 {
    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0;
    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1;
    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2;
    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkGeometryFlagBitsKHR

VkGeometryFlagBitsKHR :: enum s32 {
    VK_GEOMETRY_OPAQUE_BIT_KHR = 1;
    VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2;
    VK_GEOMETRY_OPAQUE_BIT_NV = 1;
    VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 2;
    VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkGeometryFlagsKHR

VkGeometryFlagsKHR :: VkFlags

File: vulkan.bl

VkGeometryFlagsNV

VkGeometryFlagsNV :: VkGeometryFlagsKHR

File: vulkan.bl

VkGeometryFlagBitsNV

VkGeometryFlagBitsNV :: VkGeometryFlagBitsKHR

File: vulkan.bl

VkGeometryInstanceFlagBitsKHR

VkGeometryInstanceFlagBitsKHR :: enum s32 {
    VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1;
    VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 2;
    VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4;
    VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8;
    VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 16;
    VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 32;
    VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2;
    VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 1;
    VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 2;
    VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 4;
    VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 8;
    VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkGeometryInstanceFlagsKHR

VkGeometryInstanceFlagsKHR :: VkFlags

File: vulkan.bl

VkGeometryInstanceFlagsNV

VkGeometryInstanceFlagsNV :: VkGeometryInstanceFlagsKHR

File: vulkan.bl

VkGeometryInstanceFlagBitsNV

VkGeometryInstanceFlagBitsNV :: VkGeometryInstanceFlagBitsKHR

File: vulkan.bl

VkBuildAccelerationStructureFlagBitsKHR

VkBuildAccelerationStructureFlagBitsKHR :: enum s32 {
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1;
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2;
    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4;
    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8;
    VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16;
    VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 32;
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 64;
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 128;
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 256;
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 1;
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 2;
    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 4;
    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 8;
    VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 16;
    VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkBuildAccelerationStructureFlagsKHR

VkBuildAccelerationStructureFlagsKHR :: VkFlags

File: vulkan.bl

VkBuildAccelerationStructureFlagsNV

VkBuildAccelerationStructureFlagsNV :: VkBuildAccelerationStructureFlagsKHR

File: vulkan.bl

VkBuildAccelerationStructureFlagBitsNV

VkBuildAccelerationStructureFlagBitsNV :: VkBuildAccelerationStructureFlagBitsKHR

File: vulkan.bl

VkRayTracingShaderGroupCreateInfoNV

VkRayTracingShaderGroupCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    t: VkRayTracingShaderGroupTypeKHR;
    generalShader: u32;
    closestHitShader: u32;
    anyHitShader: u32;
    intersectionShader: u32;
}

File: vulkan.bl

VkRayTracingPipelineCreateInfoNV

VkRayTracingPipelineCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineCreateFlags;
    stageCount: u32;
    pStages: *VkPipelineShaderStageCreateInfo;
    groupCount: u32;
    pGroups: *VkRayTracingShaderGroupCreateInfoNV;
    maxRecursionDepth: u32;
    layout: VkPipelineLayout;
    basePipelineHandle: VkPipeline;
    basePipelineIndex: s32;
}

File: vulkan.bl

VkGeometryTrianglesNV

VkGeometryTrianglesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    vertexData: VkBuffer;
    vertexOffset: VkDeviceSize;
    vertexCount: u32;
    vertexStride: VkDeviceSize;
    vertexFormat: VkFormat;
    indexData: VkBuffer;
    indexOffset: VkDeviceSize;
    indexCount: u32;
    indexType: VkIndexType;
    transformData: VkBuffer;
    transformOffset: VkDeviceSize;
}

File: vulkan.bl

VkGeometryAABBNV

VkGeometryAABBNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    aabbData: VkBuffer;
    numAABBs: u32;
    stride: u32;
    offset: VkDeviceSize;
}

File: vulkan.bl

VkGeometryDataNV

VkGeometryDataNV :: struct {
    triangles: VkGeometryTrianglesNV;
    aabbs: VkGeometryAABBNV;
}

File: vulkan.bl

VkGeometryNV

VkGeometryNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    geometryType: VkGeometryTypeKHR;
    geometry: VkGeometryDataNV;
    flags: VkGeometryFlagsKHR;
}

File: vulkan.bl

VkAccelerationStructureInfoNV

VkAccelerationStructureInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    t: VkAccelerationStructureTypeNV;
    flags: VkBuildAccelerationStructureFlagsNV;
    instanceCount: u32;
    geometryCount: u32;
    pGeometries: *VkGeometryNV;
}

File: vulkan.bl

VkAccelerationStructureCreateInfoNV

VkAccelerationStructureCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    compactedSize: VkDeviceSize;
    info: VkAccelerationStructureInfoNV;
}

File: vulkan.bl

VkBindAccelerationStructureMemoryInfoNV

VkBindAccelerationStructureMemoryInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    accelerationStructure: VkAccelerationStructureNV;
    memory: VkDeviceMemory;
    memoryOffset: VkDeviceSize;
    deviceIndexCount: u32;
    pDeviceIndices: *u32;
}

File: vulkan.bl

VkWriteDescriptorSetAccelerationStructureNV

VkWriteDescriptorSetAccelerationStructureNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    accelerationStructureCount: u32;
    pAccelerationStructures: *VkAccelerationStructureNV;
}

File: vulkan.bl

VkAccelerationStructureMemoryRequirementsInfoNV

VkAccelerationStructureMemoryRequirementsInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    t: VkAccelerationStructureMemoryRequirementsTypeNV;
    accelerationStructure: VkAccelerationStructureNV;
}

File: vulkan.bl

VkPhysicalDeviceRayTracingPropertiesNV

VkPhysicalDeviceRayTracingPropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderGroupHandleSize: u32;
    maxRecursionDepth: u32;
    maxShaderGroupStride: u32;
    shaderGroupBaseAlignment: u32;
    maxGeometryCount: u64;
    maxInstanceCount: u64;
    maxTriangleCount: u64;
    maxDescriptorSetAccelerationStructures: u32;
}

File: vulkan.bl

VkTransformMatrixKHR

VkTransformMatrixKHR :: struct {
    matrix: ;
}

File: vulkan.bl

VkTransformMatrixNV

VkTransformMatrixNV :: VkTransformMatrixKHR

File: vulkan.bl

VkAabbPositionsKHR

VkAabbPositionsKHR :: struct {
    minX: f32;
    minY: f32;
    minZ: f32;
    maxX: f32;
    maxY: f32;
    maxZ: f32;
}

File: vulkan.bl

VkAabbPositionsNV

VkAabbPositionsNV :: VkAabbPositionsKHR

File: vulkan.bl

VkAccelerationStructureInstanceKHR

VkAccelerationStructureInstanceKHR :: struct {
    transform: VkTransformMatrixKHR;
    instanceCustomIndexAndMask: u32;
    instanceShaderBindingTableRecordOffsetAndFlags: u32;
    accelerationStructureReference: u64;
}

File: vulkan.bl

VkAccelerationStructureInstanceNV

VkAccelerationStructureInstanceNV :: VkAccelerationStructureInstanceKHR

File: vulkan.bl

PFN_vkCreateAccelerationStructureNV

PFN_vkCreateAccelerationStructureNV :: *fn (: VkDevice, : *VkAccelerationStructureCreateInfoNV, : *VkAllocationCallbacks, : *VkAccelerationStructureNV) VkResult

File: vulkan.bl

PFN_vkDestroyAccelerationStructureNV

PFN_vkDestroyAccelerationStructureNV :: *fn (: VkDevice, : VkAccelerationStructureNV, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkGetAccelerationStructureMemoryRequirementsNV

PFN_vkGetAccelerationStructureMemoryRequirementsNV :: *fn (: VkDevice, : *VkAccelerationStructureMemoryRequirementsInfoNV, : *VkMemoryRequirements2KHR) 

File: vulkan.bl

PFN_vkBindAccelerationStructureMemoryNV

PFN_vkBindAccelerationStructureMemoryNV :: *fn (: VkDevice, : u32, : *VkBindAccelerationStructureMemoryInfoNV) VkResult

File: vulkan.bl

PFN_vkCmdBuildAccelerationStructureNV

PFN_vkCmdBuildAccelerationStructureNV :: *fn (: VkCommandBuffer, : *VkAccelerationStructureInfoNV, : VkBuffer, : VkDeviceSize, : VkBool32, : VkAccelerationStructureNV, : VkAccelerationStructureNV, : VkBuffer, : VkDeviceSize) 

File: vulkan.bl

PFN_vkCmdCopyAccelerationStructureNV

PFN_vkCmdCopyAccelerationStructureNV :: *fn (: VkCommandBuffer, : VkAccelerationStructureNV, : VkAccelerationStructureNV, : VkCopyAccelerationStructureModeKHR) 

File: vulkan.bl

PFN_vkCmdTraceRaysNV

PFN_vkCmdTraceRaysNV :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : VkDeviceSize, : u32, : u32, : u32) 

File: vulkan.bl

PFN_vkCreateRayTracingPipelinesNV

PFN_vkCreateRayTracingPipelinesNV :: *fn (: VkDevice, : VkPipelineCache, : u32, : *VkRayTracingPipelineCreateInfoNV, : *VkAllocationCallbacks, : *VkPipeline) VkResult

File: vulkan.bl

PFN_vkGetRayTracingShaderGroupHandlesKHR

PFN_vkGetRayTracingShaderGroupHandlesKHR :: *fn (: VkDevice, : VkPipeline, : u32, : u32, : usize, : C.void_ptr) VkResult

File: vulkan.bl

PFN_vkGetRayTracingShaderGroupHandlesNV

PFN_vkGetRayTracingShaderGroupHandlesNV :: *fn (: VkDevice, : VkPipeline, : u32, : u32, : usize, : C.void_ptr) VkResult

File: vulkan.bl

PFN_vkGetAccelerationStructureHandleNV

PFN_vkGetAccelerationStructureHandleNV :: *fn (: VkDevice, : VkAccelerationStructureNV, : usize, : C.void_ptr) VkResult

File: vulkan.bl

PFN_vkCmdWriteAccelerationStructuresPropertiesNV

PFN_vkCmdWriteAccelerationStructuresPropertiesNV :: *fn (: VkCommandBuffer, : u32, : *VkAccelerationStructureNV, : VkQueryType, : VkQueryPool, : u32) 

File: vulkan.bl

PFN_vkCompileDeferredNV

PFN_vkCompileDeferredNV :: *fn (: VkDevice, : VkPipeline, : u32) VkResult

File: vulkan.bl

vkCreateAccelerationStructureNV

vkCreateAccelerationStructureNV :: fn (device: VkDevice, pCreateInfo: *VkAccelerationStructureCreateInfoNV, pAllocator: *VkAllocationCallbacks, pAccelerationStructure: *VkAccelerationStructureNV) VkResult #extern

File: vulkan.bl

vkDestroyAccelerationStructureNV

vkDestroyAccelerationStructureNV :: fn (device: VkDevice, accelerationStructure: VkAccelerationStructureNV, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkGetAccelerationStructureMemoryRequirementsNV

vkGetAccelerationStructureMemoryRequirementsNV :: fn (device: VkDevice, pInfo: *VkAccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: *VkMemoryRequirements2KHR)  #extern

File: vulkan.bl

vkBindAccelerationStructureMemoryNV

vkBindAccelerationStructureMemoryNV :: fn (device: VkDevice, bindInfoCount: u32, pBindInfos: *VkBindAccelerationStructureMemoryInfoNV) VkResult #extern

File: vulkan.bl

vkCmdBuildAccelerationStructureNV

vkCmdBuildAccelerationStructureNV :: fn (commandBuffer: VkCommandBuffer, pInfo: *VkAccelerationStructureInfoNV, instanceData: VkBuffer, instanceOffset: VkDeviceSize, update: VkBool32, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, scratch: VkBuffer, scratchOffset: VkDeviceSize)  #extern

File: vulkan.bl

vkCmdCopyAccelerationStructureNV

vkCmdCopyAccelerationStructureNV :: fn (commandBuffer: VkCommandBuffer, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, mode: VkCopyAccelerationStructureModeKHR)  #extern

File: vulkan.bl

vkCmdTraceRaysNV

vkCmdTraceRaysNV :: fn (commandBuffer: VkCommandBuffer, raygenShaderBindingTableBuffer: VkBuffer, raygenShaderBindingOffset: VkDeviceSize, missShaderBindingTableBuffer: VkBuffer, missShaderBindingOffset: VkDeviceSize, missShaderBindingStride: VkDeviceSize, hitShaderBindingTableBuffer: VkBuffer, hitShaderBindingOffset: VkDeviceSize, hitShaderBindingStride: VkDeviceSize, callableShaderBindingTableBuffer: VkBuffer, callableShaderBindingOffset: VkDeviceSize, callableShaderBindingStride: VkDeviceSize, width: u32, height: u32, depth: u32)  #extern

File: vulkan.bl

vkCreateRayTracingPipelinesNV

vkCreateRayTracingPipelinesNV :: fn (device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: u32, pCreateInfos: *VkRayTracingPipelineCreateInfoNV, pAllocator: *VkAllocationCallbacks, pPipelines: *VkPipeline) VkResult #extern

File: vulkan.bl

vkGetRayTracingShaderGroupHandlesKHR

vkGetRayTracingShaderGroupHandlesKHR :: fn (device: VkDevice, pipeline: VkPipeline, firstGroup: u32, groupCount: u32, dataSize: usize, pData: C.void_ptr) VkResult #extern

File: vulkan.bl

vkGetRayTracingShaderGroupHandlesNV

vkGetRayTracingShaderGroupHandlesNV :: fn (device: VkDevice, pipeline: VkPipeline, firstGroup: u32, groupCount: u32, dataSize: usize, pData: C.void_ptr) VkResult #extern

File: vulkan.bl

vkGetAccelerationStructureHandleNV

vkGetAccelerationStructureHandleNV :: fn (device: VkDevice, accelerationStructure: VkAccelerationStructureNV, dataSize: usize, pData: C.void_ptr) VkResult #extern

File: vulkan.bl

vkCmdWriteAccelerationStructuresPropertiesNV

vkCmdWriteAccelerationStructuresPropertiesNV :: fn (commandBuffer: VkCommandBuffer, accelerationStructureCount: u32, pAccelerationStructures: *VkAccelerationStructureNV, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: u32)  #extern

File: vulkan.bl

vkCompileDeferredNV

vkCompileDeferredNV :: fn (device: VkDevice, pipeline: VkPipeline, shader: u32) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV

VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    representativeFragmentTest: VkBool32;
}

File: vulkan.bl

VkPipelineRepresentativeFragmentTestStateCreateInfoNV

VkPipelineRepresentativeFragmentTestStateCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    representativeFragmentTestEnable: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceImageViewImageFormatInfoEXT

VkPhysicalDeviceImageViewImageFormatInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageViewType: VkImageViewType;
}

File: vulkan.bl

VkFilterCubicImageViewImageFormatPropertiesEXT

VkFilterCubicImageViewImageFormatPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    filterCubic: VkBool32;
    filterCubicMinmax: VkBool32;
}

File: vulkan.bl

VkQueueGlobalPriorityEXT

VkQueueGlobalPriorityEXT :: VkQueueGlobalPriorityKHR

File: vulkan.bl

VkDeviceQueueGlobalPriorityCreateInfoEXT

VkDeviceQueueGlobalPriorityCreateInfoEXT :: VkDeviceQueueGlobalPriorityCreateInfoKHR

File: vulkan.bl

VkImportMemoryHostPointerInfoEXT

VkImportMemoryHostPointerInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    handleType: VkExternalMemoryHandleTypeFlagBits;
    pHostPointer: C.void_ptr;
}

File: vulkan.bl

VkMemoryHostPointerPropertiesEXT

VkMemoryHostPointerPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    memoryTypeBits: u32;
}

File: vulkan.bl

VkPhysicalDeviceExternalMemoryHostPropertiesEXT

VkPhysicalDeviceExternalMemoryHostPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    minImportedHostPointerAlignment: VkDeviceSize;
}

File: vulkan.bl

PFN_vkGetMemoryHostPointerPropertiesEXT

PFN_vkGetMemoryHostPointerPropertiesEXT :: *fn (: VkDevice, : VkExternalMemoryHandleTypeFlagBits, : C.void_ptr, : *VkMemoryHostPointerPropertiesEXT) VkResult

File: vulkan.bl

vkGetMemoryHostPointerPropertiesEXT

vkGetMemoryHostPointerPropertiesEXT :: fn (device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, pHostPointer: C.void_ptr, pMemoryHostPointerProperties: *VkMemoryHostPointerPropertiesEXT) VkResult #extern

File: vulkan.bl

PFN_vkCmdWriteBufferMarkerAMD

PFN_vkCmdWriteBufferMarkerAMD :: *fn (: VkCommandBuffer, : VkPipelineStageFlagBits, : VkBuffer, : VkDeviceSize, : u32) 

File: vulkan.bl

vkCmdWriteBufferMarkerAMD

vkCmdWriteBufferMarkerAMD :: fn (commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, marker: u32)  #extern

File: vulkan.bl

VkPipelineCompilerControlFlagBitsAMD

VkPipelineCompilerControlFlagBitsAMD :: enum s32 {
    VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 2147483647;
}

File: vulkan.bl

VkPipelineCompilerControlFlagsAMD

VkPipelineCompilerControlFlagsAMD :: VkFlags

File: vulkan.bl

VkPipelineCompilerControlCreateInfoAMD

VkPipelineCompilerControlCreateInfoAMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    compilerControlFlags: VkPipelineCompilerControlFlagsAMD;
}

File: vulkan.bl

VkTimeDomainEXT

VkTimeDomainEXT :: enum s32 {
    VK_TIME_DOMAIN_DEVICE_EXT = 0;
    VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1;
    VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2;
    VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3;
    VK_TIME_DOMAIN_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkCalibratedTimestampInfoEXT

VkCalibratedTimestampInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    timeDomain: VkTimeDomainEXT;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT

PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT :: *fn (: VkPhysicalDevice, : *u32, : *VkTimeDomainEXT) VkResult

File: vulkan.bl

PFN_vkGetCalibratedTimestampsEXT

PFN_vkGetCalibratedTimestampsEXT :: *fn (: VkDevice, : u32, : *VkCalibratedTimestampInfoEXT, : *u64, : *u64) VkResult

File: vulkan.bl

vkGetPhysicalDeviceCalibrateableTimeDomainsEXT

vkGetPhysicalDeviceCalibrateableTimeDomainsEXT :: fn (physicalDevice: VkPhysicalDevice, pTimeDomainCount: *u32, pTimeDomains: *VkTimeDomainEXT) VkResult #extern

File: vulkan.bl

vkGetCalibratedTimestampsEXT

vkGetCalibratedTimestampsEXT :: fn (device: VkDevice, timestampCount: u32, pTimestampInfos: *VkCalibratedTimestampInfoEXT, pTimestamps: *u64, pMaxDeviation: *u64) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceShaderCorePropertiesAMD

VkPhysicalDeviceShaderCorePropertiesAMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderEngineCount: u32;
    shaderArraysPerEngineCount: u32;
    computeUnitsPerShaderArray: u32;
    simdPerComputeUnit: u32;
    wavefrontsPerSimd: u32;
    wavefrontSize: u32;
    sgprsPerSimd: u32;
    minSgprAllocation: u32;
    maxSgprAllocation: u32;
    sgprAllocationGranularity: u32;
    vgprsPerSimd: u32;
    minVgprAllocation: u32;
    maxVgprAllocation: u32;
    vgprAllocationGranularity: u32;
}

File: vulkan.bl

VkMemoryOverallocationBehaviorAMD

VkMemoryOverallocationBehaviorAMD :: enum s32 {
    VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0;
    VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1;
    VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2;
    VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 2147483647;
}

File: vulkan.bl

VkDeviceMemoryOverallocationCreateInfoAMD

VkDeviceMemoryOverallocationCreateInfoAMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    overallocationBehavior: VkMemoryOverallocationBehaviorAMD;
}

File: vulkan.bl

VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT

VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxVertexAttribDivisor: u32;
}

File: vulkan.bl

VkVertexInputBindingDivisorDescriptionEXT

VkVertexInputBindingDivisorDescriptionEXT :: struct {
    binding: u32;
    divisor: u32;
}

File: vulkan.bl

VkPipelineVertexInputDivisorStateCreateInfoEXT

VkPipelineVertexInputDivisorStateCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    vertexBindingDivisorCount: u32;
    pVertexBindingDivisors: *VkVertexInputBindingDivisorDescriptionEXT;
}

File: vulkan.bl

VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT

VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    vertexAttributeInstanceRateDivisor: VkBool32;
    vertexAttributeInstanceRateZeroDivisor: VkBool32;
}

File: vulkan.bl

VkPipelineCreationFeedbackFlagBitsEXT

VkPipelineCreationFeedbackFlagBitsEXT :: VkPipelineCreationFeedbackFlagBits

File: vulkan.bl

VkPipelineCreationFeedbackFlagsEXT

VkPipelineCreationFeedbackFlagsEXT :: VkPipelineCreationFeedbackFlags

File: vulkan.bl

VkPipelineCreationFeedbackCreateInfoEXT

VkPipelineCreationFeedbackCreateInfoEXT :: VkPipelineCreationFeedbackCreateInfo

File: vulkan.bl

VkPipelineCreationFeedbackEXT

VkPipelineCreationFeedbackEXT :: VkPipelineCreationFeedback

File: vulkan.bl

VkPhysicalDeviceComputeShaderDerivativesFeaturesNV

VkPhysicalDeviceComputeShaderDerivativesFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    computeDerivativeGroupQuads: VkBool32;
    computeDerivativeGroupLinear: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceMeshShaderFeaturesNV

VkPhysicalDeviceMeshShaderFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    taskShader: VkBool32;
    meshShader: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceMeshShaderPropertiesNV

VkPhysicalDeviceMeshShaderPropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxDrawMeshTasksCount: u32;
    maxTaskWorkGroupInvocations: u32;
    maxTaskWorkGroupSize: ;
    maxTaskTotalMemorySize: u32;
    maxTaskOutputCount: u32;
    maxMeshWorkGroupInvocations: u32;
    maxMeshWorkGroupSize: ;
    maxMeshTotalMemorySize: u32;
    maxMeshOutputVertices: u32;
    maxMeshOutputPrimitives: u32;
    maxMeshMultiviewViewCount: u32;
    meshOutputPerVertexGranularity: u32;
    meshOutputPerPrimitiveGranularity: u32;
}

File: vulkan.bl

VkDrawMeshTasksIndirectCommandNV

VkDrawMeshTasksIndirectCommandNV :: struct {
    taskCount: u32;
    firstTask: u32;
}

File: vulkan.bl

PFN_vkCmdDrawMeshTasksNV

PFN_vkCmdDrawMeshTasksNV :: *fn (: VkCommandBuffer, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawMeshTasksIndirectNV

PFN_vkCmdDrawMeshTasksIndirectNV :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawMeshTasksIndirectCountNV

PFN_vkCmdDrawMeshTasksIndirectCountNV :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

vkCmdDrawMeshTasksNV

vkCmdDrawMeshTasksNV :: fn (commandBuffer: VkCommandBuffer, taskCount: u32, firstTask: u32)  #extern

File: vulkan.bl

vkCmdDrawMeshTasksIndirectNV

vkCmdDrawMeshTasksIndirectNV :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: u32, stride: u32)  #extern

File: vulkan.bl

vkCmdDrawMeshTasksIndirectCountNV

vkCmdDrawMeshTasksIndirectCountNV :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: u32, stride: u32)  #extern

File: vulkan.bl

VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV

VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV :: VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR

File: vulkan.bl

VkPhysicalDeviceShaderImageFootprintFeaturesNV

VkPhysicalDeviceShaderImageFootprintFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageFootprint: VkBool32;
}

File: vulkan.bl

VkPipelineViewportExclusiveScissorStateCreateInfoNV

VkPipelineViewportExclusiveScissorStateCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    exclusiveScissorCount: u32;
    pExclusiveScissors: *VkRect2D;
}

File: vulkan.bl

VkPhysicalDeviceExclusiveScissorFeaturesNV

VkPhysicalDeviceExclusiveScissorFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    exclusiveScissor: VkBool32;
}

File: vulkan.bl

PFN_vkCmdSetExclusiveScissorNV

PFN_vkCmdSetExclusiveScissorNV :: *fn (: VkCommandBuffer, : u32, : u32, : *VkRect2D) 

File: vulkan.bl

vkCmdSetExclusiveScissorNV

vkCmdSetExclusiveScissorNV :: fn (commandBuffer: VkCommandBuffer, firstExclusiveScissor: u32, exclusiveScissorCount: u32, pExclusiveScissors: *VkRect2D)  #extern

File: vulkan.bl

VkQueueFamilyCheckpointPropertiesNV

VkQueueFamilyCheckpointPropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    checkpointExecutionStageMask: VkPipelineStageFlags;
}

File: vulkan.bl

VkCheckpointDataNV

VkCheckpointDataNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    stage: VkPipelineStageFlagBits;
    pCheckpointMarker: C.void_ptr;
}

File: vulkan.bl

PFN_vkCmdSetCheckpointNV

PFN_vkCmdSetCheckpointNV :: *fn (: VkCommandBuffer, : C.void_ptr) 

File: vulkan.bl

PFN_vkGetQueueCheckpointDataNV

PFN_vkGetQueueCheckpointDataNV :: *fn (: VkQueue, : *u32, : *VkCheckpointDataNV) 

File: vulkan.bl

vkCmdSetCheckpointNV

vkCmdSetCheckpointNV :: fn (commandBuffer: VkCommandBuffer, pCheckpointMarker: C.void_ptr)  #extern

File: vulkan.bl

vkGetQueueCheckpointDataNV

vkGetQueueCheckpointDataNV :: fn (queue: VkQueue, pCheckpointDataCount: *u32, pCheckpointData: *VkCheckpointDataNV)  #extern

File: vulkan.bl

VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL

VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderIntegerFunctions2: VkBool32;
}

File: vulkan.bl

VkPerformanceConfigurationTypeINTEL

VkPerformanceConfigurationTypeINTEL :: enum s32 {
    VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0;
    VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 2147483647;
}

File: vulkan.bl

VkQueryPoolSamplingModeINTEL

VkQueryPoolSamplingModeINTEL :: enum s32 {
    VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0;
    VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 2147483647;
}

File: vulkan.bl

VkPerformanceOverrideTypeINTEL

VkPerformanceOverrideTypeINTEL :: enum s32 {
    VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0;
    VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1;
    VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 2147483647;
}

File: vulkan.bl

VkPerformanceParameterTypeINTEL

VkPerformanceParameterTypeINTEL :: enum s32 {
    VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0;
    VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1;
    VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 2147483647;
}

File: vulkan.bl

VkPerformanceValueTypeINTEL

VkPerformanceValueTypeINTEL :: enum s32 {
    VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0;
    VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1;
    VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2;
    VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3;
    VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4;
    VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 2147483647;
}

File: vulkan.bl

VkPerformanceValueDataINTEL

VkPerformanceValueDataINTEL :: union {
    value32: u32;
    value64: u64;
    valueFloat: f32;
    valueBool: VkBool32;
    valueString: *C.char;
}

File: vulkan.bl

VkPerformanceValueINTEL

VkPerformanceValueINTEL :: struct {
    t: VkPerformanceValueTypeINTEL;
    data: VkPerformanceValueDataINTEL;
}

File: vulkan.bl

VkInitializePerformanceApiInfoINTEL

VkInitializePerformanceApiInfoINTEL :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pUserData: C.void_ptr;
}

File: vulkan.bl

VkQueryPoolPerformanceQueryCreateInfoINTEL

VkQueryPoolPerformanceQueryCreateInfoINTEL :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    performanceCountersSampling: VkQueryPoolSamplingModeINTEL;
}

File: vulkan.bl

VkQueryPoolCreateInfoINTEL

VkQueryPoolCreateInfoINTEL :: VkQueryPoolPerformanceQueryCreateInfoINTEL

File: vulkan.bl

VkPerformanceMarkerInfoINTEL

VkPerformanceMarkerInfoINTEL :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    marker: u64;
}

File: vulkan.bl

VkPerformanceStreamMarkerInfoINTEL

VkPerformanceStreamMarkerInfoINTEL :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    marker: u32;
}

File: vulkan.bl

VkPerformanceOverrideInfoINTEL

VkPerformanceOverrideInfoINTEL :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    t: VkPerformanceOverrideTypeINTEL;
    enable: VkBool32;
    parameter: u64;
}

File: vulkan.bl

VkPerformanceConfigurationAcquireInfoINTEL

VkPerformanceConfigurationAcquireInfoINTEL :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    t: VkPerformanceConfigurationTypeINTEL;
}

File: vulkan.bl

PFN_vkInitializePerformanceApiINTEL

PFN_vkInitializePerformanceApiINTEL :: *fn (: VkDevice, : *VkInitializePerformanceApiInfoINTEL) VkResult

File: vulkan.bl

PFN_vkUninitializePerformanceApiINTEL

PFN_vkUninitializePerformanceApiINTEL :: *fn (: VkDevice) 

File: vulkan.bl

PFN_vkCmdSetPerformanceMarkerINTEL

PFN_vkCmdSetPerformanceMarkerINTEL :: *fn (: VkCommandBuffer, : *VkPerformanceMarkerInfoINTEL) VkResult

File: vulkan.bl

PFN_vkCmdSetPerformanceStreamMarkerINTEL

PFN_vkCmdSetPerformanceStreamMarkerINTEL :: *fn (: VkCommandBuffer, : *VkPerformanceStreamMarkerInfoINTEL) VkResult

File: vulkan.bl

PFN_vkCmdSetPerformanceOverrideINTEL

PFN_vkCmdSetPerformanceOverrideINTEL :: *fn (: VkCommandBuffer, : *VkPerformanceOverrideInfoINTEL) VkResult

File: vulkan.bl

PFN_vkAcquirePerformanceConfigurationINTEL

PFN_vkAcquirePerformanceConfigurationINTEL :: *fn (: VkDevice, : *VkPerformanceConfigurationAcquireInfoINTEL, : *VkPerformanceConfigurationINTEL) VkResult

File: vulkan.bl

PFN_vkReleasePerformanceConfigurationINTEL

PFN_vkReleasePerformanceConfigurationINTEL :: *fn (: VkDevice, : VkPerformanceConfigurationINTEL) VkResult

File: vulkan.bl

PFN_vkQueueSetPerformanceConfigurationINTEL

PFN_vkQueueSetPerformanceConfigurationINTEL :: *fn (: VkQueue, : VkPerformanceConfigurationINTEL) VkResult

File: vulkan.bl

PFN_vkGetPerformanceParameterINTEL

PFN_vkGetPerformanceParameterINTEL :: *fn (: VkDevice, : VkPerformanceParameterTypeINTEL, : *VkPerformanceValueINTEL) VkResult

File: vulkan.bl

vkInitializePerformanceApiINTEL

vkInitializePerformanceApiINTEL :: fn (device: VkDevice, pInitializeInfo: *VkInitializePerformanceApiInfoINTEL) VkResult #extern

File: vulkan.bl

vkUninitializePerformanceApiINTEL

vkUninitializePerformanceApiINTEL :: fn (device: VkDevice)  #extern

File: vulkan.bl

vkCmdSetPerformanceMarkerINTEL

vkCmdSetPerformanceMarkerINTEL :: fn (commandBuffer: VkCommandBuffer, pMarkerInfo: *VkPerformanceMarkerInfoINTEL) VkResult #extern

File: vulkan.bl

vkCmdSetPerformanceStreamMarkerINTEL

vkCmdSetPerformanceStreamMarkerINTEL :: fn (commandBuffer: VkCommandBuffer, pMarkerInfo: *VkPerformanceStreamMarkerInfoINTEL) VkResult #extern

File: vulkan.bl

vkCmdSetPerformanceOverrideINTEL

vkCmdSetPerformanceOverrideINTEL :: fn (commandBuffer: VkCommandBuffer, pOverrideInfo: *VkPerformanceOverrideInfoINTEL) VkResult #extern

File: vulkan.bl

vkAcquirePerformanceConfigurationINTEL

vkAcquirePerformanceConfigurationINTEL :: fn (device: VkDevice, pAcquireInfo: *VkPerformanceConfigurationAcquireInfoINTEL, pConfiguration: *VkPerformanceConfigurationINTEL) VkResult #extern

File: vulkan.bl

vkReleasePerformanceConfigurationINTEL

vkReleasePerformanceConfigurationINTEL :: fn (device: VkDevice, configuration: VkPerformanceConfigurationINTEL) VkResult #extern

File: vulkan.bl

vkQueueSetPerformanceConfigurationINTEL

vkQueueSetPerformanceConfigurationINTEL :: fn (queue: VkQueue, configuration: VkPerformanceConfigurationINTEL) VkResult #extern

File: vulkan.bl

vkGetPerformanceParameterINTEL

vkGetPerformanceParameterINTEL :: fn (device: VkDevice, parameter: VkPerformanceParameterTypeINTEL, pValue: *VkPerformanceValueINTEL) VkResult #extern

File: vulkan.bl

VkPhysicalDevicePCIBusInfoPropertiesEXT

VkPhysicalDevicePCIBusInfoPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pciDomain: u32;
    pciBus: u32;
    pciDevice: u32;
    pciFunction: u32;
}

File: vulkan.bl

VkDisplayNativeHdrSurfaceCapabilitiesAMD

VkDisplayNativeHdrSurfaceCapabilitiesAMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    localDimmingSupport: VkBool32;
}

File: vulkan.bl

VkSwapchainDisplayNativeHdrCreateInfoAMD

VkSwapchainDisplayNativeHdrCreateInfoAMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    localDimmingEnable: VkBool32;
}

File: vulkan.bl

PFN_vkSetLocalDimmingAMD

PFN_vkSetLocalDimmingAMD :: *fn (: VkDevice, : VkSwapchainKHR, : VkBool32) 

File: vulkan.bl

vkSetLocalDimmingAMD

vkSetLocalDimmingAMD :: fn (device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32)  #extern

File: vulkan.bl

VkPhysicalDeviceFragmentDensityMapFeaturesEXT

VkPhysicalDeviceFragmentDensityMapFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fragmentDensityMap: VkBool32;
    fragmentDensityMapDynamic: VkBool32;
    fragmentDensityMapNonSubsampledImages: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceFragmentDensityMapPropertiesEXT

VkPhysicalDeviceFragmentDensityMapPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    minFragmentDensityTexelSize: VkExtent2D;
    maxFragmentDensityTexelSize: VkExtent2D;
    fragmentDensityInvocations: VkBool32;
}

File: vulkan.bl

VkRenderPassFragmentDensityMapCreateInfoEXT

VkRenderPassFragmentDensityMapCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fragmentDensityMapAttachment: VkAttachmentReference;
}

File: vulkan.bl

VkPhysicalDeviceScalarBlockLayoutFeaturesEXT

VkPhysicalDeviceScalarBlockLayoutFeaturesEXT :: VkPhysicalDeviceScalarBlockLayoutFeatures

File: vulkan.bl

VkPhysicalDeviceSubgroupSizeControlFeaturesEXT

VkPhysicalDeviceSubgroupSizeControlFeaturesEXT :: VkPhysicalDeviceSubgroupSizeControlFeatures

File: vulkan.bl

VkPhysicalDeviceSubgroupSizeControlPropertiesEXT

VkPhysicalDeviceSubgroupSizeControlPropertiesEXT :: VkPhysicalDeviceSubgroupSizeControlProperties

File: vulkan.bl

VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT

VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT :: VkPipelineShaderStageRequiredSubgroupSizeCreateInfo

File: vulkan.bl

VkShaderCorePropertiesFlagBitsAMD

VkShaderCorePropertiesFlagBitsAMD :: enum s32 {
    VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 2147483647;
}

File: vulkan.bl

VkShaderCorePropertiesFlagsAMD

VkShaderCorePropertiesFlagsAMD :: VkFlags

File: vulkan.bl

VkPhysicalDeviceShaderCoreProperties2AMD

VkPhysicalDeviceShaderCoreProperties2AMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderCoreFeatures: VkShaderCorePropertiesFlagsAMD;
    activeComputeUnitCount: u32;
}

File: vulkan.bl

VkPhysicalDeviceCoherentMemoryFeaturesAMD

VkPhysicalDeviceCoherentMemoryFeaturesAMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceCoherentMemory: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT

VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderImageInt64Atomics: VkBool32;
    sparseImageInt64Atomics: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceMemoryBudgetPropertiesEXT

VkPhysicalDeviceMemoryBudgetPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    heapBudget: ;
    heapUsage: ;
}

File: vulkan.bl

VkPhysicalDeviceMemoryPriorityFeaturesEXT

VkPhysicalDeviceMemoryPriorityFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    memoryPriority: VkBool32;
}

File: vulkan.bl

VkMemoryPriorityAllocateInfoEXT

VkMemoryPriorityAllocateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    priority: f32;
}

File: vulkan.bl

VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV

VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    dedicatedAllocationImageAliasing: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceBufferDeviceAddressFeaturesEXT

VkPhysicalDeviceBufferDeviceAddressFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    bufferDeviceAddress: VkBool32;
    bufferDeviceAddressCaptureReplay: VkBool32;
    bufferDeviceAddressMultiDevice: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceBufferAddressFeaturesEXT

VkPhysicalDeviceBufferAddressFeaturesEXT :: VkPhysicalDeviceBufferDeviceAddressFeaturesEXT

File: vulkan.bl

VkBufferDeviceAddressInfoEXT

VkBufferDeviceAddressInfoEXT :: VkBufferDeviceAddressInfo

File: vulkan.bl

VkBufferDeviceAddressCreateInfoEXT

VkBufferDeviceAddressCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceAddress: VkDeviceAddress;
}

File: vulkan.bl

PFN_vkGetBufferDeviceAddressEXT

PFN_vkGetBufferDeviceAddressEXT :: *fn (: VkDevice, : *VkBufferDeviceAddressInfo) VkDeviceAddress

File: vulkan.bl

vkGetBufferDeviceAddressEXT

vkGetBufferDeviceAddressEXT :: fn (device: VkDevice, pInfo: *VkBufferDeviceAddressInfo) VkDeviceAddress #extern

File: vulkan.bl

VkToolPurposeFlagBitsEXT

VkToolPurposeFlagBitsEXT :: VkToolPurposeFlagBits

File: vulkan.bl

VkToolPurposeFlagsEXT

VkToolPurposeFlagsEXT :: VkToolPurposeFlags

File: vulkan.bl

VkPhysicalDeviceToolPropertiesEXT

VkPhysicalDeviceToolPropertiesEXT :: VkPhysicalDeviceToolProperties

File: vulkan.bl

PFN_vkGetPhysicalDeviceToolPropertiesEXT

PFN_vkGetPhysicalDeviceToolPropertiesEXT :: *fn (: VkPhysicalDevice, : *u32, : *VkPhysicalDeviceToolProperties) VkResult

File: vulkan.bl

vkGetPhysicalDeviceToolPropertiesEXT

vkGetPhysicalDeviceToolPropertiesEXT :: fn (physicalDevice: VkPhysicalDevice, pToolCount: *u32, pToolProperties: *VkPhysicalDeviceToolProperties) VkResult #extern

File: vulkan.bl

VkImageStencilUsageCreateInfoEXT

VkImageStencilUsageCreateInfoEXT :: VkImageStencilUsageCreateInfo

File: vulkan.bl

VkValidationFeatureEnableEXT

VkValidationFeatureEnableEXT :: enum s32 {
    VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0;
    VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1;
    VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2;
    VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3;
    VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4;
    VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkValidationFeatureDisableEXT

VkValidationFeatureDisableEXT :: enum s32 {
    VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0;
    VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1;
    VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2;
    VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3;
    VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4;
    VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5;
    VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6;
    VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7;
    VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkValidationFeaturesEXT

VkValidationFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    enabledValidationFeatureCount: u32;
    pEnabledValidationFeatures: *VkValidationFeatureEnableEXT;
    disabledValidationFeatureCount: u32;
    pDisabledValidationFeatures: *VkValidationFeatureDisableEXT;
}

File: vulkan.bl

VkComponentTypeNV

VkComponentTypeNV :: enum s32 {
    VK_COMPONENT_TYPE_FLOAT16_NV = 0;
    VK_COMPONENT_TYPE_FLOAT32_NV = 1;
    VK_COMPONENT_TYPE_FLOAT64_NV = 2;
    VK_COMPONENT_TYPE_SINT8_NV = 3;
    VK_COMPONENT_TYPE_SINT16_NV = 4;
    VK_COMPONENT_TYPE_SINT32_NV = 5;
    VK_COMPONENT_TYPE_SINT64_NV = 6;
    VK_COMPONENT_TYPE_UINT8_NV = 7;
    VK_COMPONENT_TYPE_UINT16_NV = 8;
    VK_COMPONENT_TYPE_UINT32_NV = 9;
    VK_COMPONENT_TYPE_UINT64_NV = 10;
    VK_COMPONENT_TYPE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkScopeNV

VkScopeNV :: enum s32 {
    VK_SCOPE_DEVICE_NV = 1;
    VK_SCOPE_WORKGROUP_NV = 2;
    VK_SCOPE_SUBGROUP_NV = 3;
    VK_SCOPE_QUEUE_FAMILY_NV = 5;
    VK_SCOPE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkCooperativeMatrixPropertiesNV

VkCooperativeMatrixPropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    MSize: u32;
    NSize: u32;
    KSize: u32;
    AType: VkComponentTypeNV;
    BType: VkComponentTypeNV;
    CType: VkComponentTypeNV;
    DType: VkComponentTypeNV;
    scope: VkScopeNV;
}

File: vulkan.bl

VkPhysicalDeviceCooperativeMatrixFeaturesNV

VkPhysicalDeviceCooperativeMatrixFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    cooperativeMatrix: VkBool32;
    cooperativeMatrixRobustBufferAccess: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceCooperativeMatrixPropertiesNV

VkPhysicalDeviceCooperativeMatrixPropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    cooperativeMatrixSupportedStages: VkShaderStageFlags;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV

PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV :: *fn (: VkPhysicalDevice, : *u32, : *VkCooperativeMatrixPropertiesNV) VkResult

File: vulkan.bl

vkGetPhysicalDeviceCooperativeMatrixPropertiesNV

vkGetPhysicalDeviceCooperativeMatrixPropertiesNV :: fn (physicalDevice: VkPhysicalDevice, pPropertyCount: *u32, pProperties: *VkCooperativeMatrixPropertiesNV) VkResult #extern

File: vulkan.bl

VkCoverageReductionModeNV

VkCoverageReductionModeNV :: enum s32 {
    VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0;
    VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1;
    VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkPipelineCoverageReductionStateCreateFlagsNV

VkPipelineCoverageReductionStateCreateFlagsNV :: VkFlags

File: vulkan.bl

VkPhysicalDeviceCoverageReductionModeFeaturesNV

VkPhysicalDeviceCoverageReductionModeFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    coverageReductionMode: VkBool32;
}

File: vulkan.bl

VkPipelineCoverageReductionStateCreateInfoNV

VkPipelineCoverageReductionStateCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineCoverageReductionStateCreateFlagsNV;
    coverageReductionMode: VkCoverageReductionModeNV;
}

File: vulkan.bl

VkFramebufferMixedSamplesCombinationNV

VkFramebufferMixedSamplesCombinationNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    coverageReductionMode: VkCoverageReductionModeNV;
    rasterizationSamples: VkSampleCountFlagBits;
    depthStencilSamples: VkSampleCountFlags;
    colorSamples: VkSampleCountFlags;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV

PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV :: *fn (: VkPhysicalDevice, : *u32, : *VkFramebufferMixedSamplesCombinationNV) VkResult

File: vulkan.bl

vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV

vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV :: fn (physicalDevice: VkPhysicalDevice, pCombinationCount: *u32, pCombinations: *VkFramebufferMixedSamplesCombinationNV) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT

VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fragmentShaderSampleInterlock: VkBool32;
    fragmentShaderPixelInterlock: VkBool32;
    fragmentShaderShadingRateInterlock: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceYcbcrImageArraysFeaturesEXT

VkPhysicalDeviceYcbcrImageArraysFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    ycbcrImageArrays: VkBool32;
}

File: vulkan.bl

VkProvokingVertexModeEXT

VkProvokingVertexModeEXT :: enum s32 {
    VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0;
    VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1;
    VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkPhysicalDeviceProvokingVertexFeaturesEXT

VkPhysicalDeviceProvokingVertexFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    provokingVertexLast: VkBool32;
    transformFeedbackPreservesProvokingVertex: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceProvokingVertexPropertiesEXT

VkPhysicalDeviceProvokingVertexPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    provokingVertexModePerPipeline: VkBool32;
    transformFeedbackPreservesTriangleFanProvokingVertex: VkBool32;
}

File: vulkan.bl

VkPipelineRasterizationProvokingVertexStateCreateInfoEXT

VkPipelineRasterizationProvokingVertexStateCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    provokingVertexMode: VkProvokingVertexModeEXT;
}

File: vulkan.bl

VkHeadlessSurfaceCreateFlagsEXT

VkHeadlessSurfaceCreateFlagsEXT :: VkFlags

File: vulkan.bl

VkHeadlessSurfaceCreateInfoEXT

VkHeadlessSurfaceCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkHeadlessSurfaceCreateFlagsEXT;
}

File: vulkan.bl

PFN_vkCreateHeadlessSurfaceEXT

PFN_vkCreateHeadlessSurfaceEXT :: *fn (: VkInstance, : *VkHeadlessSurfaceCreateInfoEXT, : *VkAllocationCallbacks, : *VkSurfaceKHR) VkResult

File: vulkan.bl

vkCreateHeadlessSurfaceEXT

vkCreateHeadlessSurfaceEXT :: fn (instance: VkInstance, pCreateInfo: *VkHeadlessSurfaceCreateInfoEXT, pAllocator: *VkAllocationCallbacks, pSurface: *VkSurfaceKHR) VkResult #extern

File: vulkan.bl

VkLineRasterizationModeEXT

VkLineRasterizationModeEXT :: enum s32 {
    VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0;
    VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1;
    VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2;
    VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3;
    VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkPhysicalDeviceLineRasterizationFeaturesEXT

VkPhysicalDeviceLineRasterizationFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    rectangularLines: VkBool32;
    bresenhamLines: VkBool32;
    smoothLines: VkBool32;
    stippledRectangularLines: VkBool32;
    stippledBresenhamLines: VkBool32;
    stippledSmoothLines: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceLineRasterizationPropertiesEXT

VkPhysicalDeviceLineRasterizationPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    lineSubPixelPrecisionBits: u32;
}

File: vulkan.bl

VkPipelineRasterizationLineStateCreateInfoEXT

VkPipelineRasterizationLineStateCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    lineRasterizationMode: VkLineRasterizationModeEXT;
    stippledLineEnable: VkBool32;
    lineStippleFactor: u32;
    lineStipplePattern: u16;
}

File: vulkan.bl

PFN_vkCmdSetLineStippleEXT

PFN_vkCmdSetLineStippleEXT :: *fn (: VkCommandBuffer, : u32, : u16) 

File: vulkan.bl

vkCmdSetLineStippleEXT

vkCmdSetLineStippleEXT :: fn (commandBuffer: VkCommandBuffer, lineStippleFactor: u32, lineStipplePattern: u16)  #extern

File: vulkan.bl

VkPhysicalDeviceShaderAtomicFloatFeaturesEXT

VkPhysicalDeviceShaderAtomicFloatFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderBufferFloat32Atomics: VkBool32;
    shaderBufferFloat32AtomicAdd: VkBool32;
    shaderBufferFloat64Atomics: VkBool32;
    shaderBufferFloat64AtomicAdd: VkBool32;
    shaderSharedFloat32Atomics: VkBool32;
    shaderSharedFloat32AtomicAdd: VkBool32;
    shaderSharedFloat64Atomics: VkBool32;
    shaderSharedFloat64AtomicAdd: VkBool32;
    shaderImageFloat32Atomics: VkBool32;
    shaderImageFloat32AtomicAdd: VkBool32;
    sparseImageFloat32Atomics: VkBool32;
    sparseImageFloat32AtomicAdd: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceHostQueryResetFeaturesEXT

VkPhysicalDeviceHostQueryResetFeaturesEXT :: VkPhysicalDeviceHostQueryResetFeatures

File: vulkan.bl

PFN_vkResetQueryPoolEXT

PFN_vkResetQueryPoolEXT :: *fn (: VkDevice, : VkQueryPool, : u32, : u32) 

File: vulkan.bl

vkResetQueryPoolEXT

vkResetQueryPoolEXT :: fn (device: VkDevice, queryPool: VkQueryPool, firstQuery: u32, queryCount: u32)  #extern

File: vulkan.bl

VkPhysicalDeviceIndexTypeUint8FeaturesEXT

VkPhysicalDeviceIndexTypeUint8FeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    indexTypeUint8: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceExtendedDynamicStateFeaturesEXT

VkPhysicalDeviceExtendedDynamicStateFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    extendedDynamicState: VkBool32;
}

File: vulkan.bl

PFN_vkCmdSetCullModeEXT

PFN_vkCmdSetCullModeEXT :: *fn (: VkCommandBuffer, : VkCullModeFlags) 

File: vulkan.bl

PFN_vkCmdSetFrontFaceEXT

PFN_vkCmdSetFrontFaceEXT :: *fn (: VkCommandBuffer, : VkFrontFace) 

File: vulkan.bl

PFN_vkCmdSetPrimitiveTopologyEXT

PFN_vkCmdSetPrimitiveTopologyEXT :: *fn (: VkCommandBuffer, : VkPrimitiveTopology) 

File: vulkan.bl

PFN_vkCmdSetViewportWithCountEXT

PFN_vkCmdSetViewportWithCountEXT :: *fn (: VkCommandBuffer, : u32, : *VkViewport) 

File: vulkan.bl

PFN_vkCmdSetScissorWithCountEXT

PFN_vkCmdSetScissorWithCountEXT :: *fn (: VkCommandBuffer, : u32, : *VkRect2D) 

File: vulkan.bl

PFN_vkCmdBindVertexBuffers2EXT

PFN_vkCmdBindVertexBuffers2EXT :: *fn (: VkCommandBuffer, : u32, : u32, : *VkBuffer, : *VkDeviceSize, : *VkDeviceSize, : *VkDeviceSize) 

File: vulkan.bl

PFN_vkCmdSetDepthTestEnableEXT

PFN_vkCmdSetDepthTestEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetDepthWriteEnableEXT

PFN_vkCmdSetDepthWriteEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetDepthCompareOpEXT

PFN_vkCmdSetDepthCompareOpEXT :: *fn (: VkCommandBuffer, : VkCompareOp) 

File: vulkan.bl

PFN_vkCmdSetDepthBoundsTestEnableEXT

PFN_vkCmdSetDepthBoundsTestEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetStencilTestEnableEXT

PFN_vkCmdSetStencilTestEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetStencilOpEXT

PFN_vkCmdSetStencilOpEXT :: *fn (: VkCommandBuffer, : VkStencilFaceFlags, : VkStencilOp, : VkStencilOp, : VkStencilOp, : VkCompareOp) 

File: vulkan.bl

vkCmdSetCullModeEXT

vkCmdSetCullModeEXT :: fn (commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags)  #extern

File: vulkan.bl

vkCmdSetFrontFaceEXT

vkCmdSetFrontFaceEXT :: fn (commandBuffer: VkCommandBuffer, frontFace: VkFrontFace)  #extern

File: vulkan.bl

vkCmdSetPrimitiveTopologyEXT

vkCmdSetPrimitiveTopologyEXT :: fn (commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology)  #extern

File: vulkan.bl

vkCmdSetViewportWithCountEXT

vkCmdSetViewportWithCountEXT :: fn (commandBuffer: VkCommandBuffer, viewportCount: u32, pViewports: *VkViewport)  #extern

File: vulkan.bl

vkCmdSetScissorWithCountEXT

vkCmdSetScissorWithCountEXT :: fn (commandBuffer: VkCommandBuffer, scissorCount: u32, pScissors: *VkRect2D)  #extern

File: vulkan.bl

vkCmdBindVertexBuffers2EXT

vkCmdBindVertexBuffers2EXT :: fn (commandBuffer: VkCommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: *VkBuffer, pOffsets: *VkDeviceSize, pSizes: *VkDeviceSize, pStrides: *VkDeviceSize)  #extern

File: vulkan.bl

vkCmdSetDepthTestEnableEXT

vkCmdSetDepthTestEnableEXT :: fn (commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetDepthWriteEnableEXT

vkCmdSetDepthWriteEnableEXT :: fn (commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetDepthCompareOpEXT

vkCmdSetDepthCompareOpEXT :: fn (commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp)  #extern

File: vulkan.bl

vkCmdSetDepthBoundsTestEnableEXT

vkCmdSetDepthBoundsTestEnableEXT :: fn (commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetStencilTestEnableEXT

vkCmdSetStencilTestEnableEXT :: fn (commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetStencilOpEXT

vkCmdSetStencilOpEXT :: fn (commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, failOp: VkStencilOp, passOp: VkStencilOp, depthFailOp: VkStencilOp, compareOp: VkCompareOp)  #extern

File: vulkan.bl

VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT

VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderBufferFloat16Atomics: VkBool32;
    shaderBufferFloat16AtomicAdd: VkBool32;
    shaderBufferFloat16AtomicMinMax: VkBool32;
    shaderBufferFloat32AtomicMinMax: VkBool32;
    shaderBufferFloat64AtomicMinMax: VkBool32;
    shaderSharedFloat16Atomics: VkBool32;
    shaderSharedFloat16AtomicAdd: VkBool32;
    shaderSharedFloat16AtomicMinMax: VkBool32;
    shaderSharedFloat32AtomicMinMax: VkBool32;
    shaderSharedFloat64AtomicMinMax: VkBool32;
    shaderImageFloat32AtomicMinMax: VkBool32;
    sparseImageFloat32AtomicMinMax: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT

VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT :: VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures

File: vulkan.bl

VkIndirectCommandsTokenTypeNV

VkIndirectCommandsTokenTypeNV :: enum s32 {
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0;
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1;
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2;
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3;
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4;
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5;
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6;
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7;
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000;
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkIndirectStateFlagBitsNV

VkIndirectStateFlagBitsNV :: enum s32 {
    VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1;
    VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkIndirectStateFlagsNV

VkIndirectStateFlagsNV :: VkFlags

File: vulkan.bl

VkIndirectCommandsLayoutUsageFlagBitsNV

VkIndirectCommandsLayoutUsageFlagBitsNV :: enum s32 {
    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1;
    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2;
    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4;
    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkIndirectCommandsLayoutUsageFlagsNV

VkIndirectCommandsLayoutUsageFlagsNV :: VkFlags

File: vulkan.bl

VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV

VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxGraphicsShaderGroupCount: u32;
    maxIndirectSequenceCount: u32;
    maxIndirectCommandsTokenCount: u32;
    maxIndirectCommandsStreamCount: u32;
    maxIndirectCommandsTokenOffset: u32;
    maxIndirectCommandsStreamStride: u32;
    minSequencesCountBufferOffsetAlignment: u32;
    minSequencesIndexBufferOffsetAlignment: u32;
    minIndirectCommandsBufferOffsetAlignment: u32;
}

File: vulkan.bl

VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV

VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceGeneratedCommands: VkBool32;
}

File: vulkan.bl

VkGraphicsShaderGroupCreateInfoNV

VkGraphicsShaderGroupCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    stageCount: u32;
    pStages: *VkPipelineShaderStageCreateInfo;
    pVertexInputState: *VkPipelineVertexInputStateCreateInfo;
    pTessellationState: *VkPipelineTessellationStateCreateInfo;
}

File: vulkan.bl

VkGraphicsPipelineShaderGroupsCreateInfoNV

VkGraphicsPipelineShaderGroupsCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    groupCount: u32;
    pGroups: *VkGraphicsShaderGroupCreateInfoNV;
    pipelineCount: u32;
    pPipelines: *VkPipeline;
}

File: vulkan.bl

VkBindShaderGroupIndirectCommandNV

VkBindShaderGroupIndirectCommandNV :: struct {
    groupIndex: u32;
}

File: vulkan.bl

VkBindIndexBufferIndirectCommandNV

VkBindIndexBufferIndirectCommandNV :: struct {
    bufferAddress: VkDeviceAddress;
    size: u32;
    indexType: VkIndexType;
}

File: vulkan.bl

VkBindVertexBufferIndirectCommandNV

VkBindVertexBufferIndirectCommandNV :: struct {
    bufferAddress: VkDeviceAddress;
    size: u32;
    stride: u32;
}

File: vulkan.bl

VkSetStateFlagsIndirectCommandNV

VkSetStateFlagsIndirectCommandNV :: struct {
    data: u32;
}

File: vulkan.bl

VkIndirectCommandsStreamNV

VkIndirectCommandsStreamNV :: struct {
    buffer: VkBuffer;
    offset: VkDeviceSize;
}

File: vulkan.bl

VkIndirectCommandsLayoutTokenNV

VkIndirectCommandsLayoutTokenNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    tokenType: VkIndirectCommandsTokenTypeNV;
    stream: u32;
    offset: u32;
    vertexBindingUnit: u32;
    vertexDynamicStride: VkBool32;
    pushconstantPipelineLayout: VkPipelineLayout;
    pushconstantShaderStageFlags: VkShaderStageFlags;
    pushconstantOffset: u32;
    pushconstantSize: u32;
    indirectStateFlags: VkIndirectStateFlagsNV;
    indexTypeCount: u32;
    pIndexTypes: *VkIndexType;
    pIndexTypeValues: *u32;
}

File: vulkan.bl

VkIndirectCommandsLayoutCreateInfoNV

VkIndirectCommandsLayoutCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkIndirectCommandsLayoutUsageFlagsNV;
    pipelineBindPoint: VkPipelineBindPoint;
    tokenCount: u32;
    pTokens: *VkIndirectCommandsLayoutTokenNV;
    streamCount: u32;
    pStreamStrides: *u32;
}

File: vulkan.bl

VkGeneratedCommandsInfoNV

VkGeneratedCommandsInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipelineBindPoint: VkPipelineBindPoint;
    pipeline: VkPipeline;
    indirectCommandsLayout: VkIndirectCommandsLayoutNV;
    streamCount: u32;
    pStreams: *VkIndirectCommandsStreamNV;
    sequencesCount: u32;
    preprocessBuffer: VkBuffer;
    preprocessOffset: VkDeviceSize;
    preprocessSize: VkDeviceSize;
    sequencesCountBuffer: VkBuffer;
    sequencesCountOffset: VkDeviceSize;
    sequencesIndexBuffer: VkBuffer;
    sequencesIndexOffset: VkDeviceSize;
}

File: vulkan.bl

VkGeneratedCommandsMemoryRequirementsInfoNV

VkGeneratedCommandsMemoryRequirementsInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipelineBindPoint: VkPipelineBindPoint;
    pipeline: VkPipeline;
    indirectCommandsLayout: VkIndirectCommandsLayoutNV;
    maxSequencesCount: u32;
}

File: vulkan.bl

PFN_vkGetGeneratedCommandsMemoryRequirementsNV

PFN_vkGetGeneratedCommandsMemoryRequirementsNV :: *fn (: VkDevice, : *VkGeneratedCommandsMemoryRequirementsInfoNV, : *VkMemoryRequirements2) 

File: vulkan.bl

PFN_vkCmdPreprocessGeneratedCommandsNV

PFN_vkCmdPreprocessGeneratedCommandsNV :: *fn (: VkCommandBuffer, : *VkGeneratedCommandsInfoNV) 

File: vulkan.bl

PFN_vkCmdExecuteGeneratedCommandsNV

PFN_vkCmdExecuteGeneratedCommandsNV :: *fn (: VkCommandBuffer, : VkBool32, : *VkGeneratedCommandsInfoNV) 

File: vulkan.bl

PFN_vkCmdBindPipelineShaderGroupNV

PFN_vkCmdBindPipelineShaderGroupNV :: *fn (: VkCommandBuffer, : VkPipelineBindPoint, : VkPipeline, : u32) 

File: vulkan.bl

PFN_vkCreateIndirectCommandsLayoutNV

PFN_vkCreateIndirectCommandsLayoutNV :: *fn (: VkDevice, : *VkIndirectCommandsLayoutCreateInfoNV, : *VkAllocationCallbacks, : *VkIndirectCommandsLayoutNV) VkResult

File: vulkan.bl

PFN_vkDestroyIndirectCommandsLayoutNV

PFN_vkDestroyIndirectCommandsLayoutNV :: *fn (: VkDevice, : VkIndirectCommandsLayoutNV, : *VkAllocationCallbacks) 

File: vulkan.bl

vkGetGeneratedCommandsMemoryRequirementsNV

vkGetGeneratedCommandsMemoryRequirementsNV :: fn (device: VkDevice, pInfo: *VkGeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: *VkMemoryRequirements2)  #extern

File: vulkan.bl

vkCmdPreprocessGeneratedCommandsNV

vkCmdPreprocessGeneratedCommandsNV :: fn (commandBuffer: VkCommandBuffer, pGeneratedCommandsInfo: *VkGeneratedCommandsInfoNV)  #extern

File: vulkan.bl

vkCmdExecuteGeneratedCommandsNV

vkCmdExecuteGeneratedCommandsNV :: fn (commandBuffer: VkCommandBuffer, isPreprocessed: VkBool32, pGeneratedCommandsInfo: *VkGeneratedCommandsInfoNV)  #extern

File: vulkan.bl

vkCmdBindPipelineShaderGroupNV

vkCmdBindPipelineShaderGroupNV :: fn (commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline, groupIndex: u32)  #extern

File: vulkan.bl

vkCreateIndirectCommandsLayoutNV

vkCreateIndirectCommandsLayoutNV :: fn (device: VkDevice, pCreateInfo: *VkIndirectCommandsLayoutCreateInfoNV, pAllocator: *VkAllocationCallbacks, pIndirectCommandsLayout: *VkIndirectCommandsLayoutNV) VkResult #extern

File: vulkan.bl

vkDestroyIndirectCommandsLayoutNV

vkDestroyIndirectCommandsLayoutNV :: fn (device: VkDevice, indirectCommandsLayout: VkIndirectCommandsLayoutNV, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

VkPhysicalDeviceInheritedViewportScissorFeaturesNV

VkPhysicalDeviceInheritedViewportScissorFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    inheritedViewportScissor2D: VkBool32;
}

File: vulkan.bl

VkCommandBufferInheritanceViewportScissorInfoNV

VkCommandBufferInheritanceViewportScissorInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    viewportScissor2D: VkBool32;
    viewportDepthCount: u32;
    pViewportDepths: *VkViewport;
}

File: vulkan.bl

VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT

VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    texelBufferAlignment: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT

VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT :: VkPhysicalDeviceTexelBufferAlignmentProperties

File: vulkan.bl

VkRenderPassTransformBeginInfoQCOM

VkRenderPassTransformBeginInfoQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    transform: VkSurfaceTransformFlagBitsKHR;
}

File: vulkan.bl

VkCommandBufferInheritanceRenderPassTransformInfoQCOM

VkCommandBufferInheritanceRenderPassTransformInfoQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    transform: VkSurfaceTransformFlagBitsKHR;
    renderArea: VkRect2D;
}

File: vulkan.bl

VkDeviceMemoryReportEventTypeEXT

VkDeviceMemoryReportEventTypeEXT :: enum s32 {
    VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0;
    VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1;
    VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2;
    VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3;
    VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4;
    VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDeviceMemoryReportFlagsEXT

VkDeviceMemoryReportFlagsEXT :: VkFlags

File: vulkan.bl

VkPhysicalDeviceDeviceMemoryReportFeaturesEXT

VkPhysicalDeviceDeviceMemoryReportFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceMemoryReport: VkBool32;
}

File: vulkan.bl

VkDeviceMemoryReportCallbackDataEXT

VkDeviceMemoryReportCallbackDataEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDeviceMemoryReportFlagsEXT;
    t: VkDeviceMemoryReportEventTypeEXT;
    memoryObjectId: u64;
    size: VkDeviceSize;
    objectType: VkObjectType;
    objectHandle: u64;
    heapIndex: u32;
}

File: vulkan.bl

PFN_vkDeviceMemoryReportCallbackEXT

PFN_vkDeviceMemoryReportCallbackEXT :: *fn (: *VkDeviceMemoryReportCallbackDataEXT, : C.void_ptr) 

File: vulkan.bl

VkDeviceDeviceMemoryReportCreateInfoEXT

VkDeviceDeviceMemoryReportCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDeviceMemoryReportFlagsEXT;
    pfnUserCallback: PFN_vkDeviceMemoryReportCallbackEXT;
    pUserData: C.void_ptr;
}

File: vulkan.bl

PFN_vkAcquireDrmDisplayEXT

PFN_vkAcquireDrmDisplayEXT :: *fn (: VkPhysicalDevice, : s32, : VkDisplayKHR) VkResult

File: vulkan.bl

PFN_vkGetDrmDisplayEXT

PFN_vkGetDrmDisplayEXT :: *fn (: VkPhysicalDevice, : s32, : u32, : *VkDisplayKHR) VkResult

File: vulkan.bl

vkAcquireDrmDisplayEXT

vkAcquireDrmDisplayEXT :: fn (physicalDevice: VkPhysicalDevice, drmFd: s32, display: VkDisplayKHR) VkResult #extern

File: vulkan.bl

vkGetDrmDisplayEXT

vkGetDrmDisplayEXT :: fn (physicalDevice: VkPhysicalDevice, drmFd: s32, connectorId: u32, display: *VkDisplayKHR) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceRobustness2FeaturesEXT

VkPhysicalDeviceRobustness2FeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    robustBufferAccess2: VkBool32;
    robustImageAccess2: VkBool32;
    nullDescriptor: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceRobustness2PropertiesEXT

VkPhysicalDeviceRobustness2PropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    robustStorageBufferAccessSizeAlignment: VkDeviceSize;
    robustUniformBufferAccessSizeAlignment: VkDeviceSize;
}

File: vulkan.bl

VkSamplerCustomBorderColorCreateInfoEXT

VkSamplerCustomBorderColorCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    customBorderColor: VkClearColorValue;
    format: VkFormat;
}

File: vulkan.bl

VkPhysicalDeviceCustomBorderColorPropertiesEXT

VkPhysicalDeviceCustomBorderColorPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxCustomBorderColorSamplers: u32;
}

File: vulkan.bl

VkPhysicalDeviceCustomBorderColorFeaturesEXT

VkPhysicalDeviceCustomBorderColorFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    customBorderColors: VkBool32;
    customBorderColorWithoutFormat: VkBool32;
}

File: vulkan.bl

VkPhysicalDevicePresentBarrierFeaturesNV

VkPhysicalDevicePresentBarrierFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    presentBarrier: VkBool32;
}

File: vulkan.bl

VkSurfaceCapabilitiesPresentBarrierNV

VkSurfaceCapabilitiesPresentBarrierNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    presentBarrierSupported: VkBool32;
}

File: vulkan.bl

VkSwapchainPresentBarrierCreateInfoNV

VkSwapchainPresentBarrierCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    presentBarrierEnable: VkBool32;
}

File: vulkan.bl

VkPrivateDataSlotEXT

VkPrivateDataSlotEXT :: VkPrivateDataSlot

File: vulkan.bl

VkPrivateDataSlotCreateFlagsEXT

VkPrivateDataSlotCreateFlagsEXT :: VkPrivateDataSlotCreateFlags

File: vulkan.bl

VkPhysicalDevicePrivateDataFeaturesEXT

VkPhysicalDevicePrivateDataFeaturesEXT :: VkPhysicalDevicePrivateDataFeatures

File: vulkan.bl

VkDevicePrivateDataCreateInfoEXT

VkDevicePrivateDataCreateInfoEXT :: VkDevicePrivateDataCreateInfo

File: vulkan.bl

VkPrivateDataSlotCreateInfoEXT

VkPrivateDataSlotCreateInfoEXT :: VkPrivateDataSlotCreateInfo

File: vulkan.bl

PFN_vkCreatePrivateDataSlotEXT

PFN_vkCreatePrivateDataSlotEXT :: *fn (: VkDevice, : *VkPrivateDataSlotCreateInfo, : *VkAllocationCallbacks, : *VkPrivateDataSlot) VkResult

File: vulkan.bl

PFN_vkDestroyPrivateDataSlotEXT

PFN_vkDestroyPrivateDataSlotEXT :: *fn (: VkDevice, : VkPrivateDataSlot, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkSetPrivateDataEXT

PFN_vkSetPrivateDataEXT :: *fn (: VkDevice, : VkObjectType, : u64, : VkPrivateDataSlot, : u64) VkResult

File: vulkan.bl

PFN_vkGetPrivateDataEXT

PFN_vkGetPrivateDataEXT :: *fn (: VkDevice, : VkObjectType, : u64, : VkPrivateDataSlot, : *u64) 

File: vulkan.bl

vkCreatePrivateDataSlotEXT

vkCreatePrivateDataSlotEXT :: fn (device: VkDevice, pCreateInfo: *VkPrivateDataSlotCreateInfo, pAllocator: *VkAllocationCallbacks, pPrivateDataSlot: *VkPrivateDataSlot) VkResult #extern

File: vulkan.bl

vkDestroyPrivateDataSlotEXT

vkDestroyPrivateDataSlotEXT :: fn (device: VkDevice, privateDataSlot: VkPrivateDataSlot, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkSetPrivateDataEXT

vkSetPrivateDataEXT :: fn (device: VkDevice, objectType: VkObjectType, objectHandle: u64, privateDataSlot: VkPrivateDataSlot, data: u64) VkResult #extern

File: vulkan.bl

vkGetPrivateDataEXT

vkGetPrivateDataEXT :: fn (device: VkDevice, objectType: VkObjectType, objectHandle: u64, privateDataSlot: VkPrivateDataSlot, pData: *u64)  #extern

File: vulkan.bl

VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT

VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT :: VkPhysicalDevicePipelineCreationCacheControlFeatures

File: vulkan.bl

VkDeviceDiagnosticsConfigFlagBitsNV

VkDeviceDiagnosticsConfigFlagBitsNV :: enum s32 {
    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1;
    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2;
    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4;
    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 8;
    VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkDeviceDiagnosticsConfigFlagsNV

VkDeviceDiagnosticsConfigFlagsNV :: VkFlags

File: vulkan.bl

VkPhysicalDeviceDiagnosticsConfigFeaturesNV

VkPhysicalDeviceDiagnosticsConfigFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    diagnosticsConfig: VkBool32;
}

File: vulkan.bl

VkDeviceDiagnosticsConfigCreateInfoNV

VkDeviceDiagnosticsConfigCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDeviceDiagnosticsConfigFlagsNV;
}

File: vulkan.bl

VkGraphicsPipelineLibraryFlagBitsEXT

VkGraphicsPipelineLibraryFlagBitsEXT :: enum u32 {
    VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 1;
    VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 2;
    VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 4;
    VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 8;
    VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkGraphicsPipelineLibraryFlagsEXT

VkGraphicsPipelineLibraryFlagsEXT :: VkFlags

File: vulkan.bl

VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT

VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    graphicsPipelineLibrary: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT

VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    graphicsPipelineLibraryFastLinking: VkBool32;
    graphicsPipelineLibraryIndependentInterpolationDecoration: VkBool32;
}

File: vulkan.bl

VkGraphicsPipelineLibraryCreateInfoEXT

VkGraphicsPipelineLibraryCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkGraphicsPipelineLibraryFlagsEXT;
}

File: vulkan.bl

VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD

VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderEarlyAndLateFragmentTests: VkBool32;
}

File: vulkan.bl

VkFragmentShadingRateTypeNV

VkFragmentShadingRateTypeNV :: enum s32 {
    VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0;
    VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1;
    VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkFragmentShadingRateNV

VkFragmentShadingRateNV :: enum s32 {
    VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0;
    VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1;
    VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4;
    VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5;
    VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6;
    VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9;
    VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10;
    VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11;
    VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12;
    VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13;
    VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14;
    VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15;
    VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV

VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fragmentShadingRateEnums: VkBool32;
    supersampleFragmentShadingRates: VkBool32;
    noInvocationFragmentShadingRates: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV

VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxFragmentShadingRateInvocationCount: VkSampleCountFlagBits;
}

File: vulkan.bl

VkPipelineFragmentShadingRateEnumStateCreateInfoNV

VkPipelineFragmentShadingRateEnumStateCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shadingRateType: VkFragmentShadingRateTypeNV;
    shadingRate: VkFragmentShadingRateNV;
    combinerOps: ;
}

File: vulkan.bl

PFN_vkCmdSetFragmentShadingRateEnumNV

PFN_vkCmdSetFragmentShadingRateEnumNV :: *fn (: VkCommandBuffer, : VkFragmentShadingRateNV, : ) 

File: vulkan.bl

vkCmdSetFragmentShadingRateEnumNV

vkCmdSetFragmentShadingRateEnumNV :: fn (commandBuffer: VkCommandBuffer, shadingRate: VkFragmentShadingRateNV, combinerOps: )  #extern

File: vulkan.bl

VkAccelerationStructureMotionInstanceTypeNV

VkAccelerationStructureMotionInstanceTypeNV :: enum s32 {
    VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0;
    VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1;
    VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2;
    VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkAccelerationStructureMotionInfoFlagsNV

VkAccelerationStructureMotionInfoFlagsNV :: VkFlags

File: vulkan.bl

VkAccelerationStructureMotionInstanceFlagsNV

VkAccelerationStructureMotionInstanceFlagsNV :: VkFlags

File: vulkan.bl

VkDeviceOrHostAddressConstKHR

VkDeviceOrHostAddressConstKHR :: union {
    deviceAddress: VkDeviceAddress;
    hostAddress: C.void_ptr;
}

File: vulkan.bl

VkAccelerationStructureGeometryMotionTrianglesDataNV

VkAccelerationStructureGeometryMotionTrianglesDataNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    vertexData: VkDeviceOrHostAddressConstKHR;
}

File: vulkan.bl

VkAccelerationStructureMotionInfoNV

VkAccelerationStructureMotionInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxInstances: u32;
    flags: VkAccelerationStructureMotionInfoFlagsNV;
}

File: vulkan.bl

VkAccelerationStructureMatrixMotionInstanceNV

VkAccelerationStructureMatrixMotionInstanceNV :: struct {
    transformT0: VkTransformMatrixKHR;
    transformT1: VkTransformMatrixKHR;
    instanceCustomIndex: u32;
    mask: u32;
    instanceShaderBindingTableRecordOffset: u32;
    flags: VkGeometryInstanceFlagsKHR;
    accelerationStructureReference: u64;
}

File: vulkan.bl

VkSRTDataNV

VkSRTDataNV :: struct {
    sx: f32;
    a: f32;
    b: f32;
    pvx: f32;
    sy: f32;
    c: f32;
    pvy: f32;
    sz: f32;
    pvz: f32;
    qx: f32;
    qy: f32;
    qz: f32;
    qw: f32;
    tx: f32;
    ty: f32;
    tz: f32;
}

File: vulkan.bl

VkAccelerationStructureSRTMotionInstanceNV

VkAccelerationStructureSRTMotionInstanceNV :: struct {
    transformT0: VkSRTDataNV;
    transformT1: VkSRTDataNV;
    instanceCustomIndex: u32;
    mask: u32;
    instanceShaderBindingTableRecordOffset: u32;
    flags: VkGeometryInstanceFlagsKHR;
    accelerationStructureReference: u64;
}

File: vulkan.bl

VkAccelerationStructureMotionInstanceDataNV

VkAccelerationStructureMotionInstanceDataNV :: union {
    staticInstance: VkAccelerationStructureInstanceKHR;
    matrixMotionInstance: VkAccelerationStructureMatrixMotionInstanceNV;
    srtMotionInstance: VkAccelerationStructureSRTMotionInstanceNV;
}

File: vulkan.bl

VkAccelerationStructureMotionInstanceNV

VkAccelerationStructureMotionInstanceNV :: struct {
    t: VkAccelerationStructureMotionInstanceTypeNV;
    flags: VkAccelerationStructureMotionInstanceFlagsNV;
    data: VkAccelerationStructureMotionInstanceDataNV;
}

File: vulkan.bl

VkPhysicalDeviceRayTracingMotionBlurFeaturesNV

VkPhysicalDeviceRayTracingMotionBlurFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    rayTracingMotionBlur: VkBool32;
    rayTracingMotionBlurPipelineTraceRaysIndirect: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT

VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    ycbcr2plane444Formats: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceFragmentDensityMap2FeaturesEXT

VkPhysicalDeviceFragmentDensityMap2FeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fragmentDensityMapDeferred: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceFragmentDensityMap2PropertiesEXT

VkPhysicalDeviceFragmentDensityMap2PropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    subsampledLoads: VkBool32;
    subsampledCoarseReconstructionEarlyAccess: VkBool32;
    maxSubsampledArrayLayers: u32;
    maxDescriptorSetSubsampledSamplers: u32;
}

File: vulkan.bl

VkCopyCommandTransformInfoQCOM

VkCopyCommandTransformInfoQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    transform: VkSurfaceTransformFlagBitsKHR;
}

File: vulkan.bl

VkPhysicalDeviceImageRobustnessFeaturesEXT

VkPhysicalDeviceImageRobustnessFeaturesEXT :: VkPhysicalDeviceImageRobustnessFeatures

File: vulkan.bl

VkImageCompressionFlagBitsEXT

VkImageCompressionFlagBitsEXT :: enum u32 {
    VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0;
    VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 1;
    VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 2;
    VK_IMAGE_COMPRESSION_DISABLED_EXT = 4;
    VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkImageCompressionFlagsEXT

VkImageCompressionFlagsEXT :: VkFlags

File: vulkan.bl

VkImageCompressionFixedRateFlagBitsEXT

VkImageCompressionFixedRateFlagBitsEXT :: enum u32 {
    VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0;
    VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 1;
    VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 2;
    VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 4;
    VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 8;
    VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 16;
    VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 32;
    VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 64;
    VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 128;
    VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 256;
    VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 512;
    VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 1024;
    VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 2048;
    VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 4096;
    VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 8192;
    VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 16384;
    VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 32768;
    VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 65536;
    VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 131072;
    VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 262144;
    VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 524288;
    VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 1048576;
    VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 2097152;
    VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 4194304;
    VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 8388608;
    VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkImageCompressionFixedRateFlagsEXT

VkImageCompressionFixedRateFlagsEXT :: VkFlags

File: vulkan.bl

VkPhysicalDeviceImageCompressionControlFeaturesEXT

VkPhysicalDeviceImageCompressionControlFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageCompressionControl: VkBool32;
}

File: vulkan.bl

VkImageCompressionControlEXT

VkImageCompressionControlEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkImageCompressionFlagsEXT;
    compressionControlPlaneCount: u32;
    pFixedRateFlags: *VkImageCompressionFixedRateFlagsEXT;
}

File: vulkan.bl

VkSubresourceLayout2EXT

VkSubresourceLayout2EXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    subresourceLayout: VkSubresourceLayout;
}

File: vulkan.bl

VkImageSubresource2EXT

VkImageSubresource2EXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageSubresource: VkImageSubresource;
}

File: vulkan.bl

VkImageCompressionPropertiesEXT

VkImageCompressionPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageCompressionFlags: VkImageCompressionFlagsEXT;
    imageCompressionFixedRateFlags: VkImageCompressionFixedRateFlagsEXT;
}

File: vulkan.bl

PFN_vkGetImageSubresourceLayout2EXT

PFN_vkGetImageSubresourceLayout2EXT :: *fn (: VkDevice, : VkImage, : *VkImageSubresource2EXT, : *VkSubresourceLayout2EXT) 

File: vulkan.bl

vkGetImageSubresourceLayout2EXT

vkGetImageSubresourceLayout2EXT :: fn (device: VkDevice, image: VkImage, pSubresource: *VkImageSubresource2EXT, pLayout: *VkSubresourceLayout2EXT)  #extern

File: vulkan.bl

VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT

VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    attachmentFeedbackLoopLayout: VkBool32;
}

File: vulkan.bl

VkPhysicalDevice4444FormatsFeaturesEXT

VkPhysicalDevice4444FormatsFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    formatA4R4G4B4: VkBool32;
    formatA4B4G4R4: VkBool32;
}

File: vulkan.bl

VkDeviceFaultAddressTypeEXT

VkDeviceFaultAddressTypeEXT :: enum s32 {
    VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0;
    VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1;
    VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2;
    VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3;
    VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4;
    VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5;
    VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6;
    VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDeviceFaultVendorBinaryHeaderVersionEXT

VkDeviceFaultVendorBinaryHeaderVersionEXT :: enum s32 {
    VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1;
    VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkPhysicalDeviceFaultFeaturesEXT

VkPhysicalDeviceFaultFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    deviceFault: VkBool32;
    deviceFaultVendorBinary: VkBool32;
}

File: vulkan.bl

VkDeviceFaultCountsEXT

VkDeviceFaultCountsEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    addressInfoCount: u32;
    vendorInfoCount: u32;
    vendorBinarySize: VkDeviceSize;
}

File: vulkan.bl

VkDeviceFaultAddressInfoEXT

VkDeviceFaultAddressInfoEXT :: struct {
    addressType: VkDeviceFaultAddressTypeEXT;
    reportedAddress: VkDeviceAddress;
    addressPrecision: VkDeviceSize;
}

File: vulkan.bl

VkDeviceFaultVendorInfoEXT

VkDeviceFaultVendorInfoEXT :: struct {
    description: ;
    vendorFaultCode: u64;
    vendorFaultData: u64;
}

File: vulkan.bl

VkDeviceFaultInfoEXT

VkDeviceFaultInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    description: ;
    pAddressInfos: *VkDeviceFaultAddressInfoEXT;
    pVendorInfos: *VkDeviceFaultVendorInfoEXT;
    pVendorBinaryData: C.void_ptr;
}

File: vulkan.bl

VkDeviceFaultVendorBinaryHeaderVersionOneEXT

VkDeviceFaultVendorBinaryHeaderVersionOneEXT :: struct {
    headerSize: u32;
    headerVersion: VkDeviceFaultVendorBinaryHeaderVersionEXT;
    vendorID: u32;
    deviceID: u32;
    driverVersion: u32;
    pipelineCacheUUID: ;
    applicationNameOffset: u32;
    applicationVersion: u32;
    engineNameOffset: u32;
}

File: vulkan.bl

PFN_vkGetDeviceFaultInfoEXT

PFN_vkGetDeviceFaultInfoEXT :: *fn (: VkDevice, : *VkDeviceFaultCountsEXT, : *VkDeviceFaultInfoEXT) VkResult

File: vulkan.bl

vkGetDeviceFaultInfoEXT

vkGetDeviceFaultInfoEXT :: fn (device: VkDevice, pFaultCounts: *VkDeviceFaultCountsEXT, pFaultInfo: *VkDeviceFaultInfoEXT) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT

VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    rasterizationOrderColorAttachmentAccess: VkBool32;
    rasterizationOrderDepthAttachmentAccess: VkBool32;
    rasterizationOrderStencilAttachmentAccess: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM

VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM :: VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT

File: vulkan.bl

VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT

VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    formatRgba10x6WithoutYCbCrSampler: VkBool32;
}

File: vulkan.bl

PFN_vkAcquireWinrtDisplayNV

PFN_vkAcquireWinrtDisplayNV :: *fn (: VkPhysicalDevice, : VkDisplayKHR) VkResult

File: vulkan.bl

PFN_vkGetWinrtDisplayNV

PFN_vkGetWinrtDisplayNV :: *fn (: VkPhysicalDevice, : u32, : *VkDisplayKHR) VkResult

File: vulkan.bl

vkAcquireWinrtDisplayNV

vkAcquireWinrtDisplayNV :: fn (physicalDevice: VkPhysicalDevice, display: VkDisplayKHR) VkResult #extern

File: vulkan.bl

vkGetWinrtDisplayNV

vkGetWinrtDisplayNV :: fn (physicalDevice: VkPhysicalDevice, deviceRelativeId: u32, pDisplay: *VkDisplayKHR) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT

VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    mutableDescriptorType: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE

VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE :: VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT

File: vulkan.bl

VkMutableDescriptorTypeListEXT

VkMutableDescriptorTypeListEXT :: struct {
    descriptorTypeCount: u32;
    pDescriptorTypes: *VkDescriptorType;
}

File: vulkan.bl

VkMutableDescriptorTypeListVALVE

VkMutableDescriptorTypeListVALVE :: VkMutableDescriptorTypeListEXT

File: vulkan.bl

VkMutableDescriptorTypeCreateInfoEXT

VkMutableDescriptorTypeCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    mutableDescriptorTypeListCount: u32;
    pMutableDescriptorTypeLists: *VkMutableDescriptorTypeListEXT;
}

File: vulkan.bl

VkMutableDescriptorTypeCreateInfoVALVE

VkMutableDescriptorTypeCreateInfoVALVE :: VkMutableDescriptorTypeCreateInfoEXT

File: vulkan.bl

VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT

VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    vertexInputDynamicState: VkBool32;
}

File: vulkan.bl

VkVertexInputBindingDescription2EXT

VkVertexInputBindingDescription2EXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    binding: u32;
    stride: u32;
    inputRate: VkVertexInputRate;
    divisor: u32;
}

File: vulkan.bl

VkVertexInputAttributeDescription2EXT

VkVertexInputAttributeDescription2EXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    location: u32;
    binding: u32;
    format: VkFormat;
    offset: u32;
}

File: vulkan.bl

PFN_vkCmdSetVertexInputEXT

PFN_vkCmdSetVertexInputEXT :: *fn (: VkCommandBuffer, : u32, : *VkVertexInputBindingDescription2EXT, : u32, : *VkVertexInputAttributeDescription2EXT) 

File: vulkan.bl

vkCmdSetVertexInputEXT

vkCmdSetVertexInputEXT :: fn (commandBuffer: VkCommandBuffer, vertexBindingDescriptionCount: u32, pVertexBindingDescriptions: *VkVertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: u32, pVertexAttributeDescriptions: *VkVertexInputAttributeDescription2EXT)  #extern

File: vulkan.bl

VkPhysicalDeviceDrmPropertiesEXT

VkPhysicalDeviceDrmPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    hasPrimary: VkBool32;
    hasRender: VkBool32;
    primaryMajor: s64;
    primaryMinor: s64;
    renderMajor: s64;
    renderMinor: s64;
}

File: vulkan.bl

VkDeviceAddressBindingTypeEXT

VkDeviceAddressBindingTypeEXT :: enum s32 {
    VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0;
    VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1;
    VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDeviceAddressBindingFlagBitsEXT

VkDeviceAddressBindingFlagBitsEXT :: enum u32 {
    VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 1;
    VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkDeviceAddressBindingFlagsEXT

VkDeviceAddressBindingFlagsEXT :: VkFlags

File: vulkan.bl

VkPhysicalDeviceAddressBindingReportFeaturesEXT

VkPhysicalDeviceAddressBindingReportFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    reportAddressBinding: VkBool32;
}

File: vulkan.bl

VkDeviceAddressBindingCallbackDataEXT

VkDeviceAddressBindingCallbackDataEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkDeviceAddressBindingFlagsEXT;
    baseAddress: VkDeviceAddress;
    size: VkDeviceSize;
    bindingType: VkDeviceAddressBindingTypeEXT;
}

File: vulkan.bl

VkPhysicalDeviceDepthClipControlFeaturesEXT

VkPhysicalDeviceDepthClipControlFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    depthClipControl: VkBool32;
}

File: vulkan.bl

VkPipelineViewportDepthClipControlCreateInfoEXT

VkPipelineViewportDepthClipControlCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    negativeOneToOne: VkBool32;
}

File: vulkan.bl

VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT

VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    primitiveTopologyListRestart: VkBool32;
    primitiveTopologyPatchListRestart: VkBool32;
}

File: vulkan.bl

VkSubpassShadingPipelineCreateInfoHUAWEI

VkSubpassShadingPipelineCreateInfoHUAWEI :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    renderPass: VkRenderPass;
    subpass: u32;
}

File: vulkan.bl

VkPhysicalDeviceSubpassShadingFeaturesHUAWEI

VkPhysicalDeviceSubpassShadingFeaturesHUAWEI :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    subpassShading: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceSubpassShadingPropertiesHUAWEI

VkPhysicalDeviceSubpassShadingPropertiesHUAWEI :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxSubpassShadingWorkgroupSizeAspectRatio: u32;
}

File: vulkan.bl

PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI

PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI :: *fn (: VkDevice, : VkRenderPass, : *VkExtent2D) VkResult

File: vulkan.bl

PFN_vkCmdSubpassShadingHUAWEI

PFN_vkCmdSubpassShadingHUAWEI :: *fn (: VkCommandBuffer) 

File: vulkan.bl

vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI

vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI :: fn (device: VkDevice, renderpass: VkRenderPass, pMaxWorkgroupSize: *VkExtent2D) VkResult #extern

File: vulkan.bl

vkCmdSubpassShadingHUAWEI

vkCmdSubpassShadingHUAWEI :: fn (commandBuffer: VkCommandBuffer)  #extern

File: vulkan.bl

VkPhysicalDeviceInvocationMaskFeaturesHUAWEI

VkPhysicalDeviceInvocationMaskFeaturesHUAWEI :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    invocationMask: VkBool32;
}

File: vulkan.bl

PFN_vkCmdBindInvocationMaskHUAWEI

PFN_vkCmdBindInvocationMaskHUAWEI :: *fn (: VkCommandBuffer, : VkImageView, : VkImageLayout) 

File: vulkan.bl

vkCmdBindInvocationMaskHUAWEI

vkCmdBindInvocationMaskHUAWEI :: fn (commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout)  #extern

File: vulkan.bl

VkRemoteAddressNV

VkRemoteAddressNV :: C.void_ptr

File: vulkan.bl

VkMemoryGetRemoteAddressInfoNV

VkMemoryGetRemoteAddressInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    memory: VkDeviceMemory;
    handleType: VkExternalMemoryHandleTypeFlagBits;
}

File: vulkan.bl

VkPhysicalDeviceExternalMemoryRDMAFeaturesNV

VkPhysicalDeviceExternalMemoryRDMAFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    externalMemoryRDMA: VkBool32;
}

File: vulkan.bl

PFN_vkGetMemoryRemoteAddressNV

PFN_vkGetMemoryRemoteAddressNV :: *fn (: VkDevice, : *VkMemoryGetRemoteAddressInfoNV, : *VkRemoteAddressNV) VkResult

File: vulkan.bl

vkGetMemoryRemoteAddressNV

vkGetMemoryRemoteAddressNV :: fn (device: VkDevice, pMemoryGetRemoteAddressInfo: *VkMemoryGetRemoteAddressInfoNV, pAddress: *VkRemoteAddressNV) VkResult #extern

File: vulkan.bl

VkPipelineInfoEXT

VkPipelineInfoEXT :: VkPipelineInfoKHR

File: vulkan.bl

VkPipelinePropertiesIdentifierEXT

VkPipelinePropertiesIdentifierEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipelineIdentifier: ;
}

File: vulkan.bl

VkPhysicalDevicePipelinePropertiesFeaturesEXT

VkPhysicalDevicePipelinePropertiesFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipelinePropertiesIdentifier: VkBool32;
}

File: vulkan.bl

PFN_vkGetPipelinePropertiesEXT

PFN_vkGetPipelinePropertiesEXT :: *fn (: VkDevice, : *VkPipelineInfoEXT, : *VkBaseOutStructure) VkResult

File: vulkan.bl

vkGetPipelinePropertiesEXT

vkGetPipelinePropertiesEXT :: fn (device: VkDevice, pPipelineInfo: *VkPipelineInfoEXT, pPipelineProperties: *VkBaseOutStructure) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT

VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    multisampledRenderToSingleSampled: VkBool32;
}

File: vulkan.bl

VkSubpassResolvePerformanceQueryEXT

VkSubpassResolvePerformanceQueryEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    optimal: VkBool32;
}

File: vulkan.bl

VkMultisampledRenderToSingleSampledInfoEXT

VkMultisampledRenderToSingleSampledInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    multisampledRenderToSingleSampledEnable: VkBool32;
    rasterizationSamples: VkSampleCountFlagBits;
}

File: vulkan.bl

VkPhysicalDeviceExtendedDynamicState2FeaturesEXT

VkPhysicalDeviceExtendedDynamicState2FeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    extendedDynamicState2: VkBool32;
    extendedDynamicState2LogicOp: VkBool32;
    extendedDynamicState2PatchControlPoints: VkBool32;
}

File: vulkan.bl

PFN_vkCmdSetPatchControlPointsEXT

PFN_vkCmdSetPatchControlPointsEXT :: *fn (: VkCommandBuffer, : u32) 

File: vulkan.bl

PFN_vkCmdSetRasterizerDiscardEnableEXT

PFN_vkCmdSetRasterizerDiscardEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetDepthBiasEnableEXT

PFN_vkCmdSetDepthBiasEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetLogicOpEXT

PFN_vkCmdSetLogicOpEXT :: *fn (: VkCommandBuffer, : VkLogicOp) 

File: vulkan.bl

PFN_vkCmdSetPrimitiveRestartEnableEXT

PFN_vkCmdSetPrimitiveRestartEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

vkCmdSetPatchControlPointsEXT

vkCmdSetPatchControlPointsEXT :: fn (commandBuffer: VkCommandBuffer, patchControlPoints: u32)  #extern

File: vulkan.bl

vkCmdSetRasterizerDiscardEnableEXT

vkCmdSetRasterizerDiscardEnableEXT :: fn (commandBuffer: VkCommandBuffer, rasterizerDiscardEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetDepthBiasEnableEXT

vkCmdSetDepthBiasEnableEXT :: fn (commandBuffer: VkCommandBuffer, depthBiasEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetLogicOpEXT

vkCmdSetLogicOpEXT :: fn (commandBuffer: VkCommandBuffer, logicOp: VkLogicOp)  #extern

File: vulkan.bl

vkCmdSetPrimitiveRestartEnableEXT

vkCmdSetPrimitiveRestartEnableEXT :: fn (commandBuffer: VkCommandBuffer, primitiveRestartEnable: VkBool32)  #extern

File: vulkan.bl

VkPhysicalDeviceColorWriteEnableFeaturesEXT

VkPhysicalDeviceColorWriteEnableFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    colorWriteEnable: VkBool32;
}

File: vulkan.bl

VkPipelineColorWriteCreateInfoEXT

VkPipelineColorWriteCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    attachmentCount: u32;
    pColorWriteEnables: *VkBool32;
}

File: vulkan.bl

PFN_vkCmdSetColorWriteEnableEXT

PFN_vkCmdSetColorWriteEnableEXT :: *fn (: VkCommandBuffer, : u32, : *VkBool32) 

File: vulkan.bl

vkCmdSetColorWriteEnableEXT

vkCmdSetColorWriteEnableEXT :: fn (commandBuffer: VkCommandBuffer, attachmentCount: u32, pColorWriteEnables: *VkBool32)  #extern

File: vulkan.bl

VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT

VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    primitivesGeneratedQuery: VkBool32;
    primitivesGeneratedQueryWithRasterizerDiscard: VkBool32;
    primitivesGeneratedQueryWithNonZeroStreams: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT

VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT :: VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR

File: vulkan.bl

VkQueueFamilyGlobalPriorityPropertiesEXT

VkQueueFamilyGlobalPriorityPropertiesEXT :: VkQueueFamilyGlobalPriorityPropertiesKHR

File: vulkan.bl

VkPhysicalDeviceImageViewMinLodFeaturesEXT

VkPhysicalDeviceImageViewMinLodFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    minLod: VkBool32;
}

File: vulkan.bl

VkImageViewMinLodCreateInfoEXT

VkImageViewMinLodCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    minLod: f32;
}

File: vulkan.bl

VkPhysicalDeviceMultiDrawFeaturesEXT

VkPhysicalDeviceMultiDrawFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    multiDraw: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceMultiDrawPropertiesEXT

VkPhysicalDeviceMultiDrawPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxMultiDrawCount: u32;
}

File: vulkan.bl

VkMultiDrawInfoEXT

VkMultiDrawInfoEXT :: struct {
    firstVertex: u32;
    vertexCount: u32;
}

File: vulkan.bl

VkMultiDrawIndexedInfoEXT

VkMultiDrawIndexedInfoEXT :: struct {
    firstIndex: u32;
    indexCount: u32;
    vertexOffset: s32;
}

File: vulkan.bl

PFN_vkCmdDrawMultiEXT

PFN_vkCmdDrawMultiEXT :: *fn (: VkCommandBuffer, : u32, : *VkMultiDrawInfoEXT, : u32, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawMultiIndexedEXT

PFN_vkCmdDrawMultiIndexedEXT :: *fn (: VkCommandBuffer, : u32, : *VkMultiDrawIndexedInfoEXT, : u32, : u32, : u32, : *s32) 

File: vulkan.bl

vkCmdDrawMultiEXT

vkCmdDrawMultiEXT :: fn (commandBuffer: VkCommandBuffer, drawCount: u32, pVertexInfo: *VkMultiDrawInfoEXT, instanceCount: u32, firstInstance: u32, stride: u32)  #extern

File: vulkan.bl

vkCmdDrawMultiIndexedEXT

vkCmdDrawMultiIndexedEXT :: fn (commandBuffer: VkCommandBuffer, drawCount: u32, pIndexInfo: *VkMultiDrawIndexedInfoEXT, instanceCount: u32, firstInstance: u32, stride: u32, pVertexOffset: *s32)  #extern

File: vulkan.bl

VkPhysicalDeviceImage2DViewOf3DFeaturesEXT

VkPhysicalDeviceImage2DViewOf3DFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    image2DViewOf3D: VkBool32;
    sampler2DViewOf3D: VkBool32;
}

File: vulkan.bl

VkMicromapTypeEXT

VkMicromapTypeEXT :: enum s32 {
    VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0;
    VK_MICROMAP_TYPE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkBuildMicromapModeEXT

VkBuildMicromapModeEXT :: enum s32 {
    VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0;
    VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkCopyMicromapModeEXT

VkCopyMicromapModeEXT :: enum s32 {
    VK_COPY_MICROMAP_MODE_CLONE_EXT = 0;
    VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1;
    VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2;
    VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3;
    VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkOpacityMicromapFormatEXT

VkOpacityMicromapFormatEXT :: enum s32 {
    VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1;
    VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2;
    VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkOpacityMicromapSpecialIndexEXT

VkOpacityMicromapSpecialIndexEXT :: enum s32 {
    VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT;
    VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT;
    VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT;
    VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT;
    VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkAccelerationStructureCompatibilityKHR

VkAccelerationStructureCompatibilityKHR :: enum s32 {
    VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0;
    VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1;
    VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkAccelerationStructureBuildTypeKHR

VkAccelerationStructureBuildTypeKHR :: enum s32 {
    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0;
    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1;
    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2;
    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkBuildMicromapFlagBitsEXT

VkBuildMicromapFlagBitsEXT :: enum u32 {
    VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 1;
    VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 2;
    VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 4;
    VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkBuildMicromapFlagsEXT

VkBuildMicromapFlagsEXT :: VkFlags

File: vulkan.bl

VkMicromapCreateFlagBitsEXT

VkMicromapCreateFlagBitsEXT :: enum u32 {
    VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 1;
    VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkMicromapCreateFlagsEXT

VkMicromapCreateFlagsEXT :: VkFlags

File: vulkan.bl

VkMicromapUsageEXT

VkMicromapUsageEXT :: struct {
    count: u32;
    subdivisionLevel: u32;
    format: u32;
}

File: vulkan.bl

VkDeviceOrHostAddressKHR

VkDeviceOrHostAddressKHR :: union {
    deviceAddress: VkDeviceAddress;
    hostAddress: C.void_ptr;
}

File: vulkan.bl

VkMicromapBuildInfoEXT

VkMicromapBuildInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    t: VkMicromapTypeEXT;
    flags: VkBuildMicromapFlagsEXT;
    mode: VkBuildMicromapModeEXT;
    dstMicromap: VkMicromapEXT;
    usageCountsCount: u32;
    pUsageCounts: *VkMicromapUsageEXT;
    ppUsageCounts: **VkMicromapUsageEXT;
    data: VkDeviceOrHostAddressConstKHR;
    scratchData: VkDeviceOrHostAddressKHR;
    triangleArray: VkDeviceOrHostAddressConstKHR;
    triangleArrayStride: VkDeviceSize;
}

File: vulkan.bl

VkMicromapCreateInfoEXT

VkMicromapCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    createFlags: VkMicromapCreateFlagsEXT;
    buffer: VkBuffer;
    offset: VkDeviceSize;
    size: VkDeviceSize;
    t: VkMicromapTypeEXT;
    deviceAddress: VkDeviceAddress;
}

File: vulkan.bl

VkPhysicalDeviceOpacityMicromapFeaturesEXT

VkPhysicalDeviceOpacityMicromapFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    micromap: VkBool32;
    micromapCaptureReplay: VkBool32;
    micromapHostCommands: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceOpacityMicromapPropertiesEXT

VkPhysicalDeviceOpacityMicromapPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxOpacity2StateSubdivisionLevel: u32;
    maxOpacity4StateSubdivisionLevel: u32;
}

File: vulkan.bl

VkMicromapVersionInfoEXT

VkMicromapVersionInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pVersionData: *u8;
}

File: vulkan.bl

VkCopyMicromapToMemoryInfoEXT

VkCopyMicromapToMemoryInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    src: VkMicromapEXT;
    dst: VkDeviceOrHostAddressKHR;
    mode: VkCopyMicromapModeEXT;
}

File: vulkan.bl

VkCopyMemoryToMicromapInfoEXT

VkCopyMemoryToMicromapInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    src: VkDeviceOrHostAddressConstKHR;
    dst: VkMicromapEXT;
    mode: VkCopyMicromapModeEXT;
}

File: vulkan.bl

VkCopyMicromapInfoEXT

VkCopyMicromapInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    src: VkMicromapEXT;
    dst: VkMicromapEXT;
    mode: VkCopyMicromapModeEXT;
}

File: vulkan.bl

VkMicromapBuildSizesInfoEXT

VkMicromapBuildSizesInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    micromapSize: VkDeviceSize;
    buildScratchSize: VkDeviceSize;
    discardable: VkBool32;
}

File: vulkan.bl

VkAccelerationStructureTrianglesOpacityMicromapEXT

VkAccelerationStructureTrianglesOpacityMicromapEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    indexType: VkIndexType;
    indexBuffer: VkDeviceOrHostAddressConstKHR;
    indexStride: VkDeviceSize;
    baseTriangle: u32;
    usageCountsCount: u32;
    pUsageCounts: *VkMicromapUsageEXT;
    ppUsageCounts: **VkMicromapUsageEXT;
    micromap: VkMicromapEXT;
}

File: vulkan.bl

VkMicromapTriangleEXT

VkMicromapTriangleEXT :: struct {
    dataOffset: u32;
    subdivisionLevel: u16;
    format: u16;
}

File: vulkan.bl

PFN_vkCreateMicromapEXT

PFN_vkCreateMicromapEXT :: *fn (: VkDevice, : *VkMicromapCreateInfoEXT, : *VkAllocationCallbacks, : *VkMicromapEXT) VkResult

File: vulkan.bl

PFN_vkDestroyMicromapEXT

PFN_vkDestroyMicromapEXT :: *fn (: VkDevice, : VkMicromapEXT, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCmdBuildMicromapsEXT

PFN_vkCmdBuildMicromapsEXT :: *fn (: VkCommandBuffer, : u32, : *VkMicromapBuildInfoEXT) 

File: vulkan.bl

PFN_vkBuildMicromapsEXT

PFN_vkBuildMicromapsEXT :: *fn (: VkDevice, : VkDeferredOperationKHR, : u32, : *VkMicromapBuildInfoEXT) VkResult

File: vulkan.bl

PFN_vkCopyMicromapEXT

PFN_vkCopyMicromapEXT :: *fn (: VkDevice, : VkDeferredOperationKHR, : *VkCopyMicromapInfoEXT) VkResult

File: vulkan.bl

PFN_vkCopyMicromapToMemoryEXT

PFN_vkCopyMicromapToMemoryEXT :: *fn (: VkDevice, : VkDeferredOperationKHR, : *VkCopyMicromapToMemoryInfoEXT) VkResult

File: vulkan.bl

PFN_vkCopyMemoryToMicromapEXT

PFN_vkCopyMemoryToMicromapEXT :: *fn (: VkDevice, : VkDeferredOperationKHR, : *VkCopyMemoryToMicromapInfoEXT) VkResult

File: vulkan.bl

PFN_vkWriteMicromapsPropertiesEXT

PFN_vkWriteMicromapsPropertiesEXT :: *fn (: VkDevice, : u32, : *VkMicromapEXT, : VkQueryType, : usize, : C.void_ptr, : usize) VkResult

File: vulkan.bl

PFN_vkCmdCopyMicromapEXT

PFN_vkCmdCopyMicromapEXT :: *fn (: VkCommandBuffer, : *VkCopyMicromapInfoEXT) 

File: vulkan.bl

PFN_vkCmdCopyMicromapToMemoryEXT

PFN_vkCmdCopyMicromapToMemoryEXT :: *fn (: VkCommandBuffer, : *VkCopyMicromapToMemoryInfoEXT) 

File: vulkan.bl

PFN_vkCmdCopyMemoryToMicromapEXT

PFN_vkCmdCopyMemoryToMicromapEXT :: *fn (: VkCommandBuffer, : *VkCopyMemoryToMicromapInfoEXT) 

File: vulkan.bl

PFN_vkCmdWriteMicromapsPropertiesEXT

PFN_vkCmdWriteMicromapsPropertiesEXT :: *fn (: VkCommandBuffer, : u32, : *VkMicromapEXT, : VkQueryType, : VkQueryPool, : u32) 

File: vulkan.bl

PFN_vkGetDeviceMicromapCompatibilityEXT

PFN_vkGetDeviceMicromapCompatibilityEXT :: *fn (: VkDevice, : *VkMicromapVersionInfoEXT, : *VkAccelerationStructureCompatibilityKHR) 

File: vulkan.bl

PFN_vkGetMicromapBuildSizesEXT

PFN_vkGetMicromapBuildSizesEXT :: *fn (: VkDevice, : VkAccelerationStructureBuildTypeKHR, : *VkMicromapBuildInfoEXT, : *VkMicromapBuildSizesInfoEXT) 

File: vulkan.bl

vkCreateMicromapEXT

vkCreateMicromapEXT :: fn (device: VkDevice, pCreateInfo: *VkMicromapCreateInfoEXT, pAllocator: *VkAllocationCallbacks, pMicromap: *VkMicromapEXT) VkResult #extern

File: vulkan.bl

vkDestroyMicromapEXT

vkDestroyMicromapEXT :: fn (device: VkDevice, micromap: VkMicromapEXT, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCmdBuildMicromapsEXT

vkCmdBuildMicromapsEXT :: fn (commandBuffer: VkCommandBuffer, infoCount: u32, pInfos: *VkMicromapBuildInfoEXT)  #extern

File: vulkan.bl

vkBuildMicromapsEXT

vkBuildMicromapsEXT :: fn (device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: u32, pInfos: *VkMicromapBuildInfoEXT) VkResult #extern

File: vulkan.bl

vkCopyMicromapEXT

vkCopyMicromapEXT :: fn (device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: *VkCopyMicromapInfoEXT) VkResult #extern

File: vulkan.bl

vkCopyMicromapToMemoryEXT

vkCopyMicromapToMemoryEXT :: fn (device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: *VkCopyMicromapToMemoryInfoEXT) VkResult #extern

File: vulkan.bl

vkCopyMemoryToMicromapEXT

vkCopyMemoryToMicromapEXT :: fn (device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: *VkCopyMemoryToMicromapInfoEXT) VkResult #extern

File: vulkan.bl

vkWriteMicromapsPropertiesEXT

vkWriteMicromapsPropertiesEXT :: fn (device: VkDevice, micromapCount: u32, pMicromaps: *VkMicromapEXT, queryType: VkQueryType, dataSize: usize, pData: C.void_ptr, stride: usize) VkResult #extern

File: vulkan.bl

vkCmdCopyMicromapEXT

vkCmdCopyMicromapEXT :: fn (commandBuffer: VkCommandBuffer, pInfo: *VkCopyMicromapInfoEXT)  #extern

File: vulkan.bl

vkCmdCopyMicromapToMemoryEXT

vkCmdCopyMicromapToMemoryEXT :: fn (commandBuffer: VkCommandBuffer, pInfo: *VkCopyMicromapToMemoryInfoEXT)  #extern

File: vulkan.bl

vkCmdCopyMemoryToMicromapEXT

vkCmdCopyMemoryToMicromapEXT :: fn (commandBuffer: VkCommandBuffer, pInfo: *VkCopyMemoryToMicromapInfoEXT)  #extern

File: vulkan.bl

vkCmdWriteMicromapsPropertiesEXT

vkCmdWriteMicromapsPropertiesEXT :: fn (commandBuffer: VkCommandBuffer, micromapCount: u32, pMicromaps: *VkMicromapEXT, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: u32)  #extern

File: vulkan.bl

vkGetDeviceMicromapCompatibilityEXT

vkGetDeviceMicromapCompatibilityEXT :: fn (device: VkDevice, pVersionInfo: *VkMicromapVersionInfoEXT, pCompatibility: *VkAccelerationStructureCompatibilityKHR)  #extern

File: vulkan.bl

vkGetMicromapBuildSizesEXT

vkGetMicromapBuildSizesEXT :: fn (device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: *VkMicromapBuildInfoEXT, pSizeInfo: *VkMicromapBuildSizesInfoEXT)  #extern

File: vulkan.bl

VkPhysicalDeviceBorderColorSwizzleFeaturesEXT

VkPhysicalDeviceBorderColorSwizzleFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    borderColorSwizzle: VkBool32;
    borderColorSwizzleFromImage: VkBool32;
}

File: vulkan.bl

VkSamplerBorderColorComponentMappingCreateInfoEXT

VkSamplerBorderColorComponentMappingCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    components: VkComponentMapping;
    srgb: VkBool32;
}

File: vulkan.bl

VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT

VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pageableDeviceLocalMemory: VkBool32;
}

File: vulkan.bl

PFN_vkSetDeviceMemoryPriorityEXT

PFN_vkSetDeviceMemoryPriorityEXT :: *fn (: VkDevice, : VkDeviceMemory, : f32) 

File: vulkan.bl

vkSetDeviceMemoryPriorityEXT

vkSetDeviceMemoryPriorityEXT :: fn (device: VkDevice, memory: VkDeviceMemory, priority: f32)  #extern

File: vulkan.bl

VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE

VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    descriptorSetHostMapping: VkBool32;
}

File: vulkan.bl

VkDescriptorSetBindingReferenceVALVE

VkDescriptorSetBindingReferenceVALVE :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    descriptorSetLayout: VkDescriptorSetLayout;
    binding: u32;
}

File: vulkan.bl

VkDescriptorSetLayoutHostMappingInfoVALVE

VkDescriptorSetLayoutHostMappingInfoVALVE :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    descriptorOffset: usize;
    descriptorSize: u32;
}

File: vulkan.bl

PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE

PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE :: *fn (: VkDevice, : *VkDescriptorSetBindingReferenceVALVE, : *VkDescriptorSetLayoutHostMappingInfoVALVE) 

File: vulkan.bl

PFN_vkGetDescriptorSetHostMappingVALVE

PFN_vkGetDescriptorSetHostMappingVALVE :: *fn (: VkDevice, : VkDescriptorSet, : *C.void_ptr) 

File: vulkan.bl

vkGetDescriptorSetLayoutHostMappingInfoVALVE

vkGetDescriptorSetLayoutHostMappingInfoVALVE :: fn (device: VkDevice, pBindingReference: *VkDescriptorSetBindingReferenceVALVE, pHostMapping: *VkDescriptorSetLayoutHostMappingInfoVALVE)  #extern

File: vulkan.bl

vkGetDescriptorSetHostMappingVALVE

vkGetDescriptorSetHostMappingVALVE :: fn (device: VkDevice, descriptorSet: VkDescriptorSet, ppData: *C.void_ptr)  #extern

File: vulkan.bl

VkPhysicalDeviceDepthClampZeroOneFeaturesEXT

VkPhysicalDeviceDepthClampZeroOneFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    depthClampZeroOne: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT

VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    nonSeamlessCubeMap: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM

VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fragmentDensityMapOffset: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM

VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fragmentDensityOffsetGranularity: VkExtent2D;
}

File: vulkan.bl

VkSubpassFragmentDensityMapOffsetEndInfoQCOM

VkSubpassFragmentDensityMapOffsetEndInfoQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    fragmentDensityOffsetCount: u32;
    pFragmentDensityOffsets: *VkOffset2D;
}

File: vulkan.bl

VkPhysicalDeviceLinearColorAttachmentFeaturesNV

VkPhysicalDeviceLinearColorAttachmentFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    linearColorAttachment: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT

VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    imageCompressionControlSwapchain: VkBool32;
}

File: vulkan.bl

VkImageViewSampleWeightCreateInfoQCOM

VkImageViewSampleWeightCreateInfoQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    filterCenter: VkOffset2D;
    filterSize: VkExtent2D;
    numPhases: u32;
}

File: vulkan.bl

VkPhysicalDeviceImageProcessingFeaturesQCOM

VkPhysicalDeviceImageProcessingFeaturesQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    textureSampleWeighted: VkBool32;
    textureBoxFilter: VkBool32;
    textureBlockMatch: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceImageProcessingPropertiesQCOM

VkPhysicalDeviceImageProcessingPropertiesQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxWeightFilterPhases: u32;
    maxWeightFilterDimension: VkExtent2D;
    maxBlockMatchRegion: VkExtent2D;
    maxBoxFilterBlockSize: VkExtent2D;
}

File: vulkan.bl

VkPhysicalDeviceExtendedDynamicState3FeaturesEXT

VkPhysicalDeviceExtendedDynamicState3FeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    extendedDynamicState3TessellationDomainOrigin: VkBool32;
    extendedDynamicState3DepthClampEnable: VkBool32;
    extendedDynamicState3PolygonMode: VkBool32;
    extendedDynamicState3RasterizationSamples: VkBool32;
    extendedDynamicState3SampleMask: VkBool32;
    extendedDynamicState3AlphaToCoverageEnable: VkBool32;
    extendedDynamicState3AlphaToOneEnable: VkBool32;
    extendedDynamicState3LogicOpEnable: VkBool32;
    extendedDynamicState3ColorBlendEnable: VkBool32;
    extendedDynamicState3ColorBlendEquation: VkBool32;
    extendedDynamicState3ColorWriteMask: VkBool32;
    extendedDynamicState3RasterizationStream: VkBool32;
    extendedDynamicState3ConservativeRasterizationMode: VkBool32;
    extendedDynamicState3ExtraPrimitiveOverestimationSize: VkBool32;
    extendedDynamicState3DepthClipEnable: VkBool32;
    extendedDynamicState3SampleLocationsEnable: VkBool32;
    extendedDynamicState3ColorBlendAdvanced: VkBool32;
    extendedDynamicState3ProvokingVertexMode: VkBool32;
    extendedDynamicState3LineRasterizationMode: VkBool32;
    extendedDynamicState3LineStippleEnable: VkBool32;
    extendedDynamicState3DepthClipNegativeOneToOne: VkBool32;
    extendedDynamicState3ViewportWScalingEnable: VkBool32;
    extendedDynamicState3ViewportSwizzle: VkBool32;
    extendedDynamicState3CoverageToColorEnable: VkBool32;
    extendedDynamicState3CoverageToColorLocation: VkBool32;
    extendedDynamicState3CoverageModulationMode: VkBool32;
    extendedDynamicState3CoverageModulationTableEnable: VkBool32;
    extendedDynamicState3CoverageModulationTable: VkBool32;
    extendedDynamicState3CoverageReductionMode: VkBool32;
    extendedDynamicState3RepresentativeFragmentTestEnable: VkBool32;
    extendedDynamicState3ShadingRateImageEnable: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceExtendedDynamicState3PropertiesEXT

VkPhysicalDeviceExtendedDynamicState3PropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    dynamicPrimitiveTopologyUnrestricted: VkBool32;
}

File: vulkan.bl

VkColorBlendEquationEXT

VkColorBlendEquationEXT :: struct {
    srcColorBlendFactor: VkBlendFactor;
    dstColorBlendFactor: VkBlendFactor;
    colorBlendOp: VkBlendOp;
    srcAlphaBlendFactor: VkBlendFactor;
    dstAlphaBlendFactor: VkBlendFactor;
    alphaBlendOp: VkBlendOp;
}

File: vulkan.bl

VkColorBlendAdvancedEXT

VkColorBlendAdvancedEXT :: struct {
    advancedBlendOp: VkBlendOp;
    srcPremultiplied: VkBool32;
    dstPremultiplied: VkBool32;
    blendOverlap: VkBlendOverlapEXT;
    clampResults: VkBool32;
}

File: vulkan.bl

PFN_vkCmdSetTessellationDomainOriginEXT

PFN_vkCmdSetTessellationDomainOriginEXT :: *fn (: VkCommandBuffer, : VkTessellationDomainOrigin) 

File: vulkan.bl

PFN_vkCmdSetDepthClampEnableEXT

PFN_vkCmdSetDepthClampEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetPolygonModeEXT

PFN_vkCmdSetPolygonModeEXT :: *fn (: VkCommandBuffer, : VkPolygonMode) 

File: vulkan.bl

PFN_vkCmdSetRasterizationSamplesEXT

PFN_vkCmdSetRasterizationSamplesEXT :: *fn (: VkCommandBuffer, : VkSampleCountFlagBits) 

File: vulkan.bl

PFN_vkCmdSetSampleMaskEXT

PFN_vkCmdSetSampleMaskEXT :: *fn (: VkCommandBuffer, : VkSampleCountFlagBits, : *VkSampleMask) 

File: vulkan.bl

PFN_vkCmdSetAlphaToCoverageEnableEXT

PFN_vkCmdSetAlphaToCoverageEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetAlphaToOneEnableEXT

PFN_vkCmdSetAlphaToOneEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetLogicOpEnableEXT

PFN_vkCmdSetLogicOpEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetColorBlendEnableEXT

PFN_vkCmdSetColorBlendEnableEXT :: *fn (: VkCommandBuffer, : u32, : u32, : *VkBool32) 

File: vulkan.bl

PFN_vkCmdSetColorBlendEquationEXT

PFN_vkCmdSetColorBlendEquationEXT :: *fn (: VkCommandBuffer, : u32, : u32, : *VkColorBlendEquationEXT) 

File: vulkan.bl

PFN_vkCmdSetColorWriteMaskEXT

PFN_vkCmdSetColorWriteMaskEXT :: *fn (: VkCommandBuffer, : u32, : u32, : *VkColorComponentFlags) 

File: vulkan.bl

PFN_vkCmdSetRasterizationStreamEXT

PFN_vkCmdSetRasterizationStreamEXT :: *fn (: VkCommandBuffer, : u32) 

File: vulkan.bl

PFN_vkCmdSetConservativeRasterizationModeEXT

PFN_vkCmdSetConservativeRasterizationModeEXT :: *fn (: VkCommandBuffer, : VkConservativeRasterizationModeEXT) 

File: vulkan.bl

PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT

PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT :: *fn (: VkCommandBuffer, : f32) 

File: vulkan.bl

PFN_vkCmdSetDepthClipEnableEXT

PFN_vkCmdSetDepthClipEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetSampleLocationsEnableEXT

PFN_vkCmdSetSampleLocationsEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetColorBlendAdvancedEXT

PFN_vkCmdSetColorBlendAdvancedEXT :: *fn (: VkCommandBuffer, : u32, : u32, : *VkColorBlendAdvancedEXT) 

File: vulkan.bl

PFN_vkCmdSetProvokingVertexModeEXT

PFN_vkCmdSetProvokingVertexModeEXT :: *fn (: VkCommandBuffer, : VkProvokingVertexModeEXT) 

File: vulkan.bl

PFN_vkCmdSetLineRasterizationModeEXT

PFN_vkCmdSetLineRasterizationModeEXT :: *fn (: VkCommandBuffer, : VkLineRasterizationModeEXT) 

File: vulkan.bl

PFN_vkCmdSetLineStippleEnableEXT

PFN_vkCmdSetLineStippleEnableEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetDepthClipNegativeOneToOneEXT

PFN_vkCmdSetDepthClipNegativeOneToOneEXT :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetViewportWScalingEnableNV

PFN_vkCmdSetViewportWScalingEnableNV :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetViewportSwizzleNV

PFN_vkCmdSetViewportSwizzleNV :: *fn (: VkCommandBuffer, : u32, : u32, : *VkViewportSwizzleNV) 

File: vulkan.bl

PFN_vkCmdSetCoverageToColorEnableNV

PFN_vkCmdSetCoverageToColorEnableNV :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetCoverageToColorLocationNV

PFN_vkCmdSetCoverageToColorLocationNV :: *fn (: VkCommandBuffer, : u32) 

File: vulkan.bl

PFN_vkCmdSetCoverageModulationModeNV

PFN_vkCmdSetCoverageModulationModeNV :: *fn (: VkCommandBuffer, : VkCoverageModulationModeNV) 

File: vulkan.bl

PFN_vkCmdSetCoverageModulationTableEnableNV

PFN_vkCmdSetCoverageModulationTableEnableNV :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetCoverageModulationTableNV

PFN_vkCmdSetCoverageModulationTableNV :: *fn (: VkCommandBuffer, : u32, : *f32) 

File: vulkan.bl

PFN_vkCmdSetShadingRateImageEnableNV

PFN_vkCmdSetShadingRateImageEnableNV :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetRepresentativeFragmentTestEnableNV

PFN_vkCmdSetRepresentativeFragmentTestEnableNV :: *fn (: VkCommandBuffer, : VkBool32) 

File: vulkan.bl

PFN_vkCmdSetCoverageReductionModeNV

PFN_vkCmdSetCoverageReductionModeNV :: *fn (: VkCommandBuffer, : VkCoverageReductionModeNV) 

File: vulkan.bl

vkCmdSetTessellationDomainOriginEXT

vkCmdSetTessellationDomainOriginEXT :: fn (commandBuffer: VkCommandBuffer, domainOrigin: VkTessellationDomainOrigin)  #extern

File: vulkan.bl

vkCmdSetDepthClampEnableEXT

vkCmdSetDepthClampEnableEXT :: fn (commandBuffer: VkCommandBuffer, depthClampEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetPolygonModeEXT

vkCmdSetPolygonModeEXT :: fn (commandBuffer: VkCommandBuffer, polygonMode: VkPolygonMode)  #extern

File: vulkan.bl

vkCmdSetRasterizationSamplesEXT

vkCmdSetRasterizationSamplesEXT :: fn (commandBuffer: VkCommandBuffer, rasterizationSamples: VkSampleCountFlagBits)  #extern

File: vulkan.bl

vkCmdSetSampleMaskEXT

vkCmdSetSampleMaskEXT :: fn (commandBuffer: VkCommandBuffer, samples: VkSampleCountFlagBits, pSampleMask: *VkSampleMask)  #extern

File: vulkan.bl

vkCmdSetAlphaToCoverageEnableEXT

vkCmdSetAlphaToCoverageEnableEXT :: fn (commandBuffer: VkCommandBuffer, alphaToCoverageEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetAlphaToOneEnableEXT

vkCmdSetAlphaToOneEnableEXT :: fn (commandBuffer: VkCommandBuffer, alphaToOneEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetLogicOpEnableEXT

vkCmdSetLogicOpEnableEXT :: fn (commandBuffer: VkCommandBuffer, logicOpEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetColorBlendEnableEXT

vkCmdSetColorBlendEnableEXT :: fn (commandBuffer: VkCommandBuffer, firstAttachment: u32, attachmentCount: u32, pColorBlendEnables: *VkBool32)  #extern

File: vulkan.bl

vkCmdSetColorBlendEquationEXT

vkCmdSetColorBlendEquationEXT :: fn (commandBuffer: VkCommandBuffer, firstAttachment: u32, attachmentCount: u32, pColorBlendEquations: *VkColorBlendEquationEXT)  #extern

File: vulkan.bl

vkCmdSetColorWriteMaskEXT

vkCmdSetColorWriteMaskEXT :: fn (commandBuffer: VkCommandBuffer, firstAttachment: u32, attachmentCount: u32, pColorWriteMasks: *VkColorComponentFlags)  #extern

File: vulkan.bl

vkCmdSetRasterizationStreamEXT

vkCmdSetRasterizationStreamEXT :: fn (commandBuffer: VkCommandBuffer, rasterizationStream: u32)  #extern

File: vulkan.bl

vkCmdSetConservativeRasterizationModeEXT

vkCmdSetConservativeRasterizationModeEXT :: fn (commandBuffer: VkCommandBuffer, conservativeRasterizationMode: VkConservativeRasterizationModeEXT)  #extern

File: vulkan.bl

vkCmdSetExtraPrimitiveOverestimationSizeEXT

vkCmdSetExtraPrimitiveOverestimationSizeEXT :: fn (commandBuffer: VkCommandBuffer, extraPrimitiveOverestimationSize: f32)  #extern

File: vulkan.bl

vkCmdSetDepthClipEnableEXT

vkCmdSetDepthClipEnableEXT :: fn (commandBuffer: VkCommandBuffer, depthClipEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetSampleLocationsEnableEXT

vkCmdSetSampleLocationsEnableEXT :: fn (commandBuffer: VkCommandBuffer, sampleLocationsEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetColorBlendAdvancedEXT

vkCmdSetColorBlendAdvancedEXT :: fn (commandBuffer: VkCommandBuffer, firstAttachment: u32, attachmentCount: u32, pColorBlendAdvanced: *VkColorBlendAdvancedEXT)  #extern

File: vulkan.bl

vkCmdSetProvokingVertexModeEXT

vkCmdSetProvokingVertexModeEXT :: fn (commandBuffer: VkCommandBuffer, provokingVertexMode: VkProvokingVertexModeEXT)  #extern

File: vulkan.bl

vkCmdSetLineRasterizationModeEXT

vkCmdSetLineRasterizationModeEXT :: fn (commandBuffer: VkCommandBuffer, lineRasterizationMode: VkLineRasterizationModeEXT)  #extern

File: vulkan.bl

vkCmdSetLineStippleEnableEXT

vkCmdSetLineStippleEnableEXT :: fn (commandBuffer: VkCommandBuffer, stippledLineEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetDepthClipNegativeOneToOneEXT

vkCmdSetDepthClipNegativeOneToOneEXT :: fn (commandBuffer: VkCommandBuffer, negativeOneToOne: VkBool32)  #extern

File: vulkan.bl

vkCmdSetViewportWScalingEnableNV

vkCmdSetViewportWScalingEnableNV :: fn (commandBuffer: VkCommandBuffer, viewportWScalingEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetViewportSwizzleNV

vkCmdSetViewportSwizzleNV :: fn (commandBuffer: VkCommandBuffer, firstViewport: u32, viewportCount: u32, pViewportSwizzles: *VkViewportSwizzleNV)  #extern

File: vulkan.bl

vkCmdSetCoverageToColorEnableNV

vkCmdSetCoverageToColorEnableNV :: fn (commandBuffer: VkCommandBuffer, coverageToColorEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetCoverageToColorLocationNV

vkCmdSetCoverageToColorLocationNV :: fn (commandBuffer: VkCommandBuffer, coverageToColorLocation: u32)  #extern

File: vulkan.bl

vkCmdSetCoverageModulationModeNV

vkCmdSetCoverageModulationModeNV :: fn (commandBuffer: VkCommandBuffer, coverageModulationMode: VkCoverageModulationModeNV)  #extern

File: vulkan.bl

vkCmdSetCoverageModulationTableEnableNV

vkCmdSetCoverageModulationTableEnableNV :: fn (commandBuffer: VkCommandBuffer, coverageModulationTableEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetCoverageModulationTableNV

vkCmdSetCoverageModulationTableNV :: fn (commandBuffer: VkCommandBuffer, coverageModulationTableCount: u32, pCoverageModulationTable: *f32)  #extern

File: vulkan.bl

vkCmdSetShadingRateImageEnableNV

vkCmdSetShadingRateImageEnableNV :: fn (commandBuffer: VkCommandBuffer, shadingRateImageEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetRepresentativeFragmentTestEnableNV

vkCmdSetRepresentativeFragmentTestEnableNV :: fn (commandBuffer: VkCommandBuffer, representativeFragmentTestEnable: VkBool32)  #extern

File: vulkan.bl

vkCmdSetCoverageReductionModeNV

vkCmdSetCoverageReductionModeNV :: fn (commandBuffer: VkCommandBuffer, coverageReductionMode: VkCoverageReductionModeNV)  #extern

File: vulkan.bl

VkSubpassMergeStatusEXT

VkSubpassMergeStatusEXT :: enum s32 {
    VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0;
    VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12;
    VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13;
    VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 2147483647;
}

File: vulkan.bl

VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT

VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    subpassMergeFeedback: VkBool32;
}

File: vulkan.bl

VkRenderPassCreationControlEXT

VkRenderPassCreationControlEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    disallowMerging: VkBool32;
}

File: vulkan.bl

VkRenderPassCreationFeedbackInfoEXT

VkRenderPassCreationFeedbackInfoEXT :: struct {
    postMergeSubpassCount: u32;
}

File: vulkan.bl

VkRenderPassCreationFeedbackCreateInfoEXT

VkRenderPassCreationFeedbackCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pRenderPassFeedback: *VkRenderPassCreationFeedbackInfoEXT;
}

File: vulkan.bl

VkRenderPassSubpassFeedbackInfoEXT

VkRenderPassSubpassFeedbackInfoEXT :: struct {
    subpassMergeStatus: VkSubpassMergeStatusEXT;
    description: ;
    postMergeIndex: u32;
}

File: vulkan.bl

VkRenderPassSubpassFeedbackCreateInfoEXT

VkRenderPassSubpassFeedbackCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pSubpassFeedback: *VkRenderPassSubpassFeedbackInfoEXT;
}

File: vulkan.bl

VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT

VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderModuleIdentifier: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderModuleIdentifierAlgorithmUUID: ;
}

File: vulkan.bl

VkPipelineShaderStageModuleIdentifierCreateInfoEXT

VkPipelineShaderStageModuleIdentifierCreateInfoEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    identifierSize: u32;
    pIdentifier: *u8;
}

File: vulkan.bl

VkShaderModuleIdentifierEXT

VkShaderModuleIdentifierEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    identifierSize: u32;
    identifier: ;
}

File: vulkan.bl

PFN_vkGetShaderModuleIdentifierEXT

PFN_vkGetShaderModuleIdentifierEXT :: *fn (: VkDevice, : VkShaderModule, : *VkShaderModuleIdentifierEXT) 

File: vulkan.bl

PFN_vkGetShaderModuleCreateInfoIdentifierEXT

PFN_vkGetShaderModuleCreateInfoIdentifierEXT :: *fn (: VkDevice, : *VkShaderModuleCreateInfo, : *VkShaderModuleIdentifierEXT) 

File: vulkan.bl

vkGetShaderModuleIdentifierEXT

vkGetShaderModuleIdentifierEXT :: fn (device: VkDevice, shaderModule: VkShaderModule, pIdentifier: *VkShaderModuleIdentifierEXT)  #extern

File: vulkan.bl

vkGetShaderModuleCreateInfoIdentifierEXT

vkGetShaderModuleCreateInfoIdentifierEXT :: fn (device: VkDevice, pCreateInfo: *VkShaderModuleCreateInfo, pIdentifier: *VkShaderModuleIdentifierEXT)  #extern

File: vulkan.bl

VkOpticalFlowPerformanceLevelNV

VkOpticalFlowPerformanceLevelNV :: enum s32 {
    VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0;
    VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1;
    VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2;
    VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3;
    VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkOpticalFlowSessionBindingPointNV

VkOpticalFlowSessionBindingPointNV :: enum s32 {
    VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0;
    VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1;
    VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2;
    VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3;
    VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4;
    VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5;
    VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6;
    VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7;
    VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8;
    VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkOpticalFlowGridSizeFlagBitsNV

VkOpticalFlowGridSizeFlagBitsNV :: enum s32 {
    VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0;
    VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 1;
    VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 2;
    VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 4;
    VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 8;
    VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkOpticalFlowGridSizeFlagsNV

VkOpticalFlowGridSizeFlagsNV :: VkFlags

File: vulkan.bl

VkOpticalFlowUsageFlagBitsNV

VkOpticalFlowUsageFlagBitsNV :: enum s32 {
    VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0;
    VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 1;
    VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 2;
    VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 4;
    VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 8;
    VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 16;
    VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkOpticalFlowUsageFlagsNV

VkOpticalFlowUsageFlagsNV :: VkFlags

File: vulkan.bl

VkOpticalFlowSessionCreateFlagBitsNV

VkOpticalFlowSessionCreateFlagBitsNV :: enum s32 {
    VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 1;
    VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 2;
    VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 4;
    VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 8;
    VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 16;
    VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkOpticalFlowSessionCreateFlagsNV

VkOpticalFlowSessionCreateFlagsNV :: VkFlags

File: vulkan.bl

VkOpticalFlowExecuteFlagBitsNV

VkOpticalFlowExecuteFlagBitsNV :: enum s32 {
    VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 1;
    VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 2147483647;
}

File: vulkan.bl

VkOpticalFlowExecuteFlagsNV

VkOpticalFlowExecuteFlagsNV :: VkFlags

File: vulkan.bl

VkPhysicalDeviceOpticalFlowFeaturesNV

VkPhysicalDeviceOpticalFlowFeaturesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    opticalFlow: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceOpticalFlowPropertiesNV

VkPhysicalDeviceOpticalFlowPropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    supportedOutputGridSizes: VkOpticalFlowGridSizeFlagsNV;
    supportedHintGridSizes: VkOpticalFlowGridSizeFlagsNV;
    hintSupported: VkBool32;
    costSupported: VkBool32;
    bidirectionalFlowSupported: VkBool32;
    globalFlowSupported: VkBool32;
    minWidth: u32;
    minHeight: u32;
    maxWidth: u32;
    maxHeight: u32;
    maxNumRegionsOfInterest: u32;
}

File: vulkan.bl

VkOpticalFlowImageFormatInfoNV

VkOpticalFlowImageFormatInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    usage: VkOpticalFlowUsageFlagsNV;
}

File: vulkan.bl

VkOpticalFlowImageFormatPropertiesNV

VkOpticalFlowImageFormatPropertiesNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    format: VkFormat;
}

File: vulkan.bl

VkOpticalFlowSessionCreateInfoNV

VkOpticalFlowSessionCreateInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    width: u32;
    height: u32;
    imageFormat: VkFormat;
    flowVectorFormat: VkFormat;
    costFormat: VkFormat;
    outputGridSize: VkOpticalFlowGridSizeFlagsNV;
    hintGridSize: VkOpticalFlowGridSizeFlagsNV;
    performanceLevel: VkOpticalFlowPerformanceLevelNV;
    flags: VkOpticalFlowSessionCreateFlagsNV;
}

File: vulkan.bl

VkOpticalFlowSessionCreatePrivateDataInfoNV

VkOpticalFlowSessionCreatePrivateDataInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    id: u32;
    size: u32;
    pPrivateData: C.void_ptr;
}

File: vulkan.bl

VkOpticalFlowExecuteInfoNV

VkOpticalFlowExecuteInfoNV :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkOpticalFlowExecuteFlagsNV;
    regionCount: u32;
    pRegions: *VkRect2D;
}

File: vulkan.bl

PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV

PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV :: *fn (: VkPhysicalDevice, : *VkOpticalFlowImageFormatInfoNV, : *u32, : *VkOpticalFlowImageFormatPropertiesNV) VkResult

File: vulkan.bl

PFN_vkCreateOpticalFlowSessionNV

PFN_vkCreateOpticalFlowSessionNV :: *fn (: VkDevice, : *VkOpticalFlowSessionCreateInfoNV, : *VkAllocationCallbacks, : *VkOpticalFlowSessionNV) VkResult

File: vulkan.bl

PFN_vkDestroyOpticalFlowSessionNV

PFN_vkDestroyOpticalFlowSessionNV :: *fn (: VkDevice, : VkOpticalFlowSessionNV, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkBindOpticalFlowSessionImageNV

PFN_vkBindOpticalFlowSessionImageNV :: *fn (: VkDevice, : VkOpticalFlowSessionNV, : VkOpticalFlowSessionBindingPointNV, : VkImageView, : VkImageLayout) VkResult

File: vulkan.bl

PFN_vkCmdOpticalFlowExecuteNV

PFN_vkCmdOpticalFlowExecuteNV :: *fn (: VkCommandBuffer, : VkOpticalFlowSessionNV, : *VkOpticalFlowExecuteInfoNV) 

File: vulkan.bl

vkGetPhysicalDeviceOpticalFlowImageFormatsNV

vkGetPhysicalDeviceOpticalFlowImageFormatsNV :: fn (physicalDevice: VkPhysicalDevice, pOpticalFlowImageFormatInfo: *VkOpticalFlowImageFormatInfoNV, pFormatCount: *u32, pImageFormatProperties: *VkOpticalFlowImageFormatPropertiesNV) VkResult #extern

File: vulkan.bl

vkCreateOpticalFlowSessionNV

vkCreateOpticalFlowSessionNV :: fn (device: VkDevice, pCreateInfo: *VkOpticalFlowSessionCreateInfoNV, pAllocator: *VkAllocationCallbacks, pSession: *VkOpticalFlowSessionNV) VkResult #extern

File: vulkan.bl

vkDestroyOpticalFlowSessionNV

vkDestroyOpticalFlowSessionNV :: fn (device: VkDevice, session: VkOpticalFlowSessionNV, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkBindOpticalFlowSessionImageNV

vkBindOpticalFlowSessionImageNV :: fn (device: VkDevice, session: VkOpticalFlowSessionNV, bindingPoint: VkOpticalFlowSessionBindingPointNV, view: VkImageView, layout: VkImageLayout) VkResult #extern

File: vulkan.bl

vkCmdOpticalFlowExecuteNV

vkCmdOpticalFlowExecuteNV :: fn (commandBuffer: VkCommandBuffer, session: VkOpticalFlowSessionNV, pExecuteInfo: *VkOpticalFlowExecuteInfoNV)  #extern

File: vulkan.bl

VkPhysicalDeviceLegacyDitheringFeaturesEXT

VkPhysicalDeviceLegacyDitheringFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    legacyDithering: VkBool32;
}

File: vulkan.bl

VkPhysicalDevicePipelineProtectedAccessFeaturesEXT

VkPhysicalDevicePipelineProtectedAccessFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pipelineProtectedAccess: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceTilePropertiesFeaturesQCOM

VkPhysicalDeviceTilePropertiesFeaturesQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    tileProperties: VkBool32;
}

File: vulkan.bl

VkTilePropertiesQCOM

VkTilePropertiesQCOM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    tileSize: VkExtent3D;
    apronSize: VkExtent2D;
    origin: VkOffset2D;
}

File: vulkan.bl

PFN_vkGetFramebufferTilePropertiesQCOM

PFN_vkGetFramebufferTilePropertiesQCOM :: *fn (: VkDevice, : VkFramebuffer, : *u32, : *VkTilePropertiesQCOM) VkResult

File: vulkan.bl

PFN_vkGetDynamicRenderingTilePropertiesQCOM

PFN_vkGetDynamicRenderingTilePropertiesQCOM :: *fn (: VkDevice, : *VkRenderingInfo, : *VkTilePropertiesQCOM) VkResult

File: vulkan.bl

vkGetFramebufferTilePropertiesQCOM

vkGetFramebufferTilePropertiesQCOM :: fn (device: VkDevice, framebuffer: VkFramebuffer, pPropertiesCount: *u32, pProperties: *VkTilePropertiesQCOM) VkResult #extern

File: vulkan.bl

vkGetDynamicRenderingTilePropertiesQCOM

vkGetDynamicRenderingTilePropertiesQCOM :: fn (device: VkDevice, pRenderingInfo: *VkRenderingInfo, pProperties: *VkTilePropertiesQCOM) VkResult #extern

File: vulkan.bl

VkPhysicalDeviceAmigoProfilingFeaturesSEC

VkPhysicalDeviceAmigoProfilingFeaturesSEC :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    amigoProfiling: VkBool32;
}

File: vulkan.bl

VkAmigoProfilingSubmitInfoSEC

VkAmigoProfilingSubmitInfoSEC :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    firstDrawTimestamp: u64;
    swapBufferTimestamp: u64;
}

File: vulkan.bl

VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM

VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderCoreBuiltins: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM

VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderCoreCount: u32;
    shaderWarpsPerCore: u32;
}

File: vulkan.bl

VkBuildAccelerationStructureModeKHR

VkBuildAccelerationStructureModeKHR :: enum s32 {
    VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0;
    VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1;
    VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkAccelerationStructureCreateFlagBitsKHR

VkAccelerationStructureCreateFlagBitsKHR :: enum s32 {
    VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 1;
    VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 4;
    VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkAccelerationStructureCreateFlagsKHR

VkAccelerationStructureCreateFlagsKHR :: VkFlags

File: vulkan.bl

VkAccelerationStructureBuildRangeInfoKHR

VkAccelerationStructureBuildRangeInfoKHR :: struct {
    primitiveCount: u32;
    primitiveOffset: u32;
    firstVertex: u32;
    transformOffset: u32;
}

File: vulkan.bl

VkAccelerationStructureGeometryTrianglesDataKHR

VkAccelerationStructureGeometryTrianglesDataKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    vertexFormat: VkFormat;
    vertexData: VkDeviceOrHostAddressConstKHR;
    vertexStride: VkDeviceSize;
    maxVertex: u32;
    indexType: VkIndexType;
    indexData: VkDeviceOrHostAddressConstKHR;
    transformData: VkDeviceOrHostAddressConstKHR;
}

File: vulkan.bl

VkAccelerationStructureGeometryAabbsDataKHR

VkAccelerationStructureGeometryAabbsDataKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    data: VkDeviceOrHostAddressConstKHR;
    stride: VkDeviceSize;
}

File: vulkan.bl

VkAccelerationStructureGeometryInstancesDataKHR

VkAccelerationStructureGeometryInstancesDataKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    arrayOfPointers: VkBool32;
    data: VkDeviceOrHostAddressConstKHR;
}

File: vulkan.bl

VkAccelerationStructureGeometryDataKHR

VkAccelerationStructureGeometryDataKHR :: union {
    triangles: VkAccelerationStructureGeometryTrianglesDataKHR;
    aabbs: VkAccelerationStructureGeometryAabbsDataKHR;
    instances: VkAccelerationStructureGeometryInstancesDataKHR;
}

File: vulkan.bl

VkAccelerationStructureGeometryKHR

VkAccelerationStructureGeometryKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    geometryType: VkGeometryTypeKHR;
    geometry: VkAccelerationStructureGeometryDataKHR;
    flags: VkGeometryFlagsKHR;
}

File: vulkan.bl

VkAccelerationStructureBuildGeometryInfoKHR

VkAccelerationStructureBuildGeometryInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    t: VkAccelerationStructureTypeKHR;
    flags: VkBuildAccelerationStructureFlagsKHR;
    mode: VkBuildAccelerationStructureModeKHR;
    srcAccelerationStructure: VkAccelerationStructureKHR;
    dstAccelerationStructure: VkAccelerationStructureKHR;
    geometryCount: u32;
    pGeometries: *VkAccelerationStructureGeometryKHR;
    ppGeometries: **VkAccelerationStructureGeometryKHR;
    scratchData: VkDeviceOrHostAddressKHR;
}

File: vulkan.bl

VkAccelerationStructureCreateInfoKHR

VkAccelerationStructureCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    createFlags: VkAccelerationStructureCreateFlagsKHR;
    buffer: VkBuffer;
    offset: VkDeviceSize;
    size: VkDeviceSize;
    t: VkAccelerationStructureTypeKHR;
    deviceAddress: VkDeviceAddress;
}

File: vulkan.bl

VkWriteDescriptorSetAccelerationStructureKHR

VkWriteDescriptorSetAccelerationStructureKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    accelerationStructureCount: u32;
    pAccelerationStructures: *VkAccelerationStructureKHR;
}

File: vulkan.bl

VkPhysicalDeviceAccelerationStructureFeaturesKHR

VkPhysicalDeviceAccelerationStructureFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    accelerationStructure: VkBool32;
    accelerationStructureCaptureReplay: VkBool32;
    accelerationStructureIndirectBuild: VkBool32;
    accelerationStructureHostCommands: VkBool32;
    descriptorBindingAccelerationStructureUpdateAfterBind: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceAccelerationStructurePropertiesKHR

VkPhysicalDeviceAccelerationStructurePropertiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxGeometryCount: u64;
    maxInstanceCount: u64;
    maxPrimitiveCount: u64;
    maxPerStageDescriptorAccelerationStructures: u32;
    maxPerStageDescriptorUpdateAfterBindAccelerationStructures: u32;
    maxDescriptorSetAccelerationStructures: u32;
    maxDescriptorSetUpdateAfterBindAccelerationStructures: u32;
    minAccelerationStructureScratchOffsetAlignment: u32;
}

File: vulkan.bl

VkAccelerationStructureDeviceAddressInfoKHR

VkAccelerationStructureDeviceAddressInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    accelerationStructure: VkAccelerationStructureKHR;
}

File: vulkan.bl

VkAccelerationStructureVersionInfoKHR

VkAccelerationStructureVersionInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    pVersionData: *u8;
}

File: vulkan.bl

VkCopyAccelerationStructureToMemoryInfoKHR

VkCopyAccelerationStructureToMemoryInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    src: VkAccelerationStructureKHR;
    dst: VkDeviceOrHostAddressKHR;
    mode: VkCopyAccelerationStructureModeKHR;
}

File: vulkan.bl

VkCopyMemoryToAccelerationStructureInfoKHR

VkCopyMemoryToAccelerationStructureInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    src: VkDeviceOrHostAddressConstKHR;
    dst: VkAccelerationStructureKHR;
    mode: VkCopyAccelerationStructureModeKHR;
}

File: vulkan.bl

VkCopyAccelerationStructureInfoKHR

VkCopyAccelerationStructureInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    src: VkAccelerationStructureKHR;
    dst: VkAccelerationStructureKHR;
    mode: VkCopyAccelerationStructureModeKHR;
}

File: vulkan.bl

VkAccelerationStructureBuildSizesInfoKHR

VkAccelerationStructureBuildSizesInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    accelerationStructureSize: VkDeviceSize;
    updateScratchSize: VkDeviceSize;
    buildScratchSize: VkDeviceSize;
}

File: vulkan.bl

PFN_vkCreateAccelerationStructureKHR

PFN_vkCreateAccelerationStructureKHR :: *fn (: VkDevice, : *VkAccelerationStructureCreateInfoKHR, : *VkAllocationCallbacks, : *VkAccelerationStructureKHR) VkResult

File: vulkan.bl

PFN_vkDestroyAccelerationStructureKHR

PFN_vkDestroyAccelerationStructureKHR :: *fn (: VkDevice, : VkAccelerationStructureKHR, : *VkAllocationCallbacks) 

File: vulkan.bl

PFN_vkCmdBuildAccelerationStructuresKHR

PFN_vkCmdBuildAccelerationStructuresKHR :: *fn (: VkCommandBuffer, : u32, : *VkAccelerationStructureBuildGeometryInfoKHR, : **VkAccelerationStructureBuildRangeInfoKHR) 

File: vulkan.bl

PFN_vkCmdBuildAccelerationStructuresIndirectKHR

PFN_vkCmdBuildAccelerationStructuresIndirectKHR :: *fn (: VkCommandBuffer, : u32, : *VkAccelerationStructureBuildGeometryInfoKHR, : *VkDeviceAddress, : *u32, : **u32) 

File: vulkan.bl

PFN_vkBuildAccelerationStructuresKHR

PFN_vkBuildAccelerationStructuresKHR :: *fn (: VkDevice, : VkDeferredOperationKHR, : u32, : *VkAccelerationStructureBuildGeometryInfoKHR, : **VkAccelerationStructureBuildRangeInfoKHR) VkResult

File: vulkan.bl

PFN_vkCopyAccelerationStructureKHR

PFN_vkCopyAccelerationStructureKHR :: *fn (: VkDevice, : VkDeferredOperationKHR, : *VkCopyAccelerationStructureInfoKHR) VkResult

File: vulkan.bl

PFN_vkCopyAccelerationStructureToMemoryKHR

PFN_vkCopyAccelerationStructureToMemoryKHR :: *fn (: VkDevice, : VkDeferredOperationKHR, : *VkCopyAccelerationStructureToMemoryInfoKHR) VkResult

File: vulkan.bl

PFN_vkCopyMemoryToAccelerationStructureKHR

PFN_vkCopyMemoryToAccelerationStructureKHR :: *fn (: VkDevice, : VkDeferredOperationKHR, : *VkCopyMemoryToAccelerationStructureInfoKHR) VkResult

File: vulkan.bl

PFN_vkWriteAccelerationStructuresPropertiesKHR

PFN_vkWriteAccelerationStructuresPropertiesKHR :: *fn (: VkDevice, : u32, : *VkAccelerationStructureKHR, : VkQueryType, : usize, : C.void_ptr, : usize) VkResult

File: vulkan.bl

PFN_vkCmdCopyAccelerationStructureKHR

PFN_vkCmdCopyAccelerationStructureKHR :: *fn (: VkCommandBuffer, : *VkCopyAccelerationStructureInfoKHR) 

File: vulkan.bl

PFN_vkCmdCopyAccelerationStructureToMemoryKHR

PFN_vkCmdCopyAccelerationStructureToMemoryKHR :: *fn (: VkCommandBuffer, : *VkCopyAccelerationStructureToMemoryInfoKHR) 

File: vulkan.bl

PFN_vkCmdCopyMemoryToAccelerationStructureKHR

PFN_vkCmdCopyMemoryToAccelerationStructureKHR :: *fn (: VkCommandBuffer, : *VkCopyMemoryToAccelerationStructureInfoKHR) 

File: vulkan.bl

PFN_vkGetAccelerationStructureDeviceAddressKHR

PFN_vkGetAccelerationStructureDeviceAddressKHR :: *fn (: VkDevice, : *VkAccelerationStructureDeviceAddressInfoKHR) VkDeviceAddress

File: vulkan.bl

PFN_vkCmdWriteAccelerationStructuresPropertiesKHR

PFN_vkCmdWriteAccelerationStructuresPropertiesKHR :: *fn (: VkCommandBuffer, : u32, : *VkAccelerationStructureKHR, : VkQueryType, : VkQueryPool, : u32) 

File: vulkan.bl

PFN_vkGetDeviceAccelerationStructureCompatibilityKHR

PFN_vkGetDeviceAccelerationStructureCompatibilityKHR :: *fn (: VkDevice, : *VkAccelerationStructureVersionInfoKHR, : *VkAccelerationStructureCompatibilityKHR) 

File: vulkan.bl

PFN_vkGetAccelerationStructureBuildSizesKHR

PFN_vkGetAccelerationStructureBuildSizesKHR :: *fn (: VkDevice, : VkAccelerationStructureBuildTypeKHR, : *VkAccelerationStructureBuildGeometryInfoKHR, : *u32, : *VkAccelerationStructureBuildSizesInfoKHR) 

File: vulkan.bl

vkCreateAccelerationStructureKHR

vkCreateAccelerationStructureKHR :: fn (device: VkDevice, pCreateInfo: *VkAccelerationStructureCreateInfoKHR, pAllocator: *VkAllocationCallbacks, pAccelerationStructure: *VkAccelerationStructureKHR) VkResult #extern

File: vulkan.bl

vkDestroyAccelerationStructureKHR

vkDestroyAccelerationStructureKHR :: fn (device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, pAllocator: *VkAllocationCallbacks)  #extern

File: vulkan.bl

vkCmdBuildAccelerationStructuresKHR

vkCmdBuildAccelerationStructuresKHR :: fn (commandBuffer: VkCommandBuffer, infoCount: u32, pInfos: *VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: **VkAccelerationStructureBuildRangeInfoKHR)  #extern

File: vulkan.bl

vkCmdBuildAccelerationStructuresIndirectKHR

vkCmdBuildAccelerationStructuresIndirectKHR :: fn (commandBuffer: VkCommandBuffer, infoCount: u32, pInfos: *VkAccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: *VkDeviceAddress, pIndirectStrides: *u32, ppMaxPrimitiveCounts: **u32)  #extern

File: vulkan.bl

vkBuildAccelerationStructuresKHR

vkBuildAccelerationStructuresKHR :: fn (device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: u32, pInfos: *VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: **VkAccelerationStructureBuildRangeInfoKHR) VkResult #extern

File: vulkan.bl

vkCopyAccelerationStructureKHR

vkCopyAccelerationStructureKHR :: fn (device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: *VkCopyAccelerationStructureInfoKHR) VkResult #extern

File: vulkan.bl

vkCopyAccelerationStructureToMemoryKHR

vkCopyAccelerationStructureToMemoryKHR :: fn (device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: *VkCopyAccelerationStructureToMemoryInfoKHR) VkResult #extern

File: vulkan.bl

vkCopyMemoryToAccelerationStructureKHR

vkCopyMemoryToAccelerationStructureKHR :: fn (device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: *VkCopyMemoryToAccelerationStructureInfoKHR) VkResult #extern

File: vulkan.bl

vkWriteAccelerationStructuresPropertiesKHR

vkWriteAccelerationStructuresPropertiesKHR :: fn (device: VkDevice, accelerationStructureCount: u32, pAccelerationStructures: *VkAccelerationStructureKHR, queryType: VkQueryType, dataSize: usize, pData: C.void_ptr, stride: usize) VkResult #extern

File: vulkan.bl

vkCmdCopyAccelerationStructureKHR

vkCmdCopyAccelerationStructureKHR :: fn (commandBuffer: VkCommandBuffer, pInfo: *VkCopyAccelerationStructureInfoKHR)  #extern

File: vulkan.bl

vkCmdCopyAccelerationStructureToMemoryKHR

vkCmdCopyAccelerationStructureToMemoryKHR :: fn (commandBuffer: VkCommandBuffer, pInfo: *VkCopyAccelerationStructureToMemoryInfoKHR)  #extern

File: vulkan.bl

vkCmdCopyMemoryToAccelerationStructureKHR

vkCmdCopyMemoryToAccelerationStructureKHR :: fn (commandBuffer: VkCommandBuffer, pInfo: *VkCopyMemoryToAccelerationStructureInfoKHR)  #extern

File: vulkan.bl

vkGetAccelerationStructureDeviceAddressKHR

vkGetAccelerationStructureDeviceAddressKHR :: fn (device: VkDevice, pInfo: *VkAccelerationStructureDeviceAddressInfoKHR) VkDeviceAddress #extern

File: vulkan.bl

vkCmdWriteAccelerationStructuresPropertiesKHR

vkCmdWriteAccelerationStructuresPropertiesKHR :: fn (commandBuffer: VkCommandBuffer, accelerationStructureCount: u32, pAccelerationStructures: *VkAccelerationStructureKHR, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: u32)  #extern

File: vulkan.bl

vkGetDeviceAccelerationStructureCompatibilityKHR

vkGetDeviceAccelerationStructureCompatibilityKHR :: fn (device: VkDevice, pVersionInfo: *VkAccelerationStructureVersionInfoKHR, pCompatibility: *VkAccelerationStructureCompatibilityKHR)  #extern

File: vulkan.bl

vkGetAccelerationStructureBuildSizesKHR

vkGetAccelerationStructureBuildSizesKHR :: fn (device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: *VkAccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: *u32, pSizeInfo: *VkAccelerationStructureBuildSizesInfoKHR)  #extern

File: vulkan.bl

VkShaderGroupShaderKHR

VkShaderGroupShaderKHR :: enum s32 {
    VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0;
    VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1;
    VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2;
    VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3;
    VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 2147483647;
}

File: vulkan.bl

VkRayTracingShaderGroupCreateInfoKHR

VkRayTracingShaderGroupCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    t: VkRayTracingShaderGroupTypeKHR;
    generalShader: u32;
    closestHitShader: u32;
    anyHitShader: u32;
    intersectionShader: u32;
    pShaderGroupCaptureReplayHandle: C.void_ptr;
}

File: vulkan.bl

VkRayTracingPipelineInterfaceCreateInfoKHR

VkRayTracingPipelineInterfaceCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxPipelineRayPayloadSize: u32;
    maxPipelineRayHitAttributeSize: u32;
}

File: vulkan.bl

VkRayTracingPipelineCreateInfoKHR

VkRayTracingPipelineCreateInfoKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    flags: VkPipelineCreateFlags;
    stageCount: u32;
    pStages: *VkPipelineShaderStageCreateInfo;
    groupCount: u32;
    pGroups: *VkRayTracingShaderGroupCreateInfoKHR;
    maxPipelineRayRecursionDepth: u32;
    pLibraryInfo: *VkPipelineLibraryCreateInfoKHR;
    pLibraryInterface: *VkRayTracingPipelineInterfaceCreateInfoKHR;
    pDynamicState: *VkPipelineDynamicStateCreateInfo;
    layout: VkPipelineLayout;
    basePipelineHandle: VkPipeline;
    basePipelineIndex: s32;
}

File: vulkan.bl

VkPhysicalDeviceRayTracingPipelineFeaturesKHR

VkPhysicalDeviceRayTracingPipelineFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    rayTracingPipeline: VkBool32;
    rayTracingPipelineShaderGroupHandleCaptureReplay: VkBool32;
    rayTracingPipelineShaderGroupHandleCaptureReplayMixed: VkBool32;
    rayTracingPipelineTraceRaysIndirect: VkBool32;
    rayTraversalPrimitiveCulling: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceRayTracingPipelinePropertiesKHR

VkPhysicalDeviceRayTracingPipelinePropertiesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    shaderGroupHandleSize: u32;
    maxRayRecursionDepth: u32;
    maxShaderGroupStride: u32;
    shaderGroupBaseAlignment: u32;
    shaderGroupHandleCaptureReplaySize: u32;
    maxRayDispatchInvocationCount: u32;
    shaderGroupHandleAlignment: u32;
    maxRayHitAttributeSize: u32;
}

File: vulkan.bl

VkStridedDeviceAddressRegionKHR

VkStridedDeviceAddressRegionKHR :: struct {
    deviceAddress: VkDeviceAddress;
    stride: VkDeviceSize;
    size: VkDeviceSize;
}

File: vulkan.bl

VkTraceRaysIndirectCommandKHR

VkTraceRaysIndirectCommandKHR :: struct {
    width: u32;
    height: u32;
    depth: u32;
}

File: vulkan.bl

PFN_vkCmdTraceRaysKHR

PFN_vkCmdTraceRaysKHR :: *fn (: VkCommandBuffer, : *VkStridedDeviceAddressRegionKHR, : *VkStridedDeviceAddressRegionKHR, : *VkStridedDeviceAddressRegionKHR, : *VkStridedDeviceAddressRegionKHR, : u32, : u32, : u32) 

File: vulkan.bl

PFN_vkCreateRayTracingPipelinesKHR

PFN_vkCreateRayTracingPipelinesKHR :: *fn (: VkDevice, : VkDeferredOperationKHR, : VkPipelineCache, : u32, : *VkRayTracingPipelineCreateInfoKHR, : *VkAllocationCallbacks, : *VkPipeline) VkResult

File: vulkan.bl

PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR

PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR :: *fn (: VkDevice, : VkPipeline, : u32, : u32, : usize, : C.void_ptr) VkResult

File: vulkan.bl

PFN_vkCmdTraceRaysIndirectKHR

PFN_vkCmdTraceRaysIndirectKHR :: *fn (: VkCommandBuffer, : *VkStridedDeviceAddressRegionKHR, : *VkStridedDeviceAddressRegionKHR, : *VkStridedDeviceAddressRegionKHR, : *VkStridedDeviceAddressRegionKHR, : VkDeviceAddress) 

File: vulkan.bl

PFN_vkGetRayTracingShaderGroupStackSizeKHR

PFN_vkGetRayTracingShaderGroupStackSizeKHR :: *fn (: VkDevice, : VkPipeline, : u32, : VkShaderGroupShaderKHR) VkDeviceSize

File: vulkan.bl

PFN_vkCmdSetRayTracingPipelineStackSizeKHR

PFN_vkCmdSetRayTracingPipelineStackSizeKHR :: *fn (: VkCommandBuffer, : u32) 

File: vulkan.bl

vkCmdTraceRaysKHR

vkCmdTraceRaysKHR :: fn (commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: *VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: *VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: *VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: *VkStridedDeviceAddressRegionKHR, width: u32, height: u32, depth: u32)  #extern

File: vulkan.bl

vkCreateRayTracingPipelinesKHR

vkCreateRayTracingPipelinesKHR :: fn (device: VkDevice, deferredOperation: VkDeferredOperationKHR, pipelineCache: VkPipelineCache, createInfoCount: u32, pCreateInfos: *VkRayTracingPipelineCreateInfoKHR, pAllocator: *VkAllocationCallbacks, pPipelines: *VkPipeline) VkResult #extern

File: vulkan.bl

vkGetRayTracingCaptureReplayShaderGroupHandlesKHR

vkGetRayTracingCaptureReplayShaderGroupHandlesKHR :: fn (device: VkDevice, pipeline: VkPipeline, firstGroup: u32, groupCount: u32, dataSize: usize, pData: C.void_ptr) VkResult #extern

File: vulkan.bl

vkCmdTraceRaysIndirectKHR

vkCmdTraceRaysIndirectKHR :: fn (commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: *VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: *VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: *VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: *VkStridedDeviceAddressRegionKHR, indirectDeviceAddress: VkDeviceAddress)  #extern

File: vulkan.bl

vkGetRayTracingShaderGroupStackSizeKHR

vkGetRayTracingShaderGroupStackSizeKHR :: fn (device: VkDevice, pipeline: VkPipeline, group: u32, groupShader: VkShaderGroupShaderKHR) VkDeviceSize #extern

File: vulkan.bl

vkCmdSetRayTracingPipelineStackSizeKHR

vkCmdSetRayTracingPipelineStackSizeKHR :: fn (commandBuffer: VkCommandBuffer, pipelineStackSize: u32)  #extern

File: vulkan.bl

VkPhysicalDeviceRayQueryFeaturesKHR

VkPhysicalDeviceRayQueryFeaturesKHR :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    rayQuery: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceMeshShaderFeaturesEXT

VkPhysicalDeviceMeshShaderFeaturesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    taskShader: VkBool32;
    meshShader: VkBool32;
    multiviewMeshShader: VkBool32;
    primitiveFragmentShadingRateMeshShader: VkBool32;
    meshShaderQueries: VkBool32;
}

File: vulkan.bl

VkPhysicalDeviceMeshShaderPropertiesEXT

VkPhysicalDeviceMeshShaderPropertiesEXT :: struct {
    sType: VkStructureType;
    pNext: C.void_ptr;
    maxTaskWorkGroupTotalCount: u32;
    maxTaskWorkGroupCount: ;
    maxTaskWorkGroupInvocations: u32;
    maxTaskWorkGroupSize: ;
    maxTaskPayloadSize: u32;
    maxTaskSharedMemorySize: u32;
    maxTaskPayloadAndSharedMemorySize: u32;
    maxMeshWorkGroupTotalCount: u32;
    maxMeshWorkGroupCount: ;
    maxMeshWorkGroupInvocations: u32;
    maxMeshWorkGroupSize: ;
    maxMeshSharedMemorySize: u32;
    maxMeshPayloadAndSharedMemorySize: u32;
    maxMeshOutputMemorySize: u32;
    maxMeshPayloadAndOutputMemorySize: u32;
    maxMeshOutputComponents: u32;
    maxMeshOutputVertices: u32;
    maxMeshOutputPrimitives: u32;
    maxMeshOutputLayers: u32;
    maxMeshMultiviewViewCount: u32;
    meshOutputPerVertexGranularity: u32;
    meshOutputPerPrimitiveGranularity: u32;
    maxPreferredTaskWorkGroupInvocations: u32;
    maxPreferredMeshWorkGroupInvocations: u32;
    prefersLocalInvocationVertexOutput: VkBool32;
    prefersLocalInvocationPrimitiveOutput: VkBool32;
    prefersCompactVertexOutput: VkBool32;
    prefersCompactPrimitiveOutput: VkBool32;
}

File: vulkan.bl

VkDrawMeshTasksIndirectCommandEXT

VkDrawMeshTasksIndirectCommandEXT :: struct {
    groupCountX: u32;
    groupCountY: u32;
    groupCountZ: u32;
}

File: vulkan.bl

PFN_vkCmdDrawMeshTasksEXT

PFN_vkCmdDrawMeshTasksEXT :: *fn (: VkCommandBuffer, : u32, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawMeshTasksIndirectEXT

PFN_vkCmdDrawMeshTasksIndirectEXT :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

PFN_vkCmdDrawMeshTasksIndirectCountEXT

PFN_vkCmdDrawMeshTasksIndirectCountEXT :: *fn (: VkCommandBuffer, : VkBuffer, : VkDeviceSize, : VkBuffer, : VkDeviceSize, : u32, : u32) 

File: vulkan.bl

vkCmdDrawMeshTasksEXT

vkCmdDrawMeshTasksEXT :: fn (commandBuffer: VkCommandBuffer, groupCountX: u32, groupCountY: u32, groupCountZ: u32)  #extern

File: vulkan.bl

vkCmdDrawMeshTasksIndirectEXT

vkCmdDrawMeshTasksIndirectEXT :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: u32, stride: u32)  #extern

File: vulkan.bl

vkCmdDrawMeshTasksIndirectCountEXT

vkCmdDrawMeshTasksIndirectCountEXT :: fn (commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: u32, stride: u32)  #extern

File: vulkan.bl