volk.c 133 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830
  1. /* This file is part of volk library; see volk.h for version/license details */
  2. /* clang-format off */
  3. #include "volk.h"
  4. #ifdef _WIN32
  5. typedef const char* LPCSTR;
  6. typedef struct HINSTANCE__* HINSTANCE;
  7. typedef HINSTANCE HMODULE;
  8. #ifdef _WIN64
  9. typedef __int64 (__stdcall* FARPROC)(void);
  10. #else
  11. typedef int (__stdcall* FARPROC)(void);
  12. #endif
  13. #else
  14. # include <dlfcn.h>
  15. #endif
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. #ifdef _WIN32
  20. __declspec(dllimport) HMODULE __stdcall LoadLibraryA(LPCSTR);
  21. __declspec(dllimport) FARPROC __stdcall GetProcAddress(HMODULE, LPCSTR);
  22. #endif
  23. static VkInstance loadedInstance = VK_NULL_HANDLE;
  24. static VkDevice loadedDevice = VK_NULL_HANDLE;
  25. static void volkGenLoadLoader(void* context, PFN_vkVoidFunction (*load)(void*, const char*));
  26. static void volkGenLoadInstance(void* context, PFN_vkVoidFunction (*load)(void*, const char*));
  27. static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, const char*));
  28. static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context, PFN_vkVoidFunction (*load)(void*, const char*));
  29. static PFN_vkVoidFunction vkGetInstanceProcAddrStub(void* context, const char* name)
  30. {
  31. return vkGetInstanceProcAddr((VkInstance)context, name);
  32. }
  33. static PFN_vkVoidFunction vkGetDeviceProcAddrStub(void* context, const char* name)
  34. {
  35. return vkGetDeviceProcAddr((VkDevice)context, name);
  36. }
  37. VkResult volkInitialize(void)
  38. {
  39. #if defined(_WIN32)
  40. HMODULE module = LoadLibraryA("vulkan-1.dll");
  41. if (!module)
  42. return VK_ERROR_INITIALIZATION_FAILED;
  43. // note: function pointer is cast through void function pointer to silence cast-function-type warning on gcc8
  44. vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)(void(*)(void))GetProcAddress(module, "vkGetInstanceProcAddr");
  45. #elif defined(__APPLE__)
  46. void* module = dlopen("libvulkan.dylib", RTLD_NOW | RTLD_LOCAL);
  47. if (!module)
  48. module = dlopen("libvulkan.1.dylib", RTLD_NOW | RTLD_LOCAL);
  49. if (!module)
  50. module = dlopen("libMoltenVK.dylib", RTLD_NOW | RTLD_LOCAL);
  51. if (!module)
  52. return VK_ERROR_INITIALIZATION_FAILED;
  53. vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlsym(module, "vkGetInstanceProcAddr");
  54. #else
  55. void* module = dlopen("libvulkan.so.1", RTLD_NOW | RTLD_LOCAL);
  56. if (!module)
  57. module = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL);
  58. if (!module)
  59. return VK_ERROR_INITIALIZATION_FAILED;
  60. vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlsym(module, "vkGetInstanceProcAddr");
  61. #endif
  62. volkGenLoadLoader(NULL, vkGetInstanceProcAddrStub);
  63. return VK_SUCCESS;
  64. }
  65. void volkInitializeCustom(PFN_vkGetInstanceProcAddr handler)
  66. {
  67. vkGetInstanceProcAddr = handler;
  68. volkGenLoadLoader(NULL, vkGetInstanceProcAddrStub);
  69. }
  70. uint32_t volkGetInstanceVersion(void)
  71. {
  72. #if defined(VK_VERSION_1_1)
  73. uint32_t apiVersion = 0;
  74. if (vkEnumerateInstanceVersion && vkEnumerateInstanceVersion(&apiVersion) == VK_SUCCESS)
  75. return apiVersion;
  76. #endif
  77. if (vkCreateInstance)
  78. return VK_API_VERSION_1_0;
  79. return 0;
  80. }
  81. void volkLoadInstance(VkInstance instance)
  82. {
  83. loadedInstance = instance;
  84. volkGenLoadInstance(instance, vkGetInstanceProcAddrStub);
  85. volkGenLoadDevice(instance, vkGetInstanceProcAddrStub);
  86. }
  87. void volkLoadInstanceOnly(VkInstance instance)
  88. {
  89. loadedInstance = instance;
  90. volkGenLoadInstance(instance, vkGetInstanceProcAddrStub);
  91. }
  92. VkInstance volkGetLoadedInstance()
  93. {
  94. return loadedInstance;
  95. }
  96. void volkLoadDevice(VkDevice device)
  97. {
  98. loadedDevice = device;
  99. volkGenLoadDevice(device, vkGetDeviceProcAddrStub);
  100. }
  101. VkDevice volkGetLoadedDevice()
  102. {
  103. return loadedDevice;
  104. }
  105. void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device)
  106. {
  107. volkGenLoadDeviceTable(table, device, vkGetDeviceProcAddrStub);
  108. }
  109. static void volkGenLoadLoader(void* context, PFN_vkVoidFunction (*load)(void*, const char*))
  110. {
  111. /* VOLK_GENERATE_LOAD_LOADER */
  112. #if defined(VK_VERSION_1_0)
  113. vkCreateInstance = (PFN_vkCreateInstance)load(context, "vkCreateInstance");
  114. vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties)load(context, "vkEnumerateInstanceExtensionProperties");
  115. vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties)load(context, "vkEnumerateInstanceLayerProperties");
  116. #endif /* defined(VK_VERSION_1_0) */
  117. #if defined(VK_VERSION_1_1)
  118. vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)load(context, "vkEnumerateInstanceVersion");
  119. #endif /* defined(VK_VERSION_1_1) */
  120. /* VOLK_GENERATE_LOAD_LOADER */
  121. }
  122. static void volkGenLoadInstance(void* context, PFN_vkVoidFunction (*load)(void*, const char*))
  123. {
  124. /* VOLK_GENERATE_LOAD_INSTANCE */
  125. #if defined(VK_VERSION_1_0)
  126. vkCreateDevice = (PFN_vkCreateDevice)load(context, "vkCreateDevice");
  127. vkDestroyInstance = (PFN_vkDestroyInstance)load(context, "vkDestroyInstance");
  128. vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)load(context, "vkEnumerateDeviceExtensionProperties");
  129. vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)load(context, "vkEnumerateDeviceLayerProperties");
  130. vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)load(context, "vkEnumeratePhysicalDevices");
  131. vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr)load(context, "vkGetDeviceProcAddr");
  132. vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)load(context, "vkGetPhysicalDeviceFeatures");
  133. vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)load(context, "vkGetPhysicalDeviceFormatProperties");
  134. vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)load(context, "vkGetPhysicalDeviceImageFormatProperties");
  135. vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)load(context, "vkGetPhysicalDeviceMemoryProperties");
  136. vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)load(context, "vkGetPhysicalDeviceProperties");
  137. vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)load(context, "vkGetPhysicalDeviceQueueFamilyProperties");
  138. vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties");
  139. #endif /* defined(VK_VERSION_1_0) */
  140. #if defined(VK_VERSION_1_1)
  141. vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)load(context, "vkEnumeratePhysicalDeviceGroups");
  142. vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)load(context, "vkGetPhysicalDeviceExternalBufferProperties");
  143. vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)load(context, "vkGetPhysicalDeviceExternalFenceProperties");
  144. vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)load(context, "vkGetPhysicalDeviceExternalSemaphoreProperties");
  145. vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)load(context, "vkGetPhysicalDeviceFeatures2");
  146. vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)load(context, "vkGetPhysicalDeviceFormatProperties2");
  147. vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)load(context, "vkGetPhysicalDeviceImageFormatProperties2");
  148. vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)load(context, "vkGetPhysicalDeviceMemoryProperties2");
  149. vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)load(context, "vkGetPhysicalDeviceProperties2");
  150. vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)load(context, "vkGetPhysicalDeviceQueueFamilyProperties2");
  151. vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties2");
  152. #endif /* defined(VK_VERSION_1_1) */
  153. #if defined(VK_EXT_acquire_xlib_display)
  154. vkAcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)load(context, "vkAcquireXlibDisplayEXT");
  155. vkGetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)load(context, "vkGetRandROutputDisplayEXT");
  156. #endif /* defined(VK_EXT_acquire_xlib_display) */
  157. #if defined(VK_EXT_calibrated_timestamps)
  158. vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)load(context, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
  159. #endif /* defined(VK_EXT_calibrated_timestamps) */
  160. #if defined(VK_EXT_debug_report)
  161. vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)load(context, "vkCreateDebugReportCallbackEXT");
  162. vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)load(context, "vkDebugReportMessageEXT");
  163. vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)load(context, "vkDestroyDebugReportCallbackEXT");
  164. #endif /* defined(VK_EXT_debug_report) */
  165. #if defined(VK_EXT_debug_utils)
  166. vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)load(context, "vkCmdBeginDebugUtilsLabelEXT");
  167. vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)load(context, "vkCmdEndDebugUtilsLabelEXT");
  168. vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)load(context, "vkCmdInsertDebugUtilsLabelEXT");
  169. vkCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)load(context, "vkCreateDebugUtilsMessengerEXT");
  170. vkDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)load(context, "vkDestroyDebugUtilsMessengerEXT");
  171. vkQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)load(context, "vkQueueBeginDebugUtilsLabelEXT");
  172. vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)load(context, "vkQueueEndDebugUtilsLabelEXT");
  173. vkQueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)load(context, "vkQueueInsertDebugUtilsLabelEXT");
  174. vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)load(context, "vkSetDebugUtilsObjectNameEXT");
  175. vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)load(context, "vkSetDebugUtilsObjectTagEXT");
  176. vkSubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)load(context, "vkSubmitDebugUtilsMessageEXT");
  177. #endif /* defined(VK_EXT_debug_utils) */
  178. #if defined(VK_EXT_direct_mode_display)
  179. vkReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)load(context, "vkReleaseDisplayEXT");
  180. #endif /* defined(VK_EXT_direct_mode_display) */
  181. #if defined(VK_EXT_display_surface_counter)
  182. vkGetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)load(context, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
  183. #endif /* defined(VK_EXT_display_surface_counter) */
  184. #if defined(VK_EXT_full_screen_exclusive)
  185. vkGetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)load(context, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
  186. #endif /* defined(VK_EXT_full_screen_exclusive) */
  187. #if defined(VK_EXT_headless_surface)
  188. vkCreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)load(context, "vkCreateHeadlessSurfaceEXT");
  189. #endif /* defined(VK_EXT_headless_surface) */
  190. #if defined(VK_EXT_metal_surface)
  191. vkCreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)load(context, "vkCreateMetalSurfaceEXT");
  192. #endif /* defined(VK_EXT_metal_surface) */
  193. #if defined(VK_EXT_sample_locations)
  194. vkGetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)load(context, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
  195. #endif /* defined(VK_EXT_sample_locations) */
  196. #if defined(VK_EXT_tooling_info)
  197. vkGetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)load(context, "vkGetPhysicalDeviceToolPropertiesEXT");
  198. #endif /* defined(VK_EXT_tooling_info) */
  199. #if defined(VK_FUCHSIA_imagepipe_surface)
  200. vkCreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)load(context, "vkCreateImagePipeSurfaceFUCHSIA");
  201. #endif /* defined(VK_FUCHSIA_imagepipe_surface) */
  202. #if defined(VK_GGP_stream_descriptor_surface)
  203. vkCreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)load(context, "vkCreateStreamDescriptorSurfaceGGP");
  204. #endif /* defined(VK_GGP_stream_descriptor_surface) */
  205. #if defined(VK_KHR_android_surface)
  206. vkCreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)load(context, "vkCreateAndroidSurfaceKHR");
  207. #endif /* defined(VK_KHR_android_surface) */
  208. #if defined(VK_KHR_device_group_creation)
  209. vkEnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)load(context, "vkEnumeratePhysicalDeviceGroupsKHR");
  210. #endif /* defined(VK_KHR_device_group_creation) */
  211. #if defined(VK_KHR_display)
  212. vkCreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)load(context, "vkCreateDisplayModeKHR");
  213. vkCreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)load(context, "vkCreateDisplayPlaneSurfaceKHR");
  214. vkGetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)load(context, "vkGetDisplayModePropertiesKHR");
  215. vkGetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)load(context, "vkGetDisplayPlaneCapabilitiesKHR");
  216. vkGetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)load(context, "vkGetDisplayPlaneSupportedDisplaysKHR");
  217. vkGetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)load(context, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
  218. vkGetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)load(context, "vkGetPhysicalDeviceDisplayPropertiesKHR");
  219. #endif /* defined(VK_KHR_display) */
  220. #if defined(VK_KHR_external_fence_capabilities)
  221. vkGetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)load(context, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
  222. #endif /* defined(VK_KHR_external_fence_capabilities) */
  223. #if defined(VK_KHR_external_memory_capabilities)
  224. vkGetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)load(context, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
  225. #endif /* defined(VK_KHR_external_memory_capabilities) */
  226. #if defined(VK_KHR_external_semaphore_capabilities)
  227. vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)load(context, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
  228. #endif /* defined(VK_KHR_external_semaphore_capabilities) */
  229. #if defined(VK_KHR_get_display_properties2)
  230. vkGetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)load(context, "vkGetDisplayModeProperties2KHR");
  231. vkGetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)load(context, "vkGetDisplayPlaneCapabilities2KHR");
  232. vkGetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)load(context, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
  233. vkGetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)load(context, "vkGetPhysicalDeviceDisplayProperties2KHR");
  234. #endif /* defined(VK_KHR_get_display_properties2) */
  235. #if defined(VK_KHR_get_physical_device_properties2)
  236. vkGetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)load(context, "vkGetPhysicalDeviceFeatures2KHR");
  237. vkGetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)load(context, "vkGetPhysicalDeviceFormatProperties2KHR");
  238. vkGetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)load(context, "vkGetPhysicalDeviceImageFormatProperties2KHR");
  239. vkGetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)load(context, "vkGetPhysicalDeviceMemoryProperties2KHR");
  240. vkGetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)load(context, "vkGetPhysicalDeviceProperties2KHR");
  241. vkGetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)load(context, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
  242. vkGetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
  243. #endif /* defined(VK_KHR_get_physical_device_properties2) */
  244. #if defined(VK_KHR_get_surface_capabilities2)
  245. vkGetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)load(context, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
  246. vkGetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)load(context, "vkGetPhysicalDeviceSurfaceFormats2KHR");
  247. #endif /* defined(VK_KHR_get_surface_capabilities2) */
  248. #if defined(VK_KHR_performance_query)
  249. vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)load(context, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
  250. vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)load(context, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
  251. #endif /* defined(VK_KHR_performance_query) */
  252. #if defined(VK_KHR_surface)
  253. vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)load(context, "vkDestroySurfaceKHR");
  254. vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)load(context, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
  255. vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)load(context, "vkGetPhysicalDeviceSurfaceFormatsKHR");
  256. vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)load(context, "vkGetPhysicalDeviceSurfacePresentModesKHR");
  257. vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)load(context, "vkGetPhysicalDeviceSurfaceSupportKHR");
  258. #endif /* defined(VK_KHR_surface) */
  259. #if defined(VK_KHR_wayland_surface)
  260. vkCreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)load(context, "vkCreateWaylandSurfaceKHR");
  261. vkGetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)load(context, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
  262. #endif /* defined(VK_KHR_wayland_surface) */
  263. #if defined(VK_KHR_win32_surface)
  264. vkCreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)load(context, "vkCreateWin32SurfaceKHR");
  265. vkGetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)load(context, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
  266. #endif /* defined(VK_KHR_win32_surface) */
  267. #if defined(VK_KHR_xcb_surface)
  268. vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)load(context, "vkCreateXcbSurfaceKHR");
  269. vkGetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)load(context, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
  270. #endif /* defined(VK_KHR_xcb_surface) */
  271. #if defined(VK_KHR_xlib_surface)
  272. vkCreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)load(context, "vkCreateXlibSurfaceKHR");
  273. vkGetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)load(context, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
  274. #endif /* defined(VK_KHR_xlib_surface) */
  275. #if defined(VK_MVK_ios_surface)
  276. vkCreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)load(context, "vkCreateIOSSurfaceMVK");
  277. #endif /* defined(VK_MVK_ios_surface) */
  278. #if defined(VK_MVK_macos_surface)
  279. vkCreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)load(context, "vkCreateMacOSSurfaceMVK");
  280. #endif /* defined(VK_MVK_macos_surface) */
  281. #if defined(VK_NN_vi_surface)
  282. vkCreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)load(context, "vkCreateViSurfaceNN");
  283. #endif /* defined(VK_NN_vi_surface) */
  284. #if defined(VK_NV_cooperative_matrix)
  285. vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)load(context, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
  286. #endif /* defined(VK_NV_cooperative_matrix) */
  287. #if defined(VK_NV_coverage_reduction_mode)
  288. vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)load(context, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
  289. #endif /* defined(VK_NV_coverage_reduction_mode) */
  290. #if defined(VK_NV_external_memory_capabilities)
  291. vkGetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)load(context, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
  292. #endif /* defined(VK_NV_external_memory_capabilities) */
  293. #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
  294. vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)load(context, "vkGetPhysicalDevicePresentRectanglesKHR");
  295. #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
  296. /* VOLK_GENERATE_LOAD_INSTANCE */
  297. }
  298. static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, const char*))
  299. {
  300. /* VOLK_GENERATE_LOAD_DEVICE */
  301. #if defined(VK_VERSION_1_0)
  302. vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)load(context, "vkAllocateCommandBuffers");
  303. vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)load(context, "vkAllocateDescriptorSets");
  304. vkAllocateMemory = (PFN_vkAllocateMemory)load(context, "vkAllocateMemory");
  305. vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)load(context, "vkBeginCommandBuffer");
  306. vkBindBufferMemory = (PFN_vkBindBufferMemory)load(context, "vkBindBufferMemory");
  307. vkBindImageMemory = (PFN_vkBindImageMemory)load(context, "vkBindImageMemory");
  308. vkCmdBeginQuery = (PFN_vkCmdBeginQuery)load(context, "vkCmdBeginQuery");
  309. vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)load(context, "vkCmdBeginRenderPass");
  310. vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)load(context, "vkCmdBindDescriptorSets");
  311. vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)load(context, "vkCmdBindIndexBuffer");
  312. vkCmdBindPipeline = (PFN_vkCmdBindPipeline)load(context, "vkCmdBindPipeline");
  313. vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)load(context, "vkCmdBindVertexBuffers");
  314. vkCmdBlitImage = (PFN_vkCmdBlitImage)load(context, "vkCmdBlitImage");
  315. vkCmdClearAttachments = (PFN_vkCmdClearAttachments)load(context, "vkCmdClearAttachments");
  316. vkCmdClearColorImage = (PFN_vkCmdClearColorImage)load(context, "vkCmdClearColorImage");
  317. vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)load(context, "vkCmdClearDepthStencilImage");
  318. vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)load(context, "vkCmdCopyBuffer");
  319. vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)load(context, "vkCmdCopyBufferToImage");
  320. vkCmdCopyImage = (PFN_vkCmdCopyImage)load(context, "vkCmdCopyImage");
  321. vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)load(context, "vkCmdCopyImageToBuffer");
  322. vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)load(context, "vkCmdCopyQueryPoolResults");
  323. vkCmdDispatch = (PFN_vkCmdDispatch)load(context, "vkCmdDispatch");
  324. vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)load(context, "vkCmdDispatchIndirect");
  325. vkCmdDraw = (PFN_vkCmdDraw)load(context, "vkCmdDraw");
  326. vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)load(context, "vkCmdDrawIndexed");
  327. vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)load(context, "vkCmdDrawIndexedIndirect");
  328. vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)load(context, "vkCmdDrawIndirect");
  329. vkCmdEndQuery = (PFN_vkCmdEndQuery)load(context, "vkCmdEndQuery");
  330. vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)load(context, "vkCmdEndRenderPass");
  331. vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)load(context, "vkCmdExecuteCommands");
  332. vkCmdFillBuffer = (PFN_vkCmdFillBuffer)load(context, "vkCmdFillBuffer");
  333. vkCmdNextSubpass = (PFN_vkCmdNextSubpass)load(context, "vkCmdNextSubpass");
  334. vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)load(context, "vkCmdPipelineBarrier");
  335. vkCmdPushConstants = (PFN_vkCmdPushConstants)load(context, "vkCmdPushConstants");
  336. vkCmdResetEvent = (PFN_vkCmdResetEvent)load(context, "vkCmdResetEvent");
  337. vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)load(context, "vkCmdResetQueryPool");
  338. vkCmdResolveImage = (PFN_vkCmdResolveImage)load(context, "vkCmdResolveImage");
  339. vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)load(context, "vkCmdSetBlendConstants");
  340. vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)load(context, "vkCmdSetDepthBias");
  341. vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)load(context, "vkCmdSetDepthBounds");
  342. vkCmdSetEvent = (PFN_vkCmdSetEvent)load(context, "vkCmdSetEvent");
  343. vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)load(context, "vkCmdSetLineWidth");
  344. vkCmdSetScissor = (PFN_vkCmdSetScissor)load(context, "vkCmdSetScissor");
  345. vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)load(context, "vkCmdSetStencilCompareMask");
  346. vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)load(context, "vkCmdSetStencilReference");
  347. vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)load(context, "vkCmdSetStencilWriteMask");
  348. vkCmdSetViewport = (PFN_vkCmdSetViewport)load(context, "vkCmdSetViewport");
  349. vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)load(context, "vkCmdUpdateBuffer");
  350. vkCmdWaitEvents = (PFN_vkCmdWaitEvents)load(context, "vkCmdWaitEvents");
  351. vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)load(context, "vkCmdWriteTimestamp");
  352. vkCreateBuffer = (PFN_vkCreateBuffer)load(context, "vkCreateBuffer");
  353. vkCreateBufferView = (PFN_vkCreateBufferView)load(context, "vkCreateBufferView");
  354. vkCreateCommandPool = (PFN_vkCreateCommandPool)load(context, "vkCreateCommandPool");
  355. vkCreateComputePipelines = (PFN_vkCreateComputePipelines)load(context, "vkCreateComputePipelines");
  356. vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)load(context, "vkCreateDescriptorPool");
  357. vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)load(context, "vkCreateDescriptorSetLayout");
  358. vkCreateEvent = (PFN_vkCreateEvent)load(context, "vkCreateEvent");
  359. vkCreateFence = (PFN_vkCreateFence)load(context, "vkCreateFence");
  360. vkCreateFramebuffer = (PFN_vkCreateFramebuffer)load(context, "vkCreateFramebuffer");
  361. vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)load(context, "vkCreateGraphicsPipelines");
  362. vkCreateImage = (PFN_vkCreateImage)load(context, "vkCreateImage");
  363. vkCreateImageView = (PFN_vkCreateImageView)load(context, "vkCreateImageView");
  364. vkCreatePipelineCache = (PFN_vkCreatePipelineCache)load(context, "vkCreatePipelineCache");
  365. vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)load(context, "vkCreatePipelineLayout");
  366. vkCreateQueryPool = (PFN_vkCreateQueryPool)load(context, "vkCreateQueryPool");
  367. vkCreateRenderPass = (PFN_vkCreateRenderPass)load(context, "vkCreateRenderPass");
  368. vkCreateSampler = (PFN_vkCreateSampler)load(context, "vkCreateSampler");
  369. vkCreateSemaphore = (PFN_vkCreateSemaphore)load(context, "vkCreateSemaphore");
  370. vkCreateShaderModule = (PFN_vkCreateShaderModule)load(context, "vkCreateShaderModule");
  371. vkDestroyBuffer = (PFN_vkDestroyBuffer)load(context, "vkDestroyBuffer");
  372. vkDestroyBufferView = (PFN_vkDestroyBufferView)load(context, "vkDestroyBufferView");
  373. vkDestroyCommandPool = (PFN_vkDestroyCommandPool)load(context, "vkDestroyCommandPool");
  374. vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)load(context, "vkDestroyDescriptorPool");
  375. vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)load(context, "vkDestroyDescriptorSetLayout");
  376. vkDestroyDevice = (PFN_vkDestroyDevice)load(context, "vkDestroyDevice");
  377. vkDestroyEvent = (PFN_vkDestroyEvent)load(context, "vkDestroyEvent");
  378. vkDestroyFence = (PFN_vkDestroyFence)load(context, "vkDestroyFence");
  379. vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)load(context, "vkDestroyFramebuffer");
  380. vkDestroyImage = (PFN_vkDestroyImage)load(context, "vkDestroyImage");
  381. vkDestroyImageView = (PFN_vkDestroyImageView)load(context, "vkDestroyImageView");
  382. vkDestroyPipeline = (PFN_vkDestroyPipeline)load(context, "vkDestroyPipeline");
  383. vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)load(context, "vkDestroyPipelineCache");
  384. vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)load(context, "vkDestroyPipelineLayout");
  385. vkDestroyQueryPool = (PFN_vkDestroyQueryPool)load(context, "vkDestroyQueryPool");
  386. vkDestroyRenderPass = (PFN_vkDestroyRenderPass)load(context, "vkDestroyRenderPass");
  387. vkDestroySampler = (PFN_vkDestroySampler)load(context, "vkDestroySampler");
  388. vkDestroySemaphore = (PFN_vkDestroySemaphore)load(context, "vkDestroySemaphore");
  389. vkDestroyShaderModule = (PFN_vkDestroyShaderModule)load(context, "vkDestroyShaderModule");
  390. vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)load(context, "vkDeviceWaitIdle");
  391. vkEndCommandBuffer = (PFN_vkEndCommandBuffer)load(context, "vkEndCommandBuffer");
  392. vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)load(context, "vkFlushMappedMemoryRanges");
  393. vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)load(context, "vkFreeCommandBuffers");
  394. vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)load(context, "vkFreeDescriptorSets");
  395. vkFreeMemory = (PFN_vkFreeMemory)load(context, "vkFreeMemory");
  396. vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)load(context, "vkGetBufferMemoryRequirements");
  397. vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)load(context, "vkGetDeviceMemoryCommitment");
  398. vkGetDeviceQueue = (PFN_vkGetDeviceQueue)load(context, "vkGetDeviceQueue");
  399. vkGetEventStatus = (PFN_vkGetEventStatus)load(context, "vkGetEventStatus");
  400. vkGetFenceStatus = (PFN_vkGetFenceStatus)load(context, "vkGetFenceStatus");
  401. vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)load(context, "vkGetImageMemoryRequirements");
  402. vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)load(context, "vkGetImageSparseMemoryRequirements");
  403. vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)load(context, "vkGetImageSubresourceLayout");
  404. vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)load(context, "vkGetPipelineCacheData");
  405. vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)load(context, "vkGetQueryPoolResults");
  406. vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)load(context, "vkGetRenderAreaGranularity");
  407. vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)load(context, "vkInvalidateMappedMemoryRanges");
  408. vkMapMemory = (PFN_vkMapMemory)load(context, "vkMapMemory");
  409. vkMergePipelineCaches = (PFN_vkMergePipelineCaches)load(context, "vkMergePipelineCaches");
  410. vkQueueBindSparse = (PFN_vkQueueBindSparse)load(context, "vkQueueBindSparse");
  411. vkQueueSubmit = (PFN_vkQueueSubmit)load(context, "vkQueueSubmit");
  412. vkQueueWaitIdle = (PFN_vkQueueWaitIdle)load(context, "vkQueueWaitIdle");
  413. vkResetCommandBuffer = (PFN_vkResetCommandBuffer)load(context, "vkResetCommandBuffer");
  414. vkResetCommandPool = (PFN_vkResetCommandPool)load(context, "vkResetCommandPool");
  415. vkResetDescriptorPool = (PFN_vkResetDescriptorPool)load(context, "vkResetDescriptorPool");
  416. vkResetEvent = (PFN_vkResetEvent)load(context, "vkResetEvent");
  417. vkResetFences = (PFN_vkResetFences)load(context, "vkResetFences");
  418. vkSetEvent = (PFN_vkSetEvent)load(context, "vkSetEvent");
  419. vkUnmapMemory = (PFN_vkUnmapMemory)load(context, "vkUnmapMemory");
  420. vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)load(context, "vkUpdateDescriptorSets");
  421. vkWaitForFences = (PFN_vkWaitForFences)load(context, "vkWaitForFences");
  422. #endif /* defined(VK_VERSION_1_0) */
  423. #if defined(VK_VERSION_1_1)
  424. vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)load(context, "vkBindBufferMemory2");
  425. vkBindImageMemory2 = (PFN_vkBindImageMemory2)load(context, "vkBindImageMemory2");
  426. vkCmdDispatchBase = (PFN_vkCmdDispatchBase)load(context, "vkCmdDispatchBase");
  427. vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)load(context, "vkCmdSetDeviceMask");
  428. vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)load(context, "vkCreateDescriptorUpdateTemplate");
  429. vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)load(context, "vkCreateSamplerYcbcrConversion");
  430. vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)load(context, "vkDestroyDescriptorUpdateTemplate");
  431. vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)load(context, "vkDestroySamplerYcbcrConversion");
  432. vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)load(context, "vkGetBufferMemoryRequirements2");
  433. vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)load(context, "vkGetDescriptorSetLayoutSupport");
  434. vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)load(context, "vkGetDeviceGroupPeerMemoryFeatures");
  435. vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)load(context, "vkGetDeviceQueue2");
  436. vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)load(context, "vkGetImageMemoryRequirements2");
  437. vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)load(context, "vkGetImageSparseMemoryRequirements2");
  438. vkTrimCommandPool = (PFN_vkTrimCommandPool)load(context, "vkTrimCommandPool");
  439. vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)load(context, "vkUpdateDescriptorSetWithTemplate");
  440. #endif /* defined(VK_VERSION_1_1) */
  441. #if defined(VK_VERSION_1_2)
  442. vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)load(context, "vkCmdBeginRenderPass2");
  443. vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)load(context, "vkCmdDrawIndexedIndirectCount");
  444. vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)load(context, "vkCmdDrawIndirectCount");
  445. vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)load(context, "vkCmdEndRenderPass2");
  446. vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2)load(context, "vkCmdNextSubpass2");
  447. vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)load(context, "vkCreateRenderPass2");
  448. vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)load(context, "vkGetBufferDeviceAddress");
  449. vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)load(context, "vkGetBufferOpaqueCaptureAddress");
  450. vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)load(context, "vkGetDeviceMemoryOpaqueCaptureAddress");
  451. vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)load(context, "vkGetSemaphoreCounterValue");
  452. vkResetQueryPool = (PFN_vkResetQueryPool)load(context, "vkResetQueryPool");
  453. vkSignalSemaphore = (PFN_vkSignalSemaphore)load(context, "vkSignalSemaphore");
  454. vkWaitSemaphores = (PFN_vkWaitSemaphores)load(context, "vkWaitSemaphores");
  455. #endif /* defined(VK_VERSION_1_2) */
  456. #if defined(VK_AMD_buffer_marker)
  457. vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)load(context, "vkCmdWriteBufferMarkerAMD");
  458. #endif /* defined(VK_AMD_buffer_marker) */
  459. #if defined(VK_AMD_display_native_hdr)
  460. vkSetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)load(context, "vkSetLocalDimmingAMD");
  461. #endif /* defined(VK_AMD_display_native_hdr) */
  462. #if defined(VK_AMD_draw_indirect_count)
  463. vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)load(context, "vkCmdDrawIndexedIndirectCountAMD");
  464. vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)load(context, "vkCmdDrawIndirectCountAMD");
  465. #endif /* defined(VK_AMD_draw_indirect_count) */
  466. #if defined(VK_AMD_shader_info)
  467. vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)load(context, "vkGetShaderInfoAMD");
  468. #endif /* defined(VK_AMD_shader_info) */
  469. #if defined(VK_ANDROID_external_memory_android_hardware_buffer)
  470. vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)load(context, "vkGetAndroidHardwareBufferPropertiesANDROID");
  471. vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)load(context, "vkGetMemoryAndroidHardwareBufferANDROID");
  472. #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */
  473. #if defined(VK_EXT_buffer_device_address)
  474. vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)load(context, "vkGetBufferDeviceAddressEXT");
  475. #endif /* defined(VK_EXT_buffer_device_address) */
  476. #if defined(VK_EXT_calibrated_timestamps)
  477. vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)load(context, "vkGetCalibratedTimestampsEXT");
  478. #endif /* defined(VK_EXT_calibrated_timestamps) */
  479. #if defined(VK_EXT_conditional_rendering)
  480. vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)load(context, "vkCmdBeginConditionalRenderingEXT");
  481. vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)load(context, "vkCmdEndConditionalRenderingEXT");
  482. #endif /* defined(VK_EXT_conditional_rendering) */
  483. #if defined(VK_EXT_debug_marker)
  484. vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)load(context, "vkCmdDebugMarkerBeginEXT");
  485. vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)load(context, "vkCmdDebugMarkerEndEXT");
  486. vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)load(context, "vkCmdDebugMarkerInsertEXT");
  487. vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)load(context, "vkDebugMarkerSetObjectNameEXT");
  488. vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)load(context, "vkDebugMarkerSetObjectTagEXT");
  489. #endif /* defined(VK_EXT_debug_marker) */
  490. #if defined(VK_EXT_discard_rectangles)
  491. vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)load(context, "vkCmdSetDiscardRectangleEXT");
  492. #endif /* defined(VK_EXT_discard_rectangles) */
  493. #if defined(VK_EXT_display_control)
  494. vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)load(context, "vkDisplayPowerControlEXT");
  495. vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)load(context, "vkGetSwapchainCounterEXT");
  496. vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)load(context, "vkRegisterDeviceEventEXT");
  497. vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)load(context, "vkRegisterDisplayEventEXT");
  498. #endif /* defined(VK_EXT_display_control) */
  499. #if defined(VK_EXT_external_memory_host)
  500. vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)load(context, "vkGetMemoryHostPointerPropertiesEXT");
  501. #endif /* defined(VK_EXT_external_memory_host) */
  502. #if defined(VK_EXT_full_screen_exclusive)
  503. vkAcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)load(context, "vkAcquireFullScreenExclusiveModeEXT");
  504. vkReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)load(context, "vkReleaseFullScreenExclusiveModeEXT");
  505. #endif /* defined(VK_EXT_full_screen_exclusive) */
  506. #if defined(VK_EXT_hdr_metadata)
  507. vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)load(context, "vkSetHdrMetadataEXT");
  508. #endif /* defined(VK_EXT_hdr_metadata) */
  509. #if defined(VK_EXT_host_query_reset)
  510. vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)load(context, "vkResetQueryPoolEXT");
  511. #endif /* defined(VK_EXT_host_query_reset) */
  512. #if defined(VK_EXT_image_drm_format_modifier)
  513. vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)load(context, "vkGetImageDrmFormatModifierPropertiesEXT");
  514. #endif /* defined(VK_EXT_image_drm_format_modifier) */
  515. #if defined(VK_EXT_line_rasterization)
  516. vkCmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)load(context, "vkCmdSetLineStippleEXT");
  517. #endif /* defined(VK_EXT_line_rasterization) */
  518. #if defined(VK_EXT_sample_locations)
  519. vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)load(context, "vkCmdSetSampleLocationsEXT");
  520. #endif /* defined(VK_EXT_sample_locations) */
  521. #if defined(VK_EXT_transform_feedback)
  522. vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)load(context, "vkCmdBeginQueryIndexedEXT");
  523. vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)load(context, "vkCmdBeginTransformFeedbackEXT");
  524. vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)load(context, "vkCmdBindTransformFeedbackBuffersEXT");
  525. vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)load(context, "vkCmdDrawIndirectByteCountEXT");
  526. vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)load(context, "vkCmdEndQueryIndexedEXT");
  527. vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)load(context, "vkCmdEndTransformFeedbackEXT");
  528. #endif /* defined(VK_EXT_transform_feedback) */
  529. #if defined(VK_EXT_validation_cache)
  530. vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)load(context, "vkCreateValidationCacheEXT");
  531. vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)load(context, "vkDestroyValidationCacheEXT");
  532. vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)load(context, "vkGetValidationCacheDataEXT");
  533. vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)load(context, "vkMergeValidationCachesEXT");
  534. #endif /* defined(VK_EXT_validation_cache) */
  535. #if defined(VK_GOOGLE_display_timing)
  536. vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)load(context, "vkGetPastPresentationTimingGOOGLE");
  537. vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)load(context, "vkGetRefreshCycleDurationGOOGLE");
  538. #endif /* defined(VK_GOOGLE_display_timing) */
  539. #if defined(VK_INTEL_performance_query)
  540. vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)load(context, "vkAcquirePerformanceConfigurationINTEL");
  541. vkCmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)load(context, "vkCmdSetPerformanceMarkerINTEL");
  542. vkCmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)load(context, "vkCmdSetPerformanceOverrideINTEL");
  543. vkCmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)load(context, "vkCmdSetPerformanceStreamMarkerINTEL");
  544. vkGetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)load(context, "vkGetPerformanceParameterINTEL");
  545. vkInitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)load(context, "vkInitializePerformanceApiINTEL");
  546. vkQueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)load(context, "vkQueueSetPerformanceConfigurationINTEL");
  547. vkReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)load(context, "vkReleasePerformanceConfigurationINTEL");
  548. vkUninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)load(context, "vkUninitializePerformanceApiINTEL");
  549. #endif /* defined(VK_INTEL_performance_query) */
  550. #if defined(VK_KHR_bind_memory2)
  551. vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)load(context, "vkBindBufferMemory2KHR");
  552. vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)load(context, "vkBindImageMemory2KHR");
  553. #endif /* defined(VK_KHR_bind_memory2) */
  554. #if defined(VK_KHR_buffer_device_address)
  555. vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)load(context, "vkGetBufferDeviceAddressKHR");
  556. vkGetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)load(context, "vkGetBufferOpaqueCaptureAddressKHR");
  557. vkGetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)load(context, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
  558. #endif /* defined(VK_KHR_buffer_device_address) */
  559. #if defined(VK_KHR_create_renderpass2)
  560. vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)load(context, "vkCmdBeginRenderPass2KHR");
  561. vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)load(context, "vkCmdEndRenderPass2KHR");
  562. vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)load(context, "vkCmdNextSubpass2KHR");
  563. vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)load(context, "vkCreateRenderPass2KHR");
  564. #endif /* defined(VK_KHR_create_renderpass2) */
  565. #if defined(VK_KHR_deferred_host_operations)
  566. vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)load(context, "vkCreateDeferredOperationKHR");
  567. vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)load(context, "vkDeferredOperationJoinKHR");
  568. vkDestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)load(context, "vkDestroyDeferredOperationKHR");
  569. vkGetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)load(context, "vkGetDeferredOperationMaxConcurrencyKHR");
  570. vkGetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)load(context, "vkGetDeferredOperationResultKHR");
  571. #endif /* defined(VK_KHR_deferred_host_operations) */
  572. #if defined(VK_KHR_descriptor_update_template)
  573. vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)load(context, "vkCreateDescriptorUpdateTemplateKHR");
  574. vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)load(context, "vkDestroyDescriptorUpdateTemplateKHR");
  575. vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)load(context, "vkUpdateDescriptorSetWithTemplateKHR");
  576. #endif /* defined(VK_KHR_descriptor_update_template) */
  577. #if defined(VK_KHR_device_group)
  578. vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)load(context, "vkCmdDispatchBaseKHR");
  579. vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)load(context, "vkCmdSetDeviceMaskKHR");
  580. vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)load(context, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
  581. #endif /* defined(VK_KHR_device_group) */
  582. #if defined(VK_KHR_display_swapchain)
  583. vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)load(context, "vkCreateSharedSwapchainsKHR");
  584. #endif /* defined(VK_KHR_display_swapchain) */
  585. #if defined(VK_KHR_draw_indirect_count)
  586. vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)load(context, "vkCmdDrawIndexedIndirectCountKHR");
  587. vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)load(context, "vkCmdDrawIndirectCountKHR");
  588. #endif /* defined(VK_KHR_draw_indirect_count) */
  589. #if defined(VK_KHR_external_fence_fd)
  590. vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)load(context, "vkGetFenceFdKHR");
  591. vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)load(context, "vkImportFenceFdKHR");
  592. #endif /* defined(VK_KHR_external_fence_fd) */
  593. #if defined(VK_KHR_external_fence_win32)
  594. vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)load(context, "vkGetFenceWin32HandleKHR");
  595. vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)load(context, "vkImportFenceWin32HandleKHR");
  596. #endif /* defined(VK_KHR_external_fence_win32) */
  597. #if defined(VK_KHR_external_memory_fd)
  598. vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)load(context, "vkGetMemoryFdKHR");
  599. vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)load(context, "vkGetMemoryFdPropertiesKHR");
  600. #endif /* defined(VK_KHR_external_memory_fd) */
  601. #if defined(VK_KHR_external_memory_win32)
  602. vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)load(context, "vkGetMemoryWin32HandleKHR");
  603. vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)load(context, "vkGetMemoryWin32HandlePropertiesKHR");
  604. #endif /* defined(VK_KHR_external_memory_win32) */
  605. #if defined(VK_KHR_external_semaphore_fd)
  606. vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)load(context, "vkGetSemaphoreFdKHR");
  607. vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)load(context, "vkImportSemaphoreFdKHR");
  608. #endif /* defined(VK_KHR_external_semaphore_fd) */
  609. #if defined(VK_KHR_external_semaphore_win32)
  610. vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)load(context, "vkGetSemaphoreWin32HandleKHR");
  611. vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)load(context, "vkImportSemaphoreWin32HandleKHR");
  612. #endif /* defined(VK_KHR_external_semaphore_win32) */
  613. #if defined(VK_KHR_get_memory_requirements2)
  614. vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)load(context, "vkGetBufferMemoryRequirements2KHR");
  615. vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)load(context, "vkGetImageMemoryRequirements2KHR");
  616. vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)load(context, "vkGetImageSparseMemoryRequirements2KHR");
  617. #endif /* defined(VK_KHR_get_memory_requirements2) */
  618. #if defined(VK_KHR_maintenance1)
  619. vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)load(context, "vkTrimCommandPoolKHR");
  620. #endif /* defined(VK_KHR_maintenance1) */
  621. #if defined(VK_KHR_maintenance3)
  622. vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)load(context, "vkGetDescriptorSetLayoutSupportKHR");
  623. #endif /* defined(VK_KHR_maintenance3) */
  624. #if defined(VK_KHR_performance_query)
  625. vkAcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)load(context, "vkAcquireProfilingLockKHR");
  626. vkReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)load(context, "vkReleaseProfilingLockKHR");
  627. #endif /* defined(VK_KHR_performance_query) */
  628. #if defined(VK_KHR_pipeline_executable_properties)
  629. vkGetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)load(context, "vkGetPipelineExecutableInternalRepresentationsKHR");
  630. vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)load(context, "vkGetPipelineExecutablePropertiesKHR");
  631. vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)load(context, "vkGetPipelineExecutableStatisticsKHR");
  632. #endif /* defined(VK_KHR_pipeline_executable_properties) */
  633. #if defined(VK_KHR_push_descriptor)
  634. vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR");
  635. #endif /* defined(VK_KHR_push_descriptor) */
  636. #if defined(VK_KHR_ray_tracing)
  637. vkBindAccelerationStructureMemoryKHR = (PFN_vkBindAccelerationStructureMemoryKHR)load(context, "vkBindAccelerationStructureMemoryKHR");
  638. vkBuildAccelerationStructureKHR = (PFN_vkBuildAccelerationStructureKHR)load(context, "vkBuildAccelerationStructureKHR");
  639. vkCmdBuildAccelerationStructureIndirectKHR = (PFN_vkCmdBuildAccelerationStructureIndirectKHR)load(context, "vkCmdBuildAccelerationStructureIndirectKHR");
  640. vkCmdBuildAccelerationStructureKHR = (PFN_vkCmdBuildAccelerationStructureKHR)load(context, "vkCmdBuildAccelerationStructureKHR");
  641. vkCmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)load(context, "vkCmdCopyAccelerationStructureKHR");
  642. vkCmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)load(context, "vkCmdCopyAccelerationStructureToMemoryKHR");
  643. vkCmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)load(context, "vkCmdCopyMemoryToAccelerationStructureKHR");
  644. vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)load(context, "vkCmdTraceRaysIndirectKHR");
  645. vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)load(context, "vkCmdTraceRaysKHR");
  646. vkCmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)load(context, "vkCmdWriteAccelerationStructuresPropertiesKHR");
  647. vkCopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)load(context, "vkCopyAccelerationStructureKHR");
  648. vkCopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)load(context, "vkCopyAccelerationStructureToMemoryKHR");
  649. vkCopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)load(context, "vkCopyMemoryToAccelerationStructureKHR");
  650. vkCreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)load(context, "vkCreateAccelerationStructureKHR");
  651. vkCreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)load(context, "vkCreateRayTracingPipelinesKHR");
  652. vkDestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)load(context, "vkDestroyAccelerationStructureKHR");
  653. vkGetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)load(context, "vkGetAccelerationStructureDeviceAddressKHR");
  654. vkGetAccelerationStructureMemoryRequirementsKHR = (PFN_vkGetAccelerationStructureMemoryRequirementsKHR)load(context, "vkGetAccelerationStructureMemoryRequirementsKHR");
  655. vkGetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)load(context, "vkGetDeviceAccelerationStructureCompatibilityKHR");
  656. vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)load(context, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
  657. vkGetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)load(context, "vkGetRayTracingShaderGroupHandlesKHR");
  658. vkWriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)load(context, "vkWriteAccelerationStructuresPropertiesKHR");
  659. #endif /* defined(VK_KHR_ray_tracing) */
  660. #if defined(VK_KHR_sampler_ycbcr_conversion)
  661. vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)load(context, "vkCreateSamplerYcbcrConversionKHR");
  662. vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)load(context, "vkDestroySamplerYcbcrConversionKHR");
  663. #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */
  664. #if defined(VK_KHR_shared_presentable_image)
  665. vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)load(context, "vkGetSwapchainStatusKHR");
  666. #endif /* defined(VK_KHR_shared_presentable_image) */
  667. #if defined(VK_KHR_swapchain)
  668. vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)load(context, "vkAcquireNextImageKHR");
  669. vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)load(context, "vkCreateSwapchainKHR");
  670. vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)load(context, "vkDestroySwapchainKHR");
  671. vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)load(context, "vkGetSwapchainImagesKHR");
  672. vkQueuePresentKHR = (PFN_vkQueuePresentKHR)load(context, "vkQueuePresentKHR");
  673. #endif /* defined(VK_KHR_swapchain) */
  674. #if defined(VK_KHR_timeline_semaphore)
  675. vkGetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)load(context, "vkGetSemaphoreCounterValueKHR");
  676. vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)load(context, "vkSignalSemaphoreKHR");
  677. vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)load(context, "vkWaitSemaphoresKHR");
  678. #endif /* defined(VK_KHR_timeline_semaphore) */
  679. #if defined(VK_NVX_image_view_handle)
  680. vkGetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)load(context, "vkGetImageViewHandleNVX");
  681. #endif /* defined(VK_NVX_image_view_handle) */
  682. #if defined(VK_NV_clip_space_w_scaling)
  683. vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)load(context, "vkCmdSetViewportWScalingNV");
  684. #endif /* defined(VK_NV_clip_space_w_scaling) */
  685. #if defined(VK_NV_device_diagnostic_checkpoints)
  686. vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)load(context, "vkCmdSetCheckpointNV");
  687. vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)load(context, "vkGetQueueCheckpointDataNV");
  688. #endif /* defined(VK_NV_device_diagnostic_checkpoints) */
  689. #if defined(VK_NV_device_generated_commands)
  690. vkCmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)load(context, "vkCmdBindPipelineShaderGroupNV");
  691. vkCmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)load(context, "vkCmdExecuteGeneratedCommandsNV");
  692. vkCmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)load(context, "vkCmdPreprocessGeneratedCommandsNV");
  693. vkCreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)load(context, "vkCreateIndirectCommandsLayoutNV");
  694. vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)load(context, "vkDestroyIndirectCommandsLayoutNV");
  695. vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)load(context, "vkGetGeneratedCommandsMemoryRequirementsNV");
  696. #endif /* defined(VK_NV_device_generated_commands) */
  697. #if defined(VK_NV_external_memory_win32)
  698. vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)load(context, "vkGetMemoryWin32HandleNV");
  699. #endif /* defined(VK_NV_external_memory_win32) */
  700. #if defined(VK_NV_mesh_shader)
  701. vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)load(context, "vkCmdDrawMeshTasksIndirectCountNV");
  702. vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)load(context, "vkCmdDrawMeshTasksIndirectNV");
  703. vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)load(context, "vkCmdDrawMeshTasksNV");
  704. #endif /* defined(VK_NV_mesh_shader) */
  705. #if defined(VK_NV_ray_tracing)
  706. vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)load(context, "vkBindAccelerationStructureMemoryNV");
  707. vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)load(context, "vkCmdBuildAccelerationStructureNV");
  708. vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)load(context, "vkCmdCopyAccelerationStructureNV");
  709. vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)load(context, "vkCmdTraceRaysNV");
  710. vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)load(context, "vkCmdWriteAccelerationStructuresPropertiesNV");
  711. vkCompileDeferredNV = (PFN_vkCompileDeferredNV)load(context, "vkCompileDeferredNV");
  712. vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)load(context, "vkCreateAccelerationStructureNV");
  713. vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)load(context, "vkCreateRayTracingPipelinesNV");
  714. vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)load(context, "vkDestroyAccelerationStructureNV");
  715. vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)load(context, "vkGetAccelerationStructureHandleNV");
  716. vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)load(context, "vkGetAccelerationStructureMemoryRequirementsNV");
  717. vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)load(context, "vkGetRayTracingShaderGroupHandlesNV");
  718. #endif /* defined(VK_NV_ray_tracing) */
  719. #if defined(VK_NV_scissor_exclusive)
  720. vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)load(context, "vkCmdSetExclusiveScissorNV");
  721. #endif /* defined(VK_NV_scissor_exclusive) */
  722. #if defined(VK_NV_shading_rate_image)
  723. vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)load(context, "vkCmdBindShadingRateImageNV");
  724. vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV");
  725. vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV");
  726. #endif /* defined(VK_NV_shading_rate_image) */
  727. #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
  728. vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)load(context, "vkGetDeviceGroupSurfacePresentModes2EXT");
  729. #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
  730. #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1))
  731. vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)load(context, "vkCmdPushDescriptorSetWithTemplateKHR");
  732. #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) */
  733. #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
  734. vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)load(context, "vkGetDeviceGroupPresentCapabilitiesKHR");
  735. vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)load(context, "vkGetDeviceGroupSurfacePresentModesKHR");
  736. #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
  737. #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
  738. vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)load(context, "vkAcquireNextImage2KHR");
  739. #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
  740. /* VOLK_GENERATE_LOAD_DEVICE */
  741. }
  742. static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context, PFN_vkVoidFunction (*load)(void*, const char*))
  743. {
  744. /* VOLK_GENERATE_LOAD_DEVICE_TABLE */
  745. #if defined(VK_VERSION_1_0)
  746. table->vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)load(context, "vkAllocateCommandBuffers");
  747. table->vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)load(context, "vkAllocateDescriptorSets");
  748. table->vkAllocateMemory = (PFN_vkAllocateMemory)load(context, "vkAllocateMemory");
  749. table->vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)load(context, "vkBeginCommandBuffer");
  750. table->vkBindBufferMemory = (PFN_vkBindBufferMemory)load(context, "vkBindBufferMemory");
  751. table->vkBindImageMemory = (PFN_vkBindImageMemory)load(context, "vkBindImageMemory");
  752. table->vkCmdBeginQuery = (PFN_vkCmdBeginQuery)load(context, "vkCmdBeginQuery");
  753. table->vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)load(context, "vkCmdBeginRenderPass");
  754. table->vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)load(context, "vkCmdBindDescriptorSets");
  755. table->vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)load(context, "vkCmdBindIndexBuffer");
  756. table->vkCmdBindPipeline = (PFN_vkCmdBindPipeline)load(context, "vkCmdBindPipeline");
  757. table->vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)load(context, "vkCmdBindVertexBuffers");
  758. table->vkCmdBlitImage = (PFN_vkCmdBlitImage)load(context, "vkCmdBlitImage");
  759. table->vkCmdClearAttachments = (PFN_vkCmdClearAttachments)load(context, "vkCmdClearAttachments");
  760. table->vkCmdClearColorImage = (PFN_vkCmdClearColorImage)load(context, "vkCmdClearColorImage");
  761. table->vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)load(context, "vkCmdClearDepthStencilImage");
  762. table->vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)load(context, "vkCmdCopyBuffer");
  763. table->vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)load(context, "vkCmdCopyBufferToImage");
  764. table->vkCmdCopyImage = (PFN_vkCmdCopyImage)load(context, "vkCmdCopyImage");
  765. table->vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)load(context, "vkCmdCopyImageToBuffer");
  766. table->vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)load(context, "vkCmdCopyQueryPoolResults");
  767. table->vkCmdDispatch = (PFN_vkCmdDispatch)load(context, "vkCmdDispatch");
  768. table->vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)load(context, "vkCmdDispatchIndirect");
  769. table->vkCmdDraw = (PFN_vkCmdDraw)load(context, "vkCmdDraw");
  770. table->vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)load(context, "vkCmdDrawIndexed");
  771. table->vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)load(context, "vkCmdDrawIndexedIndirect");
  772. table->vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)load(context, "vkCmdDrawIndirect");
  773. table->vkCmdEndQuery = (PFN_vkCmdEndQuery)load(context, "vkCmdEndQuery");
  774. table->vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)load(context, "vkCmdEndRenderPass");
  775. table->vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)load(context, "vkCmdExecuteCommands");
  776. table->vkCmdFillBuffer = (PFN_vkCmdFillBuffer)load(context, "vkCmdFillBuffer");
  777. table->vkCmdNextSubpass = (PFN_vkCmdNextSubpass)load(context, "vkCmdNextSubpass");
  778. table->vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)load(context, "vkCmdPipelineBarrier");
  779. table->vkCmdPushConstants = (PFN_vkCmdPushConstants)load(context, "vkCmdPushConstants");
  780. table->vkCmdResetEvent = (PFN_vkCmdResetEvent)load(context, "vkCmdResetEvent");
  781. table->vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)load(context, "vkCmdResetQueryPool");
  782. table->vkCmdResolveImage = (PFN_vkCmdResolveImage)load(context, "vkCmdResolveImage");
  783. table->vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)load(context, "vkCmdSetBlendConstants");
  784. table->vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)load(context, "vkCmdSetDepthBias");
  785. table->vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)load(context, "vkCmdSetDepthBounds");
  786. table->vkCmdSetEvent = (PFN_vkCmdSetEvent)load(context, "vkCmdSetEvent");
  787. table->vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)load(context, "vkCmdSetLineWidth");
  788. table->vkCmdSetScissor = (PFN_vkCmdSetScissor)load(context, "vkCmdSetScissor");
  789. table->vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)load(context, "vkCmdSetStencilCompareMask");
  790. table->vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)load(context, "vkCmdSetStencilReference");
  791. table->vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)load(context, "vkCmdSetStencilWriteMask");
  792. table->vkCmdSetViewport = (PFN_vkCmdSetViewport)load(context, "vkCmdSetViewport");
  793. table->vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)load(context, "vkCmdUpdateBuffer");
  794. table->vkCmdWaitEvents = (PFN_vkCmdWaitEvents)load(context, "vkCmdWaitEvents");
  795. table->vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)load(context, "vkCmdWriteTimestamp");
  796. table->vkCreateBuffer = (PFN_vkCreateBuffer)load(context, "vkCreateBuffer");
  797. table->vkCreateBufferView = (PFN_vkCreateBufferView)load(context, "vkCreateBufferView");
  798. table->vkCreateCommandPool = (PFN_vkCreateCommandPool)load(context, "vkCreateCommandPool");
  799. table->vkCreateComputePipelines = (PFN_vkCreateComputePipelines)load(context, "vkCreateComputePipelines");
  800. table->vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)load(context, "vkCreateDescriptorPool");
  801. table->vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)load(context, "vkCreateDescriptorSetLayout");
  802. table->vkCreateEvent = (PFN_vkCreateEvent)load(context, "vkCreateEvent");
  803. table->vkCreateFence = (PFN_vkCreateFence)load(context, "vkCreateFence");
  804. table->vkCreateFramebuffer = (PFN_vkCreateFramebuffer)load(context, "vkCreateFramebuffer");
  805. table->vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)load(context, "vkCreateGraphicsPipelines");
  806. table->vkCreateImage = (PFN_vkCreateImage)load(context, "vkCreateImage");
  807. table->vkCreateImageView = (PFN_vkCreateImageView)load(context, "vkCreateImageView");
  808. table->vkCreatePipelineCache = (PFN_vkCreatePipelineCache)load(context, "vkCreatePipelineCache");
  809. table->vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)load(context, "vkCreatePipelineLayout");
  810. table->vkCreateQueryPool = (PFN_vkCreateQueryPool)load(context, "vkCreateQueryPool");
  811. table->vkCreateRenderPass = (PFN_vkCreateRenderPass)load(context, "vkCreateRenderPass");
  812. table->vkCreateSampler = (PFN_vkCreateSampler)load(context, "vkCreateSampler");
  813. table->vkCreateSemaphore = (PFN_vkCreateSemaphore)load(context, "vkCreateSemaphore");
  814. table->vkCreateShaderModule = (PFN_vkCreateShaderModule)load(context, "vkCreateShaderModule");
  815. table->vkDestroyBuffer = (PFN_vkDestroyBuffer)load(context, "vkDestroyBuffer");
  816. table->vkDestroyBufferView = (PFN_vkDestroyBufferView)load(context, "vkDestroyBufferView");
  817. table->vkDestroyCommandPool = (PFN_vkDestroyCommandPool)load(context, "vkDestroyCommandPool");
  818. table->vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)load(context, "vkDestroyDescriptorPool");
  819. table->vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)load(context, "vkDestroyDescriptorSetLayout");
  820. table->vkDestroyDevice = (PFN_vkDestroyDevice)load(context, "vkDestroyDevice");
  821. table->vkDestroyEvent = (PFN_vkDestroyEvent)load(context, "vkDestroyEvent");
  822. table->vkDestroyFence = (PFN_vkDestroyFence)load(context, "vkDestroyFence");
  823. table->vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)load(context, "vkDestroyFramebuffer");
  824. table->vkDestroyImage = (PFN_vkDestroyImage)load(context, "vkDestroyImage");
  825. table->vkDestroyImageView = (PFN_vkDestroyImageView)load(context, "vkDestroyImageView");
  826. table->vkDestroyPipeline = (PFN_vkDestroyPipeline)load(context, "vkDestroyPipeline");
  827. table->vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)load(context, "vkDestroyPipelineCache");
  828. table->vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)load(context, "vkDestroyPipelineLayout");
  829. table->vkDestroyQueryPool = (PFN_vkDestroyQueryPool)load(context, "vkDestroyQueryPool");
  830. table->vkDestroyRenderPass = (PFN_vkDestroyRenderPass)load(context, "vkDestroyRenderPass");
  831. table->vkDestroySampler = (PFN_vkDestroySampler)load(context, "vkDestroySampler");
  832. table->vkDestroySemaphore = (PFN_vkDestroySemaphore)load(context, "vkDestroySemaphore");
  833. table->vkDestroyShaderModule = (PFN_vkDestroyShaderModule)load(context, "vkDestroyShaderModule");
  834. table->vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)load(context, "vkDeviceWaitIdle");
  835. table->vkEndCommandBuffer = (PFN_vkEndCommandBuffer)load(context, "vkEndCommandBuffer");
  836. table->vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)load(context, "vkFlushMappedMemoryRanges");
  837. table->vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)load(context, "vkFreeCommandBuffers");
  838. table->vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)load(context, "vkFreeDescriptorSets");
  839. table->vkFreeMemory = (PFN_vkFreeMemory)load(context, "vkFreeMemory");
  840. table->vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)load(context, "vkGetBufferMemoryRequirements");
  841. table->vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)load(context, "vkGetDeviceMemoryCommitment");
  842. table->vkGetDeviceQueue = (PFN_vkGetDeviceQueue)load(context, "vkGetDeviceQueue");
  843. table->vkGetEventStatus = (PFN_vkGetEventStatus)load(context, "vkGetEventStatus");
  844. table->vkGetFenceStatus = (PFN_vkGetFenceStatus)load(context, "vkGetFenceStatus");
  845. table->vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)load(context, "vkGetImageMemoryRequirements");
  846. table->vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)load(context, "vkGetImageSparseMemoryRequirements");
  847. table->vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)load(context, "vkGetImageSubresourceLayout");
  848. table->vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)load(context, "vkGetPipelineCacheData");
  849. table->vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)load(context, "vkGetQueryPoolResults");
  850. table->vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)load(context, "vkGetRenderAreaGranularity");
  851. table->vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)load(context, "vkInvalidateMappedMemoryRanges");
  852. table->vkMapMemory = (PFN_vkMapMemory)load(context, "vkMapMemory");
  853. table->vkMergePipelineCaches = (PFN_vkMergePipelineCaches)load(context, "vkMergePipelineCaches");
  854. table->vkQueueBindSparse = (PFN_vkQueueBindSparse)load(context, "vkQueueBindSparse");
  855. table->vkQueueSubmit = (PFN_vkQueueSubmit)load(context, "vkQueueSubmit");
  856. table->vkQueueWaitIdle = (PFN_vkQueueWaitIdle)load(context, "vkQueueWaitIdle");
  857. table->vkResetCommandBuffer = (PFN_vkResetCommandBuffer)load(context, "vkResetCommandBuffer");
  858. table->vkResetCommandPool = (PFN_vkResetCommandPool)load(context, "vkResetCommandPool");
  859. table->vkResetDescriptorPool = (PFN_vkResetDescriptorPool)load(context, "vkResetDescriptorPool");
  860. table->vkResetEvent = (PFN_vkResetEvent)load(context, "vkResetEvent");
  861. table->vkResetFences = (PFN_vkResetFences)load(context, "vkResetFences");
  862. table->vkSetEvent = (PFN_vkSetEvent)load(context, "vkSetEvent");
  863. table->vkUnmapMemory = (PFN_vkUnmapMemory)load(context, "vkUnmapMemory");
  864. table->vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)load(context, "vkUpdateDescriptorSets");
  865. table->vkWaitForFences = (PFN_vkWaitForFences)load(context, "vkWaitForFences");
  866. #endif /* defined(VK_VERSION_1_0) */
  867. #if defined(VK_VERSION_1_1)
  868. table->vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)load(context, "vkBindBufferMemory2");
  869. table->vkBindImageMemory2 = (PFN_vkBindImageMemory2)load(context, "vkBindImageMemory2");
  870. table->vkCmdDispatchBase = (PFN_vkCmdDispatchBase)load(context, "vkCmdDispatchBase");
  871. table->vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)load(context, "vkCmdSetDeviceMask");
  872. table->vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)load(context, "vkCreateDescriptorUpdateTemplate");
  873. table->vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)load(context, "vkCreateSamplerYcbcrConversion");
  874. table->vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)load(context, "vkDestroyDescriptorUpdateTemplate");
  875. table->vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)load(context, "vkDestroySamplerYcbcrConversion");
  876. table->vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)load(context, "vkGetBufferMemoryRequirements2");
  877. table->vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)load(context, "vkGetDescriptorSetLayoutSupport");
  878. table->vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)load(context, "vkGetDeviceGroupPeerMemoryFeatures");
  879. table->vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)load(context, "vkGetDeviceQueue2");
  880. table->vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)load(context, "vkGetImageMemoryRequirements2");
  881. table->vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)load(context, "vkGetImageSparseMemoryRequirements2");
  882. table->vkTrimCommandPool = (PFN_vkTrimCommandPool)load(context, "vkTrimCommandPool");
  883. table->vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)load(context, "vkUpdateDescriptorSetWithTemplate");
  884. #endif /* defined(VK_VERSION_1_1) */
  885. #if defined(VK_VERSION_1_2)
  886. table->vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)load(context, "vkCmdBeginRenderPass2");
  887. table->vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)load(context, "vkCmdDrawIndexedIndirectCount");
  888. table->vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)load(context, "vkCmdDrawIndirectCount");
  889. table->vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)load(context, "vkCmdEndRenderPass2");
  890. table->vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2)load(context, "vkCmdNextSubpass2");
  891. table->vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)load(context, "vkCreateRenderPass2");
  892. table->vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)load(context, "vkGetBufferDeviceAddress");
  893. table->vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)load(context, "vkGetBufferOpaqueCaptureAddress");
  894. table->vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)load(context, "vkGetDeviceMemoryOpaqueCaptureAddress");
  895. table->vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)load(context, "vkGetSemaphoreCounterValue");
  896. table->vkResetQueryPool = (PFN_vkResetQueryPool)load(context, "vkResetQueryPool");
  897. table->vkSignalSemaphore = (PFN_vkSignalSemaphore)load(context, "vkSignalSemaphore");
  898. table->vkWaitSemaphores = (PFN_vkWaitSemaphores)load(context, "vkWaitSemaphores");
  899. #endif /* defined(VK_VERSION_1_2) */
  900. #if defined(VK_AMD_buffer_marker)
  901. table->vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)load(context, "vkCmdWriteBufferMarkerAMD");
  902. #endif /* defined(VK_AMD_buffer_marker) */
  903. #if defined(VK_AMD_display_native_hdr)
  904. table->vkSetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)load(context, "vkSetLocalDimmingAMD");
  905. #endif /* defined(VK_AMD_display_native_hdr) */
  906. #if defined(VK_AMD_draw_indirect_count)
  907. table->vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)load(context, "vkCmdDrawIndexedIndirectCountAMD");
  908. table->vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)load(context, "vkCmdDrawIndirectCountAMD");
  909. #endif /* defined(VK_AMD_draw_indirect_count) */
  910. #if defined(VK_AMD_shader_info)
  911. table->vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)load(context, "vkGetShaderInfoAMD");
  912. #endif /* defined(VK_AMD_shader_info) */
  913. #if defined(VK_ANDROID_external_memory_android_hardware_buffer)
  914. table->vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)load(context, "vkGetAndroidHardwareBufferPropertiesANDROID");
  915. table->vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)load(context, "vkGetMemoryAndroidHardwareBufferANDROID");
  916. #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */
  917. #if defined(VK_EXT_buffer_device_address)
  918. table->vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)load(context, "vkGetBufferDeviceAddressEXT");
  919. #endif /* defined(VK_EXT_buffer_device_address) */
  920. #if defined(VK_EXT_calibrated_timestamps)
  921. table->vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)load(context, "vkGetCalibratedTimestampsEXT");
  922. #endif /* defined(VK_EXT_calibrated_timestamps) */
  923. #if defined(VK_EXT_conditional_rendering)
  924. table->vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)load(context, "vkCmdBeginConditionalRenderingEXT");
  925. table->vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)load(context, "vkCmdEndConditionalRenderingEXT");
  926. #endif /* defined(VK_EXT_conditional_rendering) */
  927. #if defined(VK_EXT_debug_marker)
  928. table->vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)load(context, "vkCmdDebugMarkerBeginEXT");
  929. table->vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)load(context, "vkCmdDebugMarkerEndEXT");
  930. table->vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)load(context, "vkCmdDebugMarkerInsertEXT");
  931. table->vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)load(context, "vkDebugMarkerSetObjectNameEXT");
  932. table->vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)load(context, "vkDebugMarkerSetObjectTagEXT");
  933. #endif /* defined(VK_EXT_debug_marker) */
  934. #if defined(VK_EXT_discard_rectangles)
  935. table->vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)load(context, "vkCmdSetDiscardRectangleEXT");
  936. #endif /* defined(VK_EXT_discard_rectangles) */
  937. #if defined(VK_EXT_display_control)
  938. table->vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)load(context, "vkDisplayPowerControlEXT");
  939. table->vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)load(context, "vkGetSwapchainCounterEXT");
  940. table->vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)load(context, "vkRegisterDeviceEventEXT");
  941. table->vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)load(context, "vkRegisterDisplayEventEXT");
  942. #endif /* defined(VK_EXT_display_control) */
  943. #if defined(VK_EXT_external_memory_host)
  944. table->vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)load(context, "vkGetMemoryHostPointerPropertiesEXT");
  945. #endif /* defined(VK_EXT_external_memory_host) */
  946. #if defined(VK_EXT_full_screen_exclusive)
  947. table->vkAcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)load(context, "vkAcquireFullScreenExclusiveModeEXT");
  948. table->vkReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)load(context, "vkReleaseFullScreenExclusiveModeEXT");
  949. #endif /* defined(VK_EXT_full_screen_exclusive) */
  950. #if defined(VK_EXT_hdr_metadata)
  951. table->vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)load(context, "vkSetHdrMetadataEXT");
  952. #endif /* defined(VK_EXT_hdr_metadata) */
  953. #if defined(VK_EXT_host_query_reset)
  954. table->vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)load(context, "vkResetQueryPoolEXT");
  955. #endif /* defined(VK_EXT_host_query_reset) */
  956. #if defined(VK_EXT_image_drm_format_modifier)
  957. table->vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)load(context, "vkGetImageDrmFormatModifierPropertiesEXT");
  958. #endif /* defined(VK_EXT_image_drm_format_modifier) */
  959. #if defined(VK_EXT_line_rasterization)
  960. table->vkCmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)load(context, "vkCmdSetLineStippleEXT");
  961. #endif /* defined(VK_EXT_line_rasterization) */
  962. #if defined(VK_EXT_sample_locations)
  963. table->vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)load(context, "vkCmdSetSampleLocationsEXT");
  964. #endif /* defined(VK_EXT_sample_locations) */
  965. #if defined(VK_EXT_transform_feedback)
  966. table->vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)load(context, "vkCmdBeginQueryIndexedEXT");
  967. table->vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)load(context, "vkCmdBeginTransformFeedbackEXT");
  968. table->vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)load(context, "vkCmdBindTransformFeedbackBuffersEXT");
  969. table->vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)load(context, "vkCmdDrawIndirectByteCountEXT");
  970. table->vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)load(context, "vkCmdEndQueryIndexedEXT");
  971. table->vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)load(context, "vkCmdEndTransformFeedbackEXT");
  972. #endif /* defined(VK_EXT_transform_feedback) */
  973. #if defined(VK_EXT_validation_cache)
  974. table->vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)load(context, "vkCreateValidationCacheEXT");
  975. table->vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)load(context, "vkDestroyValidationCacheEXT");
  976. table->vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)load(context, "vkGetValidationCacheDataEXT");
  977. table->vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)load(context, "vkMergeValidationCachesEXT");
  978. #endif /* defined(VK_EXT_validation_cache) */
  979. #if defined(VK_GOOGLE_display_timing)
  980. table->vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)load(context, "vkGetPastPresentationTimingGOOGLE");
  981. table->vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)load(context, "vkGetRefreshCycleDurationGOOGLE");
  982. #endif /* defined(VK_GOOGLE_display_timing) */
  983. #if defined(VK_INTEL_performance_query)
  984. table->vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)load(context, "vkAcquirePerformanceConfigurationINTEL");
  985. table->vkCmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)load(context, "vkCmdSetPerformanceMarkerINTEL");
  986. table->vkCmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)load(context, "vkCmdSetPerformanceOverrideINTEL");
  987. table->vkCmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)load(context, "vkCmdSetPerformanceStreamMarkerINTEL");
  988. table->vkGetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)load(context, "vkGetPerformanceParameterINTEL");
  989. table->vkInitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)load(context, "vkInitializePerformanceApiINTEL");
  990. table->vkQueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)load(context, "vkQueueSetPerformanceConfigurationINTEL");
  991. table->vkReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)load(context, "vkReleasePerformanceConfigurationINTEL");
  992. table->vkUninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)load(context, "vkUninitializePerformanceApiINTEL");
  993. #endif /* defined(VK_INTEL_performance_query) */
  994. #if defined(VK_KHR_bind_memory2)
  995. table->vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)load(context, "vkBindBufferMemory2KHR");
  996. table->vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)load(context, "vkBindImageMemory2KHR");
  997. #endif /* defined(VK_KHR_bind_memory2) */
  998. #if defined(VK_KHR_buffer_device_address)
  999. table->vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)load(context, "vkGetBufferDeviceAddressKHR");
  1000. table->vkGetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)load(context, "vkGetBufferOpaqueCaptureAddressKHR");
  1001. table->vkGetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)load(context, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
  1002. #endif /* defined(VK_KHR_buffer_device_address) */
  1003. #if defined(VK_KHR_create_renderpass2)
  1004. table->vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)load(context, "vkCmdBeginRenderPass2KHR");
  1005. table->vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)load(context, "vkCmdEndRenderPass2KHR");
  1006. table->vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)load(context, "vkCmdNextSubpass2KHR");
  1007. table->vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)load(context, "vkCreateRenderPass2KHR");
  1008. #endif /* defined(VK_KHR_create_renderpass2) */
  1009. #if defined(VK_KHR_deferred_host_operations)
  1010. table->vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)load(context, "vkCreateDeferredOperationKHR");
  1011. table->vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)load(context, "vkDeferredOperationJoinKHR");
  1012. table->vkDestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)load(context, "vkDestroyDeferredOperationKHR");
  1013. table->vkGetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)load(context, "vkGetDeferredOperationMaxConcurrencyKHR");
  1014. table->vkGetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)load(context, "vkGetDeferredOperationResultKHR");
  1015. #endif /* defined(VK_KHR_deferred_host_operations) */
  1016. #if defined(VK_KHR_descriptor_update_template)
  1017. table->vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)load(context, "vkCreateDescriptorUpdateTemplateKHR");
  1018. table->vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)load(context, "vkDestroyDescriptorUpdateTemplateKHR");
  1019. table->vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)load(context, "vkUpdateDescriptorSetWithTemplateKHR");
  1020. #endif /* defined(VK_KHR_descriptor_update_template) */
  1021. #if defined(VK_KHR_device_group)
  1022. table->vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)load(context, "vkCmdDispatchBaseKHR");
  1023. table->vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)load(context, "vkCmdSetDeviceMaskKHR");
  1024. table->vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)load(context, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
  1025. #endif /* defined(VK_KHR_device_group) */
  1026. #if defined(VK_KHR_display_swapchain)
  1027. table->vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)load(context, "vkCreateSharedSwapchainsKHR");
  1028. #endif /* defined(VK_KHR_display_swapchain) */
  1029. #if defined(VK_KHR_draw_indirect_count)
  1030. table->vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)load(context, "vkCmdDrawIndexedIndirectCountKHR");
  1031. table->vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)load(context, "vkCmdDrawIndirectCountKHR");
  1032. #endif /* defined(VK_KHR_draw_indirect_count) */
  1033. #if defined(VK_KHR_external_fence_fd)
  1034. table->vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)load(context, "vkGetFenceFdKHR");
  1035. table->vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)load(context, "vkImportFenceFdKHR");
  1036. #endif /* defined(VK_KHR_external_fence_fd) */
  1037. #if defined(VK_KHR_external_fence_win32)
  1038. table->vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)load(context, "vkGetFenceWin32HandleKHR");
  1039. table->vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)load(context, "vkImportFenceWin32HandleKHR");
  1040. #endif /* defined(VK_KHR_external_fence_win32) */
  1041. #if defined(VK_KHR_external_memory_fd)
  1042. table->vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)load(context, "vkGetMemoryFdKHR");
  1043. table->vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)load(context, "vkGetMemoryFdPropertiesKHR");
  1044. #endif /* defined(VK_KHR_external_memory_fd) */
  1045. #if defined(VK_KHR_external_memory_win32)
  1046. table->vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)load(context, "vkGetMemoryWin32HandleKHR");
  1047. table->vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)load(context, "vkGetMemoryWin32HandlePropertiesKHR");
  1048. #endif /* defined(VK_KHR_external_memory_win32) */
  1049. #if defined(VK_KHR_external_semaphore_fd)
  1050. table->vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)load(context, "vkGetSemaphoreFdKHR");
  1051. table->vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)load(context, "vkImportSemaphoreFdKHR");
  1052. #endif /* defined(VK_KHR_external_semaphore_fd) */
  1053. #if defined(VK_KHR_external_semaphore_win32)
  1054. table->vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)load(context, "vkGetSemaphoreWin32HandleKHR");
  1055. table->vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)load(context, "vkImportSemaphoreWin32HandleKHR");
  1056. #endif /* defined(VK_KHR_external_semaphore_win32) */
  1057. #if defined(VK_KHR_get_memory_requirements2)
  1058. table->vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)load(context, "vkGetBufferMemoryRequirements2KHR");
  1059. table->vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)load(context, "vkGetImageMemoryRequirements2KHR");
  1060. table->vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)load(context, "vkGetImageSparseMemoryRequirements2KHR");
  1061. #endif /* defined(VK_KHR_get_memory_requirements2) */
  1062. #if defined(VK_KHR_maintenance1)
  1063. table->vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)load(context, "vkTrimCommandPoolKHR");
  1064. #endif /* defined(VK_KHR_maintenance1) */
  1065. #if defined(VK_KHR_maintenance3)
  1066. table->vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)load(context, "vkGetDescriptorSetLayoutSupportKHR");
  1067. #endif /* defined(VK_KHR_maintenance3) */
  1068. #if defined(VK_KHR_performance_query)
  1069. table->vkAcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)load(context, "vkAcquireProfilingLockKHR");
  1070. table->vkReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)load(context, "vkReleaseProfilingLockKHR");
  1071. #endif /* defined(VK_KHR_performance_query) */
  1072. #if defined(VK_KHR_pipeline_executable_properties)
  1073. table->vkGetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)load(context, "vkGetPipelineExecutableInternalRepresentationsKHR");
  1074. table->vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)load(context, "vkGetPipelineExecutablePropertiesKHR");
  1075. table->vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)load(context, "vkGetPipelineExecutableStatisticsKHR");
  1076. #endif /* defined(VK_KHR_pipeline_executable_properties) */
  1077. #if defined(VK_KHR_push_descriptor)
  1078. table->vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR");
  1079. #endif /* defined(VK_KHR_push_descriptor) */
  1080. #if defined(VK_KHR_ray_tracing)
  1081. table->vkBindAccelerationStructureMemoryKHR = (PFN_vkBindAccelerationStructureMemoryKHR)load(context, "vkBindAccelerationStructureMemoryKHR");
  1082. table->vkBuildAccelerationStructureKHR = (PFN_vkBuildAccelerationStructureKHR)load(context, "vkBuildAccelerationStructureKHR");
  1083. table->vkCmdBuildAccelerationStructureIndirectKHR = (PFN_vkCmdBuildAccelerationStructureIndirectKHR)load(context, "vkCmdBuildAccelerationStructureIndirectKHR");
  1084. table->vkCmdBuildAccelerationStructureKHR = (PFN_vkCmdBuildAccelerationStructureKHR)load(context, "vkCmdBuildAccelerationStructureKHR");
  1085. table->vkCmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)load(context, "vkCmdCopyAccelerationStructureKHR");
  1086. table->vkCmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)load(context, "vkCmdCopyAccelerationStructureToMemoryKHR");
  1087. table->vkCmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)load(context, "vkCmdCopyMemoryToAccelerationStructureKHR");
  1088. table->vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)load(context, "vkCmdTraceRaysIndirectKHR");
  1089. table->vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)load(context, "vkCmdTraceRaysKHR");
  1090. table->vkCmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)load(context, "vkCmdWriteAccelerationStructuresPropertiesKHR");
  1091. table->vkCopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)load(context, "vkCopyAccelerationStructureKHR");
  1092. table->vkCopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)load(context, "vkCopyAccelerationStructureToMemoryKHR");
  1093. table->vkCopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)load(context, "vkCopyMemoryToAccelerationStructureKHR");
  1094. table->vkCreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)load(context, "vkCreateAccelerationStructureKHR");
  1095. table->vkCreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)load(context, "vkCreateRayTracingPipelinesKHR");
  1096. table->vkDestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)load(context, "vkDestroyAccelerationStructureKHR");
  1097. table->vkGetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)load(context, "vkGetAccelerationStructureDeviceAddressKHR");
  1098. table->vkGetAccelerationStructureMemoryRequirementsKHR = (PFN_vkGetAccelerationStructureMemoryRequirementsKHR)load(context, "vkGetAccelerationStructureMemoryRequirementsKHR");
  1099. table->vkGetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)load(context, "vkGetDeviceAccelerationStructureCompatibilityKHR");
  1100. table->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)load(context, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
  1101. table->vkGetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)load(context, "vkGetRayTracingShaderGroupHandlesKHR");
  1102. table->vkWriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)load(context, "vkWriteAccelerationStructuresPropertiesKHR");
  1103. #endif /* defined(VK_KHR_ray_tracing) */
  1104. #if defined(VK_KHR_sampler_ycbcr_conversion)
  1105. table->vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)load(context, "vkCreateSamplerYcbcrConversionKHR");
  1106. table->vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)load(context, "vkDestroySamplerYcbcrConversionKHR");
  1107. #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */
  1108. #if defined(VK_KHR_shared_presentable_image)
  1109. table->vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)load(context, "vkGetSwapchainStatusKHR");
  1110. #endif /* defined(VK_KHR_shared_presentable_image) */
  1111. #if defined(VK_KHR_swapchain)
  1112. table->vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)load(context, "vkAcquireNextImageKHR");
  1113. table->vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)load(context, "vkCreateSwapchainKHR");
  1114. table->vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)load(context, "vkDestroySwapchainKHR");
  1115. table->vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)load(context, "vkGetSwapchainImagesKHR");
  1116. table->vkQueuePresentKHR = (PFN_vkQueuePresentKHR)load(context, "vkQueuePresentKHR");
  1117. #endif /* defined(VK_KHR_swapchain) */
  1118. #if defined(VK_KHR_timeline_semaphore)
  1119. table->vkGetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)load(context, "vkGetSemaphoreCounterValueKHR");
  1120. table->vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)load(context, "vkSignalSemaphoreKHR");
  1121. table->vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)load(context, "vkWaitSemaphoresKHR");
  1122. #endif /* defined(VK_KHR_timeline_semaphore) */
  1123. #if defined(VK_NVX_image_view_handle)
  1124. table->vkGetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)load(context, "vkGetImageViewHandleNVX");
  1125. #endif /* defined(VK_NVX_image_view_handle) */
  1126. #if defined(VK_NV_clip_space_w_scaling)
  1127. table->vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)load(context, "vkCmdSetViewportWScalingNV");
  1128. #endif /* defined(VK_NV_clip_space_w_scaling) */
  1129. #if defined(VK_NV_device_diagnostic_checkpoints)
  1130. table->vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)load(context, "vkCmdSetCheckpointNV");
  1131. table->vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)load(context, "vkGetQueueCheckpointDataNV");
  1132. #endif /* defined(VK_NV_device_diagnostic_checkpoints) */
  1133. #if defined(VK_NV_device_generated_commands)
  1134. table->vkCmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)load(context, "vkCmdBindPipelineShaderGroupNV");
  1135. table->vkCmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)load(context, "vkCmdExecuteGeneratedCommandsNV");
  1136. table->vkCmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)load(context, "vkCmdPreprocessGeneratedCommandsNV");
  1137. table->vkCreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)load(context, "vkCreateIndirectCommandsLayoutNV");
  1138. table->vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)load(context, "vkDestroyIndirectCommandsLayoutNV");
  1139. table->vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)load(context, "vkGetGeneratedCommandsMemoryRequirementsNV");
  1140. #endif /* defined(VK_NV_device_generated_commands) */
  1141. #if defined(VK_NV_external_memory_win32)
  1142. table->vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)load(context, "vkGetMemoryWin32HandleNV");
  1143. #endif /* defined(VK_NV_external_memory_win32) */
  1144. #if defined(VK_NV_mesh_shader)
  1145. table->vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)load(context, "vkCmdDrawMeshTasksIndirectCountNV");
  1146. table->vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)load(context, "vkCmdDrawMeshTasksIndirectNV");
  1147. table->vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)load(context, "vkCmdDrawMeshTasksNV");
  1148. #endif /* defined(VK_NV_mesh_shader) */
  1149. #if defined(VK_NV_ray_tracing)
  1150. table->vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)load(context, "vkBindAccelerationStructureMemoryNV");
  1151. table->vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)load(context, "vkCmdBuildAccelerationStructureNV");
  1152. table->vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)load(context, "vkCmdCopyAccelerationStructureNV");
  1153. table->vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)load(context, "vkCmdTraceRaysNV");
  1154. table->vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)load(context, "vkCmdWriteAccelerationStructuresPropertiesNV");
  1155. table->vkCompileDeferredNV = (PFN_vkCompileDeferredNV)load(context, "vkCompileDeferredNV");
  1156. table->vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)load(context, "vkCreateAccelerationStructureNV");
  1157. table->vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)load(context, "vkCreateRayTracingPipelinesNV");
  1158. table->vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)load(context, "vkDestroyAccelerationStructureNV");
  1159. table->vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)load(context, "vkGetAccelerationStructureHandleNV");
  1160. table->vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)load(context, "vkGetAccelerationStructureMemoryRequirementsNV");
  1161. table->vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)load(context, "vkGetRayTracingShaderGroupHandlesNV");
  1162. #endif /* defined(VK_NV_ray_tracing) */
  1163. #if defined(VK_NV_scissor_exclusive)
  1164. table->vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)load(context, "vkCmdSetExclusiveScissorNV");
  1165. #endif /* defined(VK_NV_scissor_exclusive) */
  1166. #if defined(VK_NV_shading_rate_image)
  1167. table->vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)load(context, "vkCmdBindShadingRateImageNV");
  1168. table->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV");
  1169. table->vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV");
  1170. #endif /* defined(VK_NV_shading_rate_image) */
  1171. #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
  1172. table->vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)load(context, "vkGetDeviceGroupSurfacePresentModes2EXT");
  1173. #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
  1174. #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1))
  1175. table->vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)load(context, "vkCmdPushDescriptorSetWithTemplateKHR");
  1176. #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) */
  1177. #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
  1178. table->vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)load(context, "vkGetDeviceGroupPresentCapabilitiesKHR");
  1179. table->vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)load(context, "vkGetDeviceGroupSurfacePresentModesKHR");
  1180. #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
  1181. #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
  1182. table->vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)load(context, "vkAcquireNextImage2KHR");
  1183. #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
  1184. /* VOLK_GENERATE_LOAD_DEVICE_TABLE */
  1185. }
  1186. #ifdef __GNUC__
  1187. # pragma GCC visibility push(hidden)
  1188. #endif
  1189. /* VOLK_GENERATE_PROTOTYPES_C */
  1190. #if defined(VK_VERSION_1_0)
  1191. PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
  1192. PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
  1193. PFN_vkAllocateMemory vkAllocateMemory;
  1194. PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
  1195. PFN_vkBindBufferMemory vkBindBufferMemory;
  1196. PFN_vkBindImageMemory vkBindImageMemory;
  1197. PFN_vkCmdBeginQuery vkCmdBeginQuery;
  1198. PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
  1199. PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
  1200. PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
  1201. PFN_vkCmdBindPipeline vkCmdBindPipeline;
  1202. PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
  1203. PFN_vkCmdBlitImage vkCmdBlitImage;
  1204. PFN_vkCmdClearAttachments vkCmdClearAttachments;
  1205. PFN_vkCmdClearColorImage vkCmdClearColorImage;
  1206. PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
  1207. PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
  1208. PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
  1209. PFN_vkCmdCopyImage vkCmdCopyImage;
  1210. PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
  1211. PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
  1212. PFN_vkCmdDispatch vkCmdDispatch;
  1213. PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
  1214. PFN_vkCmdDraw vkCmdDraw;
  1215. PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
  1216. PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
  1217. PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
  1218. PFN_vkCmdEndQuery vkCmdEndQuery;
  1219. PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
  1220. PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
  1221. PFN_vkCmdFillBuffer vkCmdFillBuffer;
  1222. PFN_vkCmdNextSubpass vkCmdNextSubpass;
  1223. PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
  1224. PFN_vkCmdPushConstants vkCmdPushConstants;
  1225. PFN_vkCmdResetEvent vkCmdResetEvent;
  1226. PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
  1227. PFN_vkCmdResolveImage vkCmdResolveImage;
  1228. PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
  1229. PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
  1230. PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
  1231. PFN_vkCmdSetEvent vkCmdSetEvent;
  1232. PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
  1233. PFN_vkCmdSetScissor vkCmdSetScissor;
  1234. PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
  1235. PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
  1236. PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
  1237. PFN_vkCmdSetViewport vkCmdSetViewport;
  1238. PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
  1239. PFN_vkCmdWaitEvents vkCmdWaitEvents;
  1240. PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
  1241. PFN_vkCreateBuffer vkCreateBuffer;
  1242. PFN_vkCreateBufferView vkCreateBufferView;
  1243. PFN_vkCreateCommandPool vkCreateCommandPool;
  1244. PFN_vkCreateComputePipelines vkCreateComputePipelines;
  1245. PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
  1246. PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
  1247. PFN_vkCreateDevice vkCreateDevice;
  1248. PFN_vkCreateEvent vkCreateEvent;
  1249. PFN_vkCreateFence vkCreateFence;
  1250. PFN_vkCreateFramebuffer vkCreateFramebuffer;
  1251. PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
  1252. PFN_vkCreateImage vkCreateImage;
  1253. PFN_vkCreateImageView vkCreateImageView;
  1254. PFN_vkCreateInstance vkCreateInstance;
  1255. PFN_vkCreatePipelineCache vkCreatePipelineCache;
  1256. PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
  1257. PFN_vkCreateQueryPool vkCreateQueryPool;
  1258. PFN_vkCreateRenderPass vkCreateRenderPass;
  1259. PFN_vkCreateSampler vkCreateSampler;
  1260. PFN_vkCreateSemaphore vkCreateSemaphore;
  1261. PFN_vkCreateShaderModule vkCreateShaderModule;
  1262. PFN_vkDestroyBuffer vkDestroyBuffer;
  1263. PFN_vkDestroyBufferView vkDestroyBufferView;
  1264. PFN_vkDestroyCommandPool vkDestroyCommandPool;
  1265. PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
  1266. PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
  1267. PFN_vkDestroyDevice vkDestroyDevice;
  1268. PFN_vkDestroyEvent vkDestroyEvent;
  1269. PFN_vkDestroyFence vkDestroyFence;
  1270. PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
  1271. PFN_vkDestroyImage vkDestroyImage;
  1272. PFN_vkDestroyImageView vkDestroyImageView;
  1273. PFN_vkDestroyInstance vkDestroyInstance;
  1274. PFN_vkDestroyPipeline vkDestroyPipeline;
  1275. PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
  1276. PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
  1277. PFN_vkDestroyQueryPool vkDestroyQueryPool;
  1278. PFN_vkDestroyRenderPass vkDestroyRenderPass;
  1279. PFN_vkDestroySampler vkDestroySampler;
  1280. PFN_vkDestroySemaphore vkDestroySemaphore;
  1281. PFN_vkDestroyShaderModule vkDestroyShaderModule;
  1282. PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
  1283. PFN_vkEndCommandBuffer vkEndCommandBuffer;
  1284. PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
  1285. PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
  1286. PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
  1287. PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
  1288. PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
  1289. PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
  1290. PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
  1291. PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
  1292. PFN_vkFreeMemory vkFreeMemory;
  1293. PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
  1294. PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
  1295. PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
  1296. PFN_vkGetDeviceQueue vkGetDeviceQueue;
  1297. PFN_vkGetEventStatus vkGetEventStatus;
  1298. PFN_vkGetFenceStatus vkGetFenceStatus;
  1299. PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
  1300. PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
  1301. PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
  1302. PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
  1303. PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
  1304. PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
  1305. PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties;
  1306. PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
  1307. PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
  1308. PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
  1309. PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties;
  1310. PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
  1311. PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
  1312. PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
  1313. PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
  1314. PFN_vkMapMemory vkMapMemory;
  1315. PFN_vkMergePipelineCaches vkMergePipelineCaches;
  1316. PFN_vkQueueBindSparse vkQueueBindSparse;
  1317. PFN_vkQueueSubmit vkQueueSubmit;
  1318. PFN_vkQueueWaitIdle vkQueueWaitIdle;
  1319. PFN_vkResetCommandBuffer vkResetCommandBuffer;
  1320. PFN_vkResetCommandPool vkResetCommandPool;
  1321. PFN_vkResetDescriptorPool vkResetDescriptorPool;
  1322. PFN_vkResetEvent vkResetEvent;
  1323. PFN_vkResetFences vkResetFences;
  1324. PFN_vkSetEvent vkSetEvent;
  1325. PFN_vkUnmapMemory vkUnmapMemory;
  1326. PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
  1327. PFN_vkWaitForFences vkWaitForFences;
  1328. #endif /* defined(VK_VERSION_1_0) */
  1329. #if defined(VK_VERSION_1_1)
  1330. PFN_vkBindBufferMemory2 vkBindBufferMemory2;
  1331. PFN_vkBindImageMemory2 vkBindImageMemory2;
  1332. PFN_vkCmdDispatchBase vkCmdDispatchBase;
  1333. PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask;
  1334. PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate;
  1335. PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion;
  1336. PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate;
  1337. PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion;
  1338. PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion;
  1339. PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups;
  1340. PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2;
  1341. PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport;
  1342. PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures;
  1343. PFN_vkGetDeviceQueue2 vkGetDeviceQueue2;
  1344. PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2;
  1345. PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2;
  1346. PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties;
  1347. PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties;
  1348. PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties;
  1349. PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2;
  1350. PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2;
  1351. PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2;
  1352. PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2;
  1353. PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2;
  1354. PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2;
  1355. PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2;
  1356. PFN_vkTrimCommandPool vkTrimCommandPool;
  1357. PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate;
  1358. #endif /* defined(VK_VERSION_1_1) */
  1359. #if defined(VK_VERSION_1_2)
  1360. PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2;
  1361. PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount;
  1362. PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount;
  1363. PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2;
  1364. PFN_vkCmdNextSubpass2 vkCmdNextSubpass2;
  1365. PFN_vkCreateRenderPass2 vkCreateRenderPass2;
  1366. PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress;
  1367. PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress;
  1368. PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress;
  1369. PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue;
  1370. PFN_vkResetQueryPool vkResetQueryPool;
  1371. PFN_vkSignalSemaphore vkSignalSemaphore;
  1372. PFN_vkWaitSemaphores vkWaitSemaphores;
  1373. #endif /* defined(VK_VERSION_1_2) */
  1374. #if defined(VK_AMD_buffer_marker)
  1375. PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD;
  1376. #endif /* defined(VK_AMD_buffer_marker) */
  1377. #if defined(VK_AMD_display_native_hdr)
  1378. PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD;
  1379. #endif /* defined(VK_AMD_display_native_hdr) */
  1380. #if defined(VK_AMD_draw_indirect_count)
  1381. PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD;
  1382. PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD;
  1383. #endif /* defined(VK_AMD_draw_indirect_count) */
  1384. #if defined(VK_AMD_shader_info)
  1385. PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD;
  1386. #endif /* defined(VK_AMD_shader_info) */
  1387. #if defined(VK_ANDROID_external_memory_android_hardware_buffer)
  1388. PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID;
  1389. PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID;
  1390. #endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */
  1391. #if defined(VK_EXT_acquire_xlib_display)
  1392. PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT;
  1393. PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT;
  1394. #endif /* defined(VK_EXT_acquire_xlib_display) */
  1395. #if defined(VK_EXT_buffer_device_address)
  1396. PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT;
  1397. #endif /* defined(VK_EXT_buffer_device_address) */
  1398. #if defined(VK_EXT_calibrated_timestamps)
  1399. PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT;
  1400. PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
  1401. #endif /* defined(VK_EXT_calibrated_timestamps) */
  1402. #if defined(VK_EXT_conditional_rendering)
  1403. PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT;
  1404. PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT;
  1405. #endif /* defined(VK_EXT_conditional_rendering) */
  1406. #if defined(VK_EXT_debug_marker)
  1407. PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT;
  1408. PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT;
  1409. PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT;
  1410. PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT;
  1411. PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT;
  1412. #endif /* defined(VK_EXT_debug_marker) */
  1413. #if defined(VK_EXT_debug_report)
  1414. PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT;
  1415. PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT;
  1416. PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT;
  1417. #endif /* defined(VK_EXT_debug_report) */
  1418. #if defined(VK_EXT_debug_utils)
  1419. PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT;
  1420. PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT;
  1421. PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT;
  1422. PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT;
  1423. PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT;
  1424. PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT;
  1425. PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT;
  1426. PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT;
  1427. PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT;
  1428. PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT;
  1429. PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT;
  1430. #endif /* defined(VK_EXT_debug_utils) */
  1431. #if defined(VK_EXT_direct_mode_display)
  1432. PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT;
  1433. #endif /* defined(VK_EXT_direct_mode_display) */
  1434. #if defined(VK_EXT_discard_rectangles)
  1435. PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT;
  1436. #endif /* defined(VK_EXT_discard_rectangles) */
  1437. #if defined(VK_EXT_display_control)
  1438. PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT;
  1439. PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT;
  1440. PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT;
  1441. PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT;
  1442. #endif /* defined(VK_EXT_display_control) */
  1443. #if defined(VK_EXT_display_surface_counter)
  1444. PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT;
  1445. #endif /* defined(VK_EXT_display_surface_counter) */
  1446. #if defined(VK_EXT_external_memory_host)
  1447. PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT;
  1448. #endif /* defined(VK_EXT_external_memory_host) */
  1449. #if defined(VK_EXT_full_screen_exclusive)
  1450. PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT;
  1451. PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT;
  1452. PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT;
  1453. #endif /* defined(VK_EXT_full_screen_exclusive) */
  1454. #if defined(VK_EXT_hdr_metadata)
  1455. PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT;
  1456. #endif /* defined(VK_EXT_hdr_metadata) */
  1457. #if defined(VK_EXT_headless_surface)
  1458. PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT;
  1459. #endif /* defined(VK_EXT_headless_surface) */
  1460. #if defined(VK_EXT_host_query_reset)
  1461. PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT;
  1462. #endif /* defined(VK_EXT_host_query_reset) */
  1463. #if defined(VK_EXT_image_drm_format_modifier)
  1464. PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT;
  1465. #endif /* defined(VK_EXT_image_drm_format_modifier) */
  1466. #if defined(VK_EXT_line_rasterization)
  1467. PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT;
  1468. #endif /* defined(VK_EXT_line_rasterization) */
  1469. #if defined(VK_EXT_metal_surface)
  1470. PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT;
  1471. #endif /* defined(VK_EXT_metal_surface) */
  1472. #if defined(VK_EXT_sample_locations)
  1473. PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT;
  1474. PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT;
  1475. #endif /* defined(VK_EXT_sample_locations) */
  1476. #if defined(VK_EXT_tooling_info)
  1477. PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT;
  1478. #endif /* defined(VK_EXT_tooling_info) */
  1479. #if defined(VK_EXT_transform_feedback)
  1480. PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT;
  1481. PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT;
  1482. PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT;
  1483. PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT;
  1484. PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT;
  1485. PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT;
  1486. #endif /* defined(VK_EXT_transform_feedback) */
  1487. #if defined(VK_EXT_validation_cache)
  1488. PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT;
  1489. PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT;
  1490. PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT;
  1491. PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT;
  1492. #endif /* defined(VK_EXT_validation_cache) */
  1493. #if defined(VK_FUCHSIA_imagepipe_surface)
  1494. PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA;
  1495. #endif /* defined(VK_FUCHSIA_imagepipe_surface) */
  1496. #if defined(VK_GGP_stream_descriptor_surface)
  1497. PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP;
  1498. #endif /* defined(VK_GGP_stream_descriptor_surface) */
  1499. #if defined(VK_GOOGLE_display_timing)
  1500. PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE;
  1501. PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
  1502. #endif /* defined(VK_GOOGLE_display_timing) */
  1503. #if defined(VK_INTEL_performance_query)
  1504. PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL;
  1505. PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL;
  1506. PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL;
  1507. PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL;
  1508. PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL;
  1509. PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL;
  1510. PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL;
  1511. PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL;
  1512. PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL;
  1513. #endif /* defined(VK_INTEL_performance_query) */
  1514. #if defined(VK_KHR_android_surface)
  1515. PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
  1516. #endif /* defined(VK_KHR_android_surface) */
  1517. #if defined(VK_KHR_bind_memory2)
  1518. PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR;
  1519. PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR;
  1520. #endif /* defined(VK_KHR_bind_memory2) */
  1521. #if defined(VK_KHR_buffer_device_address)
  1522. PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR;
  1523. PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR;
  1524. PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR;
  1525. #endif /* defined(VK_KHR_buffer_device_address) */
  1526. #if defined(VK_KHR_create_renderpass2)
  1527. PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR;
  1528. PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR;
  1529. PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR;
  1530. PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR;
  1531. #endif /* defined(VK_KHR_create_renderpass2) */
  1532. #if defined(VK_KHR_deferred_host_operations)
  1533. PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR;
  1534. PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR;
  1535. PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR;
  1536. PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR;
  1537. PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR;
  1538. #endif /* defined(VK_KHR_deferred_host_operations) */
  1539. #if defined(VK_KHR_descriptor_update_template)
  1540. PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR;
  1541. PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR;
  1542. PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR;
  1543. #endif /* defined(VK_KHR_descriptor_update_template) */
  1544. #if defined(VK_KHR_device_group)
  1545. PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR;
  1546. PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR;
  1547. PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR;
  1548. #endif /* defined(VK_KHR_device_group) */
  1549. #if defined(VK_KHR_device_group_creation)
  1550. PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR;
  1551. #endif /* defined(VK_KHR_device_group_creation) */
  1552. #if defined(VK_KHR_display)
  1553. PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR;
  1554. PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR;
  1555. PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR;
  1556. PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR;
  1557. PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR;
  1558. PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
  1559. PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR;
  1560. #endif /* defined(VK_KHR_display) */
  1561. #if defined(VK_KHR_display_swapchain)
  1562. PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR;
  1563. #endif /* defined(VK_KHR_display_swapchain) */
  1564. #if defined(VK_KHR_draw_indirect_count)
  1565. PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR;
  1566. PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR;
  1567. #endif /* defined(VK_KHR_draw_indirect_count) */
  1568. #if defined(VK_KHR_external_fence_capabilities)
  1569. PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR;
  1570. #endif /* defined(VK_KHR_external_fence_capabilities) */
  1571. #if defined(VK_KHR_external_fence_fd)
  1572. PFN_vkGetFenceFdKHR vkGetFenceFdKHR;
  1573. PFN_vkImportFenceFdKHR vkImportFenceFdKHR;
  1574. #endif /* defined(VK_KHR_external_fence_fd) */
  1575. #if defined(VK_KHR_external_fence_win32)
  1576. PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR;
  1577. PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR;
  1578. #endif /* defined(VK_KHR_external_fence_win32) */
  1579. #if defined(VK_KHR_external_memory_capabilities)
  1580. PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR;
  1581. #endif /* defined(VK_KHR_external_memory_capabilities) */
  1582. #if defined(VK_KHR_external_memory_fd)
  1583. PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR;
  1584. PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR;
  1585. #endif /* defined(VK_KHR_external_memory_fd) */
  1586. #if defined(VK_KHR_external_memory_win32)
  1587. PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR;
  1588. PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR;
  1589. #endif /* defined(VK_KHR_external_memory_win32) */
  1590. #if defined(VK_KHR_external_semaphore_capabilities)
  1591. PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
  1592. #endif /* defined(VK_KHR_external_semaphore_capabilities) */
  1593. #if defined(VK_KHR_external_semaphore_fd)
  1594. PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR;
  1595. PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR;
  1596. #endif /* defined(VK_KHR_external_semaphore_fd) */
  1597. #if defined(VK_KHR_external_semaphore_win32)
  1598. PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
  1599. PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
  1600. #endif /* defined(VK_KHR_external_semaphore_win32) */
  1601. #if defined(VK_KHR_get_display_properties2)
  1602. PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR;
  1603. PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR;
  1604. PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR;
  1605. PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR;
  1606. #endif /* defined(VK_KHR_get_display_properties2) */
  1607. #if defined(VK_KHR_get_memory_requirements2)
  1608. PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;
  1609. PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;
  1610. PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR;
  1611. #endif /* defined(VK_KHR_get_memory_requirements2) */
  1612. #if defined(VK_KHR_get_physical_device_properties2)
  1613. PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR;
  1614. PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR;
  1615. PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR;
  1616. PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR;
  1617. PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR;
  1618. PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR;
  1619. PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
  1620. #endif /* defined(VK_KHR_get_physical_device_properties2) */
  1621. #if defined(VK_KHR_get_surface_capabilities2)
  1622. PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR;
  1623. PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR;
  1624. #endif /* defined(VK_KHR_get_surface_capabilities2) */
  1625. #if defined(VK_KHR_maintenance1)
  1626. PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR;
  1627. #endif /* defined(VK_KHR_maintenance1) */
  1628. #if defined(VK_KHR_maintenance3)
  1629. PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR;
  1630. #endif /* defined(VK_KHR_maintenance3) */
  1631. #if defined(VK_KHR_performance_query)
  1632. PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR;
  1633. PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
  1634. PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
  1635. PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR;
  1636. #endif /* defined(VK_KHR_performance_query) */
  1637. #if defined(VK_KHR_pipeline_executable_properties)
  1638. PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR;
  1639. PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR;
  1640. PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR;
  1641. #endif /* defined(VK_KHR_pipeline_executable_properties) */
  1642. #if defined(VK_KHR_push_descriptor)
  1643. PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
  1644. #endif /* defined(VK_KHR_push_descriptor) */
  1645. #if defined(VK_KHR_ray_tracing)
  1646. PFN_vkBindAccelerationStructureMemoryKHR vkBindAccelerationStructureMemoryKHR;
  1647. PFN_vkBuildAccelerationStructureKHR vkBuildAccelerationStructureKHR;
  1648. PFN_vkCmdBuildAccelerationStructureIndirectKHR vkCmdBuildAccelerationStructureIndirectKHR;
  1649. PFN_vkCmdBuildAccelerationStructureKHR vkCmdBuildAccelerationStructureKHR;
  1650. PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR;
  1651. PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR;
  1652. PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR;
  1653. PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR;
  1654. PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR;
  1655. PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR;
  1656. PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR;
  1657. PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR;
  1658. PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR;
  1659. PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR;
  1660. PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR;
  1661. PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR;
  1662. PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR;
  1663. PFN_vkGetAccelerationStructureMemoryRequirementsKHR vkGetAccelerationStructureMemoryRequirementsKHR;
  1664. PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR;
  1665. PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR;
  1666. PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR;
  1667. PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR;
  1668. #endif /* defined(VK_KHR_ray_tracing) */
  1669. #if defined(VK_KHR_sampler_ycbcr_conversion)
  1670. PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR;
  1671. PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR;
  1672. #endif /* defined(VK_KHR_sampler_ycbcr_conversion) */
  1673. #if defined(VK_KHR_shared_presentable_image)
  1674. PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR;
  1675. #endif /* defined(VK_KHR_shared_presentable_image) */
  1676. #if defined(VK_KHR_surface)
  1677. PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
  1678. PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
  1679. PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR;
  1680. PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR;
  1681. PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR;
  1682. #endif /* defined(VK_KHR_surface) */
  1683. #if defined(VK_KHR_swapchain)
  1684. PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
  1685. PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
  1686. PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
  1687. PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
  1688. PFN_vkQueuePresentKHR vkQueuePresentKHR;
  1689. #endif /* defined(VK_KHR_swapchain) */
  1690. #if defined(VK_KHR_timeline_semaphore)
  1691. PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR;
  1692. PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR;
  1693. PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR;
  1694. #endif /* defined(VK_KHR_timeline_semaphore) */
  1695. #if defined(VK_KHR_wayland_surface)
  1696. PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR;
  1697. PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR;
  1698. #endif /* defined(VK_KHR_wayland_surface) */
  1699. #if defined(VK_KHR_win32_surface)
  1700. PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR;
  1701. PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR;
  1702. #endif /* defined(VK_KHR_win32_surface) */
  1703. #if defined(VK_KHR_xcb_surface)
  1704. PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR;
  1705. PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR;
  1706. #endif /* defined(VK_KHR_xcb_surface) */
  1707. #if defined(VK_KHR_xlib_surface)
  1708. PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR;
  1709. PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR;
  1710. #endif /* defined(VK_KHR_xlib_surface) */
  1711. #if defined(VK_MVK_ios_surface)
  1712. PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK;
  1713. #endif /* defined(VK_MVK_ios_surface) */
  1714. #if defined(VK_MVK_macos_surface)
  1715. PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK;
  1716. #endif /* defined(VK_MVK_macos_surface) */
  1717. #if defined(VK_NN_vi_surface)
  1718. PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN;
  1719. #endif /* defined(VK_NN_vi_surface) */
  1720. #if defined(VK_NVX_image_view_handle)
  1721. PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX;
  1722. #endif /* defined(VK_NVX_image_view_handle) */
  1723. #if defined(VK_NV_clip_space_w_scaling)
  1724. PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV;
  1725. #endif /* defined(VK_NV_clip_space_w_scaling) */
  1726. #if defined(VK_NV_cooperative_matrix)
  1727. PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV;
  1728. #endif /* defined(VK_NV_cooperative_matrix) */
  1729. #if defined(VK_NV_coverage_reduction_mode)
  1730. PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
  1731. #endif /* defined(VK_NV_coverage_reduction_mode) */
  1732. #if defined(VK_NV_device_diagnostic_checkpoints)
  1733. PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV;
  1734. PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV;
  1735. #endif /* defined(VK_NV_device_diagnostic_checkpoints) */
  1736. #if defined(VK_NV_device_generated_commands)
  1737. PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV;
  1738. PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV;
  1739. PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV;
  1740. PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV;
  1741. PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV;
  1742. PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV;
  1743. #endif /* defined(VK_NV_device_generated_commands) */
  1744. #if defined(VK_NV_external_memory_capabilities)
  1745. PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
  1746. #endif /* defined(VK_NV_external_memory_capabilities) */
  1747. #if defined(VK_NV_external_memory_win32)
  1748. PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV;
  1749. #endif /* defined(VK_NV_external_memory_win32) */
  1750. #if defined(VK_NV_mesh_shader)
  1751. PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV;
  1752. PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV;
  1753. PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV;
  1754. #endif /* defined(VK_NV_mesh_shader) */
  1755. #if defined(VK_NV_ray_tracing)
  1756. PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV;
  1757. PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV;
  1758. PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV;
  1759. PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV;
  1760. PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV;
  1761. PFN_vkCompileDeferredNV vkCompileDeferredNV;
  1762. PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV;
  1763. PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV;
  1764. PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV;
  1765. PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV;
  1766. PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV;
  1767. PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV;
  1768. #endif /* defined(VK_NV_ray_tracing) */
  1769. #if defined(VK_NV_scissor_exclusive)
  1770. PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV;
  1771. #endif /* defined(VK_NV_scissor_exclusive) */
  1772. #if defined(VK_NV_shading_rate_image)
  1773. PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV;
  1774. PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV;
  1775. PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV;
  1776. #endif /* defined(VK_NV_shading_rate_image) */
  1777. #if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1))
  1778. PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT;
  1779. #endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */
  1780. #if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1))
  1781. PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR;
  1782. #endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) */
  1783. #if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
  1784. PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR;
  1785. PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR;
  1786. PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR;
  1787. #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
  1788. #if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1))
  1789. PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR;
  1790. #endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */
  1791. /* VOLK_GENERATE_PROTOTYPES_C */
  1792. #ifdef __GNUC__
  1793. # pragma GCC visibility pop
  1794. #endif
  1795. #ifdef __cplusplus
  1796. }
  1797. #endif
  1798. /* clang-format on */