2019-04-14 11:34:38 -04:00
/**
2021-08-24 19:18:03 -04:00
* Loader generated by glad 2.0 .0 - beta on Wed Aug 25 21 : 20 : 29 2021
2019-04-14 11:34:38 -04:00
*
* Generator : C / C + +
* Specification : vk
* Extensions : 3
*
* APIs :
* - vulkan = 1.1
*
* Options :
* - ALIAS = False
* - DEBUG = False
2021-08-24 19:18:03 -04:00
* - HEADER_ONLY = True
* - LOADER = False
2019-04-14 11:34:38 -04:00
* - MX = False
2021-08-24 19:18:03 -04:00
* - MX_GLOBAL = False
* - ON_DEMAND = False
2019-04-14 11:34:38 -04:00
*
* Commandline :
2021-08-24 19:18:03 -04:00
* - - api = ' vulkan = 1.1 ' - - extensions = ' VK_EXT_debug_report , VK_KHR_surface , VK_KHR_swapchain ' c - - header - only
2019-04-14 11:34:38 -04:00
*
* Online :
2021-08-24 19:18:03 -04:00
* http : //glad.sh/#api=vulkan%3D1.1&extensions=VK_EXT_debug_report%2CVK_KHR_surface%2CVK_KHR_swapchain&generator=c&options=HEADER_ONLY
2019-04-14 11:34:38 -04:00
*
*/
# ifndef GLAD_VULKAN_H_
# define GLAD_VULKAN_H_
# ifdef VULKAN_H_
2021-08-24 19:18:03 -04:00
# error header already included (API: vulkan), remove previous include!
2019-04-14 11:34:38 -04:00
# endif
# define VULKAN_H_ 1
# ifdef VULKAN_CORE_H_
2021-08-24 19:18:03 -04:00
# error header already included (API: vulkan), remove previous include!
2019-04-14 11:34:38 -04:00
# endif
# define VULKAN_CORE_H_ 1
# define GLAD_VULKAN
2021-08-24 19:18:03 -04:00
# define GLAD_OPTION_VULKAN_HEADER_ONLY
2019-04-14 11:34:38 -04:00
# ifdef __cplusplus
extern " C " {
# endif
# ifndef GLAD_PLATFORM_H_
# define GLAD_PLATFORM_H_
# ifndef GLAD_PLATFORM_WIN32
# if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
# define GLAD_PLATFORM_WIN32 1
# else
# define GLAD_PLATFORM_WIN32 0
# endif
# endif
# ifndef GLAD_PLATFORM_APPLE
# ifdef __APPLE__
# define GLAD_PLATFORM_APPLE 1
# else
# define GLAD_PLATFORM_APPLE 0
# endif
# endif
# ifndef GLAD_PLATFORM_EMSCRIPTEN
# ifdef __EMSCRIPTEN__
# define GLAD_PLATFORM_EMSCRIPTEN 1
# else
# define GLAD_PLATFORM_EMSCRIPTEN 0
# endif
# endif
# ifndef GLAD_PLATFORM_UWP
# if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
# ifdef __has_include
# if __has_include(<winapifamily.h>)
# define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
# endif
# elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
# define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
# endif
# endif
# ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
# include <winapifamily.h>
# if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
# define GLAD_PLATFORM_UWP 1
# endif
# endif
# ifndef GLAD_PLATFORM_UWP
# define GLAD_PLATFORM_UWP 0
# endif
# endif
# ifdef __GNUC__
# define GLAD_GNUC_EXTENSION __extension__
# else
# define GLAD_GNUC_EXTENSION
# endif
# ifndef GLAD_API_CALL
# if defined(GLAD_API_CALL_EXPORT)
# if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
# if defined(GLAD_API_CALL_EXPORT_BUILD)
# if defined(__GNUC__)
# define GLAD_API_CALL __attribute__ ((dllexport)) extern
# else
# define GLAD_API_CALL __declspec(dllexport) extern
# endif
# else
# if defined(__GNUC__)
# define GLAD_API_CALL __attribute__ ((dllimport)) extern
# else
# define GLAD_API_CALL __declspec(dllimport) extern
# endif
# endif
# elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
# define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
# else
# define GLAD_API_CALL extern
# endif
# else
# define GLAD_API_CALL extern
# endif
# endif
# ifdef APIENTRY
# define GLAD_API_PTR APIENTRY
# elif GLAD_PLATFORM_WIN32
# define GLAD_API_PTR __stdcall
# else
# define GLAD_API_PTR
# endif
# ifndef GLAPI
# define GLAPI GLAD_API_CALL
# endif
# ifndef GLAPIENTRY
# define GLAPIENTRY GLAD_API_PTR
# endif
# define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
# define GLAD_VERSION_MAJOR(version) (version / 10000)
# define GLAD_VERSION_MINOR(version) (version % 10000)
2021-08-24 19:18:03 -04:00
# define GLAD_GENERATOR_VERSION "2.0.0-beta"
2019-04-14 11:34:38 -04:00
typedef void ( * GLADapiproc ) ( void ) ;
typedef GLADapiproc ( * GLADloadfunc ) ( const char * name ) ;
2021-08-24 19:18:03 -04:00
typedef GLADapiproc ( * GLADuserptrloadfunc ) ( void * userptr , const char * name ) ;
2019-04-14 11:34:38 -04:00
typedef void ( * GLADprecallback ) ( const char * name , GLADapiproc apiproc , int len_args , . . . ) ;
typedef void ( * GLADpostcallback ) ( void * ret , const char * name , GLADapiproc apiproc , int len_args , . . . ) ;
# endif /* GLAD_PLATFORM_H_ */
# define VK_ATTACHMENT_UNUSED (~0U)
# define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
# define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
# define VK_FALSE 0
# define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
# define VK_KHR_SURFACE_SPEC_VERSION 25
# define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
# define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
# define VK_LOD_CLAMP_NONE 1000.0f
# define VK_LUID_SIZE 8
# define VK_MAX_DESCRIPTION_SIZE 256
# define VK_MAX_DEVICE_GROUP_SIZE 32
# define VK_MAX_EXTENSION_NAME_SIZE 256
# define VK_MAX_MEMORY_HEAPS 16
# define VK_MAX_MEMORY_TYPES 32
# define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
# define VK_QUEUE_FAMILY_EXTERNAL (~0U-1)
# define VK_QUEUE_FAMILY_IGNORED (~0U)
# define VK_REMAINING_ARRAY_LAYERS (~0U)
# define VK_REMAINING_MIP_LEVELS (~0U)
# define VK_SUBPASS_EXTERNAL (~0U)
# define VK_TRUE 1
# define VK_UUID_SIZE 16
# define VK_WHOLE_SIZE (~0ULL)
2021-08-24 19:18:03 -04:00
/* */
/* File: vk_platform.h */
/* */
/*
* * Copyright ( c ) 2014 - 2020 The Khronos Group Inc .
* *
* * SPDX - License - Identifier : Apache - 2.0
*/
# ifndef VK_PLATFORM_H_
# define VK_PLATFORM_H_
# ifdef __cplusplus
extern " C "
{
# endif /* __cplusplus */
/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Platform - specific directives and type declarations
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
/* Platform-specific calling convention macros.
*
* Platforms should define these so that Vulkan clients call Vulkan commands
* with the same calling conventions that the Vulkan implementation expects .
*
* VKAPI_ATTR - Placed before the return type in function declarations .
* Useful for C + + 11 and GCC / Clang - style function attribute syntax .
* VKAPI_CALL - Placed after the return type in function declarations .
* Useful for MSVC - style calling convention syntax .
* VKAPI_PTR - Placed between the ' ( ' and ' * ' in function pointer types .
*
* Function declaration : VKAPI_ATTR void VKAPI_CALL vkCommand ( void ) ;
* Function pointer type : typedef void ( VKAPI_PTR * PFN_vkCommand ) ( void ) ;
*/
# if defined(_WIN32)
/* On Windows, Vulkan commands use the stdcall convention */
# define VKAPI_ATTR
# define VKAPI_CALL __stdcall
# define VKAPI_PTR VKAPI_CALL
# elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
# error "Vulkan isn't supported for the 'armeabi' NDK ABI"
# elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
/* On Android 32-bit ARM targets, Vulkan functions use the "hardfloat" */
/* calling convention, i.e. float parameters are passed in registers. This */
/* is true even if the rest of the application passes floats on the stack, */
/* as it does by default when compiling for the armeabi-v7a NDK ABI. */
# define VKAPI_ATTR __attribute__((pcs("aapcs-vfp")))
# define VKAPI_CALL
# define VKAPI_PTR VKAPI_ATTR
# else
/* On other platforms, use the default calling convention */
# define VKAPI_ATTR
# define VKAPI_CALL
# define VKAPI_PTR
# endif
# include <stddef.h>
# if !defined(VK_NO_STDINT_H)
# if defined(_MSC_VER) && (_MSC_VER < 1600)
typedef signed __int8 int8_t ;
typedef unsigned __int8 uint8_t ;
typedef signed __int16 int16_t ;
typedef unsigned __int16 uint16_t ;
typedef signed __int32 int32_t ;
typedef unsigned __int32 uint32_t ;
typedef signed __int64 int64_t ;
typedef unsigned __int64 uint64_t ;
# else
# include <stdint.h>
# endif
# endif /* !defined(VK_NO_STDINT_H) */
# ifdef __cplusplus
} /* extern "C" */
# endif /* __cplusplus */
# endif
2019-04-14 11:34:38 -04:00
# define VK_MAKE_VERSION(major, minor, patch) \
2021-08-24 19:18:03 -04:00
( ( ( ( uint32_t ) ( major ) ) < < 22 ) | ( ( ( uint32_t ) ( minor ) ) < < 12 ) | ( ( uint32_t ) ( patch ) ) )
2019-04-14 11:34:38 -04:00
# define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
# define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
# define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
/* DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. */
/*#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 */
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
/* Vulkan 1.0 version number */
# define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0) /* Patch version should always be set to 0 */
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
/* Vulkan 1.1 version number */
# define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0) /* Patch version should always be set to 0 */
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
/* Version of this file */
2021-08-24 19:18:03 -04:00
# define VK_HEADER_VERSION 152
/* Complete version of this file */
# define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION)
2019-04-14 11:34:38 -04:00
# define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
# if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
# if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
# define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
# else
# define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
# endif
# endif
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
# define VK_NULL_HANDLE 0
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_HANDLE ( VkInstance )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_HANDLE ( VkPhysicalDevice )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_HANDLE ( VkDevice )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_HANDLE ( VkQueue )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_HANDLE ( VkCommandBuffer )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkDeviceMemory )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkCommandPool )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkBuffer )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkBufferView )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkImage )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkImageView )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkShaderModule )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkPipeline )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkPipelineLayout )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkSampler )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkDescriptorSet )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkDescriptorSetLayout )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkDescriptorPool )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkFence )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkSemaphore )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkEvent )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkQueryPool )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkFramebuffer )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkRenderPass )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkPipelineCache )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkDescriptorUpdateTemplate )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkSamplerYcbcrConversion )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkSurfaceKHR )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkSwapchainKHR )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
VK_DEFINE_NON_DISPATCHABLE_HANDLE ( VkDebugReportCallbackEXT )
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkAttachmentLoadOp {
VK_ATTACHMENT_LOAD_OP_LOAD = 0 ,
VK_ATTACHMENT_LOAD_OP_CLEAR = 1 ,
VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2
} VkAttachmentLoadOp ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkAttachmentStoreOp {
VK_ATTACHMENT_STORE_OP_STORE = 0 ,
VK_ATTACHMENT_STORE_OP_DONT_CARE = 1
} VkAttachmentStoreOp ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkBlendFactor {
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
} VkBlendFactor ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkBlendOp {
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
} VkBlendOp ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkBorderColor {
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
} VkBorderColor ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkPipelineCacheHeaderVersion {
VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1
} VkPipelineCacheHeaderVersion ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkDeviceQueueCreateFlagBits {
VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 1
} VkDeviceQueueCreateFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkBufferCreateFlagBits {
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
} VkBufferCreateFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkBufferUsageFlagBits {
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
} VkBufferUsageFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkColorComponentFlagBits {
VK_COLOR_COMPONENT_R_BIT = 1 ,
VK_COLOR_COMPONENT_G_BIT = 2 ,
VK_COLOR_COMPONENT_B_BIT = 4 ,
VK_COLOR_COMPONENT_A_BIT = 8
} VkColorComponentFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkComponentSwizzle {
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
} VkComponentSwizzle ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkCommandPoolCreateFlagBits {
VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 1 ,
VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 2 ,
VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 4
} VkCommandPoolCreateFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkCommandPoolResetFlagBits {
VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 1
} VkCommandPoolResetFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkCommandBufferResetFlagBits {
VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 1
} VkCommandBufferResetFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkCommandBufferLevel {
VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0 ,
VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1
} VkCommandBufferLevel ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkCommandBufferUsageFlagBits {
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
} VkCommandBufferUsageFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkCompareOp {
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
} VkCompareOp ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkCullModeFlagBits {
VK_CULL_MODE_NONE = 0 ,
VK_CULL_MODE_FRONT_BIT = 1 ,
VK_CULL_MODE_BACK_BIT = 2 ,
VK_CULL_MODE_FRONT_AND_BACK = 0x00000003
} VkCullModeFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkDescriptorType {
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
} VkDescriptorType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkDynamicState {
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 ,
2021-08-24 19:18:03 -04:00
VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8
2019-04-14 11:34:38 -04:00
} VkDynamicState ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkFenceCreateFlagBits {
VK_FENCE_CREATE_SIGNALED_BIT = 1
} VkFenceCreateFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkPolygonMode {
VK_POLYGON_MODE_FILL = 0 ,
VK_POLYGON_MODE_LINE = 1 ,
VK_POLYGON_MODE_POINT = 2
} VkPolygonMode ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkFormat {
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
} VkFormat ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkFormatFeatureFlagBits {
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
} VkFormatFeatureFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkFrontFace {
VK_FRONT_FACE_COUNTER_CLOCKWISE = 0 ,
VK_FRONT_FACE_CLOCKWISE = 1
} VkFrontFace ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkImageAspectFlagBits {
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
} VkImageAspectFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkImageCreateFlagBits {
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
} VkImageCreateFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkImageLayout {
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_PRESENT_SRC_KHR = 1000001002
} VkImageLayout ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkImageTiling {
VK_IMAGE_TILING_OPTIMAL = 0 ,
VK_IMAGE_TILING_LINEAR = 1
} VkImageTiling ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkImageType {
VK_IMAGE_TYPE_1D = 0 ,
VK_IMAGE_TYPE_2D = 1 ,
VK_IMAGE_TYPE_3D = 2
} VkImageType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkImageUsageFlagBits {
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
} VkImageUsageFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkImageViewType {
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
} VkImageViewType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSharingMode {
VK_SHARING_MODE_EXCLUSIVE = 0 ,
VK_SHARING_MODE_CONCURRENT = 1
} VkSharingMode ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkIndexType {
VK_INDEX_TYPE_UINT16 = 0 ,
VK_INDEX_TYPE_UINT32 = 1
} VkIndexType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkLogicOp {
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
} VkLogicOp ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkMemoryHeapFlagBits {
VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 1 ,
VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 2
} VkMemoryHeapFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkAccessFlagBits {
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
} VkAccessFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkMemoryPropertyFlagBits {
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
} VkMemoryPropertyFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkPhysicalDeviceType {
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
} VkPhysicalDeviceType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkPipelineBindPoint {
VK_PIPELINE_BIND_POINT_GRAPHICS = 0 ,
VK_PIPELINE_BIND_POINT_COMPUTE = 1
} VkPipelineBindPoint ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkPipelineCreateFlagBits {
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 ,
2021-08-24 19:18:03 -04:00
VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 16 ,
VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT
2019-04-14 11:34:38 -04:00
} VkPipelineCreateFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkPrimitiveTopology {
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
} VkPrimitiveTopology ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkQueryControlFlagBits {
VK_QUERY_CONTROL_PRECISE_BIT = 1
} VkQueryControlFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkQueryPipelineStatisticFlagBits {
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
} VkQueryPipelineStatisticFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkQueryResultFlagBits {
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
} VkQueryResultFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkQueryType {
VK_QUERY_TYPE_OCCLUSION = 0 ,
VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 ,
VK_QUERY_TYPE_TIMESTAMP = 2
} VkQueryType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkQueueFlagBits {
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
} VkQueueFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSubpassContents {
VK_SUBPASS_CONTENTS_INLINE = 0 ,
VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1
} VkSubpassContents ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkResult {
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 = - 1 ,
VK_ERROR_OUT_OF_DEVICE_MEMORY = - 2 ,
VK_ERROR_INITIALIZATION_FAILED = - 3 ,
VK_ERROR_DEVICE_LOST = - 4 ,
VK_ERROR_MEMORY_MAP_FAILED = - 5 ,
VK_ERROR_LAYER_NOT_PRESENT = - 6 ,
VK_ERROR_EXTENSION_NOT_PRESENT = - 7 ,
VK_ERROR_FEATURE_NOT_PRESENT = - 8 ,
VK_ERROR_INCOMPATIBLE_DRIVER = - 9 ,
VK_ERROR_TOO_MANY_OBJECTS = - 10 ,
VK_ERROR_FORMAT_NOT_SUPPORTED = - 11 ,
VK_ERROR_FRAGMENTED_POOL = - 12 ,
2021-08-24 19:18:03 -04:00
VK_ERROR_UNKNOWN = - 13 ,
2019-04-14 11:34:38 -04:00
VK_ERROR_OUT_OF_POOL_MEMORY = - 1000069000 ,
VK_ERROR_INVALID_EXTERNAL_HANDLE = - 1000072003 ,
VK_ERROR_SURFACE_LOST_KHR = - 1000000000 ,
VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = - 1000000001 ,
VK_SUBOPTIMAL_KHR = 1000001003 ,
VK_ERROR_OUT_OF_DATE_KHR = - 1000001004 ,
VK_ERROR_VALIDATION_FAILED_EXT = - 1000011001
} VkResult ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkShaderStageFlagBits {
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 = 0x0000001F ,
VK_SHADER_STAGE_ALL = 0x7FFFFFFF
} VkShaderStageFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSparseMemoryBindFlagBits {
VK_SPARSE_MEMORY_BIND_METADATA_BIT = 1
} VkSparseMemoryBindFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkStencilFaceFlagBits {
VK_STENCIL_FACE_FRONT_BIT = 1 ,
VK_STENCIL_FACE_BACK_BIT = 2 ,
2021-08-24 19:18:03 -04:00
VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003 ,
VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK
2019-04-14 11:34:38 -04:00
} VkStencilFaceFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkStencilOp {
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
} VkStencilOp ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkStructureType {
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_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES ,
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_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES ,
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_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000 ,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
} VkStructureType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSystemAllocationScope {
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
} VkSystemAllocationScope ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkInternalAllocationType {
VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0
} VkInternalAllocationType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSamplerAddressMode {
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
} VkSamplerAddressMode ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkFilter {
VK_FILTER_NEAREST = 0 ,
VK_FILTER_LINEAR = 1
} VkFilter ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSamplerMipmapMode {
VK_SAMPLER_MIPMAP_MODE_NEAREST = 0 ,
VK_SAMPLER_MIPMAP_MODE_LINEAR = 1
} VkSamplerMipmapMode ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkVertexInputRate {
VK_VERTEX_INPUT_RATE_VERTEX = 0 ,
VK_VERTEX_INPUT_RATE_INSTANCE = 1
} VkVertexInputRate ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkPipelineStageFlagBits {
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
} VkPipelineStageFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSparseImageFormatFlagBits {
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
} VkSparseImageFormatFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSampleCountFlagBits {
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
} VkSampleCountFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkAttachmentDescriptionFlagBits {
VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 1
} VkAttachmentDescriptionFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkDescriptorPoolCreateFlagBits {
VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1
} VkDescriptorPoolCreateFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkDependencyFlagBits {
VK_DEPENDENCY_BY_REGION_BIT = 1 ,
VK_DEPENDENCY_DEVICE_GROUP_BIT = 4 ,
VK_DEPENDENCY_VIEW_LOCAL_BIT = 2
} VkDependencyFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkObjectType {
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_SURFACE_KHR = 1000000000 ,
VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000 ,
VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000
} VkObjectType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkDescriptorUpdateTemplateType {
VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0
} VkDescriptorUpdateTemplateType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkPointClippingBehavior {
VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0 ,
VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1
} VkPointClippingBehavior ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkColorSpaceKHR {
VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0 ,
VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
} VkColorSpaceKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkCompositeAlphaFlagBitsKHR {
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
} VkCompositeAlphaFlagBitsKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkPresentModeKHR {
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
} VkPresentModeKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSurfaceTransformFlagBitsKHR {
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
} VkSurfaceTransformFlagBitsKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkDebugReportFlagBitsEXT {
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
} VkDebugReportFlagBitsEXT ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkDebugReportObjectTypeEXT {
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_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT ,
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_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT ,
VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 ,
VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000
} VkDebugReportObjectTypeEXT ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkExternalMemoryHandleTypeFlagBits {
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
} VkExternalMemoryHandleTypeFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkExternalMemoryFeatureFlagBits {
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 1 ,
VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 2 ,
VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 4
} VkExternalMemoryFeatureFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkExternalSemaphoreHandleTypeFlagBits {
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 ,
2021-08-24 19:18:03 -04:00
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT ,
2019-04-14 11:34:38 -04:00
VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 16
} VkExternalSemaphoreHandleTypeFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkExternalSemaphoreFeatureFlagBits {
VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 1 ,
VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 2
} VkExternalSemaphoreFeatureFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSemaphoreImportFlagBits {
VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 1
} VkSemaphoreImportFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkExternalFenceHandleTypeFlagBits {
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
} VkExternalFenceHandleTypeFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkExternalFenceFeatureFlagBits {
VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 1 ,
VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 2
} VkExternalFenceFeatureFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkFenceImportFlagBits {
VK_FENCE_IMPORT_TEMPORARY_BIT = 1
} VkFenceImportFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkPeerMemoryFeatureFlagBits {
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
} VkPeerMemoryFeatureFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkMemoryAllocateFlagBits {
VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 1
} VkMemoryAllocateFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
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
} VkDeviceGroupPresentModeFlagBitsKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSwapchainCreateFlagBitsKHR {
VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1 ,
VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2
} VkSwapchainCreateFlagBitsKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSubgroupFeatureFlagBits {
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
} VkSubgroupFeatureFlagBits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkTessellationDomainOrigin {
VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0 ,
VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1
} VkTessellationDomainOrigin ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSamplerYcbcrModelConversion {
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
} VkSamplerYcbcrModelConversion ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkSamplerYcbcrRange {
VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0 ,
VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1
} VkSamplerYcbcrRange ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkChromaLocation {
VK_CHROMA_LOCATION_COSITED_EVEN = 0 ,
VK_CHROMA_LOCATION_MIDPOINT = 1
} VkChromaLocation ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef enum VkVendorId {
VK_VENDOR_ID_VIV = 0x10001 ,
VK_VENDOR_ID_VSI = 0x10002 ,
2021-08-24 19:18:03 -04:00
VK_VENDOR_ID_KAZAN = 0x10003 ,
VK_VENDOR_ID_CODEPLAY = 0x10004 ,
VK_VENDOR_ID_MESA = 0x10005
2019-04-14 11:34:38 -04:00
} VkVendorId ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef void ( VKAPI_PTR * PFN_vkInternalAllocationNotification ) (
void * pUserData ,
size_t size ,
VkInternalAllocationType allocationType ,
VkSystemAllocationScope allocationScope ) ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef void ( VKAPI_PTR * PFN_vkInternalFreeNotification ) (
void * pUserData ,
size_t size ,
VkInternalAllocationType allocationType ,
VkSystemAllocationScope allocationScope ) ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef void * ( VKAPI_PTR * PFN_vkReallocationFunction ) (
void * pUserData ,
void * pOriginal ,
size_t size ,
size_t alignment ,
VkSystemAllocationScope allocationScope ) ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef void * ( VKAPI_PTR * PFN_vkAllocationFunction ) (
void * pUserData ,
size_t size ,
size_t alignment ,
VkSystemAllocationScope allocationScope ) ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef void ( VKAPI_PTR * PFN_vkFreeFunction ) (
void * pUserData ,
void * pMemory ) ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef void ( VKAPI_PTR * PFN_vkVoidFunction ) ( void ) ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBaseOutStructure {
VkStructureType sType ;
struct VkBaseOutStructure * pNext ;
} VkBaseOutStructure ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBaseInStructure {
VkStructureType sType ;
const struct VkBaseInStructure * pNext ;
} VkBaseInStructure ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkOffset2D {
int32_t x ;
int32_t y ;
} VkOffset2D ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkOffset3D {
int32_t x ;
int32_t y ;
int32_t z ;
} VkOffset3D ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExtent2D {
uint32_t width ;
uint32_t height ;
} VkExtent2D ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExtent3D {
uint32_t width ;
uint32_t height ;
uint32_t depth ;
} VkExtent3D ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkViewport {
float x ;
float y ;
float width ;
float height ;
float minDepth ;
float maxDepth ;
} VkViewport ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkRect2D {
VkOffset2D offset ;
VkExtent2D extent ;
} VkRect2D ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkClearRect {
VkRect2D rect ;
uint32_t baseArrayLayer ;
uint32_t layerCount ;
} VkClearRect ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkComponentMapping {
VkComponentSwizzle r ;
VkComponentSwizzle g ;
VkComponentSwizzle b ;
VkComponentSwizzle a ;
} VkComponentMapping ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExtensionProperties {
char extensionName [ VK_MAX_EXTENSION_NAME_SIZE ] ;
uint32_t specVersion ;
} VkExtensionProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkLayerProperties {
char layerName [ VK_MAX_EXTENSION_NAME_SIZE ] ;
uint32_t specVersion ;
uint32_t implementationVersion ;
char description [ VK_MAX_DESCRIPTION_SIZE ] ;
} VkLayerProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkApplicationInfo {
VkStructureType sType ;
const void * pNext ;
const char * pApplicationName ;
uint32_t applicationVersion ;
const char * pEngineName ;
uint32_t engineVersion ;
uint32_t apiVersion ;
} VkApplicationInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkAllocationCallbacks {
void * pUserData ;
PFN_vkAllocationFunction pfnAllocation ;
PFN_vkReallocationFunction pfnReallocation ;
PFN_vkFreeFunction pfnFree ;
PFN_vkInternalAllocationNotification pfnInternalAllocation ;
PFN_vkInternalFreeNotification pfnInternalFree ;
} VkAllocationCallbacks ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDescriptorImageInfo {
VkSampler sampler ;
VkImageView imageView ;
VkImageLayout imageLayout ;
} VkDescriptorImageInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkCopyDescriptorSet {
VkStructureType sType ;
const void * pNext ;
VkDescriptorSet srcSet ;
uint32_t srcBinding ;
uint32_t srcArrayElement ;
VkDescriptorSet dstSet ;
uint32_t dstBinding ;
uint32_t dstArrayElement ;
uint32_t descriptorCount ;
} VkCopyDescriptorSet ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDescriptorPoolSize {
VkDescriptorType type ;
uint32_t descriptorCount ;
} VkDescriptorPoolSize ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDescriptorSetAllocateInfo {
VkStructureType sType ;
const void * pNext ;
VkDescriptorPool descriptorPool ;
uint32_t descriptorSetCount ;
const VkDescriptorSetLayout * pSetLayouts ;
} VkDescriptorSetAllocateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSpecializationMapEntry {
uint32_t constantID ;
uint32_t offset ;
size_t size ;
} VkSpecializationMapEntry ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSpecializationInfo {
uint32_t mapEntryCount ;
const VkSpecializationMapEntry * pMapEntries ;
size_t dataSize ;
const void * pData ;
} VkSpecializationInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkVertexInputBindingDescription {
uint32_t binding ;
uint32_t stride ;
VkVertexInputRate inputRate ;
} VkVertexInputBindingDescription ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkVertexInputAttributeDescription {
uint32_t location ;
uint32_t binding ;
VkFormat format ;
uint32_t offset ;
} VkVertexInputAttributeDescription ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkStencilOpState {
VkStencilOp failOp ;
VkStencilOp passOp ;
VkStencilOp depthFailOp ;
VkCompareOp compareOp ;
uint32_t compareMask ;
uint32_t writeMask ;
uint32_t reference ;
} VkStencilOpState ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkCommandBufferAllocateInfo {
VkStructureType sType ;
const void * pNext ;
VkCommandPool commandPool ;
VkCommandBufferLevel level ;
uint32_t commandBufferCount ;
} VkCommandBufferAllocateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef union VkClearColorValue {
float float32 [ 4 ] ;
int32_t int32 [ 4 ] ;
uint32_t uint32 [ 4 ] ;
} VkClearColorValue ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkClearDepthStencilValue {
float depth ;
uint32_t stencil ;
} VkClearDepthStencilValue ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef union VkClearValue {
VkClearColorValue color ;
VkClearDepthStencilValue depthStencil ;
} VkClearValue ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkAttachmentReference {
uint32_t attachment ;
VkImageLayout layout ;
} VkAttachmentReference ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDrawIndirectCommand {
uint32_t vertexCount ;
uint32_t instanceCount ;
uint32_t firstVertex ;
uint32_t firstInstance ;
} VkDrawIndirectCommand ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDrawIndexedIndirectCommand {
uint32_t indexCount ;
uint32_t instanceCount ;
uint32_t firstIndex ;
int32_t vertexOffset ;
uint32_t firstInstance ;
} VkDrawIndexedIndirectCommand ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDispatchIndirectCommand {
uint32_t x ;
uint32_t y ;
uint32_t z ;
} VkDispatchIndirectCommand ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSurfaceFormatKHR {
VkFormat format ;
VkColorSpaceKHR colorSpace ;
} VkSurfaceFormatKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPresentInfoKHR {
VkStructureType sType ;
const void * pNext ;
uint32_t waitSemaphoreCount ;
const VkSemaphore * pWaitSemaphores ;
uint32_t swapchainCount ;
const VkSwapchainKHR * pSwapchains ;
const uint32_t * pImageIndices ;
VkResult * pResults ;
} VkPresentInfoKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceExternalImageFormatInfo {
VkStructureType sType ;
const void * pNext ;
VkExternalMemoryHandleTypeFlagBits handleType ;
} VkPhysicalDeviceExternalImageFormatInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
VkStructureType sType ;
const void * pNext ;
VkExternalSemaphoreHandleTypeFlagBits handleType ;
} VkPhysicalDeviceExternalSemaphoreInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceExternalFenceInfo {
VkStructureType sType ;
const void * pNext ;
VkExternalFenceHandleTypeFlagBits handleType ;
} VkPhysicalDeviceExternalFenceInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceMultiviewProperties {
VkStructureType sType ;
void * pNext ;
uint32_t maxMultiviewViewCount ;
uint32_t maxMultiviewInstanceIndex ;
} VkPhysicalDeviceMultiviewProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkRenderPassMultiviewCreateInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t subpassCount ;
const uint32_t * pViewMasks ;
uint32_t dependencyCount ;
const int32_t * pViewOffsets ;
uint32_t correlationMaskCount ;
const uint32_t * pCorrelationMasks ;
} VkRenderPassMultiviewCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBindBufferMemoryDeviceGroupInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t deviceIndexCount ;
const uint32_t * pDeviceIndices ;
} VkBindBufferMemoryDeviceGroupInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBindImageMemoryDeviceGroupInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t deviceIndexCount ;
const uint32_t * pDeviceIndices ;
uint32_t splitInstanceBindRegionCount ;
const VkRect2D * pSplitInstanceBindRegions ;
} VkBindImageMemoryDeviceGroupInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceGroupRenderPassBeginInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t deviceMask ;
uint32_t deviceRenderAreaCount ;
const VkRect2D * pDeviceRenderAreas ;
} VkDeviceGroupRenderPassBeginInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceGroupCommandBufferBeginInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t deviceMask ;
} VkDeviceGroupCommandBufferBeginInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceGroupSubmitInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t waitSemaphoreCount ;
const uint32_t * pWaitSemaphoreDeviceIndices ;
uint32_t commandBufferCount ;
const uint32_t * pCommandBufferDeviceMasks ;
uint32_t signalSemaphoreCount ;
const uint32_t * pSignalSemaphoreDeviceIndices ;
} VkDeviceGroupSubmitInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceGroupBindSparseInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t resourceDeviceIndex ;
uint32_t memoryDeviceIndex ;
} VkDeviceGroupBindSparseInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageSwapchainCreateInfoKHR {
VkStructureType sType ;
const void * pNext ;
VkSwapchainKHR swapchain ;
} VkImageSwapchainCreateInfoKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBindImageMemorySwapchainInfoKHR {
VkStructureType sType ;
const void * pNext ;
VkSwapchainKHR swapchain ;
uint32_t imageIndex ;
} VkBindImageMemorySwapchainInfoKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkAcquireNextImageInfoKHR {
VkStructureType sType ;
const void * pNext ;
VkSwapchainKHR swapchain ;
uint64_t timeout ;
VkSemaphore semaphore ;
VkFence fence ;
uint32_t deviceMask ;
} VkAcquireNextImageInfoKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceGroupPresentInfoKHR {
VkStructureType sType ;
const void * pNext ;
uint32_t swapchainCount ;
const uint32_t * pDeviceMasks ;
VkDeviceGroupPresentModeFlagBitsKHR mode ;
} VkDeviceGroupPresentInfoKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceGroupDeviceCreateInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t physicalDeviceCount ;
const VkPhysicalDevice * pPhysicalDevices ;
} VkDeviceGroupDeviceCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDescriptorUpdateTemplateEntry {
uint32_t dstBinding ;
uint32_t dstArrayElement ;
uint32_t descriptorCount ;
VkDescriptorType descriptorType ;
size_t offset ;
size_t stride ;
} VkDescriptorUpdateTemplateEntry ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBufferMemoryRequirementsInfo2 {
VkStructureType sType ;
const void * pNext ;
VkBuffer buffer ;
} VkBufferMemoryRequirementsInfo2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageMemoryRequirementsInfo2 {
VkStructureType sType ;
const void * pNext ;
VkImage image ;
} VkImageMemoryRequirementsInfo2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageSparseMemoryRequirementsInfo2 {
VkStructureType sType ;
const void * pNext ;
VkImage image ;
} VkImageSparseMemoryRequirementsInfo2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDevicePointClippingProperties {
VkStructureType sType ;
void * pNext ;
VkPointClippingBehavior pointClippingBehavior ;
} VkPhysicalDevicePointClippingProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkMemoryDedicatedAllocateInfo {
VkStructureType sType ;
const void * pNext ;
VkImage image ;
VkBuffer buffer ;
} VkMemoryDedicatedAllocateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkTessellationDomainOrigin domainOrigin ;
} VkPipelineTessellationDomainOriginStateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSamplerYcbcrConversionInfo {
VkStructureType sType ;
const void * pNext ;
VkSamplerYcbcrConversion conversion ;
} VkSamplerYcbcrConversionInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBindImagePlaneMemoryInfo {
VkStructureType sType ;
const void * pNext ;
VkImageAspectFlagBits planeAspect ;
} VkBindImagePlaneMemoryInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImagePlaneMemoryRequirementsInfo {
VkStructureType sType ;
const void * pNext ;
VkImageAspectFlagBits planeAspect ;
} VkImagePlaneMemoryRequirementsInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSamplerYcbcrConversionImageFormatProperties {
VkStructureType sType ;
void * pNext ;
uint32_t combinedImageSamplerDescriptorCount ;
} VkSamplerYcbcrConversionImageFormatProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef uint32_t VkSampleMask ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef uint32_t VkBool32 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef uint32_t VkFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef uint64_t VkDeviceSize ;
2021-08-24 19:18:03 -04:00
typedef uint64_t VkDeviceAddress ;
2019-04-14 11:34:38 -04:00
typedef VkFlags VkFramebufferCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkQueryPoolCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkRenderPassCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkSamplerCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineLayoutCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineCacheCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineDepthStencilStateCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineDynamicStateCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineColorBlendStateCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineMultisampleStateCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineRasterizationStateCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineViewportStateCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineTessellationStateCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineInputAssemblyStateCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineVertexInputStateCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineShaderStageCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkDescriptorSetLayoutCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkBufferViewCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkInstanceCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkDeviceCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkDeviceQueueCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkQueueFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkMemoryPropertyFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkMemoryHeapFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkAccessFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkBufferUsageFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkBufferCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkShaderStageFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkImageUsageFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkImageCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkImageViewCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkColorComponentFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkFenceCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkSemaphoreCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkFormatFeatureFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkQueryControlFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkQueryResultFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkShaderModuleCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkEventCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkCommandPoolCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkCommandPoolResetFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkCommandBufferResetFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkCommandBufferUsageFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkQueryPipelineStatisticFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkMemoryMapFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkImageAspectFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkSparseMemoryBindFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkSparseImageFormatFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkSubpassDescriptionFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPipelineStageFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkSampleCountFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkAttachmentDescriptionFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkStencilFaceFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkCullModeFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkDescriptorPoolCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkDescriptorPoolResetFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkDependencyFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkSubgroupFeatureFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkDescriptorUpdateTemplateCreateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkCompositeAlphaFlagsKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkSurfaceTransformFlagsKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkSwapchainCreateFlagsKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkPeerMemoryFeatureFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkMemoryAllocateFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkDeviceGroupPresentModeFlagsKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkDebugReportFlagsEXT ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkCommandPoolTrimFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkExternalMemoryHandleTypeFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkExternalMemoryFeatureFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkExternalSemaphoreHandleTypeFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkExternalSemaphoreFeatureFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkSemaphoreImportFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkExternalFenceHandleTypeFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkExternalFenceFeatureFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkFlags VkFenceImportFlags ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef VkBool32 ( VKAPI_PTR * PFN_vkDebugReportCallbackEXT ) (
VkDebugReportFlagsEXT flags ,
VkDebugReportObjectTypeEXT objectType ,
uint64_t object ,
size_t location ,
int32_t messageCode ,
const char * pLayerPrefix ,
const char * pMessage ,
void * pUserData ) ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceQueueCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkDeviceQueueCreateFlags flags ;
uint32_t queueFamilyIndex ;
uint32_t queueCount ;
const float * pQueuePriorities ;
} VkDeviceQueueCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkInstanceCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkInstanceCreateFlags flags ;
const VkApplicationInfo * pApplicationInfo ;
uint32_t enabledLayerCount ;
const char * const * ppEnabledLayerNames ;
uint32_t enabledExtensionCount ;
const char * const * ppEnabledExtensionNames ;
} VkInstanceCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkQueueFamilyProperties {
VkQueueFlags queueFlags ;
uint32_t queueCount ;
uint32_t timestampValidBits ;
VkExtent3D minImageTransferGranularity ;
} VkQueueFamilyProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkMemoryAllocateInfo {
VkStructureType sType ;
const void * pNext ;
VkDeviceSize allocationSize ;
uint32_t memoryTypeIndex ;
} VkMemoryAllocateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkMemoryRequirements {
VkDeviceSize size ;
VkDeviceSize alignment ;
uint32_t memoryTypeBits ;
} VkMemoryRequirements ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSparseImageFormatProperties {
VkImageAspectFlags aspectMask ;
VkExtent3D imageGranularity ;
VkSparseImageFormatFlags flags ;
} VkSparseImageFormatProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSparseImageMemoryRequirements {
VkSparseImageFormatProperties formatProperties ;
uint32_t imageMipTailFirstLod ;
VkDeviceSize imageMipTailSize ;
VkDeviceSize imageMipTailOffset ;
VkDeviceSize imageMipTailStride ;
} VkSparseImageMemoryRequirements ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkMemoryType {
VkMemoryPropertyFlags propertyFlags ;
uint32_t heapIndex ;
} VkMemoryType ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkMemoryHeap {
VkDeviceSize size ;
VkMemoryHeapFlags flags ;
} VkMemoryHeap ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkMappedMemoryRange {
VkStructureType sType ;
const void * pNext ;
VkDeviceMemory memory ;
VkDeviceSize offset ;
VkDeviceSize size ;
} VkMappedMemoryRange ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkFormatProperties {
VkFormatFeatureFlags linearTilingFeatures ;
VkFormatFeatureFlags optimalTilingFeatures ;
VkFormatFeatureFlags bufferFeatures ;
} VkFormatProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageFormatProperties {
VkExtent3D maxExtent ;
uint32_t maxMipLevels ;
uint32_t maxArrayLayers ;
VkSampleCountFlags sampleCounts ;
VkDeviceSize maxResourceSize ;
} VkImageFormatProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDescriptorBufferInfo {
VkBuffer buffer ;
VkDeviceSize offset ;
VkDeviceSize range ;
} VkDescriptorBufferInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkWriteDescriptorSet {
VkStructureType sType ;
const void * pNext ;
VkDescriptorSet dstSet ;
uint32_t dstBinding ;
uint32_t dstArrayElement ;
uint32_t descriptorCount ;
VkDescriptorType descriptorType ;
const VkDescriptorImageInfo * pImageInfo ;
const VkDescriptorBufferInfo * pBufferInfo ;
const VkBufferView * pTexelBufferView ;
} VkWriteDescriptorSet ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBufferCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkBufferCreateFlags flags ;
VkDeviceSize size ;
VkBufferUsageFlags usage ;
VkSharingMode sharingMode ;
uint32_t queueFamilyIndexCount ;
const uint32_t * pQueueFamilyIndices ;
} VkBufferCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBufferViewCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkBufferViewCreateFlags flags ;
VkBuffer buffer ;
VkFormat format ;
VkDeviceSize offset ;
VkDeviceSize range ;
} VkBufferViewCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageSubresource {
VkImageAspectFlags aspectMask ;
uint32_t mipLevel ;
uint32_t arrayLayer ;
} VkImageSubresource ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageSubresourceLayers {
VkImageAspectFlags aspectMask ;
uint32_t mipLevel ;
uint32_t baseArrayLayer ;
uint32_t layerCount ;
} VkImageSubresourceLayers ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageSubresourceRange {
VkImageAspectFlags aspectMask ;
uint32_t baseMipLevel ;
uint32_t levelCount ;
uint32_t baseArrayLayer ;
uint32_t layerCount ;
} VkImageSubresourceRange ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkMemoryBarrier {
VkStructureType sType ;
const void * pNext ;
VkAccessFlags srcAccessMask ;
VkAccessFlags dstAccessMask ;
} VkMemoryBarrier ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBufferMemoryBarrier {
VkStructureType sType ;
const void * pNext ;
VkAccessFlags srcAccessMask ;
VkAccessFlags dstAccessMask ;
uint32_t srcQueueFamilyIndex ;
uint32_t dstQueueFamilyIndex ;
VkBuffer buffer ;
VkDeviceSize offset ;
VkDeviceSize size ;
} VkBufferMemoryBarrier ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageMemoryBarrier {
VkStructureType sType ;
const void * pNext ;
VkAccessFlags srcAccessMask ;
VkAccessFlags dstAccessMask ;
VkImageLayout oldLayout ;
VkImageLayout newLayout ;
uint32_t srcQueueFamilyIndex ;
uint32_t dstQueueFamilyIndex ;
VkImage image ;
VkImageSubresourceRange subresourceRange ;
} VkImageMemoryBarrier ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkImageCreateFlags flags ;
VkImageType imageType ;
VkFormat format ;
VkExtent3D extent ;
uint32_t mipLevels ;
uint32_t arrayLayers ;
VkSampleCountFlagBits samples ;
VkImageTiling tiling ;
VkImageUsageFlags usage ;
VkSharingMode sharingMode ;
uint32_t queueFamilyIndexCount ;
const uint32_t * pQueueFamilyIndices ;
VkImageLayout initialLayout ;
} VkImageCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSubresourceLayout {
VkDeviceSize offset ;
VkDeviceSize size ;
VkDeviceSize rowPitch ;
VkDeviceSize arrayPitch ;
VkDeviceSize depthPitch ;
} VkSubresourceLayout ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageViewCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkImageViewCreateFlags flags ;
VkImage image ;
VkImageViewType viewType ;
VkFormat format ;
VkComponentMapping components ;
VkImageSubresourceRange subresourceRange ;
} VkImageViewCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBufferCopy {
VkDeviceSize srcOffset ;
VkDeviceSize dstOffset ;
VkDeviceSize size ;
} VkBufferCopy ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSparseMemoryBind {
VkDeviceSize resourceOffset ;
VkDeviceSize size ;
VkDeviceMemory memory ;
VkDeviceSize memoryOffset ;
VkSparseMemoryBindFlags flags ;
} VkSparseMemoryBind ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSparseImageMemoryBind {
VkImageSubresource subresource ;
VkOffset3D offset ;
VkExtent3D extent ;
VkDeviceMemory memory ;
VkDeviceSize memoryOffset ;
VkSparseMemoryBindFlags flags ;
} VkSparseImageMemoryBind ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSparseBufferMemoryBindInfo {
VkBuffer buffer ;
uint32_t bindCount ;
const VkSparseMemoryBind * pBinds ;
} VkSparseBufferMemoryBindInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSparseImageOpaqueMemoryBindInfo {
VkImage image ;
uint32_t bindCount ;
const VkSparseMemoryBind * pBinds ;
} VkSparseImageOpaqueMemoryBindInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSparseImageMemoryBindInfo {
VkImage image ;
uint32_t bindCount ;
const VkSparseImageMemoryBind * pBinds ;
} VkSparseImageMemoryBindInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBindSparseInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t waitSemaphoreCount ;
const VkSemaphore * pWaitSemaphores ;
uint32_t bufferBindCount ;
const VkSparseBufferMemoryBindInfo * pBufferBinds ;
uint32_t imageOpaqueBindCount ;
const VkSparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds ;
uint32_t imageBindCount ;
const VkSparseImageMemoryBindInfo * pImageBinds ;
uint32_t signalSemaphoreCount ;
const VkSemaphore * pSignalSemaphores ;
} VkBindSparseInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageCopy {
VkImageSubresourceLayers srcSubresource ;
VkOffset3D srcOffset ;
VkImageSubresourceLayers dstSubresource ;
VkOffset3D dstOffset ;
VkExtent3D extent ;
} VkImageCopy ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageBlit {
VkImageSubresourceLayers srcSubresource ;
VkOffset3D srcOffsets [ 2 ] ;
VkImageSubresourceLayers dstSubresource ;
VkOffset3D dstOffsets [ 2 ] ;
} VkImageBlit ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBufferImageCopy {
VkDeviceSize bufferOffset ;
uint32_t bufferRowLength ;
uint32_t bufferImageHeight ;
VkImageSubresourceLayers imageSubresource ;
VkOffset3D imageOffset ;
VkExtent3D imageExtent ;
} VkBufferImageCopy ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageResolve {
VkImageSubresourceLayers srcSubresource ;
VkOffset3D srcOffset ;
VkImageSubresourceLayers dstSubresource ;
VkOffset3D dstOffset ;
VkExtent3D extent ;
} VkImageResolve ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkShaderModuleCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkShaderModuleCreateFlags flags ;
size_t codeSize ;
const uint32_t * pCode ;
} VkShaderModuleCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDescriptorSetLayoutBinding {
uint32_t binding ;
VkDescriptorType descriptorType ;
uint32_t descriptorCount ;
VkShaderStageFlags stageFlags ;
const VkSampler * pImmutableSamplers ;
} VkDescriptorSetLayoutBinding ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDescriptorSetLayoutCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkDescriptorSetLayoutCreateFlags flags ;
uint32_t bindingCount ;
const VkDescriptorSetLayoutBinding * pBindings ;
} VkDescriptorSetLayoutCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDescriptorPoolCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkDescriptorPoolCreateFlags flags ;
uint32_t maxSets ;
uint32_t poolSizeCount ;
const VkDescriptorPoolSize * pPoolSizes ;
} VkDescriptorPoolCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineShaderStageCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineShaderStageCreateFlags flags ;
VkShaderStageFlagBits stage ;
VkShaderModule module ;
const char * pName ;
const VkSpecializationInfo * pSpecializationInfo ;
} VkPipelineShaderStageCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkComputePipelineCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineCreateFlags flags ;
VkPipelineShaderStageCreateInfo stage ;
VkPipelineLayout layout ;
VkPipeline basePipelineHandle ;
int32_t basePipelineIndex ;
} VkComputePipelineCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineVertexInputStateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineVertexInputStateCreateFlags flags ;
uint32_t vertexBindingDescriptionCount ;
const VkVertexInputBindingDescription * pVertexBindingDescriptions ;
uint32_t vertexAttributeDescriptionCount ;
const VkVertexInputAttributeDescription * pVertexAttributeDescriptions ;
} VkPipelineVertexInputStateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineInputAssemblyStateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineInputAssemblyStateCreateFlags flags ;
VkPrimitiveTopology topology ;
VkBool32 primitiveRestartEnable ;
} VkPipelineInputAssemblyStateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineTessellationStateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineTessellationStateCreateFlags flags ;
uint32_t patchControlPoints ;
} VkPipelineTessellationStateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineViewportStateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineViewportStateCreateFlags flags ;
uint32_t viewportCount ;
const VkViewport * pViewports ;
uint32_t scissorCount ;
const VkRect2D * pScissors ;
} VkPipelineViewportStateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineRasterizationStateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineRasterizationStateCreateFlags flags ;
VkBool32 depthClampEnable ;
VkBool32 rasterizerDiscardEnable ;
VkPolygonMode polygonMode ;
VkCullModeFlags cullMode ;
VkFrontFace frontFace ;
VkBool32 depthBiasEnable ;
float depthBiasConstantFactor ;
float depthBiasClamp ;
float depthBiasSlopeFactor ;
float lineWidth ;
} VkPipelineRasterizationStateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineMultisampleStateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineMultisampleStateCreateFlags flags ;
VkSampleCountFlagBits rasterizationSamples ;
VkBool32 sampleShadingEnable ;
float minSampleShading ;
const VkSampleMask * pSampleMask ;
VkBool32 alphaToCoverageEnable ;
VkBool32 alphaToOneEnable ;
} VkPipelineMultisampleStateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineColorBlendAttachmentState {
VkBool32 blendEnable ;
VkBlendFactor srcColorBlendFactor ;
VkBlendFactor dstColorBlendFactor ;
VkBlendOp colorBlendOp ;
VkBlendFactor srcAlphaBlendFactor ;
VkBlendFactor dstAlphaBlendFactor ;
VkBlendOp alphaBlendOp ;
VkColorComponentFlags colorWriteMask ;
} VkPipelineColorBlendAttachmentState ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineColorBlendStateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineColorBlendStateCreateFlags flags ;
VkBool32 logicOpEnable ;
VkLogicOp logicOp ;
uint32_t attachmentCount ;
const VkPipelineColorBlendAttachmentState * pAttachments ;
float blendConstants [ 4 ] ;
} VkPipelineColorBlendStateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineDynamicStateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineDynamicStateCreateFlags flags ;
uint32_t dynamicStateCount ;
const VkDynamicState * pDynamicStates ;
} VkPipelineDynamicStateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineDepthStencilStateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineDepthStencilStateCreateFlags flags ;
VkBool32 depthTestEnable ;
VkBool32 depthWriteEnable ;
VkCompareOp depthCompareOp ;
VkBool32 depthBoundsTestEnable ;
VkBool32 stencilTestEnable ;
VkStencilOpState front ;
VkStencilOpState back ;
float minDepthBounds ;
float maxDepthBounds ;
} VkPipelineDepthStencilStateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkGraphicsPipelineCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineCreateFlags flags ;
uint32_t stageCount ;
const VkPipelineShaderStageCreateInfo * pStages ;
const VkPipelineVertexInputStateCreateInfo * pVertexInputState ;
const VkPipelineInputAssemblyStateCreateInfo * pInputAssemblyState ;
const VkPipelineTessellationStateCreateInfo * pTessellationState ;
const VkPipelineViewportStateCreateInfo * pViewportState ;
const VkPipelineRasterizationStateCreateInfo * pRasterizationState ;
const VkPipelineMultisampleStateCreateInfo * pMultisampleState ;
const VkPipelineDepthStencilStateCreateInfo * pDepthStencilState ;
const VkPipelineColorBlendStateCreateInfo * pColorBlendState ;
const VkPipelineDynamicStateCreateInfo * pDynamicState ;
VkPipelineLayout layout ;
VkRenderPass renderPass ;
uint32_t subpass ;
VkPipeline basePipelineHandle ;
int32_t basePipelineIndex ;
} VkGraphicsPipelineCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineCacheCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineCacheCreateFlags flags ;
size_t initialDataSize ;
const void * pInitialData ;
} VkPipelineCacheCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPushConstantRange {
VkShaderStageFlags stageFlags ;
uint32_t offset ;
uint32_t size ;
} VkPushConstantRange ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPipelineLayoutCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkPipelineLayoutCreateFlags flags ;
uint32_t setLayoutCount ;
const VkDescriptorSetLayout * pSetLayouts ;
uint32_t pushConstantRangeCount ;
const VkPushConstantRange * pPushConstantRanges ;
} VkPipelineLayoutCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSamplerCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkSamplerCreateFlags flags ;
VkFilter magFilter ;
VkFilter minFilter ;
VkSamplerMipmapMode mipmapMode ;
VkSamplerAddressMode addressModeU ;
VkSamplerAddressMode addressModeV ;
VkSamplerAddressMode addressModeW ;
float mipLodBias ;
VkBool32 anisotropyEnable ;
float maxAnisotropy ;
VkBool32 compareEnable ;
VkCompareOp compareOp ;
float minLod ;
float maxLod ;
VkBorderColor borderColor ;
VkBool32 unnormalizedCoordinates ;
} VkSamplerCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkCommandPoolCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkCommandPoolCreateFlags flags ;
uint32_t queueFamilyIndex ;
} VkCommandPoolCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkCommandBufferInheritanceInfo {
VkStructureType sType ;
const void * pNext ;
VkRenderPass renderPass ;
uint32_t subpass ;
VkFramebuffer framebuffer ;
VkBool32 occlusionQueryEnable ;
VkQueryControlFlags queryFlags ;
VkQueryPipelineStatisticFlags pipelineStatistics ;
} VkCommandBufferInheritanceInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkCommandBufferBeginInfo {
VkStructureType sType ;
const void * pNext ;
VkCommandBufferUsageFlags flags ;
const VkCommandBufferInheritanceInfo * pInheritanceInfo ;
} VkCommandBufferBeginInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkRenderPassBeginInfo {
VkStructureType sType ;
const void * pNext ;
VkRenderPass renderPass ;
VkFramebuffer framebuffer ;
VkRect2D renderArea ;
uint32_t clearValueCount ;
const VkClearValue * pClearValues ;
} VkRenderPassBeginInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkClearAttachment {
VkImageAspectFlags aspectMask ;
uint32_t colorAttachment ;
VkClearValue clearValue ;
} VkClearAttachment ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkAttachmentDescription {
VkAttachmentDescriptionFlags flags ;
VkFormat format ;
VkSampleCountFlagBits samples ;
VkAttachmentLoadOp loadOp ;
VkAttachmentStoreOp storeOp ;
VkAttachmentLoadOp stencilLoadOp ;
VkAttachmentStoreOp stencilStoreOp ;
VkImageLayout initialLayout ;
VkImageLayout finalLayout ;
} VkAttachmentDescription ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSubpassDescription {
VkSubpassDescriptionFlags flags ;
VkPipelineBindPoint pipelineBindPoint ;
uint32_t inputAttachmentCount ;
const VkAttachmentReference * pInputAttachments ;
uint32_t colorAttachmentCount ;
const VkAttachmentReference * pColorAttachments ;
const VkAttachmentReference * pResolveAttachments ;
const VkAttachmentReference * pDepthStencilAttachment ;
uint32_t preserveAttachmentCount ;
const uint32_t * pPreserveAttachments ;
} VkSubpassDescription ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSubpassDependency {
uint32_t srcSubpass ;
uint32_t dstSubpass ;
VkPipelineStageFlags srcStageMask ;
VkPipelineStageFlags dstStageMask ;
VkAccessFlags srcAccessMask ;
VkAccessFlags dstAccessMask ;
VkDependencyFlags dependencyFlags ;
} VkSubpassDependency ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkRenderPassCreateInfo {
VkStructureType sType ;
const void * pNext ;
2021-08-24 19:18:03 -04:00
VkRenderPassCreateFlags flags ;
2019-04-14 11:34:38 -04:00
uint32_t attachmentCount ;
const VkAttachmentDescription * pAttachments ;
uint32_t subpassCount ;
const VkSubpassDescription * pSubpasses ;
uint32_t dependencyCount ;
const VkSubpassDependency * pDependencies ;
} VkRenderPassCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkEventCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkEventCreateFlags flags ;
} VkEventCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkFenceCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkFenceCreateFlags flags ;
} VkFenceCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceFeatures {
VkBool32 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 ;
} VkPhysicalDeviceFeatures ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceSparseProperties {
VkBool32 residencyStandard2DBlockShape ;
VkBool32 residencyStandard2DMultisampleBlockShape ;
VkBool32 residencyStandard3DBlockShape ;
VkBool32 residencyAlignedMipSize ;
VkBool32 residencyNonResidentStrict ;
} VkPhysicalDeviceSparseProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceLimits {
uint32_t maxImageDimension1D ;
uint32_t maxImageDimension2D ;
uint32_t maxImageDimension3D ;
uint32_t maxImageDimensionCube ;
uint32_t maxImageArrayLayers ;
uint32_t maxTexelBufferElements ;
uint32_t maxUniformBufferRange ;
uint32_t maxStorageBufferRange ;
uint32_t maxPushConstantsSize ;
uint32_t maxMemoryAllocationCount ;
uint32_t maxSamplerAllocationCount ;
VkDeviceSize bufferImageGranularity ;
VkDeviceSize sparseAddressSpaceSize ;
uint32_t maxBoundDescriptorSets ;
uint32_t maxPerStageDescriptorSamplers ;
uint32_t maxPerStageDescriptorUniformBuffers ;
uint32_t maxPerStageDescriptorStorageBuffers ;
uint32_t maxPerStageDescriptorSampledImages ;
uint32_t maxPerStageDescriptorStorageImages ;
uint32_t maxPerStageDescriptorInputAttachments ;
uint32_t maxPerStageResources ;
uint32_t maxDescriptorSetSamplers ;
uint32_t maxDescriptorSetUniformBuffers ;
uint32_t maxDescriptorSetUniformBuffersDynamic ;
uint32_t maxDescriptorSetStorageBuffers ;
uint32_t maxDescriptorSetStorageBuffersDynamic ;
uint32_t maxDescriptorSetSampledImages ;
uint32_t maxDescriptorSetStorageImages ;
uint32_t maxDescriptorSetInputAttachments ;
uint32_t maxVertexInputAttributes ;
uint32_t maxVertexInputBindings ;
uint32_t maxVertexInputAttributeOffset ;
uint32_t maxVertexInputBindingStride ;
uint32_t maxVertexOutputComponents ;
uint32_t maxTessellationGenerationLevel ;
uint32_t maxTessellationPatchSize ;
uint32_t maxTessellationControlPerVertexInputComponents ;
uint32_t maxTessellationControlPerVertexOutputComponents ;
uint32_t maxTessellationControlPerPatchOutputComponents ;
uint32_t maxTessellationControlTotalOutputComponents ;
uint32_t maxTessellationEvaluationInputComponents ;
uint32_t maxTessellationEvaluationOutputComponents ;
uint32_t maxGeometryShaderInvocations ;
uint32_t maxGeometryInputComponents ;
uint32_t maxGeometryOutputComponents ;
uint32_t maxGeometryOutputVertices ;
uint32_t maxGeometryTotalOutputComponents ;
uint32_t maxFragmentInputComponents ;
uint32_t maxFragmentOutputAttachments ;
uint32_t maxFragmentDualSrcAttachments ;
uint32_t maxFragmentCombinedOutputResources ;
uint32_t maxComputeSharedMemorySize ;
uint32_t maxComputeWorkGroupCount [ 3 ] ;
uint32_t maxComputeWorkGroupInvocations ;
uint32_t maxComputeWorkGroupSize [ 3 ] ;
uint32_t subPixelPrecisionBits ;
uint32_t subTexelPrecisionBits ;
uint32_t mipmapPrecisionBits ;
uint32_t maxDrawIndexedIndexValue ;
uint32_t maxDrawIndirectCount ;
float maxSamplerLodBias ;
float maxSamplerAnisotropy ;
uint32_t maxViewports ;
uint32_t maxViewportDimensions [ 2 ] ;
float viewportBoundsRange [ 2 ] ;
uint32_t viewportSubPixelBits ;
size_t minMemoryMapAlignment ;
VkDeviceSize minTexelBufferOffsetAlignment ;
VkDeviceSize minUniformBufferOffsetAlignment ;
VkDeviceSize minStorageBufferOffsetAlignment ;
int32_t minTexelOffset ;
uint32_t maxTexelOffset ;
int32_t minTexelGatherOffset ;
uint32_t maxTexelGatherOffset ;
float minInterpolationOffset ;
float maxInterpolationOffset ;
uint32_t subPixelInterpolationOffsetBits ;
uint32_t maxFramebufferWidth ;
uint32_t maxFramebufferHeight ;
uint32_t maxFramebufferLayers ;
VkSampleCountFlags framebufferColorSampleCounts ;
VkSampleCountFlags framebufferDepthSampleCounts ;
VkSampleCountFlags framebufferStencilSampleCounts ;
VkSampleCountFlags framebufferNoAttachmentsSampleCounts ;
uint32_t maxColorAttachments ;
VkSampleCountFlags sampledImageColorSampleCounts ;
VkSampleCountFlags sampledImageIntegerSampleCounts ;
VkSampleCountFlags sampledImageDepthSampleCounts ;
VkSampleCountFlags sampledImageStencilSampleCounts ;
VkSampleCountFlags storageImageSampleCounts ;
uint32_t maxSampleMaskWords ;
VkBool32 timestampComputeAndGraphics ;
float timestampPeriod ;
uint32_t maxClipDistances ;
uint32_t maxCullDistances ;
uint32_t maxCombinedClipAndCullDistances ;
uint32_t discreteQueuePriorities ;
float pointSizeRange [ 2 ] ;
float lineWidthRange [ 2 ] ;
float pointSizeGranularity ;
float lineWidthGranularity ;
VkBool32 strictLines ;
VkBool32 standardSampleLocations ;
VkDeviceSize optimalBufferCopyOffsetAlignment ;
VkDeviceSize optimalBufferCopyRowPitchAlignment ;
VkDeviceSize nonCoherentAtomSize ;
} VkPhysicalDeviceLimits ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSemaphoreCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkSemaphoreCreateFlags flags ;
} VkSemaphoreCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkQueryPoolCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkQueryPoolCreateFlags flags ;
VkQueryType queryType ;
uint32_t queryCount ;
VkQueryPipelineStatisticFlags pipelineStatistics ;
} VkQueryPoolCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkFramebufferCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkFramebufferCreateFlags flags ;
VkRenderPass renderPass ;
uint32_t attachmentCount ;
const VkImageView * pAttachments ;
uint32_t width ;
uint32_t height ;
uint32_t layers ;
} VkFramebufferCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSubmitInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t waitSemaphoreCount ;
const VkSemaphore * pWaitSemaphores ;
const VkPipelineStageFlags * pWaitDstStageMask ;
uint32_t commandBufferCount ;
const VkCommandBuffer * pCommandBuffers ;
uint32_t signalSemaphoreCount ;
const VkSemaphore * pSignalSemaphores ;
} VkSubmitInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSurfaceCapabilitiesKHR {
uint32_t minImageCount ;
uint32_t maxImageCount ;
VkExtent2D currentExtent ;
VkExtent2D minImageExtent ;
VkExtent2D maxImageExtent ;
uint32_t maxImageArrayLayers ;
VkSurfaceTransformFlagsKHR supportedTransforms ;
VkSurfaceTransformFlagBitsKHR currentTransform ;
VkCompositeAlphaFlagsKHR supportedCompositeAlpha ;
VkImageUsageFlags supportedUsageFlags ;
} VkSurfaceCapabilitiesKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSwapchainCreateInfoKHR {
VkStructureType sType ;
const void * pNext ;
VkSwapchainCreateFlagsKHR flags ;
VkSurfaceKHR surface ;
uint32_t minImageCount ;
VkFormat imageFormat ;
VkColorSpaceKHR imageColorSpace ;
VkExtent2D imageExtent ;
uint32_t imageArrayLayers ;
VkImageUsageFlags imageUsage ;
VkSharingMode imageSharingMode ;
uint32_t queueFamilyIndexCount ;
const uint32_t * pQueueFamilyIndices ;
VkSurfaceTransformFlagBitsKHR preTransform ;
VkCompositeAlphaFlagBitsKHR compositeAlpha ;
VkPresentModeKHR presentMode ;
VkBool32 clipped ;
VkSwapchainKHR oldSwapchain ;
} VkSwapchainCreateInfoKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDebugReportCallbackCreateInfoEXT {
VkStructureType sType ;
const void * pNext ;
VkDebugReportFlagsEXT flags ;
PFN_vkDebugReportCallbackEXT pfnCallback ;
void * pUserData ;
} VkDebugReportCallbackCreateInfoEXT ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceFeatures2 {
VkStructureType sType ;
void * pNext ;
VkPhysicalDeviceFeatures features ;
} VkPhysicalDeviceFeatures2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkFormatProperties2 {
VkStructureType sType ;
void * pNext ;
VkFormatProperties formatProperties ;
} VkFormatProperties2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageFormatProperties2 {
VkStructureType sType ;
void * pNext ;
VkImageFormatProperties imageFormatProperties ;
} VkImageFormatProperties2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceImageFormatInfo2 {
VkStructureType sType ;
const void * pNext ;
VkFormat format ;
VkImageType type ;
VkImageTiling tiling ;
VkImageUsageFlags usage ;
VkImageCreateFlags flags ;
} VkPhysicalDeviceImageFormatInfo2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkQueueFamilyProperties2 {
VkStructureType sType ;
void * pNext ;
VkQueueFamilyProperties queueFamilyProperties ;
} VkQueueFamilyProperties2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSparseImageFormatProperties2 {
VkStructureType sType ;
void * pNext ;
VkSparseImageFormatProperties properties ;
} VkSparseImageFormatProperties2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
VkStructureType sType ;
const void * pNext ;
VkFormat format ;
VkImageType type ;
VkSampleCountFlagBits samples ;
VkImageUsageFlags usage ;
VkImageTiling tiling ;
} VkPhysicalDeviceSparseImageFormatInfo2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceVariablePointersFeatures {
VkStructureType sType ;
void * pNext ;
VkBool32 variablePointersStorageBuffer ;
VkBool32 variablePointers ;
} VkPhysicalDeviceVariablePointersFeatures ;
2021-08-24 19:18:03 -04:00
typedef struct VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures ;
2019-04-14 11:34:38 -04:00
typedef struct VkExternalMemoryProperties {
VkExternalMemoryFeatureFlags externalMemoryFeatures ;
VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes ;
VkExternalMemoryHandleTypeFlags compatibleHandleTypes ;
} VkExternalMemoryProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExternalImageFormatProperties {
VkStructureType sType ;
void * pNext ;
VkExternalMemoryProperties externalMemoryProperties ;
} VkExternalImageFormatProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceExternalBufferInfo {
VkStructureType sType ;
const void * pNext ;
VkBufferCreateFlags flags ;
VkBufferUsageFlags usage ;
VkExternalMemoryHandleTypeFlagBits handleType ;
} VkPhysicalDeviceExternalBufferInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExternalBufferProperties {
VkStructureType sType ;
void * pNext ;
VkExternalMemoryProperties externalMemoryProperties ;
} VkExternalBufferProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceIDProperties {
VkStructureType sType ;
void * pNext ;
uint8_t deviceUUID [ VK_UUID_SIZE ] ;
uint8_t driverUUID [ VK_UUID_SIZE ] ;
uint8_t deviceLUID [ VK_LUID_SIZE ] ;
uint32_t deviceNodeMask ;
VkBool32 deviceLUIDValid ;
} VkPhysicalDeviceIDProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExternalMemoryImageCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkExternalMemoryHandleTypeFlags handleTypes ;
} VkExternalMemoryImageCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExternalMemoryBufferCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkExternalMemoryHandleTypeFlags handleTypes ;
} VkExternalMemoryBufferCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExportMemoryAllocateInfo {
VkStructureType sType ;
const void * pNext ;
VkExternalMemoryHandleTypeFlags handleTypes ;
} VkExportMemoryAllocateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExternalSemaphoreProperties {
VkStructureType sType ;
void * pNext ;
VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes ;
VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes ;
VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures ;
} VkExternalSemaphoreProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExportSemaphoreCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkExternalSemaphoreHandleTypeFlags handleTypes ;
} VkExportSemaphoreCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExternalFenceProperties {
VkStructureType sType ;
void * pNext ;
VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes ;
VkExternalFenceHandleTypeFlags compatibleHandleTypes ;
VkExternalFenceFeatureFlags externalFenceFeatures ;
} VkExternalFenceProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkExportFenceCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkExternalFenceHandleTypeFlags handleTypes ;
} VkExportFenceCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceMultiviewFeatures {
VkStructureType sType ;
void * pNext ;
VkBool32 multiview ;
VkBool32 multiviewGeometryShader ;
VkBool32 multiviewTessellationShader ;
} VkPhysicalDeviceMultiviewFeatures ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceGroupProperties {
VkStructureType sType ;
void * pNext ;
uint32_t physicalDeviceCount ;
VkPhysicalDevice physicalDevices [ VK_MAX_DEVICE_GROUP_SIZE ] ;
VkBool32 subsetAllocation ;
} VkPhysicalDeviceGroupProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkMemoryAllocateFlagsInfo {
VkStructureType sType ;
const void * pNext ;
VkMemoryAllocateFlags flags ;
uint32_t deviceMask ;
} VkMemoryAllocateFlagsInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBindBufferMemoryInfo {
VkStructureType sType ;
const void * pNext ;
VkBuffer buffer ;
VkDeviceMemory memory ;
VkDeviceSize memoryOffset ;
} VkBindBufferMemoryInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkBindImageMemoryInfo {
VkStructureType sType ;
const void * pNext ;
VkImage image ;
VkDeviceMemory memory ;
VkDeviceSize memoryOffset ;
} VkBindImageMemoryInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceGroupPresentCapabilitiesKHR {
VkStructureType sType ;
const void * pNext ;
uint32_t presentMask [ VK_MAX_DEVICE_GROUP_SIZE ] ;
VkDeviceGroupPresentModeFlagsKHR modes ;
} VkDeviceGroupPresentCapabilitiesKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
VkStructureType sType ;
const void * pNext ;
VkDeviceGroupPresentModeFlagsKHR modes ;
} VkDeviceGroupSwapchainCreateInfoKHR ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDescriptorUpdateTemplateCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkDescriptorUpdateTemplateCreateFlags flags ;
uint32_t descriptorUpdateEntryCount ;
const VkDescriptorUpdateTemplateEntry * pDescriptorUpdateEntries ;
VkDescriptorUpdateTemplateType templateType ;
VkDescriptorSetLayout descriptorSetLayout ;
VkPipelineBindPoint pipelineBindPoint ;
VkPipelineLayout pipelineLayout ;
uint32_t set ;
} VkDescriptorUpdateTemplateCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkInputAttachmentAspectReference {
uint32_t subpass ;
uint32_t inputAttachmentIndex ;
VkImageAspectFlags aspectMask ;
} VkInputAttachmentAspectReference ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
VkStructureType sType ;
const void * pNext ;
uint32_t aspectReferenceCount ;
const VkInputAttachmentAspectReference * pAspectReferences ;
} VkRenderPassInputAttachmentAspectCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDevice16BitStorageFeatures {
VkStructureType sType ;
void * pNext ;
VkBool32 storageBuffer16BitAccess ;
VkBool32 uniformAndStorageBuffer16BitAccess ;
VkBool32 storagePushConstant16 ;
VkBool32 storageInputOutput16 ;
} VkPhysicalDevice16BitStorageFeatures ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceSubgroupProperties {
VkStructureType sType ;
void * pNext ;
uint32_t subgroupSize ;
VkShaderStageFlags supportedStages ;
VkSubgroupFeatureFlags supportedOperations ;
VkBool32 quadOperationsInAllStages ;
} VkPhysicalDeviceSubgroupProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkMemoryRequirements2 {
VkStructureType sType ;
void * pNext ;
VkMemoryRequirements memoryRequirements ;
} VkMemoryRequirements2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSparseImageMemoryRequirements2 {
VkStructureType sType ;
void * pNext ;
VkSparseImageMemoryRequirements memoryRequirements ;
} VkSparseImageMemoryRequirements2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkMemoryDedicatedRequirements {
VkStructureType sType ;
void * pNext ;
VkBool32 prefersDedicatedAllocation ;
VkBool32 requiresDedicatedAllocation ;
} VkMemoryDedicatedRequirements ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkImageViewUsageCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkImageUsageFlags usage ;
} VkImageViewUsageCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkSamplerYcbcrConversionCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkFormat format ;
VkSamplerYcbcrModelConversion ycbcrModel ;
VkSamplerYcbcrRange ycbcrRange ;
VkComponentMapping components ;
VkChromaLocation xChromaOffset ;
VkChromaLocation yChromaOffset ;
VkFilter chromaFilter ;
VkBool32 forceExplicitReconstruction ;
} VkSamplerYcbcrConversionCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
VkStructureType sType ;
void * pNext ;
VkBool32 samplerYcbcrConversion ;
} VkPhysicalDeviceSamplerYcbcrConversionFeatures ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkProtectedSubmitInfo {
VkStructureType sType ;
const void * pNext ;
VkBool32 protectedSubmit ;
} VkProtectedSubmitInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
VkStructureType sType ;
void * pNext ;
VkBool32 protectedMemory ;
} VkPhysicalDeviceProtectedMemoryFeatures ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceProtectedMemoryProperties {
VkStructureType sType ;
void * pNext ;
VkBool32 protectedNoFault ;
} VkPhysicalDeviceProtectedMemoryProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceQueueInfo2 {
VkStructureType sType ;
const void * pNext ;
VkDeviceQueueCreateFlags flags ;
uint32_t queueFamilyIndex ;
uint32_t queueIndex ;
} VkDeviceQueueInfo2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceMaintenance3Properties {
VkStructureType sType ;
void * pNext ;
uint32_t maxPerSetDescriptors ;
VkDeviceSize maxMemoryAllocationSize ;
} VkPhysicalDeviceMaintenance3Properties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDescriptorSetLayoutSupport {
VkStructureType sType ;
void * pNext ;
VkBool32 supported ;
} VkDescriptorSetLayoutSupport ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
VkStructureType sType ;
void * pNext ;
VkBool32 shaderDrawParameters ;
} VkPhysicalDeviceShaderDrawParametersFeatures ;
2021-08-24 19:18:03 -04:00
typedef struct VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures ;
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceProperties {
uint32_t apiVersion ;
uint32_t driverVersion ;
uint32_t vendorID ;
uint32_t deviceID ;
VkPhysicalDeviceType deviceType ;
char deviceName [ VK_MAX_PHYSICAL_DEVICE_NAME_SIZE ] ;
uint8_t pipelineCacheUUID [ VK_UUID_SIZE ] ;
VkPhysicalDeviceLimits limits ;
VkPhysicalDeviceSparseProperties sparseProperties ;
} VkPhysicalDeviceProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkDeviceCreateInfo {
VkStructureType sType ;
const void * pNext ;
VkDeviceCreateFlags flags ;
uint32_t queueCreateInfoCount ;
const VkDeviceQueueCreateInfo * pQueueCreateInfos ;
uint32_t enabledLayerCount ;
const char * const * ppEnabledLayerNames ;
uint32_t enabledExtensionCount ;
const char * const * ppEnabledExtensionNames ;
const VkPhysicalDeviceFeatures * pEnabledFeatures ;
} VkDeviceCreateInfo ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceMemoryProperties {
uint32_t memoryTypeCount ;
VkMemoryType memoryTypes [ VK_MAX_MEMORY_TYPES ] ;
uint32_t memoryHeapCount ;
VkMemoryHeap memoryHeaps [ VK_MAX_MEMORY_HEAPS ] ;
} VkPhysicalDeviceMemoryProperties ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceProperties2 {
VkStructureType sType ;
void * pNext ;
VkPhysicalDeviceProperties properties ;
} VkPhysicalDeviceProperties2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
typedef struct VkPhysicalDeviceMemoryProperties2 {
VkStructureType sType ;
void * pNext ;
VkPhysicalDeviceMemoryProperties memoryProperties ;
} VkPhysicalDeviceMemoryProperties2 ;
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
# define VK_VERSION_1_0 1
GLAD_API_CALL int GLAD_VK_VERSION_1_0 ;
# define VK_VERSION_1_1 1
GLAD_API_CALL int GLAD_VK_VERSION_1_1 ;
# define VK_EXT_debug_report 1
GLAD_API_CALL int GLAD_VK_EXT_debug_report ;
# define VK_KHR_surface 1
GLAD_API_CALL int GLAD_VK_KHR_surface ;
# define VK_KHR_swapchain 1
GLAD_API_CALL int GLAD_VK_KHR_swapchain ;
2021-08-24 19:18:03 -04:00
typedef VkResult ( GLAD_API_PTR * PFN_vkAcquireNextImage2KHR ) ( VkDevice device , const VkAcquireNextImageInfoKHR * pAcquireInfo , uint32_t * pImageIndex ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkAcquireNextImageKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint64_t timeout , VkSemaphore semaphore , VkFence fence , uint32_t * pImageIndex ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkAllocateCommandBuffers ) ( VkDevice device , const VkCommandBufferAllocateInfo * pAllocateInfo , VkCommandBuffer * pCommandBuffers ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkAllocateDescriptorSets ) ( VkDevice device , const VkDescriptorSetAllocateInfo * pAllocateInfo , VkDescriptorSet * pDescriptorSets ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkAllocateMemory ) ( VkDevice device , const VkMemoryAllocateInfo * pAllocateInfo , const VkAllocationCallbacks * pAllocator , VkDeviceMemory * pMemory ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkBeginCommandBuffer ) ( VkCommandBuffer commandBuffer , const VkCommandBufferBeginInfo * pBeginInfo ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkBindBufferMemory ) ( VkDevice device , VkBuffer buffer , VkDeviceMemory memory , VkDeviceSize memoryOffset ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkBindBufferMemory2 ) ( VkDevice device , uint32_t bindInfoCount , const VkBindBufferMemoryInfo * pBindInfos ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkBindImageMemory ) ( VkDevice device , VkImage image , VkDeviceMemory memory , VkDeviceSize memoryOffset ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkBindImageMemory2 ) ( VkDevice device , uint32_t bindInfoCount , const VkBindImageMemoryInfo * pBindInfos ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdBeginQuery ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query , VkQueryControlFlags flags ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdBeginRenderPass ) ( VkCommandBuffer commandBuffer , const VkRenderPassBeginInfo * pRenderPassBegin , VkSubpassContents contents ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdBindDescriptorSets ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipelineLayout layout , uint32_t firstSet , uint32_t descriptorSetCount , const VkDescriptorSet * pDescriptorSets , uint32_t dynamicOffsetCount , const uint32_t * pDynamicOffsets ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdBindIndexBuffer ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , VkIndexType indexType ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdBindPipeline ) ( VkCommandBuffer commandBuffer , VkPipelineBindPoint pipelineBindPoint , VkPipeline pipeline ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdBindVertexBuffers ) ( VkCommandBuffer commandBuffer , uint32_t firstBinding , uint32_t bindingCount , const VkBuffer * pBuffers , const VkDeviceSize * pOffsets ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdBlitImage ) ( VkCommandBuffer commandBuffer , VkImage srcImage , VkImageLayout srcImageLayout , VkImage dstImage , VkImageLayout dstImageLayout , uint32_t regionCount , const VkImageBlit * pRegions , VkFilter filter ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdClearAttachments ) ( VkCommandBuffer commandBuffer , uint32_t attachmentCount , const VkClearAttachment * pAttachments , uint32_t rectCount , const VkClearRect * pRects ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdClearColorImage ) ( VkCommandBuffer commandBuffer , VkImage image , VkImageLayout imageLayout , const VkClearColorValue * pColor , uint32_t rangeCount , const VkImageSubresourceRange * pRanges ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdClearDepthStencilImage ) ( VkCommandBuffer commandBuffer , VkImage image , VkImageLayout imageLayout , const VkClearDepthStencilValue * pDepthStencil , uint32_t rangeCount , const VkImageSubresourceRange * pRanges ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdCopyBuffer ) ( VkCommandBuffer commandBuffer , VkBuffer srcBuffer , VkBuffer dstBuffer , uint32_t regionCount , const VkBufferCopy * pRegions ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdCopyBufferToImage ) ( VkCommandBuffer commandBuffer , VkBuffer srcBuffer , VkImage dstImage , VkImageLayout dstImageLayout , uint32_t regionCount , const VkBufferImageCopy * pRegions ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdCopyImage ) ( VkCommandBuffer commandBuffer , VkImage srcImage , VkImageLayout srcImageLayout , VkImage dstImage , VkImageLayout dstImageLayout , uint32_t regionCount , const VkImageCopy * pRegions ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdCopyImageToBuffer ) ( VkCommandBuffer commandBuffer , VkImage srcImage , VkImageLayout srcImageLayout , VkBuffer dstBuffer , uint32_t regionCount , const VkBufferImageCopy * pRegions ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdCopyQueryPoolResults ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount , VkBuffer dstBuffer , VkDeviceSize dstOffset , VkDeviceSize stride , VkQueryResultFlags flags ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdDispatch ) ( VkCommandBuffer commandBuffer , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdDispatchBase ) ( VkCommandBuffer commandBuffer , uint32_t baseGroupX , uint32_t baseGroupY , uint32_t baseGroupZ , uint32_t groupCountX , uint32_t groupCountY , uint32_t groupCountZ ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdDispatchIndirect ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdDraw ) ( VkCommandBuffer commandBuffer , uint32_t vertexCount , uint32_t instanceCount , uint32_t firstVertex , uint32_t firstInstance ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdDrawIndexed ) ( VkCommandBuffer commandBuffer , uint32_t indexCount , uint32_t instanceCount , uint32_t firstIndex , int32_t vertexOffset , uint32_t firstInstance ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdDrawIndexedIndirect ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdDrawIndirect ) ( VkCommandBuffer commandBuffer , VkBuffer buffer , VkDeviceSize offset , uint32_t drawCount , uint32_t stride ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdEndQuery ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t query ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdEndRenderPass ) ( VkCommandBuffer commandBuffer ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdExecuteCommands ) ( VkCommandBuffer commandBuffer , uint32_t commandBufferCount , const VkCommandBuffer * pCommandBuffers ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdFillBuffer ) ( VkCommandBuffer commandBuffer , VkBuffer dstBuffer , VkDeviceSize dstOffset , VkDeviceSize size , uint32_t data ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdNextSubpass ) ( VkCommandBuffer commandBuffer , VkSubpassContents contents ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdPipelineBarrier ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlags srcStageMask , VkPipelineStageFlags dstStageMask , VkDependencyFlags dependencyFlags , uint32_t memoryBarrierCount , const VkMemoryBarrier * pMemoryBarriers , uint32_t bufferMemoryBarrierCount , const VkBufferMemoryBarrier * pBufferMemoryBarriers , uint32_t imageMemoryBarrierCount , const VkImageMemoryBarrier * pImageMemoryBarriers ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdPushConstants ) ( VkCommandBuffer commandBuffer , VkPipelineLayout layout , VkShaderStageFlags stageFlags , uint32_t offset , uint32_t size , const void * pValues ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdResetEvent ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags stageMask ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdResetQueryPool ) ( VkCommandBuffer commandBuffer , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdResolveImage ) ( VkCommandBuffer commandBuffer , VkImage srcImage , VkImageLayout srcImageLayout , VkImage dstImage , VkImageLayout dstImageLayout , uint32_t regionCount , const VkImageResolve * pRegions ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetBlendConstants ) ( VkCommandBuffer commandBuffer , const float blendConstants [ 4 ] ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetDepthBias ) ( VkCommandBuffer commandBuffer , float depthBiasConstantFactor , float depthBiasClamp , float depthBiasSlopeFactor ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetDepthBounds ) ( VkCommandBuffer commandBuffer , float minDepthBounds , float maxDepthBounds ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetDeviceMask ) ( VkCommandBuffer commandBuffer , uint32_t deviceMask ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetEvent ) ( VkCommandBuffer commandBuffer , VkEvent event , VkPipelineStageFlags stageMask ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetLineWidth ) ( VkCommandBuffer commandBuffer , float lineWidth ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetScissor ) ( VkCommandBuffer commandBuffer , uint32_t firstScissor , uint32_t scissorCount , const VkRect2D * pScissors ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetStencilCompareMask ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , uint32_t compareMask ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetStencilReference ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , uint32_t reference ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetStencilWriteMask ) ( VkCommandBuffer commandBuffer , VkStencilFaceFlags faceMask , uint32_t writeMask ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdSetViewport ) ( VkCommandBuffer commandBuffer , uint32_t firstViewport , uint32_t viewportCount , const VkViewport * pViewports ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdUpdateBuffer ) ( VkCommandBuffer commandBuffer , VkBuffer dstBuffer , VkDeviceSize dstOffset , VkDeviceSize dataSize , const void * pData ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdWaitEvents ) ( VkCommandBuffer commandBuffer , uint32_t eventCount , const VkEvent * pEvents , VkPipelineStageFlags srcStageMask , VkPipelineStageFlags dstStageMask , uint32_t memoryBarrierCount , const VkMemoryBarrier * pMemoryBarriers , uint32_t bufferMemoryBarrierCount , const VkBufferMemoryBarrier * pBufferMemoryBarriers , uint32_t imageMemoryBarrierCount , const VkImageMemoryBarrier * pImageMemoryBarriers ) ;
typedef void ( GLAD_API_PTR * PFN_vkCmdWriteTimestamp ) ( VkCommandBuffer commandBuffer , VkPipelineStageFlagBits pipelineStage , VkQueryPool queryPool , uint32_t query ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateBuffer ) ( VkDevice device , const VkBufferCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkBuffer * pBuffer ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateBufferView ) ( VkDevice device , const VkBufferViewCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkBufferView * pView ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateCommandPool ) ( VkDevice device , const VkCommandPoolCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkCommandPool * pCommandPool ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateComputePipelines ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkComputePipelineCreateInfo * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateDebugReportCallbackEXT ) ( VkInstance instance , const VkDebugReportCallbackCreateInfoEXT * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDebugReportCallbackEXT * pCallback ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateDescriptorPool ) ( VkDevice device , const VkDescriptorPoolCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorPool * pDescriptorPool ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateDescriptorSetLayout ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorSetLayout * pSetLayout ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateDescriptorUpdateTemplate ) ( VkDevice device , const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateDevice ) ( VkPhysicalDevice physicalDevice , const VkDeviceCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDevice * pDevice ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateEvent ) ( VkDevice device , const VkEventCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkEvent * pEvent ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateFence ) ( VkDevice device , const VkFenceCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkFence * pFence ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateFramebuffer ) ( VkDevice device , const VkFramebufferCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkFramebuffer * pFramebuffer ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateGraphicsPipelines ) ( VkDevice device , VkPipelineCache pipelineCache , uint32_t createInfoCount , const VkGraphicsPipelineCreateInfo * pCreateInfos , const VkAllocationCallbacks * pAllocator , VkPipeline * pPipelines ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateImage ) ( VkDevice device , const VkImageCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkImage * pImage ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateImageView ) ( VkDevice device , const VkImageViewCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkImageView * pView ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateInstance ) ( const VkInstanceCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkInstance * pInstance ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreatePipelineCache ) ( VkDevice device , const VkPipelineCacheCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPipelineCache * pPipelineCache ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreatePipelineLayout ) ( VkDevice device , const VkPipelineLayoutCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkPipelineLayout * pPipelineLayout ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateQueryPool ) ( VkDevice device , const VkQueryPoolCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkQueryPool * pQueryPool ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateRenderPass ) ( VkDevice device , const VkRenderPassCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkRenderPass * pRenderPass ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateSampler ) ( VkDevice device , const VkSamplerCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSampler * pSampler ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateSamplerYcbcrConversion ) ( VkDevice device , const VkSamplerYcbcrConversionCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSamplerYcbcrConversion * pYcbcrConversion ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateSemaphore ) ( VkDevice device , const VkSemaphoreCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSemaphore * pSemaphore ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateShaderModule ) ( VkDevice device , const VkShaderModuleCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkShaderModule * pShaderModule ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkCreateSwapchainKHR ) ( VkDevice device , const VkSwapchainCreateInfoKHR * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkSwapchainKHR * pSwapchain ) ;
typedef void ( GLAD_API_PTR * PFN_vkDebugReportMessageEXT ) ( VkInstance instance , VkDebugReportFlagsEXT flags , VkDebugReportObjectTypeEXT objectType , uint64_t object , size_t location , int32_t messageCode , const char * pLayerPrefix , const char * pMessage ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyBuffer ) ( VkDevice device , VkBuffer buffer , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyBufferView ) ( VkDevice device , VkBufferView bufferView , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyCommandPool ) ( VkDevice device , VkCommandPool commandPool , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyDebugReportCallbackEXT ) ( VkInstance instance , VkDebugReportCallbackEXT callback , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyDescriptorPool ) ( VkDevice device , VkDescriptorPool descriptorPool , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyDescriptorSetLayout ) ( VkDevice device , VkDescriptorSetLayout descriptorSetLayout , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyDescriptorUpdateTemplate ) ( VkDevice device , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyDevice ) ( VkDevice device , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyEvent ) ( VkDevice device , VkEvent event , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyFence ) ( VkDevice device , VkFence fence , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyFramebuffer ) ( VkDevice device , VkFramebuffer framebuffer , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyImage ) ( VkDevice device , VkImage image , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyImageView ) ( VkDevice device , VkImageView imageView , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyInstance ) ( VkInstance instance , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyPipeline ) ( VkDevice device , VkPipeline pipeline , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyPipelineCache ) ( VkDevice device , VkPipelineCache pipelineCache , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyPipelineLayout ) ( VkDevice device , VkPipelineLayout pipelineLayout , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyQueryPool ) ( VkDevice device , VkQueryPool queryPool , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyRenderPass ) ( VkDevice device , VkRenderPass renderPass , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroySampler ) ( VkDevice device , VkSampler sampler , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroySamplerYcbcrConversion ) ( VkDevice device , VkSamplerYcbcrConversion ycbcrConversion , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroySemaphore ) ( VkDevice device , VkSemaphore semaphore , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroyShaderModule ) ( VkDevice device , VkShaderModule shaderModule , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroySurfaceKHR ) ( VkInstance instance , VkSurfaceKHR surface , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkDestroySwapchainKHR ) ( VkDevice device , VkSwapchainKHR swapchain , const VkAllocationCallbacks * pAllocator ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkDeviceWaitIdle ) ( VkDevice device ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkEndCommandBuffer ) ( VkCommandBuffer commandBuffer ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkEnumerateDeviceExtensionProperties ) ( VkPhysicalDevice physicalDevice , const char * pLayerName , uint32_t * pPropertyCount , VkExtensionProperties * pProperties ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkEnumerateDeviceLayerProperties ) ( VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkLayerProperties * pProperties ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkEnumerateInstanceExtensionProperties ) ( const char * pLayerName , uint32_t * pPropertyCount , VkExtensionProperties * pProperties ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkEnumerateInstanceLayerProperties ) ( uint32_t * pPropertyCount , VkLayerProperties * pProperties ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkEnumerateInstanceVersion ) ( uint32_t * pApiVersion ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkEnumeratePhysicalDeviceGroups ) ( VkInstance instance , uint32_t * pPhysicalDeviceGroupCount , VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkEnumeratePhysicalDevices ) ( VkInstance instance , uint32_t * pPhysicalDeviceCount , VkPhysicalDevice * pPhysicalDevices ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkFlushMappedMemoryRanges ) ( VkDevice device , uint32_t memoryRangeCount , const VkMappedMemoryRange * pMemoryRanges ) ;
typedef void ( GLAD_API_PTR * PFN_vkFreeCommandBuffers ) ( VkDevice device , VkCommandPool commandPool , uint32_t commandBufferCount , const VkCommandBuffer * pCommandBuffers ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkFreeDescriptorSets ) ( VkDevice device , VkDescriptorPool descriptorPool , uint32_t descriptorSetCount , const VkDescriptorSet * pDescriptorSets ) ;
typedef void ( GLAD_API_PTR * PFN_vkFreeMemory ) ( VkDevice device , VkDeviceMemory memory , const VkAllocationCallbacks * pAllocator ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetBufferMemoryRequirements ) ( VkDevice device , VkBuffer buffer , VkMemoryRequirements * pMemoryRequirements ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetBufferMemoryRequirements2 ) ( VkDevice device , const VkBufferMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetDescriptorSetLayoutSupport ) ( VkDevice device , const VkDescriptorSetLayoutCreateInfo * pCreateInfo , VkDescriptorSetLayoutSupport * pSupport ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetDeviceGroupPeerMemoryFeatures ) ( VkDevice device , uint32_t heapIndex , uint32_t localDeviceIndex , uint32_t remoteDeviceIndex , VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetDeviceGroupPresentCapabilitiesKHR ) ( VkDevice device , VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetDeviceGroupSurfacePresentModesKHR ) ( VkDevice device , VkSurfaceKHR surface , VkDeviceGroupPresentModeFlagsKHR * pModes ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetDeviceMemoryCommitment ) ( VkDevice device , VkDeviceMemory memory , VkDeviceSize * pCommittedMemoryInBytes ) ;
typedef PFN_vkVoidFunction ( GLAD_API_PTR * PFN_vkGetDeviceProcAddr ) ( VkDevice device , const char * pName ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetDeviceQueue ) ( VkDevice device , uint32_t queueFamilyIndex , uint32_t queueIndex , VkQueue * pQueue ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetDeviceQueue2 ) ( VkDevice device , const VkDeviceQueueInfo2 * pQueueInfo , VkQueue * pQueue ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetEventStatus ) ( VkDevice device , VkEvent event ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetFenceStatus ) ( VkDevice device , VkFence fence ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetImageMemoryRequirements ) ( VkDevice device , VkImage image , VkMemoryRequirements * pMemoryRequirements ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetImageMemoryRequirements2 ) ( VkDevice device , const VkImageMemoryRequirementsInfo2 * pInfo , VkMemoryRequirements2 * pMemoryRequirements ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetImageSparseMemoryRequirements ) ( VkDevice device , VkImage image , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements * pSparseMemoryRequirements ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetImageSparseMemoryRequirements2 ) ( VkDevice device , const VkImageSparseMemoryRequirementsInfo2 * pInfo , uint32_t * pSparseMemoryRequirementCount , VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetImageSubresourceLayout ) ( VkDevice device , VkImage image , const VkImageSubresource * pSubresource , VkSubresourceLayout * pLayout ) ;
typedef PFN_vkVoidFunction ( GLAD_API_PTR * PFN_vkGetInstanceProcAddr ) ( VkInstance instance , const char * pName ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceExternalBufferProperties ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo , VkExternalBufferProperties * pExternalBufferProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceExternalFenceProperties ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo , VkExternalFenceProperties * pExternalFenceProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceExternalSemaphoreProperties ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo , VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceFeatures ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures * pFeatures ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceFeatures2 ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures2 * pFeatures ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceFormatProperties ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties * pFormatProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceFormatProperties2 ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties2 * pFormatProperties ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkImageFormatProperties * pImageFormatProperties ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceImageFormatProperties2 ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo , VkImageFormatProperties2 * pImageFormatProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceMemoryProperties ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties * pMemoryProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceMemoryProperties2 ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetPhysicalDevicePresentRectanglesKHR ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , uint32_t * pRectCount , VkRect2D * pRects ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceProperties ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties * pProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceProperties2 ) ( VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties2 * pProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties * pQueueFamilyProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceQueueFamilyProperties2 ) ( VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties2 * pQueueFamilyProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties ) ( VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkSampleCountFlagBits samples , VkImageUsageFlags usage , VkImageTiling tiling , uint32_t * pPropertyCount , VkSparseImageFormatProperties * pProperties ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 ) ( VkPhysicalDevice physicalDevice , const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo , uint32_t * pPropertyCount , VkSparseImageFormatProperties2 * pProperties ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , VkSurfaceCapabilitiesKHR * pSurfaceCapabilities ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceSurfaceFormatsKHR ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , uint32_t * pSurfaceFormatCount , VkSurfaceFormatKHR * pSurfaceFormats ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceSurfacePresentModesKHR ) ( VkPhysicalDevice physicalDevice , VkSurfaceKHR surface , uint32_t * pPresentModeCount , VkPresentModeKHR * pPresentModes ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetPhysicalDeviceSurfaceSupportKHR ) ( VkPhysicalDevice physicalDevice , uint32_t queueFamilyIndex , VkSurfaceKHR surface , VkBool32 * pSupported ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetPipelineCacheData ) ( VkDevice device , VkPipelineCache pipelineCache , size_t * pDataSize , void * pData ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetQueryPoolResults ) ( VkDevice device , VkQueryPool queryPool , uint32_t firstQuery , uint32_t queryCount , size_t dataSize , void * pData , VkDeviceSize stride , VkQueryResultFlags flags ) ;
typedef void ( GLAD_API_PTR * PFN_vkGetRenderAreaGranularity ) ( VkDevice device , VkRenderPass renderPass , VkExtent2D * pGranularity ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkGetSwapchainImagesKHR ) ( VkDevice device , VkSwapchainKHR swapchain , uint32_t * pSwapchainImageCount , VkImage * pSwapchainImages ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkInvalidateMappedMemoryRanges ) ( VkDevice device , uint32_t memoryRangeCount , const VkMappedMemoryRange * pMemoryRanges ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkMapMemory ) ( VkDevice device , VkDeviceMemory memory , VkDeviceSize offset , VkDeviceSize size , VkMemoryMapFlags flags , void * * ppData ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkMergePipelineCaches ) ( VkDevice device , VkPipelineCache dstCache , uint32_t srcCacheCount , const VkPipelineCache * pSrcCaches ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkQueueBindSparse ) ( VkQueue queue , uint32_t bindInfoCount , const VkBindSparseInfo * pBindInfo , VkFence fence ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkQueuePresentKHR ) ( VkQueue queue , const VkPresentInfoKHR * pPresentInfo ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkQueueSubmit ) ( VkQueue queue , uint32_t submitCount , const VkSubmitInfo * pSubmits , VkFence fence ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkQueueWaitIdle ) ( VkQueue queue ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkResetCommandBuffer ) ( VkCommandBuffer commandBuffer , VkCommandBufferResetFlags flags ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkResetCommandPool ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolResetFlags flags ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkResetDescriptorPool ) ( VkDevice device , VkDescriptorPool descriptorPool , VkDescriptorPoolResetFlags flags ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkResetEvent ) ( VkDevice device , VkEvent event ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkResetFences ) ( VkDevice device , uint32_t fenceCount , const VkFence * pFences ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkSetEvent ) ( VkDevice device , VkEvent event ) ;
typedef void ( GLAD_API_PTR * PFN_vkTrimCommandPool ) ( VkDevice device , VkCommandPool commandPool , VkCommandPoolTrimFlags flags ) ;
typedef void ( GLAD_API_PTR * PFN_vkUnmapMemory ) ( VkDevice device , VkDeviceMemory memory ) ;
typedef void ( GLAD_API_PTR * PFN_vkUpdateDescriptorSetWithTemplate ) ( VkDevice device , VkDescriptorSet descriptorSet , VkDescriptorUpdateTemplate descriptorUpdateTemplate , const void * pData ) ;
typedef void ( GLAD_API_PTR * PFN_vkUpdateDescriptorSets ) ( VkDevice device , uint32_t descriptorWriteCount , const VkWriteDescriptorSet * pDescriptorWrites , uint32_t descriptorCopyCount , const VkCopyDescriptorSet * pDescriptorCopies ) ;
typedef VkResult ( GLAD_API_PTR * PFN_vkWaitForFences ) ( VkDevice device , uint32_t fenceCount , const VkFence * pFences , VkBool32 waitAll , uint64_t timeout ) ;
2019-04-14 11:34:38 -04:00
GLAD_API_CALL PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR ;
# define vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR
GLAD_API_CALL PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR ;
# define vkAcquireNextImageKHR glad_vkAcquireNextImageKHR
GLAD_API_CALL PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers ;
# define vkAllocateCommandBuffers glad_vkAllocateCommandBuffers
GLAD_API_CALL PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets ;
# define vkAllocateDescriptorSets glad_vkAllocateDescriptorSets
GLAD_API_CALL PFN_vkAllocateMemory glad_vkAllocateMemory ;
# define vkAllocateMemory glad_vkAllocateMemory
GLAD_API_CALL PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer ;
# define vkBeginCommandBuffer glad_vkBeginCommandBuffer
GLAD_API_CALL PFN_vkBindBufferMemory glad_vkBindBufferMemory ;
# define vkBindBufferMemory glad_vkBindBufferMemory
GLAD_API_CALL PFN_vkBindBufferMemory2 glad_vkBindBufferMemory2 ;
# define vkBindBufferMemory2 glad_vkBindBufferMemory2
GLAD_API_CALL PFN_vkBindImageMemory glad_vkBindImageMemory ;
# define vkBindImageMemory glad_vkBindImageMemory
GLAD_API_CALL PFN_vkBindImageMemory2 glad_vkBindImageMemory2 ;
# define vkBindImageMemory2 glad_vkBindImageMemory2
GLAD_API_CALL PFN_vkCmdBeginQuery glad_vkCmdBeginQuery ;
# define vkCmdBeginQuery glad_vkCmdBeginQuery
GLAD_API_CALL PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass ;
# define vkCmdBeginRenderPass glad_vkCmdBeginRenderPass
GLAD_API_CALL PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets ;
# define vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets
GLAD_API_CALL PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer ;
# define vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer
GLAD_API_CALL PFN_vkCmdBindPipeline glad_vkCmdBindPipeline ;
# define vkCmdBindPipeline glad_vkCmdBindPipeline
GLAD_API_CALL PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers ;
# define vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers
GLAD_API_CALL PFN_vkCmdBlitImage glad_vkCmdBlitImage ;
# define vkCmdBlitImage glad_vkCmdBlitImage
GLAD_API_CALL PFN_vkCmdClearAttachments glad_vkCmdClearAttachments ;
# define vkCmdClearAttachments glad_vkCmdClearAttachments
GLAD_API_CALL PFN_vkCmdClearColorImage glad_vkCmdClearColorImage ;
# define vkCmdClearColorImage glad_vkCmdClearColorImage
GLAD_API_CALL PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage ;
# define vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage
GLAD_API_CALL PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer ;
# define vkCmdCopyBuffer glad_vkCmdCopyBuffer
GLAD_API_CALL PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage ;
# define vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage
GLAD_API_CALL PFN_vkCmdCopyImage glad_vkCmdCopyImage ;
# define vkCmdCopyImage glad_vkCmdCopyImage
GLAD_API_CALL PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer ;
# define vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer
GLAD_API_CALL PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults ;
# define vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults
GLAD_API_CALL PFN_vkCmdDispatch glad_vkCmdDispatch ;
# define vkCmdDispatch glad_vkCmdDispatch
GLAD_API_CALL PFN_vkCmdDispatchBase glad_vkCmdDispatchBase ;
# define vkCmdDispatchBase glad_vkCmdDispatchBase
GLAD_API_CALL PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect ;
# define vkCmdDispatchIndirect glad_vkCmdDispatchIndirect
GLAD_API_CALL PFN_vkCmdDraw glad_vkCmdDraw ;
# define vkCmdDraw glad_vkCmdDraw
GLAD_API_CALL PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed ;
# define vkCmdDrawIndexed glad_vkCmdDrawIndexed
GLAD_API_CALL PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect ;
# define vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect
GLAD_API_CALL PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect ;
# define vkCmdDrawIndirect glad_vkCmdDrawIndirect
GLAD_API_CALL PFN_vkCmdEndQuery glad_vkCmdEndQuery ;
# define vkCmdEndQuery glad_vkCmdEndQuery
GLAD_API_CALL PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass ;
# define vkCmdEndRenderPass glad_vkCmdEndRenderPass
GLAD_API_CALL PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands ;
# define vkCmdExecuteCommands glad_vkCmdExecuteCommands
GLAD_API_CALL PFN_vkCmdFillBuffer glad_vkCmdFillBuffer ;
# define vkCmdFillBuffer glad_vkCmdFillBuffer
GLAD_API_CALL PFN_vkCmdNextSubpass glad_vkCmdNextSubpass ;
# define vkCmdNextSubpass glad_vkCmdNextSubpass
GLAD_API_CALL PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier ;
# define vkCmdPipelineBarrier glad_vkCmdPipelineBarrier
GLAD_API_CALL PFN_vkCmdPushConstants glad_vkCmdPushConstants ;
# define vkCmdPushConstants glad_vkCmdPushConstants
GLAD_API_CALL PFN_vkCmdResetEvent glad_vkCmdResetEvent ;
# define vkCmdResetEvent glad_vkCmdResetEvent
GLAD_API_CALL PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool ;
# define vkCmdResetQueryPool glad_vkCmdResetQueryPool
GLAD_API_CALL PFN_vkCmdResolveImage glad_vkCmdResolveImage ;
# define vkCmdResolveImage glad_vkCmdResolveImage
GLAD_API_CALL PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants ;
# define vkCmdSetBlendConstants glad_vkCmdSetBlendConstants
GLAD_API_CALL PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias ;
# define vkCmdSetDepthBias glad_vkCmdSetDepthBias
GLAD_API_CALL PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds ;
# define vkCmdSetDepthBounds glad_vkCmdSetDepthBounds
GLAD_API_CALL PFN_vkCmdSetDeviceMask glad_vkCmdSetDeviceMask ;
# define vkCmdSetDeviceMask glad_vkCmdSetDeviceMask
GLAD_API_CALL PFN_vkCmdSetEvent glad_vkCmdSetEvent ;
# define vkCmdSetEvent glad_vkCmdSetEvent
GLAD_API_CALL PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth ;
# define vkCmdSetLineWidth glad_vkCmdSetLineWidth
GLAD_API_CALL PFN_vkCmdSetScissor glad_vkCmdSetScissor ;
# define vkCmdSetScissor glad_vkCmdSetScissor
GLAD_API_CALL PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask ;
# define vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask
GLAD_API_CALL PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference ;
# define vkCmdSetStencilReference glad_vkCmdSetStencilReference
GLAD_API_CALL PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask ;
# define vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask
GLAD_API_CALL PFN_vkCmdSetViewport glad_vkCmdSetViewport ;
# define vkCmdSetViewport glad_vkCmdSetViewport
GLAD_API_CALL PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer ;
# define vkCmdUpdateBuffer glad_vkCmdUpdateBuffer
GLAD_API_CALL PFN_vkCmdWaitEvents glad_vkCmdWaitEvents ;
# define vkCmdWaitEvents glad_vkCmdWaitEvents
GLAD_API_CALL PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp ;
# define vkCmdWriteTimestamp glad_vkCmdWriteTimestamp
GLAD_API_CALL PFN_vkCreateBuffer glad_vkCreateBuffer ;
# define vkCreateBuffer glad_vkCreateBuffer
GLAD_API_CALL PFN_vkCreateBufferView glad_vkCreateBufferView ;
# define vkCreateBufferView glad_vkCreateBufferView
GLAD_API_CALL PFN_vkCreateCommandPool glad_vkCreateCommandPool ;
# define vkCreateCommandPool glad_vkCreateCommandPool
GLAD_API_CALL PFN_vkCreateComputePipelines glad_vkCreateComputePipelines ;
# define vkCreateComputePipelines glad_vkCreateComputePipelines
GLAD_API_CALL PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT ;
# define vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT
GLAD_API_CALL PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool ;
# define vkCreateDescriptorPool glad_vkCreateDescriptorPool
GLAD_API_CALL PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout ;
# define vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout
GLAD_API_CALL PFN_vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate ;
# define vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate
GLAD_API_CALL PFN_vkCreateDevice glad_vkCreateDevice ;
# define vkCreateDevice glad_vkCreateDevice
GLAD_API_CALL PFN_vkCreateEvent glad_vkCreateEvent ;
# define vkCreateEvent glad_vkCreateEvent
GLAD_API_CALL PFN_vkCreateFence glad_vkCreateFence ;
# define vkCreateFence glad_vkCreateFence
GLAD_API_CALL PFN_vkCreateFramebuffer glad_vkCreateFramebuffer ;
# define vkCreateFramebuffer glad_vkCreateFramebuffer
GLAD_API_CALL PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines ;
# define vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines
GLAD_API_CALL PFN_vkCreateImage glad_vkCreateImage ;
# define vkCreateImage glad_vkCreateImage
GLAD_API_CALL PFN_vkCreateImageView glad_vkCreateImageView ;
# define vkCreateImageView glad_vkCreateImageView
GLAD_API_CALL PFN_vkCreateInstance glad_vkCreateInstance ;
# define vkCreateInstance glad_vkCreateInstance
GLAD_API_CALL PFN_vkCreatePipelineCache glad_vkCreatePipelineCache ;
# define vkCreatePipelineCache glad_vkCreatePipelineCache
GLAD_API_CALL PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout ;
# define vkCreatePipelineLayout glad_vkCreatePipelineLayout
GLAD_API_CALL PFN_vkCreateQueryPool glad_vkCreateQueryPool ;
# define vkCreateQueryPool glad_vkCreateQueryPool
GLAD_API_CALL PFN_vkCreateRenderPass glad_vkCreateRenderPass ;
# define vkCreateRenderPass glad_vkCreateRenderPass
GLAD_API_CALL PFN_vkCreateSampler glad_vkCreateSampler ;
# define vkCreateSampler glad_vkCreateSampler
GLAD_API_CALL PFN_vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion ;
# define vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion
GLAD_API_CALL PFN_vkCreateSemaphore glad_vkCreateSemaphore ;
# define vkCreateSemaphore glad_vkCreateSemaphore
GLAD_API_CALL PFN_vkCreateShaderModule glad_vkCreateShaderModule ;
# define vkCreateShaderModule glad_vkCreateShaderModule
GLAD_API_CALL PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR ;
# define vkCreateSwapchainKHR glad_vkCreateSwapchainKHR
GLAD_API_CALL PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT ;
# define vkDebugReportMessageEXT glad_vkDebugReportMessageEXT
GLAD_API_CALL PFN_vkDestroyBuffer glad_vkDestroyBuffer ;
# define vkDestroyBuffer glad_vkDestroyBuffer
GLAD_API_CALL PFN_vkDestroyBufferView glad_vkDestroyBufferView ;
# define vkDestroyBufferView glad_vkDestroyBufferView
GLAD_API_CALL PFN_vkDestroyCommandPool glad_vkDestroyCommandPool ;
# define vkDestroyCommandPool glad_vkDestroyCommandPool
GLAD_API_CALL PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT ;
# define vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT
GLAD_API_CALL PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool ;
# define vkDestroyDescriptorPool glad_vkDestroyDescriptorPool
GLAD_API_CALL PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout ;
# define vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout
GLAD_API_CALL PFN_vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate ;
# define vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate
GLAD_API_CALL PFN_vkDestroyDevice glad_vkDestroyDevice ;
# define vkDestroyDevice glad_vkDestroyDevice
GLAD_API_CALL PFN_vkDestroyEvent glad_vkDestroyEvent ;
# define vkDestroyEvent glad_vkDestroyEvent
GLAD_API_CALL PFN_vkDestroyFence glad_vkDestroyFence ;
# define vkDestroyFence glad_vkDestroyFence
GLAD_API_CALL PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer ;
# define vkDestroyFramebuffer glad_vkDestroyFramebuffer
GLAD_API_CALL PFN_vkDestroyImage glad_vkDestroyImage ;
# define vkDestroyImage glad_vkDestroyImage
GLAD_API_CALL PFN_vkDestroyImageView glad_vkDestroyImageView ;
# define vkDestroyImageView glad_vkDestroyImageView
GLAD_API_CALL PFN_vkDestroyInstance glad_vkDestroyInstance ;
# define vkDestroyInstance glad_vkDestroyInstance
GLAD_API_CALL PFN_vkDestroyPipeline glad_vkDestroyPipeline ;
# define vkDestroyPipeline glad_vkDestroyPipeline
GLAD_API_CALL PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache ;
# define vkDestroyPipelineCache glad_vkDestroyPipelineCache
GLAD_API_CALL PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout ;
# define vkDestroyPipelineLayout glad_vkDestroyPipelineLayout
GLAD_API_CALL PFN_vkDestroyQueryPool glad_vkDestroyQueryPool ;
# define vkDestroyQueryPool glad_vkDestroyQueryPool
GLAD_API_CALL PFN_vkDestroyRenderPass glad_vkDestroyRenderPass ;
# define vkDestroyRenderPass glad_vkDestroyRenderPass
GLAD_API_CALL PFN_vkDestroySampler glad_vkDestroySampler ;
# define vkDestroySampler glad_vkDestroySampler
GLAD_API_CALL PFN_vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion ;
# define vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion
GLAD_API_CALL PFN_vkDestroySemaphore glad_vkDestroySemaphore ;
# define vkDestroySemaphore glad_vkDestroySemaphore
GLAD_API_CALL PFN_vkDestroyShaderModule glad_vkDestroyShaderModule ;
# define vkDestroyShaderModule glad_vkDestroyShaderModule
GLAD_API_CALL PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR ;
# define vkDestroySurfaceKHR glad_vkDestroySurfaceKHR
GLAD_API_CALL PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR ;
# define vkDestroySwapchainKHR glad_vkDestroySwapchainKHR
GLAD_API_CALL PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle ;
# define vkDeviceWaitIdle glad_vkDeviceWaitIdle
GLAD_API_CALL PFN_vkEndCommandBuffer glad_vkEndCommandBuffer ;
# define vkEndCommandBuffer glad_vkEndCommandBuffer
GLAD_API_CALL PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties ;
# define vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties
GLAD_API_CALL PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties ;
# define vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties
GLAD_API_CALL PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties ;
# define vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties
GLAD_API_CALL PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties ;
# define vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties
GLAD_API_CALL PFN_vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion ;
# define vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion
GLAD_API_CALL PFN_vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups ;
# define vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups
GLAD_API_CALL PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices ;
# define vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices
GLAD_API_CALL PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges ;
# define vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges
GLAD_API_CALL PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers ;
# define vkFreeCommandBuffers glad_vkFreeCommandBuffers
GLAD_API_CALL PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets ;
# define vkFreeDescriptorSets glad_vkFreeDescriptorSets
GLAD_API_CALL PFN_vkFreeMemory glad_vkFreeMemory ;
# define vkFreeMemory glad_vkFreeMemory
GLAD_API_CALL PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements ;
# define vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements
GLAD_API_CALL PFN_vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2 ;
# define vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2
GLAD_API_CALL PFN_vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport ;
# define vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport
GLAD_API_CALL PFN_vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures ;
# define vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures
GLAD_API_CALL PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR ;
# define vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR
GLAD_API_CALL PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR ;
# define vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR
GLAD_API_CALL PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment ;
# define vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment
GLAD_API_CALL PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr ;
# define vkGetDeviceProcAddr glad_vkGetDeviceProcAddr
GLAD_API_CALL PFN_vkGetDeviceQueue glad_vkGetDeviceQueue ;
# define vkGetDeviceQueue glad_vkGetDeviceQueue
GLAD_API_CALL PFN_vkGetDeviceQueue2 glad_vkGetDeviceQueue2 ;
# define vkGetDeviceQueue2 glad_vkGetDeviceQueue2
GLAD_API_CALL PFN_vkGetEventStatus glad_vkGetEventStatus ;
# define vkGetEventStatus glad_vkGetEventStatus
GLAD_API_CALL PFN_vkGetFenceStatus glad_vkGetFenceStatus ;
# define vkGetFenceStatus glad_vkGetFenceStatus
GLAD_API_CALL PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements ;
# define vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements
GLAD_API_CALL PFN_vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2 ;
# define vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2
GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements ;
# define vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements
GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2 ;
# define vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2
GLAD_API_CALL PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout ;
# define vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout
GLAD_API_CALL PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr ;
# define vkGetInstanceProcAddr glad_vkGetInstanceProcAddr
GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties ;
# define vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties ;
# define vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties ;
# define vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures ;
# define vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures
GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2 ;
# define vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2
GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties ;
# define vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2 ;
# define vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties ;
# define vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2 ;
# define vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties ;
# define vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2 ;
# define vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2
GLAD_API_CALL PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR ;
# define vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties ;
# define vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2 ;
# define vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties ;
# define vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2 ;
# define vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties ;
# define vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2 ;
# define vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR ;
# define vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR ;
# define vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR ;
# define vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR ;
# define vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR
GLAD_API_CALL PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData ;
# define vkGetPipelineCacheData glad_vkGetPipelineCacheData
GLAD_API_CALL PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults ;
# define vkGetQueryPoolResults glad_vkGetQueryPoolResults
GLAD_API_CALL PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity ;
# define vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity
GLAD_API_CALL PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR ;
# define vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR
GLAD_API_CALL PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges ;
# define vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges
GLAD_API_CALL PFN_vkMapMemory glad_vkMapMemory ;
# define vkMapMemory glad_vkMapMemory
GLAD_API_CALL PFN_vkMergePipelineCaches glad_vkMergePipelineCaches ;
# define vkMergePipelineCaches glad_vkMergePipelineCaches
GLAD_API_CALL PFN_vkQueueBindSparse glad_vkQueueBindSparse ;
# define vkQueueBindSparse glad_vkQueueBindSparse
GLAD_API_CALL PFN_vkQueuePresentKHR glad_vkQueuePresentKHR ;
# define vkQueuePresentKHR glad_vkQueuePresentKHR
GLAD_API_CALL PFN_vkQueueSubmit glad_vkQueueSubmit ;
# define vkQueueSubmit glad_vkQueueSubmit
GLAD_API_CALL PFN_vkQueueWaitIdle glad_vkQueueWaitIdle ;
# define vkQueueWaitIdle glad_vkQueueWaitIdle
GLAD_API_CALL PFN_vkResetCommandBuffer glad_vkResetCommandBuffer ;
# define vkResetCommandBuffer glad_vkResetCommandBuffer
GLAD_API_CALL PFN_vkResetCommandPool glad_vkResetCommandPool ;
# define vkResetCommandPool glad_vkResetCommandPool
GLAD_API_CALL PFN_vkResetDescriptorPool glad_vkResetDescriptorPool ;
# define vkResetDescriptorPool glad_vkResetDescriptorPool
GLAD_API_CALL PFN_vkResetEvent glad_vkResetEvent ;
# define vkResetEvent glad_vkResetEvent
GLAD_API_CALL PFN_vkResetFences glad_vkResetFences ;
# define vkResetFences glad_vkResetFences
GLAD_API_CALL PFN_vkSetEvent glad_vkSetEvent ;
# define vkSetEvent glad_vkSetEvent
GLAD_API_CALL PFN_vkTrimCommandPool glad_vkTrimCommandPool ;
# define vkTrimCommandPool glad_vkTrimCommandPool
GLAD_API_CALL PFN_vkUnmapMemory glad_vkUnmapMemory ;
# define vkUnmapMemory glad_vkUnmapMemory
GLAD_API_CALL PFN_vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate ;
# define vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate
GLAD_API_CALL PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets ;
# define vkUpdateDescriptorSets glad_vkUpdateDescriptorSets
GLAD_API_CALL PFN_vkWaitForFences glad_vkWaitForFences ;
# define vkWaitForFences glad_vkWaitForFences
2021-08-24 19:18:03 -04:00
2019-04-14 11:34:38 -04:00
GLAD_API_CALL int gladLoadVulkanUserPtr ( VkPhysicalDevice physical_device , GLADuserptrloadfunc load , void * userptr ) ;
GLAD_API_CALL int gladLoadVulkan ( VkPhysicalDevice physical_device , GLADloadfunc load ) ;
2021-08-24 19:18:03 -04:00
# ifdef __cplusplus
}
# endif
# endif
2019-04-14 11:34:38 -04:00
2021-08-24 19:18:03 -04:00
/* Source */
# ifdef GLAD_VULKAN_IMPLEMENTATION
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
2019-04-14 11:34:38 -04:00
2021-08-24 19:18:03 -04:00
# ifndef GLAD_IMPL_UTIL_C_
# define GLAD_IMPL_UTIL_C_
# ifdef _MSC_VER
# define GLAD_IMPL_UTIL_SSCANF sscanf_s
# else
# define GLAD_IMPL_UTIL_SSCANF sscanf
# endif
# endif /* GLAD_IMPL_UTIL_C_ */
2019-04-14 11:34:38 -04:00
# ifdef __cplusplus
2021-08-24 19:18:03 -04:00
extern " C " {
# endif
int GLAD_VK_VERSION_1_0 = 0 ;
int GLAD_VK_VERSION_1_1 = 0 ;
int GLAD_VK_EXT_debug_report = 0 ;
int GLAD_VK_KHR_surface = 0 ;
int GLAD_VK_KHR_swapchain = 0 ;
PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR = NULL ;
PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR = NULL ;
PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers = NULL ;
PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets = NULL ;
PFN_vkAllocateMemory glad_vkAllocateMemory = NULL ;
PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer = NULL ;
PFN_vkBindBufferMemory glad_vkBindBufferMemory = NULL ;
PFN_vkBindBufferMemory2 glad_vkBindBufferMemory2 = NULL ;
PFN_vkBindImageMemory glad_vkBindImageMemory = NULL ;
PFN_vkBindImageMemory2 glad_vkBindImageMemory2 = NULL ;
PFN_vkCmdBeginQuery glad_vkCmdBeginQuery = NULL ;
PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass = NULL ;
PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets = NULL ;
PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer = NULL ;
PFN_vkCmdBindPipeline glad_vkCmdBindPipeline = NULL ;
PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers = NULL ;
PFN_vkCmdBlitImage glad_vkCmdBlitImage = NULL ;
PFN_vkCmdClearAttachments glad_vkCmdClearAttachments = NULL ;
PFN_vkCmdClearColorImage glad_vkCmdClearColorImage = NULL ;
PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage = NULL ;
PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer = NULL ;
PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage = NULL ;
PFN_vkCmdCopyImage glad_vkCmdCopyImage = NULL ;
PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer = NULL ;
PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults = NULL ;
PFN_vkCmdDispatch glad_vkCmdDispatch = NULL ;
PFN_vkCmdDispatchBase glad_vkCmdDispatchBase = NULL ;
PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect = NULL ;
PFN_vkCmdDraw glad_vkCmdDraw = NULL ;
PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed = NULL ;
PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect = NULL ;
PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect = NULL ;
PFN_vkCmdEndQuery glad_vkCmdEndQuery = NULL ;
PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass = NULL ;
PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands = NULL ;
PFN_vkCmdFillBuffer glad_vkCmdFillBuffer = NULL ;
PFN_vkCmdNextSubpass glad_vkCmdNextSubpass = NULL ;
PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier = NULL ;
PFN_vkCmdPushConstants glad_vkCmdPushConstants = NULL ;
PFN_vkCmdResetEvent glad_vkCmdResetEvent = NULL ;
PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool = NULL ;
PFN_vkCmdResolveImage glad_vkCmdResolveImage = NULL ;
PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants = NULL ;
PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias = NULL ;
PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds = NULL ;
PFN_vkCmdSetDeviceMask glad_vkCmdSetDeviceMask = NULL ;
PFN_vkCmdSetEvent glad_vkCmdSetEvent = NULL ;
PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth = NULL ;
PFN_vkCmdSetScissor glad_vkCmdSetScissor = NULL ;
PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask = NULL ;
PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference = NULL ;
PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask = NULL ;
PFN_vkCmdSetViewport glad_vkCmdSetViewport = NULL ;
PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer = NULL ;
PFN_vkCmdWaitEvents glad_vkCmdWaitEvents = NULL ;
PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp = NULL ;
PFN_vkCreateBuffer glad_vkCreateBuffer = NULL ;
PFN_vkCreateBufferView glad_vkCreateBufferView = NULL ;
PFN_vkCreateCommandPool glad_vkCreateCommandPool = NULL ;
PFN_vkCreateComputePipelines glad_vkCreateComputePipelines = NULL ;
PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT = NULL ;
PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool = NULL ;
PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout = NULL ;
PFN_vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate = NULL ;
PFN_vkCreateDevice glad_vkCreateDevice = NULL ;
PFN_vkCreateEvent glad_vkCreateEvent = NULL ;
PFN_vkCreateFence glad_vkCreateFence = NULL ;
PFN_vkCreateFramebuffer glad_vkCreateFramebuffer = NULL ;
PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines = NULL ;
PFN_vkCreateImage glad_vkCreateImage = NULL ;
PFN_vkCreateImageView glad_vkCreateImageView = NULL ;
PFN_vkCreateInstance glad_vkCreateInstance = NULL ;
PFN_vkCreatePipelineCache glad_vkCreatePipelineCache = NULL ;
PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout = NULL ;
PFN_vkCreateQueryPool glad_vkCreateQueryPool = NULL ;
PFN_vkCreateRenderPass glad_vkCreateRenderPass = NULL ;
PFN_vkCreateSampler glad_vkCreateSampler = NULL ;
PFN_vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion = NULL ;
PFN_vkCreateSemaphore glad_vkCreateSemaphore = NULL ;
PFN_vkCreateShaderModule glad_vkCreateShaderModule = NULL ;
PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR = NULL ;
PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT = NULL ;
PFN_vkDestroyBuffer glad_vkDestroyBuffer = NULL ;
PFN_vkDestroyBufferView glad_vkDestroyBufferView = NULL ;
PFN_vkDestroyCommandPool glad_vkDestroyCommandPool = NULL ;
PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT = NULL ;
PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool = NULL ;
PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout = NULL ;
PFN_vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate = NULL ;
PFN_vkDestroyDevice glad_vkDestroyDevice = NULL ;
PFN_vkDestroyEvent glad_vkDestroyEvent = NULL ;
PFN_vkDestroyFence glad_vkDestroyFence = NULL ;
PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer = NULL ;
PFN_vkDestroyImage glad_vkDestroyImage = NULL ;
PFN_vkDestroyImageView glad_vkDestroyImageView = NULL ;
PFN_vkDestroyInstance glad_vkDestroyInstance = NULL ;
PFN_vkDestroyPipeline glad_vkDestroyPipeline = NULL ;
PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache = NULL ;
PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout = NULL ;
PFN_vkDestroyQueryPool glad_vkDestroyQueryPool = NULL ;
PFN_vkDestroyRenderPass glad_vkDestroyRenderPass = NULL ;
PFN_vkDestroySampler glad_vkDestroySampler = NULL ;
PFN_vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion = NULL ;
PFN_vkDestroySemaphore glad_vkDestroySemaphore = NULL ;
PFN_vkDestroyShaderModule glad_vkDestroyShaderModule = NULL ;
PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR = NULL ;
PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR = NULL ;
PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle = NULL ;
PFN_vkEndCommandBuffer glad_vkEndCommandBuffer = NULL ;
PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties = NULL ;
PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties = NULL ;
PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties = NULL ;
PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties = NULL ;
PFN_vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion = NULL ;
PFN_vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups = NULL ;
PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices = NULL ;
PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges = NULL ;
PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers = NULL ;
PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets = NULL ;
PFN_vkFreeMemory glad_vkFreeMemory = NULL ;
PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements = NULL ;
PFN_vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2 = NULL ;
PFN_vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport = NULL ;
PFN_vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures = NULL ;
PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR = NULL ;
PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR = NULL ;
PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment = NULL ;
PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr = NULL ;
PFN_vkGetDeviceQueue glad_vkGetDeviceQueue = NULL ;
PFN_vkGetDeviceQueue2 glad_vkGetDeviceQueue2 = NULL ;
PFN_vkGetEventStatus glad_vkGetEventStatus = NULL ;
PFN_vkGetFenceStatus glad_vkGetFenceStatus = NULL ;
PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements = NULL ;
PFN_vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2 = NULL ;
PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements = NULL ;
PFN_vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2 = NULL ;
PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout = NULL ;
PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr = NULL ;
PFN_vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties = NULL ;
PFN_vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties = NULL ;
PFN_vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties = NULL ;
PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures = NULL ;
PFN_vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2 = NULL ;
PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties = NULL ;
PFN_vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2 = NULL ;
PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties = NULL ;
PFN_vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2 = NULL ;
PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties = NULL ;
PFN_vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2 = NULL ;
PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR = NULL ;
PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties = NULL ;
PFN_vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2 = NULL ;
PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties = NULL ;
PFN_vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2 = NULL ;
PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties = NULL ;
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2 = NULL ;
PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = NULL ;
PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR = NULL ;
PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR = NULL ;
PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR = NULL ;
PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData = NULL ;
PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults = NULL ;
PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity = NULL ;
PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR = NULL ;
PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges = NULL ;
PFN_vkMapMemory glad_vkMapMemory = NULL ;
PFN_vkMergePipelineCaches glad_vkMergePipelineCaches = NULL ;
PFN_vkQueueBindSparse glad_vkQueueBindSparse = NULL ;
PFN_vkQueuePresentKHR glad_vkQueuePresentKHR = NULL ;
PFN_vkQueueSubmit glad_vkQueueSubmit = NULL ;
PFN_vkQueueWaitIdle glad_vkQueueWaitIdle = NULL ;
PFN_vkResetCommandBuffer glad_vkResetCommandBuffer = NULL ;
PFN_vkResetCommandPool glad_vkResetCommandPool = NULL ;
PFN_vkResetDescriptorPool glad_vkResetDescriptorPool = NULL ;
PFN_vkResetEvent glad_vkResetEvent = NULL ;
PFN_vkResetFences glad_vkResetFences = NULL ;
PFN_vkSetEvent glad_vkSetEvent = NULL ;
PFN_vkTrimCommandPool glad_vkTrimCommandPool = NULL ;
PFN_vkUnmapMemory glad_vkUnmapMemory = NULL ;
PFN_vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate = NULL ;
PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets = NULL ;
PFN_vkWaitForFences glad_vkWaitForFences = NULL ;
static void glad_vk_load_VK_VERSION_1_0 ( GLADuserptrloadfunc load , void * userptr ) {
if ( ! GLAD_VK_VERSION_1_0 ) return ;
glad_vkAllocateCommandBuffers = ( PFN_vkAllocateCommandBuffers ) load ( userptr , " vkAllocateCommandBuffers " ) ;
glad_vkAllocateDescriptorSets = ( PFN_vkAllocateDescriptorSets ) load ( userptr , " vkAllocateDescriptorSets " ) ;
glad_vkAllocateMemory = ( PFN_vkAllocateMemory ) load ( userptr , " vkAllocateMemory " ) ;
glad_vkBeginCommandBuffer = ( PFN_vkBeginCommandBuffer ) load ( userptr , " vkBeginCommandBuffer " ) ;
glad_vkBindBufferMemory = ( PFN_vkBindBufferMemory ) load ( userptr , " vkBindBufferMemory " ) ;
glad_vkBindImageMemory = ( PFN_vkBindImageMemory ) load ( userptr , " vkBindImageMemory " ) ;
glad_vkCmdBeginQuery = ( PFN_vkCmdBeginQuery ) load ( userptr , " vkCmdBeginQuery " ) ;
glad_vkCmdBeginRenderPass = ( PFN_vkCmdBeginRenderPass ) load ( userptr , " vkCmdBeginRenderPass " ) ;
glad_vkCmdBindDescriptorSets = ( PFN_vkCmdBindDescriptorSets ) load ( userptr , " vkCmdBindDescriptorSets " ) ;
glad_vkCmdBindIndexBuffer = ( PFN_vkCmdBindIndexBuffer ) load ( userptr , " vkCmdBindIndexBuffer " ) ;
glad_vkCmdBindPipeline = ( PFN_vkCmdBindPipeline ) load ( userptr , " vkCmdBindPipeline " ) ;
glad_vkCmdBindVertexBuffers = ( PFN_vkCmdBindVertexBuffers ) load ( userptr , " vkCmdBindVertexBuffers " ) ;
glad_vkCmdBlitImage = ( PFN_vkCmdBlitImage ) load ( userptr , " vkCmdBlitImage " ) ;
glad_vkCmdClearAttachments = ( PFN_vkCmdClearAttachments ) load ( userptr , " vkCmdClearAttachments " ) ;
glad_vkCmdClearColorImage = ( PFN_vkCmdClearColorImage ) load ( userptr , " vkCmdClearColorImage " ) ;
glad_vkCmdClearDepthStencilImage = ( PFN_vkCmdClearDepthStencilImage ) load ( userptr , " vkCmdClearDepthStencilImage " ) ;
glad_vkCmdCopyBuffer = ( PFN_vkCmdCopyBuffer ) load ( userptr , " vkCmdCopyBuffer " ) ;
glad_vkCmdCopyBufferToImage = ( PFN_vkCmdCopyBufferToImage ) load ( userptr , " vkCmdCopyBufferToImage " ) ;
glad_vkCmdCopyImage = ( PFN_vkCmdCopyImage ) load ( userptr , " vkCmdCopyImage " ) ;
glad_vkCmdCopyImageToBuffer = ( PFN_vkCmdCopyImageToBuffer ) load ( userptr , " vkCmdCopyImageToBuffer " ) ;
glad_vkCmdCopyQueryPoolResults = ( PFN_vkCmdCopyQueryPoolResults ) load ( userptr , " vkCmdCopyQueryPoolResults " ) ;
glad_vkCmdDispatch = ( PFN_vkCmdDispatch ) load ( userptr , " vkCmdDispatch " ) ;
glad_vkCmdDispatchIndirect = ( PFN_vkCmdDispatchIndirect ) load ( userptr , " vkCmdDispatchIndirect " ) ;
glad_vkCmdDraw = ( PFN_vkCmdDraw ) load ( userptr , " vkCmdDraw " ) ;
glad_vkCmdDrawIndexed = ( PFN_vkCmdDrawIndexed ) load ( userptr , " vkCmdDrawIndexed " ) ;
glad_vkCmdDrawIndexedIndirect = ( PFN_vkCmdDrawIndexedIndirect ) load ( userptr , " vkCmdDrawIndexedIndirect " ) ;
glad_vkCmdDrawIndirect = ( PFN_vkCmdDrawIndirect ) load ( userptr , " vkCmdDrawIndirect " ) ;
glad_vkCmdEndQuery = ( PFN_vkCmdEndQuery ) load ( userptr , " vkCmdEndQuery " ) ;
glad_vkCmdEndRenderPass = ( PFN_vkCmdEndRenderPass ) load ( userptr , " vkCmdEndRenderPass " ) ;
glad_vkCmdExecuteCommands = ( PFN_vkCmdExecuteCommands ) load ( userptr , " vkCmdExecuteCommands " ) ;
glad_vkCmdFillBuffer = ( PFN_vkCmdFillBuffer ) load ( userptr , " vkCmdFillBuffer " ) ;
glad_vkCmdNextSubpass = ( PFN_vkCmdNextSubpass ) load ( userptr , " vkCmdNextSubpass " ) ;
glad_vkCmdPipelineBarrier = ( PFN_vkCmdPipelineBarrier ) load ( userptr , " vkCmdPipelineBarrier " ) ;
glad_vkCmdPushConstants = ( PFN_vkCmdPushConstants ) load ( userptr , " vkCmdPushConstants " ) ;
glad_vkCmdResetEvent = ( PFN_vkCmdResetEvent ) load ( userptr , " vkCmdResetEvent " ) ;
glad_vkCmdResetQueryPool = ( PFN_vkCmdResetQueryPool ) load ( userptr , " vkCmdResetQueryPool " ) ;
glad_vkCmdResolveImage = ( PFN_vkCmdResolveImage ) load ( userptr , " vkCmdResolveImage " ) ;
glad_vkCmdSetBlendConstants = ( PFN_vkCmdSetBlendConstants ) load ( userptr , " vkCmdSetBlendConstants " ) ;
glad_vkCmdSetDepthBias = ( PFN_vkCmdSetDepthBias ) load ( userptr , " vkCmdSetDepthBias " ) ;
glad_vkCmdSetDepthBounds = ( PFN_vkCmdSetDepthBounds ) load ( userptr , " vkCmdSetDepthBounds " ) ;
glad_vkCmdSetEvent = ( PFN_vkCmdSetEvent ) load ( userptr , " vkCmdSetEvent " ) ;
glad_vkCmdSetLineWidth = ( PFN_vkCmdSetLineWidth ) load ( userptr , " vkCmdSetLineWidth " ) ;
glad_vkCmdSetScissor = ( PFN_vkCmdSetScissor ) load ( userptr , " vkCmdSetScissor " ) ;
glad_vkCmdSetStencilCompareMask = ( PFN_vkCmdSetStencilCompareMask ) load ( userptr , " vkCmdSetStencilCompareMask " ) ;
glad_vkCmdSetStencilReference = ( PFN_vkCmdSetStencilReference ) load ( userptr , " vkCmdSetStencilReference " ) ;
glad_vkCmdSetStencilWriteMask = ( PFN_vkCmdSetStencilWriteMask ) load ( userptr , " vkCmdSetStencilWriteMask " ) ;
glad_vkCmdSetViewport = ( PFN_vkCmdSetViewport ) load ( userptr , " vkCmdSetViewport " ) ;
glad_vkCmdUpdateBuffer = ( PFN_vkCmdUpdateBuffer ) load ( userptr , " vkCmdUpdateBuffer " ) ;
glad_vkCmdWaitEvents = ( PFN_vkCmdWaitEvents ) load ( userptr , " vkCmdWaitEvents " ) ;
glad_vkCmdWriteTimestamp = ( PFN_vkCmdWriteTimestamp ) load ( userptr , " vkCmdWriteTimestamp " ) ;
glad_vkCreateBuffer = ( PFN_vkCreateBuffer ) load ( userptr , " vkCreateBuffer " ) ;
glad_vkCreateBufferView = ( PFN_vkCreateBufferView ) load ( userptr , " vkCreateBufferView " ) ;
glad_vkCreateCommandPool = ( PFN_vkCreateCommandPool ) load ( userptr , " vkCreateCommandPool " ) ;
glad_vkCreateComputePipelines = ( PFN_vkCreateComputePipelines ) load ( userptr , " vkCreateComputePipelines " ) ;
glad_vkCreateDescriptorPool = ( PFN_vkCreateDescriptorPool ) load ( userptr , " vkCreateDescriptorPool " ) ;
glad_vkCreateDescriptorSetLayout = ( PFN_vkCreateDescriptorSetLayout ) load ( userptr , " vkCreateDescriptorSetLayout " ) ;
glad_vkCreateDevice = ( PFN_vkCreateDevice ) load ( userptr , " vkCreateDevice " ) ;
glad_vkCreateEvent = ( PFN_vkCreateEvent ) load ( userptr , " vkCreateEvent " ) ;
glad_vkCreateFence = ( PFN_vkCreateFence ) load ( userptr , " vkCreateFence " ) ;
glad_vkCreateFramebuffer = ( PFN_vkCreateFramebuffer ) load ( userptr , " vkCreateFramebuffer " ) ;
glad_vkCreateGraphicsPipelines = ( PFN_vkCreateGraphicsPipelines ) load ( userptr , " vkCreateGraphicsPipelines " ) ;
glad_vkCreateImage = ( PFN_vkCreateImage ) load ( userptr , " vkCreateImage " ) ;
glad_vkCreateImageView = ( PFN_vkCreateImageView ) load ( userptr , " vkCreateImageView " ) ;
glad_vkCreateInstance = ( PFN_vkCreateInstance ) load ( userptr , " vkCreateInstance " ) ;
glad_vkCreatePipelineCache = ( PFN_vkCreatePipelineCache ) load ( userptr , " vkCreatePipelineCache " ) ;
glad_vkCreatePipelineLayout = ( PFN_vkCreatePipelineLayout ) load ( userptr , " vkCreatePipelineLayout " ) ;
glad_vkCreateQueryPool = ( PFN_vkCreateQueryPool ) load ( userptr , " vkCreateQueryPool " ) ;
glad_vkCreateRenderPass = ( PFN_vkCreateRenderPass ) load ( userptr , " vkCreateRenderPass " ) ;
glad_vkCreateSampler = ( PFN_vkCreateSampler ) load ( userptr , " vkCreateSampler " ) ;
glad_vkCreateSemaphore = ( PFN_vkCreateSemaphore ) load ( userptr , " vkCreateSemaphore " ) ;
glad_vkCreateShaderModule = ( PFN_vkCreateShaderModule ) load ( userptr , " vkCreateShaderModule " ) ;
glad_vkDestroyBuffer = ( PFN_vkDestroyBuffer ) load ( userptr , " vkDestroyBuffer " ) ;
glad_vkDestroyBufferView = ( PFN_vkDestroyBufferView ) load ( userptr , " vkDestroyBufferView " ) ;
glad_vkDestroyCommandPool = ( PFN_vkDestroyCommandPool ) load ( userptr , " vkDestroyCommandPool " ) ;
glad_vkDestroyDescriptorPool = ( PFN_vkDestroyDescriptorPool ) load ( userptr , " vkDestroyDescriptorPool " ) ;
glad_vkDestroyDescriptorSetLayout = ( PFN_vkDestroyDescriptorSetLayout ) load ( userptr , " vkDestroyDescriptorSetLayout " ) ;
glad_vkDestroyDevice = ( PFN_vkDestroyDevice ) load ( userptr , " vkDestroyDevice " ) ;
glad_vkDestroyEvent = ( PFN_vkDestroyEvent ) load ( userptr , " vkDestroyEvent " ) ;
glad_vkDestroyFence = ( PFN_vkDestroyFence ) load ( userptr , " vkDestroyFence " ) ;
glad_vkDestroyFramebuffer = ( PFN_vkDestroyFramebuffer ) load ( userptr , " vkDestroyFramebuffer " ) ;
glad_vkDestroyImage = ( PFN_vkDestroyImage ) load ( userptr , " vkDestroyImage " ) ;
glad_vkDestroyImageView = ( PFN_vkDestroyImageView ) load ( userptr , " vkDestroyImageView " ) ;
glad_vkDestroyInstance = ( PFN_vkDestroyInstance ) load ( userptr , " vkDestroyInstance " ) ;
glad_vkDestroyPipeline = ( PFN_vkDestroyPipeline ) load ( userptr , " vkDestroyPipeline " ) ;
glad_vkDestroyPipelineCache = ( PFN_vkDestroyPipelineCache ) load ( userptr , " vkDestroyPipelineCache " ) ;
glad_vkDestroyPipelineLayout = ( PFN_vkDestroyPipelineLayout ) load ( userptr , " vkDestroyPipelineLayout " ) ;
glad_vkDestroyQueryPool = ( PFN_vkDestroyQueryPool ) load ( userptr , " vkDestroyQueryPool " ) ;
glad_vkDestroyRenderPass = ( PFN_vkDestroyRenderPass ) load ( userptr , " vkDestroyRenderPass " ) ;
glad_vkDestroySampler = ( PFN_vkDestroySampler ) load ( userptr , " vkDestroySampler " ) ;
glad_vkDestroySemaphore = ( PFN_vkDestroySemaphore ) load ( userptr , " vkDestroySemaphore " ) ;
glad_vkDestroyShaderModule = ( PFN_vkDestroyShaderModule ) load ( userptr , " vkDestroyShaderModule " ) ;
glad_vkDeviceWaitIdle = ( PFN_vkDeviceWaitIdle ) load ( userptr , " vkDeviceWaitIdle " ) ;
glad_vkEndCommandBuffer = ( PFN_vkEndCommandBuffer ) load ( userptr , " vkEndCommandBuffer " ) ;
glad_vkEnumerateDeviceExtensionProperties = ( PFN_vkEnumerateDeviceExtensionProperties ) load ( userptr , " vkEnumerateDeviceExtensionProperties " ) ;
glad_vkEnumerateDeviceLayerProperties = ( PFN_vkEnumerateDeviceLayerProperties ) load ( userptr , " vkEnumerateDeviceLayerProperties " ) ;
glad_vkEnumerateInstanceExtensionProperties = ( PFN_vkEnumerateInstanceExtensionProperties ) load ( userptr , " vkEnumerateInstanceExtensionProperties " ) ;
glad_vkEnumerateInstanceLayerProperties = ( PFN_vkEnumerateInstanceLayerProperties ) load ( userptr , " vkEnumerateInstanceLayerProperties " ) ;
glad_vkEnumeratePhysicalDevices = ( PFN_vkEnumeratePhysicalDevices ) load ( userptr , " vkEnumeratePhysicalDevices " ) ;
glad_vkFlushMappedMemoryRanges = ( PFN_vkFlushMappedMemoryRanges ) load ( userptr , " vkFlushMappedMemoryRanges " ) ;
glad_vkFreeCommandBuffers = ( PFN_vkFreeCommandBuffers ) load ( userptr , " vkFreeCommandBuffers " ) ;
glad_vkFreeDescriptorSets = ( PFN_vkFreeDescriptorSets ) load ( userptr , " vkFreeDescriptorSets " ) ;
glad_vkFreeMemory = ( PFN_vkFreeMemory ) load ( userptr , " vkFreeMemory " ) ;
glad_vkGetBufferMemoryRequirements = ( PFN_vkGetBufferMemoryRequirements ) load ( userptr , " vkGetBufferMemoryRequirements " ) ;
glad_vkGetDeviceMemoryCommitment = ( PFN_vkGetDeviceMemoryCommitment ) load ( userptr , " vkGetDeviceMemoryCommitment " ) ;
glad_vkGetDeviceProcAddr = ( PFN_vkGetDeviceProcAddr ) load ( userptr , " vkGetDeviceProcAddr " ) ;
glad_vkGetDeviceQueue = ( PFN_vkGetDeviceQueue ) load ( userptr , " vkGetDeviceQueue " ) ;
glad_vkGetEventStatus = ( PFN_vkGetEventStatus ) load ( userptr , " vkGetEventStatus " ) ;
glad_vkGetFenceStatus = ( PFN_vkGetFenceStatus ) load ( userptr , " vkGetFenceStatus " ) ;
glad_vkGetImageMemoryRequirements = ( PFN_vkGetImageMemoryRequirements ) load ( userptr , " vkGetImageMemoryRequirements " ) ;
glad_vkGetImageSparseMemoryRequirements = ( PFN_vkGetImageSparseMemoryRequirements ) load ( userptr , " vkGetImageSparseMemoryRequirements " ) ;
glad_vkGetImageSubresourceLayout = ( PFN_vkGetImageSubresourceLayout ) load ( userptr , " vkGetImageSubresourceLayout " ) ;
glad_vkGetInstanceProcAddr = ( PFN_vkGetInstanceProcAddr ) load ( userptr , " vkGetInstanceProcAddr " ) ;
glad_vkGetPhysicalDeviceFeatures = ( PFN_vkGetPhysicalDeviceFeatures ) load ( userptr , " vkGetPhysicalDeviceFeatures " ) ;
glad_vkGetPhysicalDeviceFormatProperties = ( PFN_vkGetPhysicalDeviceFormatProperties ) load ( userptr , " vkGetPhysicalDeviceFormatProperties " ) ;
glad_vkGetPhysicalDeviceImageFormatProperties = ( PFN_vkGetPhysicalDeviceImageFormatProperties ) load ( userptr , " vkGetPhysicalDeviceImageFormatProperties " ) ;
glad_vkGetPhysicalDeviceMemoryProperties = ( PFN_vkGetPhysicalDeviceMemoryProperties ) load ( userptr , " vkGetPhysicalDeviceMemoryProperties " ) ;
glad_vkGetPhysicalDeviceProperties = ( PFN_vkGetPhysicalDeviceProperties ) load ( userptr , " vkGetPhysicalDeviceProperties " ) ;
glad_vkGetPhysicalDeviceQueueFamilyProperties = ( PFN_vkGetPhysicalDeviceQueueFamilyProperties ) load ( userptr , " vkGetPhysicalDeviceQueueFamilyProperties " ) ;
glad_vkGetPhysicalDeviceSparseImageFormatProperties = ( PFN_vkGetPhysicalDeviceSparseImageFormatProperties ) load ( userptr , " vkGetPhysicalDeviceSparseImageFormatProperties " ) ;
glad_vkGetPipelineCacheData = ( PFN_vkGetPipelineCacheData ) load ( userptr , " vkGetPipelineCacheData " ) ;
glad_vkGetQueryPoolResults = ( PFN_vkGetQueryPoolResults ) load ( userptr , " vkGetQueryPoolResults " ) ;
glad_vkGetRenderAreaGranularity = ( PFN_vkGetRenderAreaGranularity ) load ( userptr , " vkGetRenderAreaGranularity " ) ;
glad_vkInvalidateMappedMemoryRanges = ( PFN_vkInvalidateMappedMemoryRanges ) load ( userptr , " vkInvalidateMappedMemoryRanges " ) ;
glad_vkMapMemory = ( PFN_vkMapMemory ) load ( userptr , " vkMapMemory " ) ;
glad_vkMergePipelineCaches = ( PFN_vkMergePipelineCaches ) load ( userptr , " vkMergePipelineCaches " ) ;
glad_vkQueueBindSparse = ( PFN_vkQueueBindSparse ) load ( userptr , " vkQueueBindSparse " ) ;
glad_vkQueueSubmit = ( PFN_vkQueueSubmit ) load ( userptr , " vkQueueSubmit " ) ;
glad_vkQueueWaitIdle = ( PFN_vkQueueWaitIdle ) load ( userptr , " vkQueueWaitIdle " ) ;
glad_vkResetCommandBuffer = ( PFN_vkResetCommandBuffer ) load ( userptr , " vkResetCommandBuffer " ) ;
glad_vkResetCommandPool = ( PFN_vkResetCommandPool ) load ( userptr , " vkResetCommandPool " ) ;
glad_vkResetDescriptorPool = ( PFN_vkResetDescriptorPool ) load ( userptr , " vkResetDescriptorPool " ) ;
glad_vkResetEvent = ( PFN_vkResetEvent ) load ( userptr , " vkResetEvent " ) ;
glad_vkResetFences = ( PFN_vkResetFences ) load ( userptr , " vkResetFences " ) ;
glad_vkSetEvent = ( PFN_vkSetEvent ) load ( userptr , " vkSetEvent " ) ;
glad_vkUnmapMemory = ( PFN_vkUnmapMemory ) load ( userptr , " vkUnmapMemory " ) ;
glad_vkUpdateDescriptorSets = ( PFN_vkUpdateDescriptorSets ) load ( userptr , " vkUpdateDescriptorSets " ) ;
glad_vkWaitForFences = ( PFN_vkWaitForFences ) load ( userptr , " vkWaitForFences " ) ;
2019-04-14 11:34:38 -04:00
}
2021-08-24 19:18:03 -04:00
static void glad_vk_load_VK_VERSION_1_1 ( GLADuserptrloadfunc load , void * userptr ) {
if ( ! GLAD_VK_VERSION_1_1 ) return ;
glad_vkBindBufferMemory2 = ( PFN_vkBindBufferMemory2 ) load ( userptr , " vkBindBufferMemory2 " ) ;
glad_vkBindImageMemory2 = ( PFN_vkBindImageMemory2 ) load ( userptr , " vkBindImageMemory2 " ) ;
glad_vkCmdDispatchBase = ( PFN_vkCmdDispatchBase ) load ( userptr , " vkCmdDispatchBase " ) ;
glad_vkCmdSetDeviceMask = ( PFN_vkCmdSetDeviceMask ) load ( userptr , " vkCmdSetDeviceMask " ) ;
glad_vkCreateDescriptorUpdateTemplate = ( PFN_vkCreateDescriptorUpdateTemplate ) load ( userptr , " vkCreateDescriptorUpdateTemplate " ) ;
glad_vkCreateSamplerYcbcrConversion = ( PFN_vkCreateSamplerYcbcrConversion ) load ( userptr , " vkCreateSamplerYcbcrConversion " ) ;
glad_vkDestroyDescriptorUpdateTemplate = ( PFN_vkDestroyDescriptorUpdateTemplate ) load ( userptr , " vkDestroyDescriptorUpdateTemplate " ) ;
glad_vkDestroySamplerYcbcrConversion = ( PFN_vkDestroySamplerYcbcrConversion ) load ( userptr , " vkDestroySamplerYcbcrConversion " ) ;
glad_vkEnumerateInstanceVersion = ( PFN_vkEnumerateInstanceVersion ) load ( userptr , " vkEnumerateInstanceVersion " ) ;
glad_vkEnumeratePhysicalDeviceGroups = ( PFN_vkEnumeratePhysicalDeviceGroups ) load ( userptr , " vkEnumeratePhysicalDeviceGroups " ) ;
glad_vkGetBufferMemoryRequirements2 = ( PFN_vkGetBufferMemoryRequirements2 ) load ( userptr , " vkGetBufferMemoryRequirements2 " ) ;
glad_vkGetDescriptorSetLayoutSupport = ( PFN_vkGetDescriptorSetLayoutSupport ) load ( userptr , " vkGetDescriptorSetLayoutSupport " ) ;
glad_vkGetDeviceGroupPeerMemoryFeatures = ( PFN_vkGetDeviceGroupPeerMemoryFeatures ) load ( userptr , " vkGetDeviceGroupPeerMemoryFeatures " ) ;
glad_vkGetDeviceQueue2 = ( PFN_vkGetDeviceQueue2 ) load ( userptr , " vkGetDeviceQueue2 " ) ;
glad_vkGetImageMemoryRequirements2 = ( PFN_vkGetImageMemoryRequirements2 ) load ( userptr , " vkGetImageMemoryRequirements2 " ) ;
glad_vkGetImageSparseMemoryRequirements2 = ( PFN_vkGetImageSparseMemoryRequirements2 ) load ( userptr , " vkGetImageSparseMemoryRequirements2 " ) ;
glad_vkGetPhysicalDeviceExternalBufferProperties = ( PFN_vkGetPhysicalDeviceExternalBufferProperties ) load ( userptr , " vkGetPhysicalDeviceExternalBufferProperties " ) ;
glad_vkGetPhysicalDeviceExternalFenceProperties = ( PFN_vkGetPhysicalDeviceExternalFenceProperties ) load ( userptr , " vkGetPhysicalDeviceExternalFenceProperties " ) ;
glad_vkGetPhysicalDeviceExternalSemaphoreProperties = ( PFN_vkGetPhysicalDeviceExternalSemaphoreProperties ) load ( userptr , " vkGetPhysicalDeviceExternalSemaphoreProperties " ) ;
glad_vkGetPhysicalDeviceFeatures2 = ( PFN_vkGetPhysicalDeviceFeatures2 ) load ( userptr , " vkGetPhysicalDeviceFeatures2 " ) ;
glad_vkGetPhysicalDeviceFormatProperties2 = ( PFN_vkGetPhysicalDeviceFormatProperties2 ) load ( userptr , " vkGetPhysicalDeviceFormatProperties2 " ) ;
glad_vkGetPhysicalDeviceImageFormatProperties2 = ( PFN_vkGetPhysicalDeviceImageFormatProperties2 ) load ( userptr , " vkGetPhysicalDeviceImageFormatProperties2 " ) ;
glad_vkGetPhysicalDeviceMemoryProperties2 = ( PFN_vkGetPhysicalDeviceMemoryProperties2 ) load ( userptr , " vkGetPhysicalDeviceMemoryProperties2 " ) ;
glad_vkGetPhysicalDeviceProperties2 = ( PFN_vkGetPhysicalDeviceProperties2 ) load ( userptr , " vkGetPhysicalDeviceProperties2 " ) ;
glad_vkGetPhysicalDeviceQueueFamilyProperties2 = ( PFN_vkGetPhysicalDeviceQueueFamilyProperties2 ) load ( userptr , " vkGetPhysicalDeviceQueueFamilyProperties2 " ) ;
glad_vkGetPhysicalDeviceSparseImageFormatProperties2 = ( PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 ) load ( userptr , " vkGetPhysicalDeviceSparseImageFormatProperties2 " ) ;
glad_vkTrimCommandPool = ( PFN_vkTrimCommandPool ) load ( userptr , " vkTrimCommandPool " ) ;
glad_vkUpdateDescriptorSetWithTemplate = ( PFN_vkUpdateDescriptorSetWithTemplate ) load ( userptr , " vkUpdateDescriptorSetWithTemplate " ) ;
}
static void glad_vk_load_VK_EXT_debug_report ( GLADuserptrloadfunc load , void * userptr ) {
if ( ! GLAD_VK_EXT_debug_report ) return ;
glad_vkCreateDebugReportCallbackEXT = ( PFN_vkCreateDebugReportCallbackEXT ) load ( userptr , " vkCreateDebugReportCallbackEXT " ) ;
glad_vkDebugReportMessageEXT = ( PFN_vkDebugReportMessageEXT ) load ( userptr , " vkDebugReportMessageEXT " ) ;
glad_vkDestroyDebugReportCallbackEXT = ( PFN_vkDestroyDebugReportCallbackEXT ) load ( userptr , " vkDestroyDebugReportCallbackEXT " ) ;
}
static void glad_vk_load_VK_KHR_surface ( GLADuserptrloadfunc load , void * userptr ) {
if ( ! GLAD_VK_KHR_surface ) return ;
glad_vkDestroySurfaceKHR = ( PFN_vkDestroySurfaceKHR ) load ( userptr , " vkDestroySurfaceKHR " ) ;
glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = ( PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR ) load ( userptr , " vkGetPhysicalDeviceSurfaceCapabilitiesKHR " ) ;
glad_vkGetPhysicalDeviceSurfaceFormatsKHR = ( PFN_vkGetPhysicalDeviceSurfaceFormatsKHR ) load ( userptr , " vkGetPhysicalDeviceSurfaceFormatsKHR " ) ;
glad_vkGetPhysicalDeviceSurfacePresentModesKHR = ( PFN_vkGetPhysicalDeviceSurfacePresentModesKHR ) load ( userptr , " vkGetPhysicalDeviceSurfacePresentModesKHR " ) ;
glad_vkGetPhysicalDeviceSurfaceSupportKHR = ( PFN_vkGetPhysicalDeviceSurfaceSupportKHR ) load ( userptr , " vkGetPhysicalDeviceSurfaceSupportKHR " ) ;
}
static void glad_vk_load_VK_KHR_swapchain ( GLADuserptrloadfunc load , void * userptr ) {
if ( ! GLAD_VK_KHR_swapchain ) return ;
glad_vkAcquireNextImage2KHR = ( PFN_vkAcquireNextImage2KHR ) load ( userptr , " vkAcquireNextImage2KHR " ) ;
glad_vkAcquireNextImageKHR = ( PFN_vkAcquireNextImageKHR ) load ( userptr , " vkAcquireNextImageKHR " ) ;
glad_vkCreateSwapchainKHR = ( PFN_vkCreateSwapchainKHR ) load ( userptr , " vkCreateSwapchainKHR " ) ;
glad_vkDestroySwapchainKHR = ( PFN_vkDestroySwapchainKHR ) load ( userptr , " vkDestroySwapchainKHR " ) ;
glad_vkGetDeviceGroupPresentCapabilitiesKHR = ( PFN_vkGetDeviceGroupPresentCapabilitiesKHR ) load ( userptr , " vkGetDeviceGroupPresentCapabilitiesKHR " ) ;
glad_vkGetDeviceGroupSurfacePresentModesKHR = ( PFN_vkGetDeviceGroupSurfacePresentModesKHR ) load ( userptr , " vkGetDeviceGroupSurfacePresentModesKHR " ) ;
glad_vkGetPhysicalDevicePresentRectanglesKHR = ( PFN_vkGetPhysicalDevicePresentRectanglesKHR ) load ( userptr , " vkGetPhysicalDevicePresentRectanglesKHR " ) ;
glad_vkGetSwapchainImagesKHR = ( PFN_vkGetSwapchainImagesKHR ) load ( userptr , " vkGetSwapchainImagesKHR " ) ;
glad_vkQueuePresentKHR = ( PFN_vkQueuePresentKHR ) load ( userptr , " vkQueuePresentKHR " ) ;
}
static int glad_vk_get_extensions ( VkPhysicalDevice physical_device , uint32_t * out_extension_count , char * * * out_extensions ) {
uint32_t i ;
uint32_t instance_extension_count = 0 ;
uint32_t device_extension_count = 0 ;
uint32_t max_extension_count = 0 ;
uint32_t total_extension_count = 0 ;
char * * extensions = NULL ;
VkExtensionProperties * ext_properties = NULL ;
VkResult result ;
if ( glad_vkEnumerateInstanceExtensionProperties = = NULL | | ( physical_device ! = NULL & & glad_vkEnumerateDeviceExtensionProperties = = NULL ) ) {
return 0 ;
}
result = glad_vkEnumerateInstanceExtensionProperties ( NULL , & instance_extension_count , NULL ) ;
if ( result ! = VK_SUCCESS ) {
return 0 ;
}
if ( physical_device ! = NULL ) {
result = glad_vkEnumerateDeviceExtensionProperties ( physical_device , NULL , & device_extension_count , NULL ) ;
if ( result ! = VK_SUCCESS ) {
return 0 ;
}
}
total_extension_count = instance_extension_count + device_extension_count ;
if ( total_extension_count < = 0 ) {
return 0 ;
}
max_extension_count = instance_extension_count > device_extension_count
? instance_extension_count : device_extension_count ;
ext_properties = ( VkExtensionProperties * ) malloc ( max_extension_count * sizeof ( VkExtensionProperties ) ) ;
if ( ext_properties = = NULL ) {
goto glad_vk_get_extensions_error ;
}
result = glad_vkEnumerateInstanceExtensionProperties ( NULL , & instance_extension_count , ext_properties ) ;
if ( result ! = VK_SUCCESS ) {
goto glad_vk_get_extensions_error ;
}
extensions = ( char * * ) calloc ( total_extension_count , sizeof ( char * ) ) ;
if ( extensions = = NULL ) {
goto glad_vk_get_extensions_error ;
}
for ( i = 0 ; i < instance_extension_count ; + + i ) {
VkExtensionProperties ext = ext_properties [ i ] ;
size_t extension_name_length = strlen ( ext . extensionName ) + 1 ;
extensions [ i ] = ( char * ) malloc ( extension_name_length * sizeof ( char ) ) ;
if ( extensions [ i ] = = NULL ) {
goto glad_vk_get_extensions_error ;
}
memcpy ( extensions [ i ] , ext . extensionName , extension_name_length * sizeof ( char ) ) ;
}
if ( physical_device ! = NULL ) {
result = glad_vkEnumerateDeviceExtensionProperties ( physical_device , NULL , & device_extension_count , ext_properties ) ;
if ( result ! = VK_SUCCESS ) {
goto glad_vk_get_extensions_error ;
}
for ( i = 0 ; i < device_extension_count ; + + i ) {
VkExtensionProperties ext = ext_properties [ i ] ;
size_t extension_name_length = strlen ( ext . extensionName ) + 1 ;
extensions [ instance_extension_count + i ] = ( char * ) malloc ( extension_name_length * sizeof ( char ) ) ;
if ( extensions [ instance_extension_count + i ] = = NULL ) {
goto glad_vk_get_extensions_error ;
}
memcpy ( extensions [ instance_extension_count + i ] , ext . extensionName , extension_name_length * sizeof ( char ) ) ;
}
}
free ( ( void * ) ext_properties ) ;
* out_extension_count = total_extension_count ;
* out_extensions = extensions ;
return 1 ;
glad_vk_get_extensions_error :
free ( ( void * ) ext_properties ) ;
if ( extensions ! = NULL ) {
for ( i = 0 ; i < total_extension_count ; + + i ) {
free ( ( void * ) extensions [ i ] ) ;
}
free ( extensions ) ;
}
return 0 ;
}
static void glad_vk_free_extensions ( uint32_t extension_count , char * * extensions ) {
uint32_t i ;
for ( i = 0 ; i < extension_count ; + + i ) {
free ( ( void * ) ( extensions [ i ] ) ) ;
}
free ( ( void * ) extensions ) ;
}
static int glad_vk_has_extension ( const char * name , uint32_t extension_count , char * * extensions ) {
uint32_t i ;
for ( i = 0 ; i < extension_count ; + + i ) {
if ( extensions [ i ] ! = NULL & & strcmp ( name , extensions [ i ] ) = = 0 ) {
return 1 ;
}
}
return 0 ;
}
static GLADapiproc glad_vk_get_proc_from_userptr ( void * userptr , const char * name ) {
return ( GLAD_GNUC_EXTENSION ( GLADapiproc ( * ) ( const char * name ) ) userptr ) ( name ) ;
}
static int glad_vk_find_extensions_vulkan ( VkPhysicalDevice physical_device ) {
uint32_t extension_count = 0 ;
char * * extensions = NULL ;
if ( ! glad_vk_get_extensions ( physical_device , & extension_count , & extensions ) ) return 0 ;
GLAD_VK_EXT_debug_report = glad_vk_has_extension ( " VK_EXT_debug_report " , extension_count , extensions ) ;
GLAD_VK_KHR_surface = glad_vk_has_extension ( " VK_KHR_surface " , extension_count , extensions ) ;
GLAD_VK_KHR_swapchain = glad_vk_has_extension ( " VK_KHR_swapchain " , extension_count , extensions ) ;
( void ) glad_vk_has_extension ;
glad_vk_free_extensions ( extension_count , extensions ) ;
return 1 ;
}
static int glad_vk_find_core_vulkan ( VkPhysicalDevice physical_device ) {
int major = 1 ;
int minor = 0 ;
# ifdef VK_VERSION_1_1
if ( glad_vkEnumerateInstanceVersion ! = NULL ) {
uint32_t version ;
VkResult result ;
result = glad_vkEnumerateInstanceVersion ( & version ) ;
if ( result = = VK_SUCCESS ) {
major = ( int ) VK_VERSION_MAJOR ( version ) ;
minor = ( int ) VK_VERSION_MINOR ( version ) ;
}
}
# endif
if ( physical_device ! = NULL & & glad_vkGetPhysicalDeviceProperties ! = NULL ) {
VkPhysicalDeviceProperties properties ;
glad_vkGetPhysicalDeviceProperties ( physical_device , & properties ) ;
major = ( int ) VK_VERSION_MAJOR ( properties . apiVersion ) ;
minor = ( int ) VK_VERSION_MINOR ( properties . apiVersion ) ;
}
GLAD_VK_VERSION_1_0 = ( major = = 1 & & minor > = 0 ) | | major > 1 ;
GLAD_VK_VERSION_1_1 = ( major = = 1 & & minor > = 1 ) | | major > 1 ;
return GLAD_MAKE_VERSION ( major , minor ) ;
}
int gladLoadVulkanUserPtr ( VkPhysicalDevice physical_device , GLADuserptrloadfunc load , void * userptr ) {
int version ;
# ifdef VK_VERSION_1_1
glad_vkEnumerateInstanceVersion = ( PFN_vkEnumerateInstanceVersion ) load ( userptr , " vkEnumerateInstanceVersion " ) ;
2019-04-14 11:34:38 -04:00
# endif
2021-08-24 19:18:03 -04:00
version = glad_vk_find_core_vulkan ( physical_device ) ;
if ( ! version ) {
return 0 ;
}
glad_vk_load_VK_VERSION_1_0 ( load , userptr ) ;
glad_vk_load_VK_VERSION_1_1 ( load , userptr ) ;
if ( ! glad_vk_find_extensions_vulkan ( physical_device ) ) return 0 ;
glad_vk_load_VK_EXT_debug_report ( load , userptr ) ;
glad_vk_load_VK_KHR_surface ( load , userptr ) ;
glad_vk_load_VK_KHR_swapchain ( load , userptr ) ;
return version ;
}
int gladLoadVulkan ( VkPhysicalDevice physical_device , GLADloadfunc load ) {
return gladLoadVulkanUserPtr ( physical_device , glad_vk_get_proc_from_userptr , GLAD_GNUC_EXTENSION ( void * ) load ) ;
}
# ifdef __cplusplus
}
2019-04-14 11:34:38 -04:00
# endif
2021-08-24 19:18:03 -04:00
# endif /* GLAD_VULKAN_IMPLEMENTATION */