Clone of mesa.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

vulkan.h 127KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751
  1. #ifndef __vulkan_h_
  2. #define __vulkan_h_ 1
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /*
  7. ** Copyright (c) 2015 The Khronos Group Inc.
  8. **
  9. ** Permission is hereby granted, free of charge, to any person obtaining a
  10. ** copy of this software and/or associated documentation files (the
  11. ** "Materials"), to deal in the Materials without restriction, including
  12. ** without limitation the rights to use, copy, modify, merge, publish,
  13. ** distribute, sublicense, and/or sell copies of the Materials, and to
  14. ** permit persons to whom the Materials are furnished to do so, subject to
  15. ** the following conditions:
  16. **
  17. ** The above copyright notice and this permission notice shall be included
  18. ** in all copies or substantial portions of the Materials.
  19. **
  20. ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  21. ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  22. ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  23. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  24. ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  25. ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  26. ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
  27. */
  28. /*
  29. ** This header is generated from the Khronos Vulkan XML API Registry.
  30. **
  31. ** Generated on date 20150620
  32. */
  33. #define VK_VERSION_1_0 1
  34. #include "vk_platform.h"
  35. #define VK_MAKE_VERSION(major, minor, patch) \
  36. ((major << 22) | (minor << 12) | patch)
  37. // Vulkan API version supported by this file
  38. #define VK_API_VERSION VK_MAKE_VERSION(0, 130, 0)
  39. #if defined (__cplusplus) && (VK_UINTPTRLEAST64_MAX == UINTPTR_MAX)
  40. #define VK_TYPE_SAFE_COMPATIBLE_HANDLES 1
  41. #endif
  42. #if defined(VK_TYPE_SAFE_COMPATIBLE_HANDLES) && !defined(VK_DISABLE_TYPE_SAFE_HANDLES)
  43. #define VK_DEFINE_PTR_HANDLE(_obj) struct _obj##_T { char _dummy; }; typedef _obj##_T* _obj;
  44. #define VK_DEFINE_PTR_SUBCLASS_HANDLE(_obj, _base) struct _obj##_T : public _base##_T {}; typedef _obj##_T* _obj;
  45. #define VK_DEFINE_BASE_HANDLE(_obj) VK_DEFINE_PTR_HANDLE(_obj)
  46. #define VK_DEFINE_DISP_SUBCLASS_HANDLE(_obj, _base) VK_DEFINE_PTR_SUBCLASS_HANDLE(_obj, _base)
  47. #define VK_DEFINE_NONDISP_SUBCLASS_HANDLE(_obj, _base) VK_DEFINE_PTR_SUBCLASS_HANDLE(_obj, _base)
  48. #else
  49. #define VK_DEFINE_BASE_HANDLE(_obj) typedef VkUintPtrLeast64 _obj;
  50. #define VK_DEFINE_DISP_SUBCLASS_HANDLE(_obj, _base) typedef uintptr_t _obj;
  51. #define VK_DEFINE_NONDISP_SUBCLASS_HANDLE(_obj, _base) typedef VkUintPtrLeast64 _obj;
  52. #endif
  53. #define VK_MAX_PHYSICAL_DEVICE_NAME 256
  54. #define VK_UUID_LENGTH 16
  55. #define VK_MAX_EXTENSION_NAME 256
  56. #define VK_MAX_MEMORY_TYPES 32
  57. #define VK_MAX_MEMORY_HEAPS 16
  58. #define VK_LOD_CLAMP_NONE MAX_FLOAT
  59. #define VK_LAST_MIP_LEVEL UINT32_MAX
  60. #define VK_LAST_ARRAY_SLICE UINT32_MAX
  61. #define VK_WHOLE_SIZE UINT64_MAX
  62. #define VK_TRUE 1
  63. #define VK_FALSE 0
  64. #define VK_NULL_HANDLE 0
  65. VK_DEFINE_BASE_HANDLE(VkObject)
  66. VK_DEFINE_DISP_SUBCLASS_HANDLE(VkInstance, VkObject)
  67. VK_DEFINE_DISP_SUBCLASS_HANDLE(VkPhysicalDevice, VkObject)
  68. VK_DEFINE_DISP_SUBCLASS_HANDLE(VkDevice, VkObject)
  69. VK_DEFINE_DISP_SUBCLASS_HANDLE(VkQueue, VkObject)
  70. VK_DEFINE_DISP_SUBCLASS_HANDLE(VkCmdBuffer, VkObject)
  71. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkNonDispatchable, VkObject)
  72. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkFence, VkNonDispatchable)
  73. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkDeviceMemory, VkNonDispatchable)
  74. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkBuffer, VkNonDispatchable)
  75. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkImage, VkNonDispatchable)
  76. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkSemaphore, VkNonDispatchable)
  77. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkEvent, VkNonDispatchable)
  78. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkQueryPool, VkNonDispatchable)
  79. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkBufferView, VkNonDispatchable)
  80. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkImageView, VkNonDispatchable)
  81. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkColorAttachmentView, VkNonDispatchable)
  82. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkDepthStencilView, VkNonDispatchable)
  83. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkShaderModule, VkNonDispatchable)
  84. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkShader, VkNonDispatchable)
  85. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkPipelineCache, VkNonDispatchable)
  86. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkPipelineLayout, VkNonDispatchable)
  87. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkPipeline, VkNonDispatchable)
  88. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkDescriptorSetLayout, VkNonDispatchable)
  89. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkSampler, VkNonDispatchable)
  90. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkDescriptorPool, VkNonDispatchable)
  91. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkDescriptorSet, VkNonDispatchable)
  92. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkDynamicStateObject, VkNonDispatchable)
  93. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkDynamicVpState, VkDynamicStateObject)
  94. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkDynamicRsState, VkDynamicStateObject)
  95. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkDynamicCbState, VkDynamicStateObject)
  96. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkDynamicDsState, VkDynamicStateObject)
  97. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkFramebuffer, VkNonDispatchable)
  98. VK_DEFINE_NONDISP_SUBCLASS_HANDLE(VkRenderPass, VkNonDispatchable)
  99. typedef enum {
  100. VK_SUCCESS = 0,
  101. VK_UNSUPPORTED = 1,
  102. VK_NOT_READY = 2,
  103. VK_TIMEOUT = 3,
  104. VK_EVENT_SET = 4,
  105. VK_EVENT_RESET = 5,
  106. VK_ERROR_UNKNOWN = -1,
  107. VK_ERROR_UNAVAILABLE = -2,
  108. VK_ERROR_INITIALIZATION_FAILED = -3,
  109. VK_ERROR_OUT_OF_HOST_MEMORY = -4,
  110. VK_ERROR_OUT_OF_DEVICE_MEMORY = -5,
  111. VK_ERROR_DEVICE_ALREADY_CREATED = -6,
  112. VK_ERROR_DEVICE_LOST = -7,
  113. VK_ERROR_INVALID_POINTER = -8,
  114. VK_ERROR_INVALID_VALUE = -9,
  115. VK_ERROR_INVALID_HANDLE = -10,
  116. VK_ERROR_INVALID_ORDINAL = -11,
  117. VK_ERROR_INVALID_MEMORY_SIZE = -12,
  118. VK_ERROR_INVALID_EXTENSION = -13,
  119. VK_ERROR_INVALID_FLAGS = -14,
  120. VK_ERROR_INVALID_ALIGNMENT = -15,
  121. VK_ERROR_INVALID_FORMAT = -16,
  122. VK_ERROR_INVALID_IMAGE = -17,
  123. VK_ERROR_INVALID_DESCRIPTOR_SET_DATA = -18,
  124. VK_ERROR_INVALID_QUEUE_TYPE = -19,
  125. VK_ERROR_INVALID_OBJECT_TYPE = -20,
  126. VK_ERROR_UNSUPPORTED_SHADER_IL_VERSION = -21,
  127. VK_ERROR_BAD_SHADER_CODE = -22,
  128. VK_ERROR_BAD_PIPELINE_DATA = -23,
  129. VK_ERROR_NOT_MAPPABLE = -24,
  130. VK_ERROR_MEMORY_MAP_FAILED = -25,
  131. VK_ERROR_MEMORY_UNMAP_FAILED = -26,
  132. VK_ERROR_INCOMPATIBLE_DEVICE = -27,
  133. VK_ERROR_INCOMPATIBLE_DRIVER = -28,
  134. VK_ERROR_INCOMPLETE_COMMAND_BUFFER = -29,
  135. VK_ERROR_BUILDING_COMMAND_BUFFER = -30,
  136. VK_ERROR_MEMORY_NOT_BOUND = -31,
  137. VK_ERROR_INCOMPATIBLE_QUEUE = -32,
  138. VK_RESULT_BEGIN_RANGE = VK_ERROR_INCOMPATIBLE_QUEUE,
  139. VK_RESULT_END_RANGE = VK_EVENT_RESET,
  140. VK_RESULT_NUM = (VK_EVENT_RESET - VK_ERROR_INCOMPATIBLE_QUEUE + 1),
  141. VK_RESULT_MAX_ENUM = 0x7FFFFFFF
  142. } VkResult;
  143. typedef enum {
  144. VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
  145. VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 1,
  146. VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO = 2,
  147. VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 3,
  148. VK_STRUCTURE_TYPE_COLOR_ATTACHMENT_VIEW_CREATE_INFO = 4,
  149. VK_STRUCTURE_TYPE_DEPTH_STENCIL_VIEW_CREATE_INFO = 5,
  150. VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 6,
  151. VK_STRUCTURE_TYPE_SHADER_CREATE_INFO = 7,
  152. VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 8,
  153. VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 9,
  154. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 10,
  155. VK_STRUCTURE_TYPE_DYNAMIC_VP_STATE_CREATE_INFO = 11,
  156. VK_STRUCTURE_TYPE_DYNAMIC_RS_STATE_CREATE_INFO = 12,
  157. VK_STRUCTURE_TYPE_DYNAMIC_CB_STATE_CREATE_INFO = 13,
  158. VK_STRUCTURE_TYPE_DYNAMIC_DS_STATE_CREATE_INFO = 14,
  159. VK_STRUCTURE_TYPE_CMD_BUFFER_CREATE_INFO = 15,
  160. VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 16,
  161. VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 17,
  162. VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 18,
  163. VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 19,
  164. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 20,
  165. VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 21,
  166. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 22,
  167. VK_STRUCTURE_TYPE_PIPELINE_IA_STATE_CREATE_INFO = 23,
  168. VK_STRUCTURE_TYPE_PIPELINE_TESS_STATE_CREATE_INFO = 24,
  169. VK_STRUCTURE_TYPE_PIPELINE_VP_STATE_CREATE_INFO = 25,
  170. VK_STRUCTURE_TYPE_PIPELINE_RS_STATE_CREATE_INFO = 26,
  171. VK_STRUCTURE_TYPE_PIPELINE_MS_STATE_CREATE_INFO = 27,
  172. VK_STRUCTURE_TYPE_PIPELINE_CB_STATE_CREATE_INFO = 28,
  173. VK_STRUCTURE_TYPE_PIPELINE_DS_STATE_CREATE_INFO = 29,
  174. VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 30,
  175. VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 31,
  176. VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 32,
  177. VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 33,
  178. VK_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO = 34,
  179. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 35,
  180. VK_STRUCTURE_TYPE_LAYER_CREATE_INFO = 36,
  181. VK_STRUCTURE_TYPE_MEMORY_BARRIER = 37,
  182. VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 38,
  183. VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 39,
  184. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 40,
  185. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 41,
  186. VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 42,
  187. VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 43,
  188. VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 44,
  189. VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 45,
  190. VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 46,
  191. VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
  192. VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,
  193. VK_STRUCTURE_TYPE_NUM = (VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
  194. VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
  195. } VkStructureType;
  196. typedef enum {
  197. VK_SYSTEM_ALLOC_TYPE_API_OBJECT = 0,
  198. VK_SYSTEM_ALLOC_TYPE_INTERNAL = 1,
  199. VK_SYSTEM_ALLOC_TYPE_INTERNAL_TEMP = 2,
  200. VK_SYSTEM_ALLOC_TYPE_INTERNAL_SHADER = 3,
  201. VK_SYSTEM_ALLOC_TYPE_DEBUG = 4,
  202. VK_SYSTEM_ALLOC_TYPE_BEGIN_RANGE = VK_SYSTEM_ALLOC_TYPE_API_OBJECT,
  203. VK_SYSTEM_ALLOC_TYPE_END_RANGE = VK_SYSTEM_ALLOC_TYPE_DEBUG,
  204. VK_SYSTEM_ALLOC_TYPE_NUM = (VK_SYSTEM_ALLOC_TYPE_DEBUG - VK_SYSTEM_ALLOC_TYPE_API_OBJECT + 1),
  205. VK_SYSTEM_ALLOC_TYPE_MAX_ENUM = 0x7FFFFFFF
  206. } VkSystemAllocType;
  207. typedef enum {
  208. VK_FORMAT_UNDEFINED = 0,
  209. VK_FORMAT_R4G4_UNORM = 1,
  210. VK_FORMAT_R4G4_USCALED = 2,
  211. VK_FORMAT_R4G4B4A4_UNORM = 3,
  212. VK_FORMAT_R4G4B4A4_USCALED = 4,
  213. VK_FORMAT_R5G6B5_UNORM = 5,
  214. VK_FORMAT_R5G6B5_USCALED = 6,
  215. VK_FORMAT_R5G5B5A1_UNORM = 7,
  216. VK_FORMAT_R5G5B5A1_USCALED = 8,
  217. VK_FORMAT_R8_UNORM = 9,
  218. VK_FORMAT_R8_SNORM = 10,
  219. VK_FORMAT_R8_USCALED = 11,
  220. VK_FORMAT_R8_SSCALED = 12,
  221. VK_FORMAT_R8_UINT = 13,
  222. VK_FORMAT_R8_SINT = 14,
  223. VK_FORMAT_R8_SRGB = 15,
  224. VK_FORMAT_R8G8_UNORM = 16,
  225. VK_FORMAT_R8G8_SNORM = 17,
  226. VK_FORMAT_R8G8_USCALED = 18,
  227. VK_FORMAT_R8G8_SSCALED = 19,
  228. VK_FORMAT_R8G8_UINT = 20,
  229. VK_FORMAT_R8G8_SINT = 21,
  230. VK_FORMAT_R8G8_SRGB = 22,
  231. VK_FORMAT_R8G8B8_UNORM = 23,
  232. VK_FORMAT_R8G8B8_SNORM = 24,
  233. VK_FORMAT_R8G8B8_USCALED = 25,
  234. VK_FORMAT_R8G8B8_SSCALED = 26,
  235. VK_FORMAT_R8G8B8_UINT = 27,
  236. VK_FORMAT_R8G8B8_SINT = 28,
  237. VK_FORMAT_R8G8B8_SRGB = 29,
  238. VK_FORMAT_R8G8B8A8_UNORM = 30,
  239. VK_FORMAT_R8G8B8A8_SNORM = 31,
  240. VK_FORMAT_R8G8B8A8_USCALED = 32,
  241. VK_FORMAT_R8G8B8A8_SSCALED = 33,
  242. VK_FORMAT_R8G8B8A8_UINT = 34,
  243. VK_FORMAT_R8G8B8A8_SINT = 35,
  244. VK_FORMAT_R8G8B8A8_SRGB = 36,
  245. VK_FORMAT_R10G10B10A2_UNORM = 37,
  246. VK_FORMAT_R10G10B10A2_SNORM = 38,
  247. VK_FORMAT_R10G10B10A2_USCALED = 39,
  248. VK_FORMAT_R10G10B10A2_SSCALED = 40,
  249. VK_FORMAT_R10G10B10A2_UINT = 41,
  250. VK_FORMAT_R10G10B10A2_SINT = 42,
  251. VK_FORMAT_R16_UNORM = 43,
  252. VK_FORMAT_R16_SNORM = 44,
  253. VK_FORMAT_R16_USCALED = 45,
  254. VK_FORMAT_R16_SSCALED = 46,
  255. VK_FORMAT_R16_UINT = 47,
  256. VK_FORMAT_R16_SINT = 48,
  257. VK_FORMAT_R16_SFLOAT = 49,
  258. VK_FORMAT_R16G16_UNORM = 50,
  259. VK_FORMAT_R16G16_SNORM = 51,
  260. VK_FORMAT_R16G16_USCALED = 52,
  261. VK_FORMAT_R16G16_SSCALED = 53,
  262. VK_FORMAT_R16G16_UINT = 54,
  263. VK_FORMAT_R16G16_SINT = 55,
  264. VK_FORMAT_R16G16_SFLOAT = 56,
  265. VK_FORMAT_R16G16B16_UNORM = 57,
  266. VK_FORMAT_R16G16B16_SNORM = 58,
  267. VK_FORMAT_R16G16B16_USCALED = 59,
  268. VK_FORMAT_R16G16B16_SSCALED = 60,
  269. VK_FORMAT_R16G16B16_UINT = 61,
  270. VK_FORMAT_R16G16B16_SINT = 62,
  271. VK_FORMAT_R16G16B16_SFLOAT = 63,
  272. VK_FORMAT_R16G16B16A16_UNORM = 64,
  273. VK_FORMAT_R16G16B16A16_SNORM = 65,
  274. VK_FORMAT_R16G16B16A16_USCALED = 66,
  275. VK_FORMAT_R16G16B16A16_SSCALED = 67,
  276. VK_FORMAT_R16G16B16A16_UINT = 68,
  277. VK_FORMAT_R16G16B16A16_SINT = 69,
  278. VK_FORMAT_R16G16B16A16_SFLOAT = 70,
  279. VK_FORMAT_R32_UINT = 71,
  280. VK_FORMAT_R32_SINT = 72,
  281. VK_FORMAT_R32_SFLOAT = 73,
  282. VK_FORMAT_R32G32_UINT = 74,
  283. VK_FORMAT_R32G32_SINT = 75,
  284. VK_FORMAT_R32G32_SFLOAT = 76,
  285. VK_FORMAT_R32G32B32_UINT = 77,
  286. VK_FORMAT_R32G32B32_SINT = 78,
  287. VK_FORMAT_R32G32B32_SFLOAT = 79,
  288. VK_FORMAT_R32G32B32A32_UINT = 80,
  289. VK_FORMAT_R32G32B32A32_SINT = 81,
  290. VK_FORMAT_R32G32B32A32_SFLOAT = 82,
  291. VK_FORMAT_R64_SFLOAT = 83,
  292. VK_FORMAT_R64G64_SFLOAT = 84,
  293. VK_FORMAT_R64G64B64_SFLOAT = 85,
  294. VK_FORMAT_R64G64B64A64_SFLOAT = 86,
  295. VK_FORMAT_R11G11B10_UFLOAT = 87,
  296. VK_FORMAT_R9G9B9E5_UFLOAT = 88,
  297. VK_FORMAT_D16_UNORM = 89,
  298. VK_FORMAT_D24_UNORM = 90,
  299. VK_FORMAT_D32_SFLOAT = 91,
  300. VK_FORMAT_S8_UINT = 92,
  301. VK_FORMAT_D16_UNORM_S8_UINT = 93,
  302. VK_FORMAT_D24_UNORM_S8_UINT = 94,
  303. VK_FORMAT_D32_SFLOAT_S8_UINT = 95,
  304. VK_FORMAT_BC1_RGB_UNORM = 96,
  305. VK_FORMAT_BC1_RGB_SRGB = 97,
  306. VK_FORMAT_BC1_RGBA_UNORM = 98,
  307. VK_FORMAT_BC1_RGBA_SRGB = 99,
  308. VK_FORMAT_BC2_UNORM = 100,
  309. VK_FORMAT_BC2_SRGB = 101,
  310. VK_FORMAT_BC3_UNORM = 102,
  311. VK_FORMAT_BC3_SRGB = 103,
  312. VK_FORMAT_BC4_UNORM = 104,
  313. VK_FORMAT_BC4_SNORM = 105,
  314. VK_FORMAT_BC5_UNORM = 106,
  315. VK_FORMAT_BC5_SNORM = 107,
  316. VK_FORMAT_BC6H_UFLOAT = 108,
  317. VK_FORMAT_BC6H_SFLOAT = 109,
  318. VK_FORMAT_BC7_UNORM = 110,
  319. VK_FORMAT_BC7_SRGB = 111,
  320. VK_FORMAT_ETC2_R8G8B8_UNORM = 112,
  321. VK_FORMAT_ETC2_R8G8B8_SRGB = 113,
  322. VK_FORMAT_ETC2_R8G8B8A1_UNORM = 114,
  323. VK_FORMAT_ETC2_R8G8B8A1_SRGB = 115,
  324. VK_FORMAT_ETC2_R8G8B8A8_UNORM = 116,
  325. VK_FORMAT_ETC2_R8G8B8A8_SRGB = 117,
  326. VK_FORMAT_EAC_R11_UNORM = 118,
  327. VK_FORMAT_EAC_R11_SNORM = 119,
  328. VK_FORMAT_EAC_R11G11_UNORM = 120,
  329. VK_FORMAT_EAC_R11G11_SNORM = 121,
  330. VK_FORMAT_ASTC_4x4_UNORM = 122,
  331. VK_FORMAT_ASTC_4x4_SRGB = 123,
  332. VK_FORMAT_ASTC_5x4_UNORM = 124,
  333. VK_FORMAT_ASTC_5x4_SRGB = 125,
  334. VK_FORMAT_ASTC_5x5_UNORM = 126,
  335. VK_FORMAT_ASTC_5x5_SRGB = 127,
  336. VK_FORMAT_ASTC_6x5_UNORM = 128,
  337. VK_FORMAT_ASTC_6x5_SRGB = 129,
  338. VK_FORMAT_ASTC_6x6_UNORM = 130,
  339. VK_FORMAT_ASTC_6x6_SRGB = 131,
  340. VK_FORMAT_ASTC_8x5_UNORM = 132,
  341. VK_FORMAT_ASTC_8x5_SRGB = 133,
  342. VK_FORMAT_ASTC_8x6_UNORM = 134,
  343. VK_FORMAT_ASTC_8x6_SRGB = 135,
  344. VK_FORMAT_ASTC_8x8_UNORM = 136,
  345. VK_FORMAT_ASTC_8x8_SRGB = 137,
  346. VK_FORMAT_ASTC_10x5_UNORM = 138,
  347. VK_FORMAT_ASTC_10x5_SRGB = 139,
  348. VK_FORMAT_ASTC_10x6_UNORM = 140,
  349. VK_FORMAT_ASTC_10x6_SRGB = 141,
  350. VK_FORMAT_ASTC_10x8_UNORM = 142,
  351. VK_FORMAT_ASTC_10x8_SRGB = 143,
  352. VK_FORMAT_ASTC_10x10_UNORM = 144,
  353. VK_FORMAT_ASTC_10x10_SRGB = 145,
  354. VK_FORMAT_ASTC_12x10_UNORM = 146,
  355. VK_FORMAT_ASTC_12x10_SRGB = 147,
  356. VK_FORMAT_ASTC_12x12_UNORM = 148,
  357. VK_FORMAT_ASTC_12x12_SRGB = 149,
  358. VK_FORMAT_B4G4R4A4_UNORM = 150,
  359. VK_FORMAT_B5G5R5A1_UNORM = 151,
  360. VK_FORMAT_B5G6R5_UNORM = 152,
  361. VK_FORMAT_B5G6R5_USCALED = 153,
  362. VK_FORMAT_B8G8R8_UNORM = 154,
  363. VK_FORMAT_B8G8R8_SNORM = 155,
  364. VK_FORMAT_B8G8R8_USCALED = 156,
  365. VK_FORMAT_B8G8R8_SSCALED = 157,
  366. VK_FORMAT_B8G8R8_UINT = 158,
  367. VK_FORMAT_B8G8R8_SINT = 159,
  368. VK_FORMAT_B8G8R8_SRGB = 160,
  369. VK_FORMAT_B8G8R8A8_UNORM = 161,
  370. VK_FORMAT_B8G8R8A8_SNORM = 162,
  371. VK_FORMAT_B8G8R8A8_USCALED = 163,
  372. VK_FORMAT_B8G8R8A8_SSCALED = 164,
  373. VK_FORMAT_B8G8R8A8_UINT = 165,
  374. VK_FORMAT_B8G8R8A8_SINT = 166,
  375. VK_FORMAT_B8G8R8A8_SRGB = 167,
  376. VK_FORMAT_B10G10R10A2_UNORM = 168,
  377. VK_FORMAT_B10G10R10A2_SNORM = 169,
  378. VK_FORMAT_B10G10R10A2_USCALED = 170,
  379. VK_FORMAT_B10G10R10A2_SSCALED = 171,
  380. VK_FORMAT_B10G10R10A2_UINT = 172,
  381. VK_FORMAT_B10G10R10A2_SINT = 173,
  382. VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
  383. VK_FORMAT_END_RANGE = VK_FORMAT_B10G10R10A2_SINT,
  384. VK_FORMAT_NUM = (VK_FORMAT_B10G10R10A2_SINT - VK_FORMAT_UNDEFINED + 1),
  385. VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
  386. } VkFormat;
  387. typedef enum {
  388. VK_IMAGE_TYPE_1D = 0,
  389. VK_IMAGE_TYPE_2D = 1,
  390. VK_IMAGE_TYPE_3D = 2,
  391. VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
  392. VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
  393. VK_IMAGE_TYPE_NUM = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
  394. VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
  395. } VkImageType;
  396. typedef enum {
  397. VK_IMAGE_TILING_LINEAR = 0,
  398. VK_IMAGE_TILING_OPTIMAL = 1,
  399. VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_LINEAR,
  400. VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_OPTIMAL,
  401. VK_IMAGE_TILING_NUM = (VK_IMAGE_TILING_OPTIMAL - VK_IMAGE_TILING_LINEAR + 1),
  402. VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
  403. } VkImageTiling;
  404. typedef enum {
  405. VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
  406. VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
  407. VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
  408. VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
  409. VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
  410. VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
  411. VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
  412. VK_PHYSICAL_DEVICE_TYPE_NUM = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
  413. VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
  414. } VkPhysicalDeviceType;
  415. typedef enum {
  416. VK_OBJECT_TYPE_INSTANCE = 0,
  417. VK_OBJECT_TYPE_PHYSICAL_DEVICE = 1,
  418. VK_OBJECT_TYPE_DEVICE = 2,
  419. VK_OBJECT_TYPE_QUEUE = 3,
  420. VK_OBJECT_TYPE_COMMAND_BUFFER = 4,
  421. VK_OBJECT_TYPE_DEVICE_MEMORY = 5,
  422. VK_OBJECT_TYPE_BUFFER = 6,
  423. VK_OBJECT_TYPE_BUFFER_VIEW = 7,
  424. VK_OBJECT_TYPE_IMAGE = 8,
  425. VK_OBJECT_TYPE_IMAGE_VIEW = 9,
  426. VK_OBJECT_TYPE_COLOR_ATTACHMENT_VIEW = 10,
  427. VK_OBJECT_TYPE_DEPTH_STENCIL_VIEW = 11,
  428. VK_OBJECT_TYPE_SHADER_MODULE = 12,
  429. VK_OBJECT_TYPE_SHADER = 13,
  430. VK_OBJECT_TYPE_PIPELINE = 14,
  431. VK_OBJECT_TYPE_PIPELINE_LAYOUT = 15,
  432. VK_OBJECT_TYPE_SAMPLER = 16,
  433. VK_OBJECT_TYPE_DESCRIPTOR_SET = 17,
  434. VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 18,
  435. VK_OBJECT_TYPE_DESCRIPTOR_POOL = 19,
  436. VK_OBJECT_TYPE_DYNAMIC_VP_STATE = 20,
  437. VK_OBJECT_TYPE_DYNAMIC_RS_STATE = 21,
  438. VK_OBJECT_TYPE_DYNAMIC_CB_STATE = 22,
  439. VK_OBJECT_TYPE_DYNAMIC_DS_STATE = 23,
  440. VK_OBJECT_TYPE_FENCE = 24,
  441. VK_OBJECT_TYPE_SEMAPHORE = 25,
  442. VK_OBJECT_TYPE_EVENT = 26,
  443. VK_OBJECT_TYPE_QUERY_POOL = 27,
  444. VK_OBJECT_TYPE_FRAMEBUFFER = 28,
  445. VK_OBJECT_TYPE_RENDER_PASS = 29,
  446. VK_OBJECT_TYPE_PIPELINE_CACHE = 30,
  447. VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_INSTANCE,
  448. VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_PIPELINE_CACHE,
  449. VK_OBJECT_TYPE_NUM = (VK_OBJECT_TYPE_PIPELINE_CACHE - VK_OBJECT_TYPE_INSTANCE + 1),
  450. VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
  451. } VkObjectType;
  452. typedef enum {
  453. VK_IMAGE_ASPECT_COLOR = 0,
  454. VK_IMAGE_ASPECT_DEPTH = 1,
  455. VK_IMAGE_ASPECT_STENCIL = 2,
  456. VK_IMAGE_ASPECT_BEGIN_RANGE = VK_IMAGE_ASPECT_COLOR,
  457. VK_IMAGE_ASPECT_END_RANGE = VK_IMAGE_ASPECT_STENCIL,
  458. VK_IMAGE_ASPECT_NUM = (VK_IMAGE_ASPECT_STENCIL - VK_IMAGE_ASPECT_COLOR + 1),
  459. VK_IMAGE_ASPECT_MAX_ENUM = 0x7FFFFFFF
  460. } VkImageAspect;
  461. typedef enum {
  462. VK_QUERY_TYPE_OCCLUSION = 0,
  463. VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
  464. VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
  465. VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_PIPELINE_STATISTICS,
  466. VK_QUERY_TYPE_NUM = (VK_QUERY_TYPE_PIPELINE_STATISTICS - VK_QUERY_TYPE_OCCLUSION + 1),
  467. VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
  468. } VkQueryType;
  469. typedef enum {
  470. VK_BUFFER_VIEW_TYPE_RAW = 0,
  471. VK_BUFFER_VIEW_TYPE_FORMATTED = 1,
  472. VK_BUFFER_VIEW_TYPE_BEGIN_RANGE = VK_BUFFER_VIEW_TYPE_RAW,
  473. VK_BUFFER_VIEW_TYPE_END_RANGE = VK_BUFFER_VIEW_TYPE_FORMATTED,
  474. VK_BUFFER_VIEW_TYPE_NUM = (VK_BUFFER_VIEW_TYPE_FORMATTED - VK_BUFFER_VIEW_TYPE_RAW + 1),
  475. VK_BUFFER_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
  476. } VkBufferViewType;
  477. typedef enum {
  478. VK_IMAGE_VIEW_TYPE_1D = 0,
  479. VK_IMAGE_VIEW_TYPE_2D = 1,
  480. VK_IMAGE_VIEW_TYPE_3D = 2,
  481. VK_IMAGE_VIEW_TYPE_CUBE = 3,
  482. VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
  483. VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
  484. VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
  485. VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
  486. VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
  487. VK_IMAGE_VIEW_TYPE_NUM = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
  488. VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
  489. } VkImageViewType;
  490. typedef enum {
  491. VK_CHANNEL_SWIZZLE_ZERO = 0,
  492. VK_CHANNEL_SWIZZLE_ONE = 1,
  493. VK_CHANNEL_SWIZZLE_R = 2,
  494. VK_CHANNEL_SWIZZLE_G = 3,
  495. VK_CHANNEL_SWIZZLE_B = 4,
  496. VK_CHANNEL_SWIZZLE_A = 5,
  497. VK_CHANNEL_SWIZZLE_BEGIN_RANGE = VK_CHANNEL_SWIZZLE_ZERO,
  498. VK_CHANNEL_SWIZZLE_END_RANGE = VK_CHANNEL_SWIZZLE_A,
  499. VK_CHANNEL_SWIZZLE_NUM = (VK_CHANNEL_SWIZZLE_A - VK_CHANNEL_SWIZZLE_ZERO + 1),
  500. VK_CHANNEL_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
  501. } VkChannelSwizzle;
  502. typedef enum {
  503. VK_SHADER_STAGE_VERTEX = 0,
  504. VK_SHADER_STAGE_TESS_CONTROL = 1,
  505. VK_SHADER_STAGE_TESS_EVALUATION = 2,
  506. VK_SHADER_STAGE_GEOMETRY = 3,
  507. VK_SHADER_STAGE_FRAGMENT = 4,
  508. VK_SHADER_STAGE_COMPUTE = 5,
  509. VK_SHADER_STAGE_BEGIN_RANGE = VK_SHADER_STAGE_VERTEX,
  510. VK_SHADER_STAGE_END_RANGE = VK_SHADER_STAGE_COMPUTE,
  511. VK_SHADER_STAGE_NUM = (VK_SHADER_STAGE_COMPUTE - VK_SHADER_STAGE_VERTEX + 1),
  512. VK_SHADER_STAGE_MAX_ENUM = 0x7FFFFFFF
  513. } VkShaderStage;
  514. typedef enum {
  515. VK_VERTEX_INPUT_STEP_RATE_VERTEX = 0,
  516. VK_VERTEX_INPUT_STEP_RATE_INSTANCE = 1,
  517. VK_VERTEX_INPUT_STEP_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_STEP_RATE_VERTEX,
  518. VK_VERTEX_INPUT_STEP_RATE_END_RANGE = VK_VERTEX_INPUT_STEP_RATE_INSTANCE,
  519. VK_VERTEX_INPUT_STEP_RATE_NUM = (VK_VERTEX_INPUT_STEP_RATE_INSTANCE - VK_VERTEX_INPUT_STEP_RATE_VERTEX + 1),
  520. VK_VERTEX_INPUT_STEP_RATE_MAX_ENUM = 0x7FFFFFFF
  521. } VkVertexInputStepRate;
  522. typedef enum {
  523. VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
  524. VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
  525. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
  526. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
  527. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
  528. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
  529. VK_PRIMITIVE_TOPOLOGY_LINE_LIST_ADJ = 6,
  530. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_ADJ = 7,
  531. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_ADJ = 8,
  532. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_ADJ = 9,
  533. VK_PRIMITIVE_TOPOLOGY_PATCH = 10,
  534. VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
  535. VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH,
  536. VK_PRIMITIVE_TOPOLOGY_NUM = (VK_PRIMITIVE_TOPOLOGY_PATCH - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
  537. VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
  538. } VkPrimitiveTopology;
  539. typedef enum {
  540. VK_FILL_MODE_POINTS = 0,
  541. VK_FILL_MODE_WIREFRAME = 1,
  542. VK_FILL_MODE_SOLID = 2,
  543. VK_FILL_MODE_BEGIN_RANGE = VK_FILL_MODE_POINTS,
  544. VK_FILL_MODE_END_RANGE = VK_FILL_MODE_SOLID,
  545. VK_FILL_MODE_NUM = (VK_FILL_MODE_SOLID - VK_FILL_MODE_POINTS + 1),
  546. VK_FILL_MODE_MAX_ENUM = 0x7FFFFFFF
  547. } VkFillMode;
  548. typedef enum {
  549. VK_CULL_MODE_NONE = 0,
  550. VK_CULL_MODE_FRONT = 1,
  551. VK_CULL_MODE_BACK = 2,
  552. VK_CULL_MODE_FRONT_AND_BACK = 3,
  553. VK_CULL_MODE_BEGIN_RANGE = VK_CULL_MODE_NONE,
  554. VK_CULL_MODE_END_RANGE = VK_CULL_MODE_FRONT_AND_BACK,
  555. VK_CULL_MODE_NUM = (VK_CULL_MODE_FRONT_AND_BACK - VK_CULL_MODE_NONE + 1),
  556. VK_CULL_MODE_MAX_ENUM = 0x7FFFFFFF
  557. } VkCullMode;
  558. typedef enum {
  559. VK_FRONT_FACE_CCW = 0,
  560. VK_FRONT_FACE_CW = 1,
  561. VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_CCW,
  562. VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CW,
  563. VK_FRONT_FACE_NUM = (VK_FRONT_FACE_CW - VK_FRONT_FACE_CCW + 1),
  564. VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
  565. } VkFrontFace;
  566. typedef enum {
  567. VK_COMPARE_OP_NEVER = 0,
  568. VK_COMPARE_OP_LESS = 1,
  569. VK_COMPARE_OP_EQUAL = 2,
  570. VK_COMPARE_OP_LESS_EQUAL = 3,
  571. VK_COMPARE_OP_GREATER = 4,
  572. VK_COMPARE_OP_NOT_EQUAL = 5,
  573. VK_COMPARE_OP_GREATER_EQUAL = 6,
  574. VK_COMPARE_OP_ALWAYS = 7,
  575. VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
  576. VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
  577. VK_COMPARE_OP_NUM = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
  578. VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
  579. } VkCompareOp;
  580. typedef enum {
  581. VK_STENCIL_OP_KEEP = 0,
  582. VK_STENCIL_OP_ZERO = 1,
  583. VK_STENCIL_OP_REPLACE = 2,
  584. VK_STENCIL_OP_INC_CLAMP = 3,
  585. VK_STENCIL_OP_DEC_CLAMP = 4,
  586. VK_STENCIL_OP_INVERT = 5,
  587. VK_STENCIL_OP_INC_WRAP = 6,
  588. VK_STENCIL_OP_DEC_WRAP = 7,
  589. VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
  590. VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DEC_WRAP,
  591. VK_STENCIL_OP_NUM = (VK_STENCIL_OP_DEC_WRAP - VK_STENCIL_OP_KEEP + 1),
  592. VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
  593. } VkStencilOp;
  594. typedef enum {
  595. VK_LOGIC_OP_CLEAR = 0,
  596. VK_LOGIC_OP_AND = 1,
  597. VK_LOGIC_OP_AND_REVERSE = 2,
  598. VK_LOGIC_OP_COPY = 3,
  599. VK_LOGIC_OP_AND_INVERTED = 4,
  600. VK_LOGIC_OP_NOOP = 5,
  601. VK_LOGIC_OP_XOR = 6,
  602. VK_LOGIC_OP_OR = 7,
  603. VK_LOGIC_OP_NOR = 8,
  604. VK_LOGIC_OP_EQUIV = 9,
  605. VK_LOGIC_OP_INVERT = 10,
  606. VK_LOGIC_OP_OR_REVERSE = 11,
  607. VK_LOGIC_OP_COPY_INVERTED = 12,
  608. VK_LOGIC_OP_OR_INVERTED = 13,
  609. VK_LOGIC_OP_NAND = 14,
  610. VK_LOGIC_OP_SET = 15,
  611. VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
  612. VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
  613. VK_LOGIC_OP_NUM = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
  614. VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
  615. } VkLogicOp;
  616. typedef enum {
  617. VK_BLEND_ZERO = 0,
  618. VK_BLEND_ONE = 1,
  619. VK_BLEND_SRC_COLOR = 2,
  620. VK_BLEND_ONE_MINUS_SRC_COLOR = 3,
  621. VK_BLEND_DEST_COLOR = 4,
  622. VK_BLEND_ONE_MINUS_DEST_COLOR = 5,
  623. VK_BLEND_SRC_ALPHA = 6,
  624. VK_BLEND_ONE_MINUS_SRC_ALPHA = 7,
  625. VK_BLEND_DEST_ALPHA = 8,
  626. VK_BLEND_ONE_MINUS_DEST_ALPHA = 9,
  627. VK_BLEND_CONSTANT_COLOR = 10,
  628. VK_BLEND_ONE_MINUS_CONSTANT_COLOR = 11,
  629. VK_BLEND_CONSTANT_ALPHA = 12,
  630. VK_BLEND_ONE_MINUS_CONSTANT_ALPHA = 13,
  631. VK_BLEND_SRC_ALPHA_SATURATE = 14,
  632. VK_BLEND_SRC1_COLOR = 15,
  633. VK_BLEND_ONE_MINUS_SRC1_COLOR = 16,
  634. VK_BLEND_SRC1_ALPHA = 17,
  635. VK_BLEND_ONE_MINUS_SRC1_ALPHA = 18,
  636. VK_BLEND_BEGIN_RANGE = VK_BLEND_ZERO,
  637. VK_BLEND_END_RANGE = VK_BLEND_ONE_MINUS_SRC1_ALPHA,
  638. VK_BLEND_NUM = (VK_BLEND_ONE_MINUS_SRC1_ALPHA - VK_BLEND_ZERO + 1),
  639. VK_BLEND_MAX_ENUM = 0x7FFFFFFF
  640. } VkBlend;
  641. typedef enum {
  642. VK_BLEND_OP_ADD = 0,
  643. VK_BLEND_OP_SUBTRACT = 1,
  644. VK_BLEND_OP_REVERSE_SUBTRACT = 2,
  645. VK_BLEND_OP_MIN = 3,
  646. VK_BLEND_OP_MAX = 4,
  647. VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
  648. VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
  649. VK_BLEND_OP_NUM = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
  650. VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
  651. } VkBlendOp;
  652. typedef enum {
  653. VK_TEX_FILTER_NEAREST = 0,
  654. VK_TEX_FILTER_LINEAR = 1,
  655. VK_TEX_FILTER_BEGIN_RANGE = VK_TEX_FILTER_NEAREST,
  656. VK_TEX_FILTER_END_RANGE = VK_TEX_FILTER_LINEAR,
  657. VK_TEX_FILTER_NUM = (VK_TEX_FILTER_LINEAR - VK_TEX_FILTER_NEAREST + 1),
  658. VK_TEX_FILTER_MAX_ENUM = 0x7FFFFFFF
  659. } VkTexFilter;
  660. typedef enum {
  661. VK_TEX_MIPMAP_MODE_BASE = 0,
  662. VK_TEX_MIPMAP_MODE_NEAREST = 1,
  663. VK_TEX_MIPMAP_MODE_LINEAR = 2,
  664. VK_TEX_MIPMAP_MODE_BEGIN_RANGE = VK_TEX_MIPMAP_MODE_BASE,
  665. VK_TEX_MIPMAP_MODE_END_RANGE = VK_TEX_MIPMAP_MODE_LINEAR,
  666. VK_TEX_MIPMAP_MODE_NUM = (VK_TEX_MIPMAP_MODE_LINEAR - VK_TEX_MIPMAP_MODE_BASE + 1),
  667. VK_TEX_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
  668. } VkTexMipmapMode;
  669. typedef enum {
  670. VK_TEX_ADDRESS_WRAP = 0,
  671. VK_TEX_ADDRESS_MIRROR = 1,
  672. VK_TEX_ADDRESS_CLAMP = 2,
  673. VK_TEX_ADDRESS_MIRROR_ONCE = 3,
  674. VK_TEX_ADDRESS_CLAMP_BORDER = 4,
  675. VK_TEX_ADDRESS_BEGIN_RANGE = VK_TEX_ADDRESS_WRAP,
  676. VK_TEX_ADDRESS_END_RANGE = VK_TEX_ADDRESS_CLAMP_BORDER,
  677. VK_TEX_ADDRESS_NUM = (VK_TEX_ADDRESS_CLAMP_BORDER - VK_TEX_ADDRESS_WRAP + 1),
  678. VK_TEX_ADDRESS_MAX_ENUM = 0x7FFFFFFF
  679. } VkTexAddress;
  680. typedef enum {
  681. VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
  682. VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
  683. VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
  684. VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
  685. VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
  686. VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
  687. VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
  688. VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
  689. VK_BORDER_COLOR_NUM = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
  690. VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
  691. } VkBorderColor;
  692. typedef enum {
  693. VK_DESCRIPTOR_TYPE_SAMPLER = 0,
  694. VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
  695. VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
  696. VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
  697. VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
  698. VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
  699. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
  700. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
  701. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
  702. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
  703. VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
  704. VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,
  705. VK_DESCRIPTOR_TYPE_NUM = (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
  706. VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
  707. } VkDescriptorType;
  708. typedef enum {
  709. VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT = 0,
  710. VK_DESCRIPTOR_POOL_USAGE_DYNAMIC = 1,
  711. VK_DESCRIPTOR_POOL_USAGE_BEGIN_RANGE = VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT,
  712. VK_DESCRIPTOR_POOL_USAGE_END_RANGE = VK_DESCRIPTOR_POOL_USAGE_DYNAMIC,
  713. VK_DESCRIPTOR_POOL_USAGE_NUM = (VK_DESCRIPTOR_POOL_USAGE_DYNAMIC - VK_DESCRIPTOR_POOL_USAGE_ONE_SHOT + 1),
  714. VK_DESCRIPTOR_POOL_USAGE_MAX_ENUM = 0x7FFFFFFF
  715. } VkDescriptorPoolUsage;
  716. typedef enum {
  717. VK_DESCRIPTOR_SET_USAGE_ONE_SHOT = 0,
  718. VK_DESCRIPTOR_SET_USAGE_STATIC = 1,
  719. VK_DESCRIPTOR_SET_USAGE_BEGIN_RANGE = VK_DESCRIPTOR_SET_USAGE_ONE_SHOT,
  720. VK_DESCRIPTOR_SET_USAGE_END_RANGE = VK_DESCRIPTOR_SET_USAGE_STATIC,
  721. VK_DESCRIPTOR_SET_USAGE_NUM = (VK_DESCRIPTOR_SET_USAGE_STATIC - VK_DESCRIPTOR_SET_USAGE_ONE_SHOT + 1),
  722. VK_DESCRIPTOR_SET_USAGE_MAX_ENUM = 0x7FFFFFFF
  723. } VkDescriptorSetUsage;
  724. typedef enum {
  725. VK_IMAGE_LAYOUT_UNDEFINED = 0,
  726. VK_IMAGE_LAYOUT_GENERAL = 1,
  727. VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
  728. VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
  729. VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
  730. VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
  731. VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL = 6,
  732. VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL = 7,
  733. VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
  734. VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL,
  735. VK_IMAGE_LAYOUT_NUM = (VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL - VK_IMAGE_LAYOUT_UNDEFINED + 1),
  736. VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
  737. } VkImageLayout;
  738. typedef enum {
  739. VK_ATTACHMENT_LOAD_OP_LOAD = 0,
  740. VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
  741. VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
  742. VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
  743. VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
  744. VK_ATTACHMENT_LOAD_OP_NUM = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
  745. VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
  746. } VkAttachmentLoadOp;
  747. typedef enum {
  748. VK_ATTACHMENT_STORE_OP_STORE = 0,
  749. VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
  750. VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
  751. VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
  752. VK_ATTACHMENT_STORE_OP_NUM = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
  753. VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
  754. } VkAttachmentStoreOp;
  755. typedef enum {
  756. VK_PIPELINE_BIND_POINT_COMPUTE = 0,
  757. VK_PIPELINE_BIND_POINT_GRAPHICS = 1,
  758. VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
  759. VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
  760. VK_PIPELINE_BIND_POINT_NUM = (VK_PIPELINE_BIND_POINT_GRAPHICS - VK_PIPELINE_BIND_POINT_COMPUTE + 1),
  761. VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
  762. } VkPipelineBindPoint;
  763. typedef enum {
  764. VK_WAIT_EVENT_TOP_OF_PIPE = 1,
  765. VK_WAIT_EVENT_BEFORE_RASTERIZATION = 2,
  766. VK_WAIT_EVENT_BEGIN_RANGE = VK_WAIT_EVENT_TOP_OF_PIPE,
  767. VK_WAIT_EVENT_END_RANGE = VK_WAIT_EVENT_BEFORE_RASTERIZATION,
  768. VK_WAIT_EVENT_NUM = (VK_WAIT_EVENT_BEFORE_RASTERIZATION - VK_WAIT_EVENT_TOP_OF_PIPE + 1),
  769. VK_WAIT_EVENT_MAX_ENUM = 0x7FFFFFFF
  770. } VkWaitEvent;
  771. typedef enum {
  772. VK_CMD_BUFFER_LEVEL_PRIMARY = 0,
  773. VK_CMD_BUFFER_LEVEL_SECONDARY = 1,
  774. VK_CMD_BUFFER_LEVEL_BEGIN_RANGE = VK_CMD_BUFFER_LEVEL_PRIMARY,
  775. VK_CMD_BUFFER_LEVEL_END_RANGE = VK_CMD_BUFFER_LEVEL_SECONDARY,
  776. VK_CMD_BUFFER_LEVEL_NUM = (VK_CMD_BUFFER_LEVEL_SECONDARY - VK_CMD_BUFFER_LEVEL_PRIMARY + 1),
  777. VK_CMD_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
  778. } VkCmdBufferLevel;
  779. typedef enum {
  780. VK_STATE_BIND_POINT_VIEWPORT = 0,
  781. VK_STATE_BIND_POINT_RASTER = 1,
  782. VK_STATE_BIND_POINT_COLOR_BLEND = 2,
  783. VK_STATE_BIND_POINT_DEPTH_STENCIL = 3,
  784. VK_STATE_BIND_POINT_BEGIN_RANGE = VK_STATE_BIND_POINT_VIEWPORT,
  785. VK_STATE_BIND_POINT_END_RANGE = VK_STATE_BIND_POINT_DEPTH_STENCIL,
  786. VK_STATE_BIND_POINT_NUM = (VK_STATE_BIND_POINT_DEPTH_STENCIL - VK_STATE_BIND_POINT_VIEWPORT + 1),
  787. VK_STATE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
  788. } VkStateBindPoint;
  789. typedef enum {
  790. VK_INDEX_TYPE_UINT16 = 0,
  791. VK_INDEX_TYPE_UINT32 = 1,
  792. VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
  793. VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
  794. VK_INDEX_TYPE_NUM = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
  795. VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
  796. } VkIndexType;
  797. typedef enum {
  798. VK_PIPE_EVENT_TOP_OF_PIPE = 0,
  799. VK_PIPE_EVENT_VERTEX_PROCESSING_COMPLETE = 1,
  800. VK_PIPE_EVENT_LOCAL_FRAGMENT_PROCESSING_COMPLETE = 2,
  801. VK_PIPE_EVENT_FRAGMENT_PROCESSING_COMPLETE = 3,
  802. VK_PIPE_EVENT_GRAPHICS_PIPELINE_COMPLETE = 4,
  803. VK_PIPE_EVENT_COMPUTE_PIPELINE_COMPLETE = 5,
  804. VK_PIPE_EVENT_TRANSFER_COMPLETE = 6,
  805. VK_PIPE_EVENT_COMMANDS_COMPLETE = 7,
  806. VK_PIPE_EVENT_CPU_SIGNAL = 8,
  807. VK_PIPE_EVENT_BEGIN_RANGE = VK_PIPE_EVENT_TOP_OF_PIPE,
  808. VK_PIPE_EVENT_END_RANGE = VK_PIPE_EVENT_CPU_SIGNAL,
  809. VK_PIPE_EVENT_NUM = (VK_PIPE_EVENT_CPU_SIGNAL - VK_PIPE_EVENT_TOP_OF_PIPE + 1),
  810. VK_PIPE_EVENT_MAX_ENUM = 0x7FFFFFFF
  811. } VkPipeEvent;
  812. typedef enum {
  813. VK_TIMESTAMP_TYPE_TOP = 0,
  814. VK_TIMESTAMP_TYPE_BOTTOM = 1,
  815. VK_TIMESTAMP_TYPE_BEGIN_RANGE = VK_TIMESTAMP_TYPE_TOP,
  816. VK_TIMESTAMP_TYPE_END_RANGE = VK_TIMESTAMP_TYPE_BOTTOM,
  817. VK_TIMESTAMP_TYPE_NUM = (VK_TIMESTAMP_TYPE_BOTTOM - VK_TIMESTAMP_TYPE_TOP + 1),
  818. VK_TIMESTAMP_TYPE_MAX_ENUM = 0x7FFFFFFF
  819. } VkTimestampType;
  820. typedef enum {
  821. VK_RENDER_PASS_CONTENTS_INLINE = 0,
  822. VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS = 1,
  823. VK_RENDER_PASS_CONTENTS_BEGIN_RANGE = VK_RENDER_PASS_CONTENTS_INLINE,
  824. VK_RENDER_PASS_CONTENTS_END_RANGE = VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS,
  825. VK_RENDER_PASS_CONTENTS_NUM = (VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS - VK_RENDER_PASS_CONTENTS_INLINE + 1),
  826. VK_RENDER_PASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
  827. } VkRenderPassContents;
  828. typedef enum {
  829. VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
  830. VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
  831. VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
  832. VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
  833. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
  834. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
  835. VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
  836. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
  837. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
  838. VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
  839. VK_FORMAT_FEATURE_CONVERSION_BIT = 0x00000400,
  840. } VkFormatFeatureFlagBits;
  841. typedef VkFlags VkFormatFeatureFlags;
  842. typedef enum {
  843. VK_IMAGE_USAGE_GENERAL = 0,
  844. VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
  845. VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002,
  846. VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
  847. VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
  848. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
  849. VK_IMAGE_USAGE_DEPTH_STENCIL_BIT = 0x00000020,
  850. VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
  851. } VkImageUsageFlagBits;
  852. typedef VkFlags VkImageUsageFlags;
  853. typedef enum {
  854. VK_QUEUE_GRAPHICS_BIT = 0x00000001,
  855. VK_QUEUE_COMPUTE_BIT = 0x00000002,
  856. VK_QUEUE_DMA_BIT = 0x00000004,
  857. VK_QUEUE_SPARSE_MEMMGR_BIT = 0x00000008,
  858. VK_QUEUE_EXTENDED_BIT = 0x40000000,
  859. } VkQueueFlagBits;
  860. typedef VkFlags VkQueueFlags;
  861. typedef enum {
  862. VK_MEMORY_PROPERTY_DEVICE_ONLY = 0,
  863. VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000001,
  864. VK_MEMORY_PROPERTY_HOST_NON_COHERENT_BIT = 0x00000002,
  865. VK_MEMORY_PROPERTY_HOST_UNCACHED_BIT = 0x00000004,
  866. VK_MEMORY_PROPERTY_HOST_WRITE_COMBINED_BIT = 0x00000008,
  867. } VkMemoryPropertyFlagBits;
  868. typedef VkFlags VkMemoryPropertyFlags;
  869. typedef enum {
  870. VK_MEMORY_HEAP_HOST_LOCAL = 0x00000001,
  871. } VkMemoryHeapFlagBits;
  872. typedef VkFlags VkMemoryHeapFlags;
  873. typedef enum {
  874. VK_DEVICE_CREATE_VALIDATION_BIT = 0x00000001,
  875. } VkDeviceCreateFlagBits;
  876. typedef VkFlags VkDeviceCreateFlags;
  877. typedef VkFlags VkMemoryMapFlags;
  878. typedef enum {
  879. VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
  880. } VkFenceCreateFlagBits;
  881. typedef VkFlags VkFenceCreateFlags;
  882. typedef VkFlags VkSemaphoreCreateFlags;
  883. typedef VkFlags VkEventCreateFlags;
  884. typedef enum {
  885. VK_QUERY_PIPELINE_STATISTIC_IA_VERTICES_BIT = 0x00000001,
  886. VK_QUERY_PIPELINE_STATISTIC_IA_PRIMITIVES_BIT = 0x00000002,
  887. VK_QUERY_PIPELINE_STATISTIC_VS_INVOCATIONS_BIT = 0x00000004,
  888. VK_QUERY_PIPELINE_STATISTIC_GS_INVOCATIONS_BIT = 0x00000008,
  889. VK_QUERY_PIPELINE_STATISTIC_GS_PRIMITIVES_BIT = 0x00000010,
  890. VK_QUERY_PIPELINE_STATISTIC_C_INVOCATIONS_BIT = 0x00000020,
  891. VK_QUERY_PIPELINE_STATISTIC_C_PRIMITIVES_BIT = 0x00000040,
  892. VK_QUERY_PIPELINE_STATISTIC_FS_INVOCATIONS_BIT = 0x00000080,
  893. VK_QUERY_PIPELINE_STATISTIC_TCS_PATCHES_BIT = 0x00000100,
  894. VK_QUERY_PIPELINE_STATISTIC_TES_INVOCATIONS_BIT = 0x00000200,
  895. VK_QUERY_PIPELINE_STATISTIC_CS_INVOCATIONS_BIT = 0x00000400,
  896. } VkQueryPipelineStatisticFlagBits;
  897. typedef VkFlags VkQueryPipelineStatisticFlags;
  898. typedef enum {
  899. VK_QUERY_RESULT_DEFAULT = 0,
  900. VK_QUERY_RESULT_64_BIT = 0x00000001,
  901. VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
  902. VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
  903. VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
  904. } VkQueryResultFlagBits;
  905. typedef VkFlags VkQueryResultFlags;
  906. typedef enum {
  907. VK_BUFFER_USAGE_GENERAL = 0,
  908. VK_BUFFER_USAGE_TRANSFER_SOURCE_BIT = 0x00000001,
  909. VK_BUFFER_USAGE_TRANSFER_DESTINATION_BIT = 0x00000002,
  910. VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
  911. VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
  912. VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
  913. VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
  914. VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
  915. VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
  916. VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
  917. } VkBufferUsageFlagBits;
  918. typedef VkFlags VkBufferUsageFlags;
  919. typedef enum {
  920. VK_BUFFER_CREATE_SPARSE_BIT = 0x00000001,
  921. } VkBufferCreateFlagBits;
  922. typedef VkFlags VkBufferCreateFlags;
  923. typedef enum {
  924. VK_IMAGE_CREATE_INVARIANT_DATA_BIT = 0x00000001,
  925. VK_IMAGE_CREATE_SPARSE_BIT = 0x00000002,
  926. VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000004,
  927. VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000008,
  928. } VkImageCreateFlagBits;
  929. typedef VkFlags VkImageCreateFlags;
  930. typedef enum {
  931. VK_DEPTH_STENCIL_VIEW_CREATE_READ_ONLY_DEPTH_BIT = 0x00000001,
  932. VK_DEPTH_STENCIL_VIEW_CREATE_READ_ONLY_STENCIL_BIT = 0x00000002,
  933. } VkDepthStencilViewCreateFlagBits;
  934. typedef VkFlags VkDepthStencilViewCreateFlags;
  935. typedef VkFlags VkShaderModuleCreateFlags;
  936. typedef VkFlags VkShaderCreateFlags;
  937. typedef enum {
  938. VK_CHANNEL_R_BIT = 0x00000001,
  939. VK_CHANNEL_G_BIT = 0x00000002,
  940. VK_CHANNEL_B_BIT = 0x00000004,
  941. VK_CHANNEL_A_BIT = 0x00000008,
  942. } VkChannelFlagBits;
  943. typedef VkFlags VkChannelFlags;
  944. typedef enum {
  945. VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
  946. VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
  947. VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
  948. } VkPipelineCreateFlagBits;
  949. typedef VkFlags VkPipelineCreateFlags;
  950. typedef enum {
  951. VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
  952. VK_SHADER_STAGE_TESS_CONTROL_BIT = 0x00000002,
  953. VK_SHADER_STAGE_TESS_EVALUATION_BIT = 0x00000004,
  954. VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
  955. VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
  956. VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
  957. VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
  958. } VkShaderStageFlagBits;
  959. typedef VkFlags VkShaderStageFlags;
  960. typedef enum {
  961. VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
  962. VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
  963. VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
  964. } VkImageAspectFlagBits;
  965. typedef VkFlags VkImageAspectFlags;
  966. typedef enum {
  967. VK_PIPE_EVENT_TOP_OF_PIPE_BIT = 0x00000001,
  968. VK_PIPE_EVENT_VERTEX_PROCESSING_COMPLETE_BIT = 0x00000002,
  969. VK_PIPE_EVENT_LOCAL_FRAGMENT_PROCESSING_COMPLETE_BIT = 0x00000004,
  970. VK_PIPE_EVENT_FRAGMENT_PROCESSING_COMPLETE_BIT = 0x00000008,
  971. VK_PIPE_EVENT_GRAPHICS_PIPELINE_COMPLETE_BIT = 0x00000010,
  972. VK_PIPE_EVENT_COMPUTE_PIPELINE_COMPLETE_BIT = 0x00000020,
  973. VK_PIPE_EVENT_TRANSFER_COMPLETE_BIT = 0x00000040,
  974. VK_PIPE_EVENT_COMMANDS_COMPLETE_BIT = 0x00000080,
  975. VK_PIPE_EVENT_CPU_SIGNAL_BIT = 0x00000100,
  976. } VkPipeEventFlagBits;
  977. typedef VkFlags VkPipeEventFlags;
  978. typedef enum {
  979. VK_QUERY_CONTROL_CONSERVATIVE_BIT = 0x00000001,
  980. } VkQueryControlFlagBits;
  981. typedef VkFlags VkQueryControlFlags;
  982. typedef enum {
  983. VK_MEMORY_OUTPUT_HOST_WRITE_BIT = 0x00000001,
  984. VK_MEMORY_OUTPUT_SHADER_WRITE_BIT = 0x00000002,
  985. VK_MEMORY_OUTPUT_COLOR_ATTACHMENT_BIT = 0x00000004,
  986. VK_MEMORY_OUTPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000008,
  987. VK_MEMORY_OUTPUT_TRANSFER_BIT = 0x00000010,
  988. } VkMemoryOutputFlagBits;
  989. typedef VkFlags VkMemoryOutputFlags;
  990. typedef enum {
  991. VK_MEMORY_INPUT_HOST_READ_BIT = 0x00000001,
  992. VK_MEMORY_INPUT_INDIRECT_COMMAND_BIT = 0x00000002,
  993. VK_MEMORY_INPUT_INDEX_FETCH_BIT = 0x00000004,
  994. VK_MEMORY_INPUT_VERTEX_ATTRIBUTE_FETCH_BIT = 0x00000008,
  995. VK_MEMORY_INPUT_UNIFORM_READ_BIT = 0x00000010,
  996. VK_MEMORY_INPUT_SHADER_READ_BIT = 0x00000020,
  997. VK_MEMORY_INPUT_COLOR_ATTACHMENT_BIT = 0x00000040,
  998. VK_MEMORY_INPUT_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000080,
  999. VK_MEMORY_INPUT_TRANSFER_BIT = 0x00000100,
  1000. } VkMemoryInputFlagBits;
  1001. typedef VkFlags VkMemoryInputFlags;
  1002. typedef VkFlags VkCmdBufferCreateFlags;
  1003. typedef enum {
  1004. VK_CMD_BUFFER_OPTIMIZE_SMALL_BATCH_BIT = 0x00000001,
  1005. VK_CMD_BUFFER_OPTIMIZE_PIPELINE_SWITCH_BIT = 0x00000002,
  1006. VK_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT = 0x00000004,
  1007. VK_CMD_BUFFER_OPTIMIZE_DESCRIPTOR_SET_SWITCH_BIT = 0x00000008,
  1008. VK_CMD_BUFFER_OPTIMIZE_NO_SIMULTANEOUS_USE_BIT = 0x00000010,
  1009. } VkCmdBufferOptimizeFlagBits;
  1010. typedef VkFlags VkCmdBufferOptimizeFlags;
  1011. typedef struct {
  1012. VkStructureType sType;
  1013. const void* pNext;
  1014. const char* pAppName;
  1015. uint32_t appVersion;
  1016. const char* pEngineName;
  1017. uint32_t engineVersion;
  1018. uint32_t apiVersion;
  1019. } VkApplicationInfo;
  1020. typedef void* (VKAPI *PFN_vkAllocFunction)(
  1021. void* pUserData,
  1022. size_t size,
  1023. size_t alignment,
  1024. VkSystemAllocType allocType);
  1025. typedef void (VKAPI *PFN_vkFreeFunction)(
  1026. void* pUserData,
  1027. void* pMem);
  1028. typedef struct {
  1029. void* pUserData;
  1030. PFN_vkAllocFunction pfnAlloc;
  1031. PFN_vkFreeFunction pfnFree;
  1032. } VkAllocCallbacks;
  1033. typedef struct {
  1034. VkStructureType sType;
  1035. const void* pNext;
  1036. const VkApplicationInfo* pAppInfo;
  1037. const VkAllocCallbacks* pAllocCb;
  1038. uint32_t extensionCount;
  1039. const char*const* ppEnabledExtensionNames;
  1040. } VkInstanceCreateInfo;
  1041. typedef struct {
  1042. VkBool32 robustBufferAccess;
  1043. VkBool32 fullDrawIndexUint32;
  1044. VkBool32 imageCubeArray;
  1045. VkBool32 independentBlend;
  1046. VkBool32 geometryShader;
  1047. VkBool32 tessellationShader;
  1048. VkBool32 sampleRateShading;
  1049. VkBool32 dualSourceBlend;
  1050. VkBool32 logicOp;
  1051. VkBool32 instancedDrawIndirect;
  1052. VkBool32 depthClip;
  1053. VkBool32 depthBiasClamp;
  1054. VkBool32 fillModeNonSolid;
  1055. VkBool32 depthBounds;
  1056. VkBool32 wideLines;
  1057. VkBool32 largePoints;
  1058. VkBool32 textureCompressionETC2;
  1059. VkBool32 textureCompressionASTC_LDR;
  1060. VkBool32 textureCompressionBC;
  1061. VkBool32 pipelineStatisticsQuery;
  1062. VkBool32 vertexSideEffects;
  1063. VkBool32 tessellationSideEffects;
  1064. VkBool32 geometrySideEffects;
  1065. VkBool32 fragmentSideEffects;
  1066. VkBool32 shaderTessellationPointSize;
  1067. VkBool32 shaderGeometryPointSize;
  1068. VkBool32 shaderTextureGatherExtended;
  1069. VkBool32 shaderStorageImageExtendedFormats;
  1070. VkBool32 shaderStorageImageMultisample;
  1071. VkBool32 shaderStorageBufferArrayConstantIndexing;
  1072. VkBool32 shaderStorageImageArrayConstantIndexing;
  1073. VkBool32 shaderUniformBufferArrayDynamicIndexing;
  1074. VkBool32 shaderSampledImageArrayDynamicIndexing;
  1075. VkBool32 shaderStorageBufferArrayDynamicIndexing;
  1076. VkBool32 shaderStorageImageArrayDynamicIndexing;
  1077. VkBool32 shaderClipDistance;
  1078. VkBool32 shaderCullDistance;
  1079. VkBool32 shaderFloat64;
  1080. VkBool32 shaderInt64;
  1081. VkBool32 shaderFloat16;
  1082. VkBool32 shaderInt16;
  1083. } VkPhysicalDeviceFeatures;
  1084. typedef struct {
  1085. VkFormatFeatureFlags linearTilingFeatures;
  1086. VkFormatFeatureFlags optimalTilingFeatures;
  1087. } VkFormatProperties;
  1088. typedef struct {
  1089. uint32_t maxImageDimension1D;
  1090. uint32_t maxImageDimension2D;
  1091. uint32_t maxImageDimension3D;
  1092. uint32_t maxImageDimensionCube;
  1093. uint32_t maxImageArrayLayers;
  1094. uint32_t maxTexelBufferSize;
  1095. uint32_t maxUniformBufferSize;
  1096. uint32_t maxStorageBufferSize;
  1097. uint32_t maxPushConstantsSize;
  1098. uint32_t maxMemoryAllocationCount;
  1099. uint32_t maxBoundDescriptorSets;
  1100. uint32_t maxDescriptorSets;
  1101. uint32_t maxPerStageDescriptorSamplers;
  1102. uint32_t maxPerStageDescriptorUniformBuffers;
  1103. uint32_t maxPerStageDescriptorStorageBuffers;
  1104. uint32_t maxPerStageDescriptorSampledImages;
  1105. uint32_t maxPerStageDescriptorStorageImages;
  1106. uint32_t maxDescriptorSetSamplers;
  1107. uint32_t maxDescriptorSetUniformBuffers;
  1108. uint32_t maxDescriptorSetStorageBuffers;
  1109. uint32_t maxDescriptorSetSampledImages;
  1110. uint32_t maxDescriptorSetStorageImages;
  1111. uint32_t maxVertexInputAttributes;
  1112. uint32_t maxVertexInputAttributeOffset;
  1113. uint32_t maxVertexInputBindingStride;
  1114. uint32_t maxVertexOutputComponents;
  1115. uint32_t maxTessGenLevel;
  1116. uint32_t maxTessPatchSize;
  1117. uint32_t maxTessControlPerVertexInputComponents;
  1118. uint32_t maxTessControlPerVertexOutputComponents;
  1119. uint32_t maxTessControlPerPatchOutputComponents;
  1120. uint32_t maxTessControlTotalOutputComponents;
  1121. uint32_t maxTessEvaluationInputComponents;
  1122. uint32_t maxTessEvaluationOutputComponents;
  1123. uint32_t maxGeometryShaderInvocations;
  1124. uint32_t maxGeometryInputComponents;
  1125. uint32_t maxGeometryOutputComponents;
  1126. uint32_t maxGeometryOutputVertices;
  1127. uint32_t maxGeometryTotalOutputComponents;
  1128. uint32_t maxFragmentInputComponents;
  1129. uint32_t maxFragmentOutputBuffers;
  1130. uint32_t maxFragmentDualSourceBuffers;
  1131. uint32_t maxFragmentCombinedOutputResources;
  1132. uint32_t maxComputeSharedMemorySize;
  1133. uint32_t maxComputeWorkGroupCount[3];
  1134. uint32_t maxComputeWorkGroupInvocations;
  1135. uint32_t maxComputeWorkGroupSize[3];
  1136. uint32_t subPixelPrecisionBits;
  1137. uint32_t subTexelPrecisionBits;
  1138. uint32_t mipmapPrecisionBits;
  1139. uint32_t maxDrawIndexedIndexValue;
  1140. uint32_t maxDrawIndirectInstanceCount;
  1141. VkBool32 primitiveRestartForPatches;
  1142. float maxSamplerLodBias;
  1143. uint32_t maxSamplerAnisotropy;
  1144. uint32_t maxViewports;
  1145. uint32_t maxDynamicViewportStates;
  1146. uint32_t maxViewportDimensions[2];
  1147. float viewportBoundsRange[2];
  1148. uint32_t viewportSubPixelBits;
  1149. uint32_t minMemoryMapAlignment;
  1150. uint32_t minTexelBufferOffsetAlignment;
  1151. uint32_t minUniformBufferOffsetAlignment;
  1152. uint32_t minStorageBufferOffsetAlignment;
  1153. uint32_t minTexelOffset;
  1154. uint32_t maxTexelOffset;
  1155. uint32_t minTexelGatherOffset;
  1156. uint32_t maxTexelGatherOffset;
  1157. float minInterpolationOffset;
  1158. float maxInterpolationOffset;
  1159. uint32_t subPixelInterpolationOffsetBits;
  1160. uint32_t maxFramebufferWidth;
  1161. uint32_t maxFramebufferHeight;
  1162. uint32_t maxFramebufferLayers;
  1163. uint32_t maxFramebufferColorSamples;
  1164. uint32_t maxFramebufferDepthSamples;
  1165. uint32_t maxFramebufferStencilSamples;
  1166. uint32_t maxColorAttachments;
  1167. uint32_t maxSampledImageColorSamples;
  1168. uint32_t maxSampledImageDepthSamples;
  1169. uint32_t maxSampledImageIntegerSamples;
  1170. uint32_t maxStorageImageSamples;
  1171. uint32_t maxSampleMaskWords;
  1172. uint64_t timestampFrequency;
  1173. uint32_t maxClipDistances;
  1174. uint32_t maxCullDistances;
  1175. uint32_t maxCombinedClipAndCullDistances;
  1176. float pointSizeRange[2];
  1177. float lineWidthRange[2];
  1178. float pointSizeGranularity;
  1179. float lineWidthGranularity;
  1180. } VkPhysicalDeviceLimits;
  1181. typedef struct {
  1182. uint32_t apiVersion;
  1183. uint32_t driverVersion;
  1184. uint32_t vendorId;
  1185. uint32_t deviceId;
  1186. VkPhysicalDeviceType deviceType;
  1187. char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME];
  1188. uint8_t pipelineCacheUUID[VK_UUID_LENGTH];
  1189. } VkPhysicalDeviceProperties;
  1190. typedef struct {
  1191. VkQueueFlags queueFlags;
  1192. uint32_t queueCount;
  1193. VkBool32 supportsTimestamps;
  1194. } VkPhysicalDeviceQueueProperties;
  1195. typedef struct {
  1196. VkMemoryPropertyFlags propertyFlags;
  1197. uint32_t heapIndex;
  1198. } VkMemoryType;
  1199. typedef struct {
  1200. VkDeviceSize size;
  1201. VkMemoryHeapFlags flags;
  1202. } VkMemoryHeap;
  1203. typedef struct {
  1204. uint32_t memoryTypeCount;
  1205. VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
  1206. uint32_t memoryHeapCount;
  1207. VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
  1208. } VkPhysicalDeviceMemoryProperties;
  1209. typedef void (VKAPI *PFN_vkVoidFunction)(void);
  1210. typedef struct {
  1211. uint32_t queueNodeIndex;
  1212. uint32_t queueCount;
  1213. } VkDeviceQueueCreateInfo;
  1214. typedef struct {
  1215. VkStructureType sType;
  1216. const void* pNext;
  1217. uint32_t queueRecordCount;
  1218. const VkDeviceQueueCreateInfo* pRequestedQueues;
  1219. uint32_t extensionCount;
  1220. const char*const* ppEnabledExtensionNames;
  1221. const VkPhysicalDeviceFeatures* pEnabledFeatures;
  1222. VkDeviceCreateFlags flags;
  1223. } VkDeviceCreateInfo;
  1224. typedef struct {
  1225. char extName[VK_MAX_EXTENSION_NAME];
  1226. uint32_t version;
  1227. } VkExtensionProperties;
  1228. typedef struct {
  1229. VkStructureType sType;
  1230. const void* pNext;
  1231. VkDeviceSize allocationSize;
  1232. uint32_t memoryTypeIndex;
  1233. } VkMemoryAllocInfo;
  1234. typedef struct {
  1235. VkStructureType sType;
  1236. const void* pNext;
  1237. VkDeviceMemory mem;
  1238. VkDeviceSize offset;
  1239. VkDeviceSize size;
  1240. } VkMappedMemoryRange;
  1241. typedef struct {
  1242. VkDeviceSize size;
  1243. VkDeviceSize alignment;
  1244. VkDeviceSize granularity;
  1245. uint32_t memoryTypeBits;
  1246. } VkMemoryRequirements;
  1247. typedef struct {
  1248. VkImageAspect aspect;
  1249. uint32_t mipLevel;
  1250. uint32_t arraySlice;
  1251. } VkImageSubresource;
  1252. typedef struct {
  1253. int32_t x;
  1254. int32_t y;
  1255. int32_t z;
  1256. } VkOffset3D;
  1257. typedef struct {
  1258. int32_t width;
  1259. int32_t height;
  1260. int32_t depth;
  1261. } VkExtent3D;
  1262. typedef struct {
  1263. VkImageSubresource subresource;
  1264. VkOffset3D offset;
  1265. VkExtent3D extent;
  1266. } VkImageMemoryBindInfo;
  1267. typedef struct {
  1268. VkStructureType sType;
  1269. const void* pNext;
  1270. VkFenceCreateFlags flags;
  1271. } VkFenceCreateInfo;
  1272. typedef struct {
  1273. VkStructureType sType;
  1274. const void* pNext;
  1275. VkSemaphoreCreateFlags flags;
  1276. } VkSemaphoreCreateInfo;
  1277. typedef struct {
  1278. VkStructureType sType;
  1279. const void* pNext;
  1280. VkEventCreateFlags flags;
  1281. } VkEventCreateInfo;
  1282. typedef struct {
  1283. VkStructureType sType;
  1284. const void* pNext;
  1285. VkQueryType queryType;
  1286. uint32_t slots;
  1287. VkQueryPipelineStatisticFlags pipelineStatistics;
  1288. } VkQueryPoolCreateInfo;
  1289. typedef struct {
  1290. VkStructureType sType;
  1291. const void* pNext;
  1292. VkDeviceSize size;
  1293. VkBufferUsageFlags usage;
  1294. VkBufferCreateFlags flags;
  1295. } VkBufferCreateInfo;
  1296. typedef struct {
  1297. VkStructureType sType;
  1298. const void* pNext;
  1299. VkBuffer buffer;
  1300. VkBufferViewType viewType;
  1301. VkFormat format;
  1302. VkDeviceSize offset;
  1303. VkDeviceSize range;
  1304. } VkBufferViewCreateInfo;
  1305. typedef struct {
  1306. VkStructureType sType;
  1307. const void* pNext;
  1308. VkImageType imageType;
  1309. VkFormat format;
  1310. VkExtent3D extent;
  1311. uint32_t mipLevels;
  1312. uint32_t arraySize;
  1313. uint32_t samples;
  1314. VkImageTiling tiling;
  1315. VkImageUsageFlags usage;
  1316. VkImageCreateFlags flags;
  1317. } VkImageCreateInfo;
  1318. typedef struct {
  1319. VkDeviceSize offset;
  1320. VkDeviceSize size;
  1321. VkDeviceSize rowPitch;
  1322. VkDeviceSize depthPitch;
  1323. } VkSubresourceLayout;
  1324. typedef struct {
  1325. VkChannelSwizzle r;
  1326. VkChannelSwizzle g;
  1327. VkChannelSwizzle b;
  1328. VkChannelSwizzle a;
  1329. } VkChannelMapping;
  1330. typedef struct {
  1331. VkImageAspect aspect;
  1332. uint32_t baseMipLevel;
  1333. uint32_t mipLevels;
  1334. uint32_t baseArraySlice;
  1335. uint32_t arraySize;
  1336. } VkImageSubresourceRange;
  1337. typedef struct {
  1338. VkStructureType sType;
  1339. const void* pNext;
  1340. VkImage image;
  1341. VkImageViewType viewType;
  1342. VkFormat format;
  1343. VkChannelMapping channels;
  1344. VkImageSubresourceRange subresourceRange;
  1345. } VkImageViewCreateInfo;
  1346. typedef struct {
  1347. VkStructureType sType;
  1348. const void* pNext;
  1349. VkImage image;
  1350. VkFormat format;
  1351. uint32_t mipLevel;
  1352. uint32_t baseArraySlice;
  1353. uint32_t arraySize;
  1354. VkImage msaaResolveImage;
  1355. VkImageSubresourceRange msaaResolveSubResource;
  1356. } VkColorAttachmentViewCreateInfo;
  1357. typedef struct {
  1358. VkStructureType sType;
  1359. const void* pNext;
  1360. VkImage image;
  1361. uint32_t mipLevel;
  1362. uint32_t baseArraySlice;
  1363. uint32_t arraySize;
  1364. VkDepthStencilViewCreateFlags flags;
  1365. } VkDepthStencilViewCreateInfo;
  1366. typedef struct {
  1367. VkStructureType sType;
  1368. const void* pNext;
  1369. size_t codeSize;
  1370. const void* pCode;
  1371. VkShaderModuleCreateFlags flags;
  1372. } VkShaderModuleCreateInfo;
  1373. typedef struct {
  1374. VkStructureType sType;
  1375. const void* pNext;
  1376. VkShaderModule module;
  1377. const char* pName;
  1378. VkShaderCreateFlags flags;
  1379. } VkShaderCreateInfo;
  1380. typedef struct {
  1381. VkStructureType sType;
  1382. const void* pNext;
  1383. size_t initialSize;
  1384. const void* initialData;
  1385. size_t maxSize;
  1386. } VkPipelineCacheCreateInfo;
  1387. typedef struct {
  1388. uint32_t constantId;
  1389. uint32_t offset;
  1390. } VkSpecializationMapEntry;
  1391. typedef struct {
  1392. uint32_t mapEntryCount;
  1393. const VkSpecializationMapEntry* pMap;
  1394. const void* pData;
  1395. } VkSpecializationInfo;
  1396. typedef struct {
  1397. VkStructureType sType;
  1398. const void* pNext;
  1399. VkShaderStage stage;
  1400. VkShader shader;
  1401. const VkSpecializationInfo* pSpecializationInfo;
  1402. } VkPipelineShaderStageCreateInfo;
  1403. typedef struct {
  1404. uint32_t binding;
  1405. uint32_t strideInBytes;
  1406. VkVertexInputStepRate stepRate;
  1407. } VkVertexInputBindingDescription;
  1408. typedef struct {
  1409. uint32_t location;
  1410. uint32_t binding;
  1411. VkFormat format;
  1412. uint32_t offsetInBytes;
  1413. } VkVertexInputAttributeDescription;
  1414. typedef struct {
  1415. VkStructureType sType;
  1416. const void* pNext;
  1417. uint32_t bindingCount;
  1418. const VkVertexInputBindingDescription* pVertexBindingDescriptions;
  1419. uint32_t attributeCount;
  1420. const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
  1421. } VkPipelineVertexInputStateCreateInfo;
  1422. typedef struct {
  1423. VkStructureType sType;
  1424. const void* pNext;
  1425. VkPrimitiveTopology topology;
  1426. VkBool32 primitiveRestartEnable;
  1427. } VkPipelineIaStateCreateInfo;
  1428. typedef struct {
  1429. VkStructureType sType;
  1430. const void* pNext;
  1431. uint32_t patchControlPoints;
  1432. } VkPipelineTessStateCreateInfo;
  1433. typedef struct {
  1434. VkStructureType sType;
  1435. const void* pNext;
  1436. uint32_t viewportCount;
  1437. } VkPipelineVpStateCreateInfo;
  1438. typedef struct {
  1439. VkStructureType sType;
  1440. const void* pNext;
  1441. VkBool32 depthClipEnable;
  1442. VkBool32 rasterizerDiscardEnable;
  1443. VkFillMode fillMode;
  1444. VkCullMode cullMode;
  1445. VkFrontFace frontFace;
  1446. } VkPipelineRsStateCreateInfo;
  1447. typedef struct {
  1448. VkStructureType sType;
  1449. const void* pNext;
  1450. uint32_t rasterSamples;
  1451. VkBool32 sampleShadingEnable;
  1452. float minSampleShading;
  1453. VkSampleMask sampleMask;
  1454. } VkPipelineMsStateCreateInfo;
  1455. typedef struct {
  1456. VkStencilOp stencilFailOp;
  1457. VkStencilOp stencilPassOp;
  1458. VkStencilOp stencilDepthFailOp;
  1459. VkCompareOp stencilCompareOp;
  1460. } VkStencilOpState;
  1461. typedef struct {
  1462. VkStructureType sType;
  1463. const void* pNext;
  1464. VkFormat format;
  1465. VkBool32 depthTestEnable;
  1466. VkBool32 depthWriteEnable;
  1467. VkCompareOp depthCompareOp;
  1468. VkBool32 depthBoundsEnable;
  1469. VkBool32 stencilTestEnable;
  1470. VkStencilOpState front;
  1471. VkStencilOpState back;
  1472. } VkPipelineDsStateCreateInfo;
  1473. typedef struct {
  1474. VkBool32 blendEnable;
  1475. VkFormat format;
  1476. VkBlend srcBlendColor;
  1477. VkBlend destBlendColor;
  1478. VkBlendOp blendOpColor;
  1479. VkBlend srcBlendAlpha;
  1480. VkBlend destBlendAlpha;
  1481. VkBlendOp blendOpAlpha;
  1482. VkChannelFlags channelWriteMask;
  1483. } VkPipelineCbAttachmentState;
  1484. typedef struct {
  1485. VkStructureType sType;
  1486. const void* pNext;
  1487. VkBool32 alphaToCoverageEnable;
  1488. VkBool32 logicOpEnable;
  1489. VkLogicOp logicOp;
  1490. uint32_t attachmentCount;
  1491. const VkPipelineCbAttachmentState* pAttachments;
  1492. } VkPipelineCbStateCreateInfo;
  1493. typedef struct {
  1494. VkStructureType sType;
  1495. const void* pNext;
  1496. uint32_t stageCount;
  1497. const VkPipelineShaderStageCreateInfo* pStages;
  1498. const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
  1499. const VkPipelineIaStateCreateInfo* pIaState;
  1500. const VkPipelineTessStateCreateInfo* pTessState;
  1501. const VkPipelineVpStateCreateInfo* pVpState;
  1502. const VkPipelineRsStateCreateInfo* pRsState;
  1503. const VkPipelineMsStateCreateInfo* pMsState;
  1504. const VkPipelineDsStateCreateInfo* pDsState;
  1505. const VkPipelineCbStateCreateInfo* pCbState;
  1506. VkPipelineCreateFlags flags;
  1507. VkPipelineLayout layout;
  1508. VkPipeline basePipelineHandle;
  1509. int32_t basePipelineIndex;
  1510. } VkGraphicsPipelineCreateInfo;
  1511. typedef struct {
  1512. VkStructureType sType;
  1513. const void* pNext;
  1514. VkPipelineShaderStageCreateInfo cs;
  1515. VkPipelineCreateFlags flags;
  1516. VkPipelineLayout layout;
  1517. VkPipeline basePipelineHandle;
  1518. int32_t basePipelineIndex;
  1519. } VkComputePipelineCreateInfo;
  1520. typedef struct {
  1521. VkShaderStageFlags stageFlags;
  1522. uint32_t start;
  1523. uint32_t length;
  1524. } VkPushConstantRange;
  1525. typedef struct {
  1526. VkStructureType sType;
  1527. const void* pNext;
  1528. uint32_t descriptorSetCount;
  1529. const VkDescriptorSetLayout* pSetLayouts;
  1530. uint32_t pushConstantRangeCount;
  1531. const VkPushConstantRange* pPushConstantRanges;
  1532. } VkPipelineLayoutCreateInfo;
  1533. typedef struct {
  1534. VkStructureType sType;
  1535. const void* pNext;
  1536. VkTexFilter magFilter;
  1537. VkTexFilter minFilter;
  1538. VkTexMipmapMode mipMode;
  1539. VkTexAddress addressU;
  1540. VkTexAddress addressV;
  1541. VkTexAddress addressW;
  1542. float mipLodBias;
  1543. uint32_t maxAnisotropy;
  1544. VkBool32 compareEnable;
  1545. VkCompareOp compareOp;
  1546. float minLod;
  1547. float maxLod;
  1548. VkBorderColor borderColor;
  1549. } VkSamplerCreateInfo;
  1550. typedef struct {
  1551. VkDescriptorType descriptorType;
  1552. uint32_t arraySize;
  1553. VkShaderStageFlags stageFlags;
  1554. const VkSampler* pImmutableSamplers;
  1555. } VkDescriptorSetLayoutBinding;
  1556. typedef struct {
  1557. VkStructureType sType;
  1558. const void* pNext;
  1559. uint32_t count;
  1560. const VkDescriptorSetLayoutBinding* pBinding;
  1561. } VkDescriptorSetLayoutCreateInfo;
  1562. typedef struct {
  1563. VkDescriptorType type;
  1564. uint32_t count;
  1565. } VkDescriptorTypeCount;
  1566. typedef struct {
  1567. VkStructureType sType;
  1568. const void* pNext;
  1569. uint32_t count;
  1570. const VkDescriptorTypeCount* pTypeCount;
  1571. } VkDescriptorPoolCreateInfo;
  1572. typedef struct {
  1573. VkBufferView bufferView;
  1574. VkSampler sampler;
  1575. VkImageView imageView;
  1576. VkImageLayout imageLayout;
  1577. } VkDescriptorInfo;
  1578. typedef struct {
  1579. VkStructureType sType;
  1580. const void* pNext;
  1581. VkDescriptorSet destSet;
  1582. uint32_t destBinding;
  1583. uint32_t destArrayElement;
  1584. uint32_t count;
  1585. VkDescriptorType descriptorType;
  1586. const VkDescriptorInfo* pDescriptors;
  1587. } VkWriteDescriptorSet;
  1588. typedef struct {
  1589. VkStructureType sType;
  1590. const void* pNext;
  1591. VkDescriptorSet srcSet;
  1592. uint32_t srcBinding;
  1593. uint32_t srcArrayElement;
  1594. VkDescriptorSet destSet;
  1595. uint32_t destBinding;
  1596. uint32_t destArrayElement;
  1597. uint32_t count;
  1598. } VkCopyDescriptorSet;
  1599. typedef struct {
  1600. float originX;
  1601. float originY;
  1602. float width;
  1603. float height;
  1604. float minDepth;
  1605. float maxDepth;
  1606. } VkViewport;
  1607. typedef struct {
  1608. int32_t x;
  1609. int32_t y;
  1610. } VkOffset2D;
  1611. typedef struct {
  1612. int32_t width;
  1613. int32_t height;
  1614. } VkExtent2D;
  1615. typedef struct {
  1616. VkOffset2D offset;
  1617. VkExtent2D extent;
  1618. } VkRect2D;
  1619. typedef struct {
  1620. VkStructureType sType;
  1621. const void* pNext;
  1622. uint32_t viewportAndScissorCount;
  1623. const VkViewport* pViewports;
  1624. const VkRect2D* pScissors;
  1625. } VkDynamicVpStateCreateInfo;
  1626. typedef struct {
  1627. VkStructureType sType;
  1628. const void* pNext;
  1629. float depthBias;
  1630. float depthBiasClamp;
  1631. float slopeScaledDepthBias;
  1632. float lineWidth;
  1633. } VkDynamicRsStateCreateInfo;
  1634. typedef struct {
  1635. VkStructureType sType;
  1636. const void* pNext;
  1637. float blendConst[4];
  1638. } VkDynamicCbStateCreateInfo;
  1639. typedef struct {
  1640. VkStructureType sType;
  1641. const void* pNext;
  1642. float minDepthBounds;
  1643. float maxDepthBounds;
  1644. uint32_t stencilReadMask;
  1645. uint32_t stencilWriteMask;
  1646. uint32_t stencilFrontRef;
  1647. uint32_t stencilBackRef;
  1648. } VkDynamicDsStateCreateInfo;
  1649. typedef struct {
  1650. VkColorAttachmentView view;
  1651. VkImageLayout layout;
  1652. } VkColorAttachmentBindInfo;
  1653. typedef struct {
  1654. VkDepthStencilView view;
  1655. VkImageLayout layout;
  1656. } VkDepthStencilBindInfo;
  1657. typedef struct {
  1658. VkStructureType sType;
  1659. const void* pNext;
  1660. uint32_t colorAttachmentCount;
  1661. const VkColorAttachmentBindInfo* pColorAttachments;
  1662. const VkDepthStencilBindInfo* pDepthStencilAttachment;
  1663. uint32_t sampleCount;
  1664. uint32_t width;
  1665. uint32_t height;
  1666. uint32_t layers;
  1667. } VkFramebufferCreateInfo;
  1668. typedef union {
  1669. float f32[4];
  1670. int32_t s32[4];
  1671. uint32_t u32[4];
  1672. } VkClearColorValue;
  1673. typedef struct {
  1674. VkStructureType sType;
  1675. const void* pNext;
  1676. VkRect2D renderArea;
  1677. uint32_t colorAttachmentCount;
  1678. VkExtent2D extent;
  1679. uint32_t sampleCount;
  1680. uint32_t layers;
  1681. const VkFormat* pColorFormats;
  1682. const VkImageLayout* pColorLayouts;
  1683. const VkAttachmentLoadOp* pColorLoadOps;
  1684. const VkAttachmentStoreOp* pColorStoreOps;
  1685. const VkClearColorValue* pColorLoadClearValues;
  1686. VkFormat depthStencilFormat;
  1687. VkImageLayout depthStencilLayout;
  1688. VkAttachmentLoadOp depthLoadOp;
  1689. float depthLoadClearValue;
  1690. VkAttachmentStoreOp depthStoreOp;
  1691. VkAttachmentLoadOp stencilLoadOp;
  1692. uint32_t stencilLoadClearValue;
  1693. VkAttachmentStoreOp stencilStoreOp;
  1694. } VkRenderPassCreateInfo;
  1695. typedef struct {
  1696. VkStructureType sType;
  1697. const void* pNext;
  1698. uint32_t queueNodeIndex;
  1699. VkCmdBufferLevel level;
  1700. VkCmdBufferCreateFlags flags;
  1701. } VkCmdBufferCreateInfo;
  1702. typedef struct {
  1703. VkStructureType sType;
  1704. const void* pNext;
  1705. VkCmdBufferOptimizeFlags flags;
  1706. VkRenderPass renderPass;
  1707. VkFramebuffer framebuffer;
  1708. } VkCmdBufferBeginInfo;
  1709. typedef struct {
  1710. VkDeviceSize srcOffset;
  1711. VkDeviceSize destOffset;
  1712. VkDeviceSize copySize;
  1713. } VkBufferCopy;
  1714. typedef struct {
  1715. VkImageSubresource srcSubresource;
  1716. VkOffset3D srcOffset;
  1717. VkImageSubresource destSubresource;
  1718. VkOffset3D destOffset;
  1719. VkExtent3D extent;
  1720. } VkImageCopy;
  1721. typedef struct {
  1722. VkImageSubresource srcSubresource;
  1723. VkOffset3D srcOffset;
  1724. VkExtent3D srcExtent;
  1725. VkImageSubresource destSubresource;
  1726. VkOffset3D destOffset;
  1727. VkExtent3D destExtent;
  1728. } VkImageBlit;
  1729. typedef struct {
  1730. VkDeviceSize bufferOffset;
  1731. uint32_t bufferRowLength;
  1732. uint32_t bufferImageHeight;
  1733. VkImageSubresource imageSubresource;
  1734. VkOffset3D imageOffset;
  1735. VkExtent3D imageExtent;
  1736. } VkBufferImageCopy;
  1737. typedef struct {
  1738. VkOffset3D offset;
  1739. VkExtent3D extent;
  1740. } VkRect3D;
  1741. typedef struct {
  1742. VkImageSubresource srcSubresource;
  1743. VkOffset3D srcOffset;
  1744. VkImageSubresource destSubresource;
  1745. VkOffset3D destOffset;
  1746. VkExtent3D extent;
  1747. } VkImageResolve;
  1748. typedef struct {
  1749. VkRenderPass renderPass;
  1750. VkFramebuffer framebuffer;
  1751. VkRenderPassContents contents;
  1752. } VkRenderPassBegin;
  1753. typedef struct {
  1754. VkStructureType sType;
  1755. const void* pNext;
  1756. VkMemoryOutputFlags outputMask;
  1757. VkMemoryInputFlags inputMask;
  1758. VkBuffer buffer;
  1759. VkDeviceSize offset;
  1760. VkDeviceSize size;
  1761. } VkBufferMemoryBarrier;
  1762. typedef struct {
  1763. uint32_t x;
  1764. uint32_t y;
  1765. uint32_t z;
  1766. } VkDispatchIndirectCmd;
  1767. typedef struct {
  1768. uint32_t indexCount;
  1769. uint32_t instanceCount;
  1770. uint32_t firstIndex;
  1771. int32_t vertexOffset;
  1772. uint32_t firstInstance;
  1773. } VkDrawIndexedIndirectCmd;
  1774. typedef struct {
  1775. uint32_t vertexCount;
  1776. uint32_t instanceCount;
  1777. uint32_t firstVertex;
  1778. uint32_t firstInstance;
  1779. } VkDrawIndirectCmd;
  1780. typedef struct {
  1781. VkStructureType sType;
  1782. const void* pNext;
  1783. VkMemoryOutputFlags outputMask;
  1784. VkMemoryInputFlags inputMask;
  1785. VkImageLayout oldLayout;
  1786. VkImageLayout newLayout;
  1787. VkImage image;
  1788. VkImageSubresourceRange subresourceRange;
  1789. } VkImageMemoryBarrier;
  1790. typedef struct {
  1791. VkStructureType sType;
  1792. const void* pNext;
  1793. uint32_t layerCount;
  1794. const char *const* ppActiveLayerNames;
  1795. } VkLayerCreateInfo;
  1796. typedef struct {
  1797. VkStructureType sType;
  1798. const void* pNext;
  1799. VkMemoryOutputFlags outputMask;
  1800. VkMemoryInputFlags inputMask;
  1801. } VkMemoryBarrier;
  1802. typedef VkResult (VKAPI *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, VkInstance* pInstance);
  1803. typedef VkResult (VKAPI *PFN_vkDestroyInstance)(VkInstance instance);
  1804. typedef VkResult (VKAPI *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
  1805. typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
  1806. typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceFormatInfo)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatInfo);
  1807. typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceLimits)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceLimits* pLimits);
  1808. typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
  1809. typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceQueueCount)(VkPhysicalDevice physicalDevice, uint32_t* pCount);
  1810. typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceQueueProperties)(VkPhysicalDevice physicalDevice, uint32_t count, VkPhysicalDeviceQueueProperties* pQueueProperties);
  1811. typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperies);
  1812. typedef PFN_vkVoidFunction (VKAPI *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
  1813. typedef PFN_vkVoidFunction (VKAPI *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
  1814. typedef VkResult (VKAPI *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, VkDevice* pDevice);
  1815. typedef VkResult (VKAPI *PFN_vkDestroyDevice)(VkDevice device);
  1816. typedef VkResult (VKAPI *PFN_vkGetGlobalExtensionCount)(uint32_t* pCount);
  1817. typedef VkResult (VKAPI *PFN_vkGetGlobalExtensionProperties)(uint32_t extensionIndex, VkExtensionProperties* pProperties);
  1818. typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceExtensionCount)(VkPhysicalDevice physicalDevice, uint32_t* pCount);
  1819. typedef VkResult (VKAPI *PFN_vkGetPhysicalDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, uint32_t extensionIndex, VkExtensionProperties* pProperties);
  1820. typedef VkResult (VKAPI *PFN_vkEnumerateLayers)(VkPhysicalDevice physicalDevice, size_t maxStringSize, size_t* pLayerCount, char* const* pOutLayers, void* pReserved);
  1821. typedef VkResult (VKAPI *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueNodeIndex, uint32_t queueIndex, VkQueue* pQueue);
  1822. typedef VkResult (VKAPI *PFN_vkQueueSubmit)(VkQueue queue, uint32_t cmdBufferCount, const VkCmdBuffer* pCmdBuffers, VkFence fence);
  1823. typedef VkResult (VKAPI *PFN_vkQueueWaitIdle)(VkQueue queue);
  1824. typedef VkResult (VKAPI *PFN_vkDeviceWaitIdle)(VkDevice device);
  1825. typedef VkResult (VKAPI *PFN_vkAllocMemory)(VkDevice device, const VkMemoryAllocInfo* pAllocInfo, VkDeviceMemory* pMem);
  1826. typedef VkResult (VKAPI *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory mem);
  1827. typedef VkResult (VKAPI *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory mem, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
  1828. typedef VkResult (VKAPI *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory mem);
  1829. typedef VkResult (VKAPI *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
  1830. typedef VkResult (VKAPI *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memRangeCount, const VkMappedMemoryRange* pMemRanges);
  1831. typedef VkResult (VKAPI *PFN_vkDestroyObject)(VkDevice device, VkObjectType objType, VkObject object);
  1832. typedef VkResult (VKAPI *PFN_vkBindObjectMemory)(VkDevice device, VkObjectType objType, VkObject object, VkDeviceMemory mem, VkDeviceSize memOffset);
  1833. typedef VkResult (VKAPI *PFN_vkGetObjectMemoryRequirements)(VkDevice device, VkObjectType objType, VkObject object, VkMemoryRequirements* pMemoryRequirements);
  1834. typedef VkResult (VKAPI *PFN_vkQueueBindSparseBufferMemory)(VkQueue queue, VkBuffer buffer, VkDeviceSize rangeOffset, VkDeviceSize rangeSize, VkDeviceMemory mem, VkDeviceSize memOffset);
  1835. typedef VkResult (VKAPI *PFN_vkQueueBindSparseImageMemory)(VkQueue queue, VkImage image, const VkImageMemoryBindInfo* pBindInfo, VkDeviceMemory mem, VkDeviceSize memOffset);
  1836. typedef VkResult (VKAPI *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, VkFence* pFence);
  1837. typedef VkResult (VKAPI *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
  1838. typedef VkResult (VKAPI *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
  1839. typedef VkResult (VKAPI *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
  1840. typedef VkResult (VKAPI *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, VkSemaphore* pSemaphore);
  1841. typedef VkResult (VKAPI *PFN_vkQueueSignalSemaphore)(VkQueue queue, VkSemaphore semaphore);
  1842. typedef VkResult (VKAPI *PFN_vkQueueWaitSemaphore)(VkQueue queue, VkSemaphore semaphore);
  1843. typedef VkResult (VKAPI *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, VkEvent* pEvent);
  1844. typedef VkResult (VKAPI *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
  1845. typedef VkResult (VKAPI *PFN_vkSetEvent)(VkDevice device, VkEvent event);
  1846. typedef VkResult (VKAPI *PFN_vkResetEvent)(VkDevice device, VkEvent event);
  1847. typedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, VkQueryPool* pQueryPool);
  1848. typedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t* pDataSize, void* pData, VkQueryResultFlags flags);
  1849. typedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, VkBuffer* pBuffer);
  1850. typedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, VkBufferView* pView);
  1851. typedef VkResult (VKAPI *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, VkImage* pImage);
  1852. typedef VkResult (VKAPI *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
  1853. typedef VkResult (VKAPI *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, VkImageView* pView);
  1854. typedef VkResult (VKAPI *PFN_vkCreateColorAttachmentView)(VkDevice device, const VkColorAttachmentViewCreateInfo* pCreateInfo, VkColorAttachmentView* pView);
  1855. typedef VkResult (VKAPI *PFN_vkCreateDepthStencilView)(VkDevice device, const VkDepthStencilViewCreateInfo* pCreateInfo, VkDepthStencilView* pView);
  1856. typedef VkResult (VKAPI *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModule* pShaderModule);
  1857. typedef VkResult (VKAPI *PFN_vkCreateShader)(VkDevice device, const VkShaderCreateInfo* pCreateInfo, VkShader* pShader);
  1858. typedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, VkPipelineCache* pPipelineCache);
  1859. typedef size_t (VKAPI *PFN_vkGetPipelineCacheSize)(VkDevice device, VkPipelineCache pipelineCache);
  1860. typedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, void* pData);
  1861. typedef VkResult (VKAPI *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache destCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
  1862. typedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkGraphicsPipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
  1863. typedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkComputePipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
  1864. typedef VkResult (VKAPI *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, VkPipelineLayout* pPipelineLayout);
  1865. typedef VkResult (VKAPI *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, VkSampler* pSampler);
  1866. typedef VkResult (VKAPI *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayout* pSetLayout);
  1867. typedef VkResult (VKAPI *PFN_vkCreateDescriptorPool)(VkDevice device, VkDescriptorPoolUsage poolUsage, uint32_t maxSets, const VkDescriptorPoolCreateInfo* pCreateInfo, VkDescriptorPool* pDescriptorPool);
  1868. typedef VkResult (VKAPI *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool);
  1869. typedef VkResult (VKAPI *PFN_vkAllocDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSetUsage setUsage, uint32_t count, const VkDescriptorSetLayout* pSetLayouts, VkDescriptorSet* pDescriptorSets, uint32_t* pCount);
  1870. typedef VkResult (VKAPI *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t writeCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t copyCount, const VkCopyDescriptorSet* pDescriptorCopies);
  1871. typedef VkResult (VKAPI *PFN_vkCreateDynamicViewportState)(VkDevice device, const VkDynamicVpStateCreateInfo* pCreateInfo, VkDynamicVpState* pState);
  1872. typedef VkResult (VKAPI *PFN_vkCreateDynamicRasterState)(VkDevice device, const VkDynamicRsStateCreateInfo* pCreateInfo, VkDynamicRsState* pState);
  1873. typedef VkResult (VKAPI *PFN_vkCreateDynamicColorBlendState)(VkDevice device, const VkDynamicCbStateCreateInfo* pCreateInfo, VkDynamicCbState* pState);
  1874. typedef VkResult (VKAPI *PFN_vkCreateDynamicDepthStencilState)(VkDevice device, const VkDynamicDsStateCreateInfo* pCreateInfo, VkDynamicDsState* pState);
  1875. typedef VkResult (VKAPI *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer);
  1876. typedef VkResult (VKAPI *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, VkRenderPass* pRenderPass);
  1877. typedef VkResult (VKAPI *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
  1878. typedef VkResult (VKAPI *PFN_vkCreateCommandBuffer)(VkDevice device, const VkCmdBufferCreateInfo* pCreateInfo, VkCmdBuffer* pCmdBuffer);
  1879. typedef VkResult (VKAPI *PFN_vkBeginCommandBuffer)(VkCmdBuffer cmdBuffer, const VkCmdBufferBeginInfo* pBeginInfo);
  1880. typedef VkResult (VKAPI *PFN_vkEndCommandBuffer)(VkCmdBuffer cmdBuffer);
  1881. typedef VkResult (VKAPI *PFN_vkResetCommandBuffer)(VkCmdBuffer cmdBuffer);
  1882. typedef void (VKAPI *PFN_vkCmdBindPipeline)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
  1883. typedef void (VKAPI *PFN_vkCmdBindDynamicStateObject)(VkCmdBuffer cmdBuffer, VkStateBindPoint stateBindPoint, VkDynamicStateObject dynamicState);
  1884. typedef void (VKAPI *PFN_vkCmdBindDescriptorSets)(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
  1885. typedef void (VKAPI *PFN_vkCmdBindIndexBuffer)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
  1886. typedef void (VKAPI *PFN_vkCmdBindVertexBuffers)(VkCmdBuffer cmdBuffer, uint32_t startBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
  1887. typedef void (VKAPI *PFN_vkCmdDraw)(VkCmdBuffer cmdBuffer, uint32_t firstVertex, uint32_t vertexCount, uint32_t firstInstance, uint32_t instanceCount);
  1888. typedef void (VKAPI *PFN_vkCmdDrawIndexed)(VkCmdBuffer cmdBuffer, uint32_t firstIndex, uint32_t indexCount, int32_t vertexOffset, uint32_t firstInstance, uint32_t instanceCount);
  1889. typedef void (VKAPI *PFN_vkCmdDrawIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
  1890. typedef void (VKAPI *PFN_vkCmdDrawIndexedIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride);
  1891. typedef void (VKAPI *PFN_vkCmdDispatch)(VkCmdBuffer cmdBuffer, uint32_t x, uint32_t y, uint32_t z);
  1892. typedef void (VKAPI *PFN_vkCmdDispatchIndirect)(VkCmdBuffer cmdBuffer, VkBuffer buffer, VkDeviceSize offset);
  1893. typedef void (VKAPI *PFN_vkCmdCopyBuffer)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkBuffer destBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
  1894. typedef void (VKAPI *PFN_vkCmdCopyImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
  1895. typedef void (VKAPI *PFN_vkCmdBlitImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkTexFilter filter);
  1896. typedef void (VKAPI *PFN_vkCmdCopyBufferToImage)(VkCmdBuffer cmdBuffer, VkBuffer srcBuffer, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
  1897. typedef void (VKAPI *PFN_vkCmdCopyImageToBuffer)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer destBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
  1898. typedef void (VKAPI *PFN_vkCmdUpdateBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize dataSize, const uint32_t* pData);
  1899. typedef void (VKAPI *PFN_vkCmdFillBuffer)(VkCmdBuffer cmdBuffer, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize fillSize, uint32_t data);
  1900. typedef void (VKAPI *PFN_vkCmdClearColorImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
  1901. typedef void (VKAPI *PFN_vkCmdClearDepthStencilImage)(VkCmdBuffer cmdBuffer, VkImage image, VkImageLayout imageLayout, float depth, uint32_t stencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
  1902. typedef void (VKAPI *PFN_vkCmdClearColorAttachment)(VkCmdBuffer cmdBuffer, uint32_t colorAttachment, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rectCount, const VkRect3D* pRects);
  1903. typedef void (VKAPI *PFN_vkCmdClearDepthStencilAttachment)(VkCmdBuffer cmdBuffer, VkImageAspectFlags imageAspectMask, VkImageLayout imageLayout, float depth, uint32_t stencil, uint32_t rectCount, const VkRect3D* pRects);
  1904. typedef void (VKAPI *PFN_vkCmdResolveImage)(VkCmdBuffer cmdBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage destImage, VkImageLayout destImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
  1905. typedef void (VKAPI *PFN_vkCmdSetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipeEvent pipeEvent);
  1906. typedef void (VKAPI *PFN_vkCmdResetEvent)(VkCmdBuffer cmdBuffer, VkEvent event, VkPipeEvent pipeEvent);
  1907. typedef void (VKAPI *PFN_vkCmdWaitEvents)(VkCmdBuffer cmdBuffer, VkWaitEvent waitEvent, uint32_t eventCount, const VkEvent* pEvents, VkPipeEventFlags pipeEventMask, uint32_t memBarrierCount, const void* const* ppMemBarriers);
  1908. typedef void (VKAPI *PFN_vkCmdPipelineBarrier)(VkCmdBuffer cmdBuffer, VkWaitEvent waitEvent, VkPipeEventFlags pipeEventMask, uint32_t memBarrierCount, const void* const* ppMemBarriers);
  1909. typedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot, VkQueryControlFlags flags);
  1910. typedef void (VKAPI *PFN_vkCmdEndQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot);
  1911. typedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
  1912. typedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCmdBuffer cmdBuffer, VkTimestampType timestampType, VkBuffer destBuffer, VkDeviceSize destOffset);
  1913. typedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize destStride, VkQueryResultFlags flags);
  1914. typedef void (VKAPI *PFN_vkCmdPushConstants)(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t start, uint32_t length, const void* values);
  1915. typedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCmdBuffer cmdBuffer, const VkRenderPassBegin* pRenderPassBegin);
  1916. typedef void (VKAPI *PFN_vkCmdEndRenderPass)(VkCmdBuffer cmdBuffer);
  1917. typedef void (VKAPI *PFN_vkCmdExecuteCommands)(VkCmdBuffer cmdBuffer, uint32_t cmdBuffersCount, const VkCmdBuffer* pCmdBuffers);
  1918. #ifdef VK_PROTOTYPES
  1919. VkResult VKAPI vkCreateInstance(
  1920. const VkInstanceCreateInfo* pCreateInfo,
  1921. VkInstance* pInstance);
  1922. VkResult VKAPI vkDestroyInstance(
  1923. VkInstance instance);
  1924. VkResult VKAPI vkEnumeratePhysicalDevices(
  1925. VkInstance instance,
  1926. uint32_t* pPhysicalDeviceCount,
  1927. VkPhysicalDevice* pPhysicalDevices);
  1928. VkResult VKAPI vkGetPhysicalDeviceFeatures(
  1929. VkPhysicalDevice physicalDevice,
  1930. VkPhysicalDeviceFeatures* pFeatures);
  1931. VkResult VKAPI vkGetPhysicalDeviceFormatInfo(
  1932. VkPhysicalDevice physicalDevice,
  1933. VkFormat format,
  1934. VkFormatProperties* pFormatInfo);
  1935. VkResult VKAPI vkGetPhysicalDeviceLimits(
  1936. VkPhysicalDevice physicalDevice,
  1937. VkPhysicalDeviceLimits* pLimits);
  1938. VkResult VKAPI vkGetPhysicalDeviceProperties(
  1939. VkPhysicalDevice physicalDevice,
  1940. VkPhysicalDeviceProperties* pProperties);
  1941. VkResult VKAPI vkGetPhysicalDeviceQueueCount(
  1942. VkPhysicalDevice physicalDevice,
  1943. uint32_t* pCount);
  1944. VkResult VKAPI vkGetPhysicalDeviceQueueProperties(
  1945. VkPhysicalDevice physicalDevice,
  1946. uint32_t count,
  1947. VkPhysicalDeviceQueueProperties* pQueueProperties);
  1948. VkResult VKAPI vkGetPhysicalDeviceMemoryProperties(
  1949. VkPhysicalDevice physicalDevice,
  1950. VkPhysicalDeviceMemoryProperties* pMemoryProperies);
  1951. PFN_vkVoidFunction VKAPI vkGetInstanceProcAddr(
  1952. VkInstance instance,
  1953. const char* pName);
  1954. PFN_vkVoidFunction VKAPI vkGetDeviceProcAddr(
  1955. VkDevice device,
  1956. const char* pName);
  1957. VkResult VKAPI vkCreateDevice(
  1958. VkPhysicalDevice physicalDevice,
  1959. const VkDeviceCreateInfo* pCreateInfo,
  1960. VkDevice* pDevice);
  1961. VkResult VKAPI vkDestroyDevice(
  1962. VkDevice device);
  1963. VkResult VKAPI vkGetGlobalExtensionCount(
  1964. uint32_t* pCount);
  1965. VkResult VKAPI vkGetGlobalExtensionProperties(
  1966. uint32_t extensionIndex,
  1967. VkExtensionProperties* pProperties);
  1968. VkResult VKAPI vkGetPhysicalDeviceExtensionCount(
  1969. VkPhysicalDevice physicalDevice,
  1970. uint32_t* pCount);
  1971. VkResult VKAPI vkGetPhysicalDeviceExtensionProperties(
  1972. VkPhysicalDevice physicalDevice,
  1973. uint32_t extensionIndex,
  1974. VkExtensionProperties* pProperties);
  1975. VkResult VKAPI vkEnumerateLayers(
  1976. VkPhysicalDevice physicalDevice,
  1977. size_t maxStringSize,
  1978. size_t* pLayerCount,
  1979. char* const* pOutLayers,
  1980. void* pReserved);
  1981. VkResult VKAPI vkGetDeviceQueue(
  1982. VkDevice device,
  1983. uint32_t queueNodeIndex,
  1984. uint32_t queueIndex,
  1985. VkQueue* pQueue);
  1986. VkResult VKAPI vkQueueSubmit(
  1987. VkQueue queue,
  1988. uint32_t cmdBufferCount,
  1989. const VkCmdBuffer* pCmdBuffers,
  1990. VkFence fence);
  1991. VkResult VKAPI vkQueueWaitIdle(
  1992. VkQueue queue);
  1993. VkResult VKAPI vkDeviceWaitIdle(
  1994. VkDevice device);
  1995. VkResult VKAPI vkAllocMemory(
  1996. VkDevice device,
  1997. const VkMemoryAllocInfo* pAllocInfo,
  1998. VkDeviceMemory* pMem);
  1999. VkResult VKAPI vkFreeMemory(
  2000. VkDevice device,
  2001. VkDeviceMemory mem);
  2002. VkResult VKAPI vkMapMemory(
  2003. VkDevice device,
  2004. VkDeviceMemory mem,
  2005. VkDeviceSize offset,
  2006. VkDeviceSize size,
  2007. VkMemoryMapFlags flags,
  2008. void** ppData);
  2009. VkResult VKAPI vkUnmapMemory(
  2010. VkDevice device,
  2011. VkDeviceMemory mem);
  2012. VkResult VKAPI vkFlushMappedMemoryRanges(
  2013. VkDevice device,
  2014. uint32_t memRangeCount,
  2015. const VkMappedMemoryRange* pMemRanges);
  2016. VkResult VKAPI vkInvalidateMappedMemoryRanges(
  2017. VkDevice device,
  2018. uint32_t memRangeCount,
  2019. const VkMappedMemoryRange* pMemRanges);
  2020. VkResult VKAPI vkDestroyObject(
  2021. VkDevice device,
  2022. VkObjectType objType,
  2023. VkObject object);
  2024. VkResult VKAPI vkBindObjectMemory(
  2025. VkDevice device,
  2026. VkObjectType objType,
  2027. VkObject object,
  2028. VkDeviceMemory mem,
  2029. VkDeviceSize memOffset);
  2030. VkResult VKAPI vkGetObjectMemoryRequirements(
  2031. VkDevice device,
  2032. VkObjectType objType,
  2033. VkObject object,
  2034. VkMemoryRequirements* pMemoryRequirements);
  2035. VkResult VKAPI vkQueueBindSparseBufferMemory(
  2036. VkQueue queue,
  2037. VkBuffer buffer,
  2038. VkDeviceSize rangeOffset,
  2039. VkDeviceSize rangeSize,
  2040. VkDeviceMemory mem,
  2041. VkDeviceSize memOffset);
  2042. VkResult VKAPI vkQueueBindSparseImageMemory(
  2043. VkQueue queue,
  2044. VkImage image,
  2045. const VkImageMemoryBindInfo* pBindInfo,
  2046. VkDeviceMemory mem,
  2047. VkDeviceSize memOffset);
  2048. VkResult VKAPI vkCreateFence(
  2049. VkDevice device,
  2050. const VkFenceCreateInfo* pCreateInfo,
  2051. VkFence* pFence);
  2052. VkResult VKAPI vkResetFences(
  2053. VkDevice device,
  2054. uint32_t fenceCount,
  2055. const VkFence* pFences);
  2056. VkResult VKAPI vkGetFenceStatus(
  2057. VkDevice device,
  2058. VkFence fence);
  2059. VkResult VKAPI vkWaitForFences(
  2060. VkDevice device,
  2061. uint32_t fenceCount,
  2062. const VkFence* pFences,
  2063. VkBool32 waitAll,
  2064. uint64_t timeout);
  2065. VkResult VKAPI vkCreateSemaphore(
  2066. VkDevice device,
  2067. const VkSemaphoreCreateInfo* pCreateInfo,
  2068. VkSemaphore* pSemaphore);
  2069. VkResult VKAPI vkQueueSignalSemaphore(
  2070. VkQueue queue,
  2071. VkSemaphore semaphore);
  2072. VkResult VKAPI vkQueueWaitSemaphore(
  2073. VkQueue queue,
  2074. VkSemaphore semaphore);
  2075. VkResult VKAPI vkCreateEvent(
  2076. VkDevice device,
  2077. const VkEventCreateInfo* pCreateInfo,
  2078. VkEvent* pEvent);
  2079. VkResult VKAPI vkGetEventStatus(
  2080. VkDevice device,
  2081. VkEvent event);
  2082. VkResult VKAPI vkSetEvent(
  2083. VkDevice device,
  2084. VkEvent event);
  2085. VkResult VKAPI vkResetEvent(
  2086. VkDevice device,
  2087. VkEvent event);
  2088. VkResult VKAPI vkCreateQueryPool(
  2089. VkDevice device,
  2090. const VkQueryPoolCreateInfo* pCreateInfo,
  2091. VkQueryPool* pQueryPool);
  2092. VkResult VKAPI vkGetQueryPoolResults(
  2093. VkDevice device,
  2094. VkQueryPool queryPool,
  2095. uint32_t startQuery,
  2096. uint32_t queryCount,
  2097. size_t* pDataSize,
  2098. void* pData,
  2099. VkQueryResultFlags flags);
  2100. VkResult VKAPI vkCreateBuffer(
  2101. VkDevice device,
  2102. const VkBufferCreateInfo* pCreateInfo,
  2103. VkBuffer* pBuffer);
  2104. VkResult VKAPI vkCreateBufferView(
  2105. VkDevice device,
  2106. const VkBufferViewCreateInfo* pCreateInfo,
  2107. VkBufferView* pView);
  2108. VkResult VKAPI vkCreateImage(
  2109. VkDevice device,
  2110. const VkImageCreateInfo* pCreateInfo,
  2111. VkImage* pImage);
  2112. VkResult VKAPI vkGetImageSubresourceLayout(
  2113. VkDevice device,
  2114. VkImage image,
  2115. const VkImageSubresource* pSubresource,
  2116. VkSubresourceLayout* pLayout);
  2117. VkResult VKAPI vkCreateImageView(
  2118. VkDevice device,
  2119. const VkImageViewCreateInfo* pCreateInfo,
  2120. VkImageView* pView);
  2121. VkResult VKAPI vkCreateColorAttachmentView(
  2122. VkDevice device,
  2123. const VkColorAttachmentViewCreateInfo* pCreateInfo,
  2124. VkColorAttachmentView* pView);
  2125. VkResult VKAPI vkCreateDepthStencilView(
  2126. VkDevice device,
  2127. const VkDepthStencilViewCreateInfo* pCreateInfo,
  2128. VkDepthStencilView* pView);
  2129. VkResult VKAPI vkCreateShaderModule(
  2130. VkDevice device,
  2131. const VkShaderModuleCreateInfo* pCreateInfo,
  2132. VkShaderModule* pShaderModule);
  2133. VkResult VKAPI vkCreateShader(
  2134. VkDevice device,
  2135. const VkShaderCreateInfo* pCreateInfo,
  2136. VkShader* pShader);
  2137. VkResult VKAPI vkCreatePipelineCache(
  2138. VkDevice device,
  2139. const VkPipelineCacheCreateInfo* pCreateInfo,
  2140. VkPipelineCache* pPipelineCache);
  2141. size_t VKAPI vkGetPipelineCacheSize(
  2142. VkDevice device,
  2143. VkPipelineCache pipelineCache);
  2144. VkResult VKAPI vkGetPipelineCacheData(
  2145. VkDevice device,
  2146. VkPipelineCache pipelineCache,
  2147. void* pData);
  2148. VkResult VKAPI vkMergePipelineCaches(
  2149. VkDevice device,
  2150. VkPipelineCache destCache,
  2151. uint32_t srcCacheCount,
  2152. const VkPipelineCache* pSrcCaches);
  2153. VkResult VKAPI vkCreateGraphicsPipelines(
  2154. VkDevice device,
  2155. VkPipelineCache pipelineCache,
  2156. uint32_t count,
  2157. const VkGraphicsPipelineCreateInfo* pCreateInfos,
  2158. VkPipeline* pPipelines);
  2159. VkResult VKAPI vkCreateComputePipelines(
  2160. VkDevice device,
  2161. VkPipelineCache pipelineCache,
  2162. uint32_t count,
  2163. const VkComputePipelineCreateInfo* pCreateInfos,
  2164. VkPipeline* pPipelines);
  2165. VkResult VKAPI vkCreatePipelineLayout(
  2166. VkDevice device,
  2167. const VkPipelineLayoutCreateInfo* pCreateInfo,
  2168. VkPipelineLayout* pPipelineLayout);
  2169. VkResult VKAPI vkCreateSampler(
  2170. VkDevice device,
  2171. const VkSamplerCreateInfo* pCreateInfo,
  2172. VkSampler* pSampler);
  2173. VkResult VKAPI vkCreateDescriptorSetLayout(
  2174. VkDevice device,
  2175. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  2176. VkDescriptorSetLayout* pSetLayout);
  2177. VkResult VKAPI vkCreateDescriptorPool(
  2178. VkDevice device,
  2179. VkDescriptorPoolUsage poolUsage,
  2180. uint32_t maxSets,
  2181. const VkDescriptorPoolCreateInfo* pCreateInfo,
  2182. VkDescriptorPool* pDescriptorPool);
  2183. VkResult VKAPI vkResetDescriptorPool(
  2184. VkDevice device,
  2185. VkDescriptorPool descriptorPool);
  2186. VkResult VKAPI vkAllocDescriptorSets(
  2187. VkDevice device,
  2188. VkDescriptorPool descriptorPool,
  2189. VkDescriptorSetUsage setUsage,
  2190. uint32_t count,
  2191. const VkDescriptorSetLayout* pSetLayouts,
  2192. VkDescriptorSet* pDescriptorSets,
  2193. uint32_t* pCount);
  2194. VkResult VKAPI vkUpdateDescriptorSets(
  2195. VkDevice device,
  2196. uint32_t writeCount,
  2197. const VkWriteDescriptorSet* pDescriptorWrites,
  2198. uint32_t copyCount,
  2199. const VkCopyDescriptorSet* pDescriptorCopies);
  2200. VkResult VKAPI vkCreateDynamicViewportState(
  2201. VkDevice device,
  2202. const VkDynamicVpStateCreateInfo* pCreateInfo,
  2203. VkDynamicVpState* pState);
  2204. VkResult VKAPI vkCreateDynamicRasterState(
  2205. VkDevice device,
  2206. const VkDynamicRsStateCreateInfo* pCreateInfo,
  2207. VkDynamicRsState* pState);
  2208. VkResult VKAPI vkCreateDynamicColorBlendState(
  2209. VkDevice device,
  2210. const VkDynamicCbStateCreateInfo* pCreateInfo,
  2211. VkDynamicCbState* pState);
  2212. VkResult VKAPI vkCreateDynamicDepthStencilState(
  2213. VkDevice device,
  2214. const VkDynamicDsStateCreateInfo* pCreateInfo,
  2215. VkDynamicDsState* pState);
  2216. VkResult VKAPI vkCreateFramebuffer(
  2217. VkDevice device,
  2218. const VkFramebufferCreateInfo* pCreateInfo,
  2219. VkFramebuffer* pFramebuffer);
  2220. VkResult VKAPI vkCreateRenderPass(
  2221. VkDevice device,
  2222. const VkRenderPassCreateInfo* pCreateInfo,
  2223. VkRenderPass* pRenderPass);
  2224. VkResult VKAPI vkGetRenderAreaGranularity(
  2225. VkDevice device,
  2226. VkRenderPass renderPass,
  2227. VkExtent2D* pGranularity);
  2228. VkResult VKAPI vkCreateCommandBuffer(
  2229. VkDevice device,
  2230. const VkCmdBufferCreateInfo* pCreateInfo,
  2231. VkCmdBuffer* pCmdBuffer);
  2232. VkResult VKAPI vkBeginCommandBuffer(
  2233. VkCmdBuffer cmdBuffer,
  2234. const VkCmdBufferBeginInfo* pBeginInfo);
  2235. VkResult VKAPI vkEndCommandBuffer(
  2236. VkCmdBuffer cmdBuffer);
  2237. VkResult VKAPI vkResetCommandBuffer(
  2238. VkCmdBuffer cmdBuffer);
  2239. void VKAPI vkCmdBindPipeline(
  2240. VkCmdBuffer cmdBuffer,
  2241. VkPipelineBindPoint pipelineBindPoint,
  2242. VkPipeline pipeline);
  2243. void VKAPI vkCmdBindDynamicStateObject(
  2244. VkCmdBuffer cmdBuffer,
  2245. VkStateBindPoint stateBindPoint,
  2246. VkDynamicStateObject dynamicState);
  2247. void VKAPI vkCmdBindDescriptorSets(
  2248. VkCmdBuffer cmdBuffer,
  2249. VkPipelineBindPoint pipelineBindPoint,
  2250. VkPipelineLayout layout,
  2251. uint32_t firstSet,
  2252. uint32_t setCount,
  2253. const VkDescriptorSet* pDescriptorSets,
  2254. uint32_t dynamicOffsetCount,
  2255. const uint32_t* pDynamicOffsets);
  2256. void VKAPI vkCmdBindIndexBuffer(
  2257. VkCmdBuffer cmdBuffer,
  2258. VkBuffer buffer,
  2259. VkDeviceSize offset,
  2260. VkIndexType indexType);
  2261. void VKAPI vkCmdBindVertexBuffers(
  2262. VkCmdBuffer cmdBuffer,
  2263. uint32_t startBinding,
  2264. uint32_t bindingCount,
  2265. const VkBuffer* pBuffers,
  2266. const VkDeviceSize* pOffsets);
  2267. void VKAPI vkCmdDraw(
  2268. VkCmdBuffer cmdBuffer,
  2269. uint32_t firstVertex,
  2270. uint32_t vertexCount,
  2271. uint32_t firstInstance,
  2272. uint32_t instanceCount);
  2273. void VKAPI vkCmdDrawIndexed(
  2274. VkCmdBuffer cmdBuffer,
  2275. uint32_t firstIndex,
  2276. uint32_t indexCount,
  2277. int32_t vertexOffset,
  2278. uint32_t firstInstance,
  2279. uint32_t instanceCount);
  2280. void VKAPI vkCmdDrawIndirect(
  2281. VkCmdBuffer cmdBuffer,
  2282. VkBuffer buffer,
  2283. VkDeviceSize offset,
  2284. uint32_t count,
  2285. uint32_t stride);
  2286. void VKAPI vkCmdDrawIndexedIndirect(
  2287. VkCmdBuffer cmdBuffer,
  2288. VkBuffer buffer,
  2289. VkDeviceSize offset,
  2290. uint32_t count,
  2291. uint32_t stride);
  2292. void VKAPI vkCmdDispatch(
  2293. VkCmdBuffer cmdBuffer,
  2294. uint32_t x,
  2295. uint32_t y,
  2296. uint32_t z);
  2297. void VKAPI vkCmdDispatchIndirect(
  2298. VkCmdBuffer cmdBuffer,
  2299. VkBuffer buffer,
  2300. VkDeviceSize offset);
  2301. void VKAPI vkCmdCopyBuffer(
  2302. VkCmdBuffer cmdBuffer,
  2303. VkBuffer srcBuffer,
  2304. VkBuffer destBuffer,
  2305. uint32_t regionCount,
  2306. const VkBufferCopy* pRegions);
  2307. void VKAPI vkCmdCopyImage(
  2308. VkCmdBuffer cmdBuffer,
  2309. VkImage srcImage,
  2310. VkImageLayout srcImageLayout,
  2311. VkImage destImage,
  2312. VkImageLayout destImageLayout,
  2313. uint32_t regionCount,
  2314. const VkImageCopy* pRegions);
  2315. void VKAPI vkCmdBlitImage(
  2316. VkCmdBuffer cmdBuffer,
  2317. VkImage srcImage,
  2318. VkImageLayout srcImageLayout,
  2319. VkImage destImage,
  2320. VkImageLayout destImageLayout,
  2321. uint32_t regionCount,
  2322. const VkImageBlit* pRegions,
  2323. VkTexFilter filter);
  2324. void VKAPI vkCmdCopyBufferToImage(
  2325. VkCmdBuffer cmdBuffer,
  2326. VkBuffer srcBuffer,
  2327. VkImage destImage,
  2328. VkImageLayout destImageLayout,
  2329. uint32_t regionCount,
  2330. const VkBufferImageCopy* pRegions);
  2331. void VKAPI vkCmdCopyImageToBuffer(
  2332. VkCmdBuffer cmdBuffer,
  2333. VkImage srcImage,
  2334. VkImageLayout srcImageLayout,
  2335. VkBuffer destBuffer,
  2336. uint32_t regionCount,
  2337. const VkBufferImageCopy* pRegions);
  2338. void VKAPI vkCmdUpdateBuffer(
  2339. VkCmdBuffer cmdBuffer,
  2340. VkBuffer destBuffer,
  2341. VkDeviceSize destOffset,
  2342. VkDeviceSize dataSize,
  2343. const uint32_t* pData);
  2344. void VKAPI vkCmdFillBuffer(
  2345. VkCmdBuffer cmdBuffer,
  2346. VkBuffer destBuffer,
  2347. VkDeviceSize destOffset,
  2348. VkDeviceSize fillSize,
  2349. uint32_t data);
  2350. void VKAPI vkCmdClearColorImage(
  2351. VkCmdBuffer cmdBuffer,
  2352. VkImage image,
  2353. VkImageLayout imageLayout,
  2354. const VkClearColorValue* pColor,
  2355. uint32_t rangeCount,
  2356. const VkImageSubresourceRange* pRanges);
  2357. void VKAPI vkCmdClearDepthStencilImage(
  2358. VkCmdBuffer cmdBuffer,
  2359. VkImage image,
  2360. VkImageLayout imageLayout,
  2361. float depth,
  2362. uint32_t stencil,
  2363. uint32_t rangeCount,
  2364. const VkImageSubresourceRange* pRanges);
  2365. void VKAPI vkCmdClearColorAttachment(
  2366. VkCmdBuffer cmdBuffer,
  2367. uint32_t colorAttachment,
  2368. VkImageLayout imageLayout,
  2369. const VkClearColorValue* pColor,
  2370. uint32_t rectCount,
  2371. const VkRect3D* pRects);
  2372. void VKAPI vkCmdClearDepthStencilAttachment(
  2373. VkCmdBuffer cmdBuffer,
  2374. VkImageAspectFlags imageAspectMask,
  2375. VkImageLayout imageLayout,
  2376. float depth,
  2377. uint32_t stencil,
  2378. uint32_t rectCount,
  2379. const VkRect3D* pRects);
  2380. void VKAPI vkCmdResolveImage(
  2381. VkCmdBuffer cmdBuffer,
  2382. VkImage srcImage,
  2383. VkImageLayout srcImageLayout,
  2384. VkImage destImage,
  2385. VkImageLayout destImageLayout,
  2386. uint32_t regionCount,
  2387. const VkImageResolve* pRegions);
  2388. void VKAPI vkCmdSetEvent(
  2389. VkCmdBuffer cmdBuffer,
  2390. VkEvent event,
  2391. VkPipeEvent pipeEvent);
  2392. void VKAPI vkCmdResetEvent(
  2393. VkCmdBuffer cmdBuffer,
  2394. VkEvent event,
  2395. VkPipeEvent pipeEvent);
  2396. void VKAPI vkCmdWaitEvents(
  2397. VkCmdBuffer cmdBuffer,
  2398. VkWaitEvent waitEvent,
  2399. uint32_t eventCount,
  2400. const VkEvent* pEvents,
  2401. VkPipeEventFlags pipeEventMask,
  2402. uint32_t memBarrierCount,
  2403. const void* const* ppMemBarriers);
  2404. void VKAPI vkCmdPipelineBarrier(
  2405. VkCmdBuffer cmdBuffer,
  2406. VkWaitEvent waitEvent,
  2407. VkPipeEventFlags pipeEventMask,
  2408. uint32_t memBarrierCount,
  2409. const void* const* ppMemBarriers);
  2410. void VKAPI vkCmdBeginQuery(
  2411. VkCmdBuffer cmdBuffer,
  2412. VkQueryPool queryPool,
  2413. uint32_t slot,
  2414. VkQueryControlFlags flags);
  2415. void VKAPI vkCmdEndQuery(
  2416. VkCmdBuffer cmdBuffer,
  2417. VkQueryPool queryPool,
  2418. uint32_t slot);
  2419. void VKAPI vkCmdResetQueryPool(
  2420. VkCmdBuffer cmdBuffer,
  2421. VkQueryPool queryPool,
  2422. uint32_t startQuery,
  2423. uint32_t queryCount);
  2424. void VKAPI vkCmdWriteTimestamp(
  2425. VkCmdBuffer cmdBuffer,
  2426. VkTimestampType timestampType,
  2427. VkBuffer destBuffer,
  2428. VkDeviceSize destOffset);
  2429. void VKAPI vkCmdCopyQueryPoolResults(
  2430. VkCmdBuffer cmdBuffer,
  2431. VkQueryPool queryPool,
  2432. uint32_t startQuery,
  2433. uint32_t queryCount,
  2434. VkBuffer destBuffer,
  2435. VkDeviceSize destOffset,
  2436. VkDeviceSize destStride,
  2437. VkQueryResultFlags flags);
  2438. void VKAPI vkCmdPushConstants(
  2439. VkCmdBuffer cmdBuffer,
  2440. VkPipelineLayout layout,
  2441. VkShaderStageFlags stageFlags,
  2442. uint32_t start,
  2443. uint32_t length,
  2444. const void* values);
  2445. void VKAPI vkCmdBeginRenderPass(
  2446. VkCmdBuffer cmdBuffer,
  2447. const VkRenderPassBegin* pRenderPassBegin);
  2448. void VKAPI vkCmdEndRenderPass(
  2449. VkCmdBuffer cmdBuffer);
  2450. void VKAPI vkCmdExecuteCommands(
  2451. VkCmdBuffer cmdBuffer,
  2452. uint32_t cmdBuffersCount,
  2453. const VkCmdBuffer* pCmdBuffers);
  2454. #endif
  2455. #ifdef __cplusplus
  2456. }
  2457. #endif
  2458. #endif