types.d 120 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922
  1. /*
  2. ** Copyright (c) 2015-2016 The Khronos Group Inc.
  3. **
  4. ** Permission is hereby granted, free of charge, to any person obtaining a
  5. ** copy of this software and/or associated documentation files (the
  6. ** "Materials"), to deal in the Materials without restriction, including
  7. ** without limitation the rights to use, copy, modify, merge, publish,
  8. ** distribute, sublicense, and/or sell copies of the Materials, and to
  9. ** permit persons to whom the Materials are furnished to do so, subject to
  10. ** the following conditions:
  11. **
  12. ** The above copyright notice and this permission notice shall be included
  13. ** in all copies or substantial portions of the Materials.
  14. **
  15. ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  16. ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  17. ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  18. ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  19. ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  20. ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  21. ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
  22. */
  23. module derelict.vulkan.types;
  24. import derelict.vulkan.base;
  25. import derelict.vulkan.system;
  26. extern(System):
  27. mixin VK_DEFINE_HANDLE!"VkInstance";
  28. mixin VK_DEFINE_HANDLE!"VkPhysicalDevice";
  29. mixin VK_DEFINE_HANDLE!"VkDevice";
  30. mixin VK_DEFINE_HANDLE!"VkQueue";
  31. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSemaphore";
  32. mixin VK_DEFINE_HANDLE!"VkCommandBuffer";
  33. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkFence";
  34. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDeviceMemory";
  35. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkBuffer";
  36. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkImage";
  37. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkEvent";
  38. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkQueryPool";
  39. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkBufferView";
  40. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkImageView";
  41. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkShaderModule";
  42. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkPipelineCache";
  43. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkPipelineLayout";
  44. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkRenderPass";
  45. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkPipeline";
  46. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDescriptorSetLayout";
  47. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSampler";
  48. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDescriptorPool";
  49. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDescriptorSet";
  50. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkFramebuffer";
  51. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkCommandPool";
  52. enum VkPipelineCacheHeaderVersion {
  53. VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
  54. VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
  55. VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
  56. VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
  57. VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
  58. }
  59. enum VkResult {
  60. VK_SUCCESS = 0,
  61. VK_NOT_READY = 1,
  62. VK_TIMEOUT = 2,
  63. VK_EVENT_SET = 3,
  64. VK_EVENT_RESET = 4,
  65. VK_INCOMPLETE = 5,
  66. VK_ERROR_OUT_OF_HOST_MEMORY = -1,
  67. VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
  68. VK_ERROR_INITIALIZATION_FAILED = -3,
  69. VK_ERROR_DEVICE_LOST = -4,
  70. VK_ERROR_MEMORY_MAP_FAILED = -5,
  71. VK_ERROR_LAYER_NOT_PRESENT = -6,
  72. VK_ERROR_EXTENSION_NOT_PRESENT = -7,
  73. VK_ERROR_FEATURE_NOT_PRESENT = -8,
  74. VK_ERROR_INCOMPATIBLE_DRIVER = -9,
  75. VK_ERROR_TOO_MANY_OBJECTS = -10,
  76. VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
  77. VK_ERROR_SURFACE_LOST_KHR = -1000000000,
  78. VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
  79. VK_SUBOPTIMAL_KHR = 1000001003,
  80. VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
  81. VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
  82. VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
  83. VK_RESULT_BEGIN_RANGE = VK_ERROR_FORMAT_NOT_SUPPORTED,
  84. VK_RESULT_END_RANGE = VK_INCOMPLETE,
  85. VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FORMAT_NOT_SUPPORTED + 1),
  86. VK_RESULT_MAX_ENUM = 0x7FFFFFFF
  87. }
  88. enum VkStructureType {
  89. VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
  90. VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
  91. VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
  92. VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
  93. VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
  94. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
  95. VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
  96. VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
  97. VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
  98. VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
  99. VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
  100. VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
  101. VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
  102. VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
  103. VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
  104. VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
  105. VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
  106. VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
  107. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
  108. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
  109. VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
  110. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
  111. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
  112. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
  113. VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
  114. VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
  115. VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
  116. VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
  117. VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
  118. VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
  119. VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
  120. VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
  121. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
  122. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
  123. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
  124. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
  125. VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
  126. VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
  127. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
  128. VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
  129. VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
  130. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
  131. VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
  132. VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
  133. VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
  134. VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
  135. VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
  136. VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
  137. VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
  138. VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
  139. VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
  140. VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
  141. VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
  142. VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
  143. VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
  144. VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
  145. VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
  146. VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
  147. VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
  148. VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
  149. VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = 1000011000,
  150. VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
  151. VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
  152. VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
  153. VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
  154. }
  155. enum VkSystemAllocationScope {
  156. VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
  157. VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
  158. VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
  159. VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
  160. VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
  161. VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
  162. VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
  163. VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
  164. VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
  165. }
  166. enum VkInternalAllocationType {
  167. VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
  168. VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
  169. VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
  170. VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
  171. VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
  172. }
  173. enum VkFormat {
  174. VK_FORMAT_UNDEFINED = 0,
  175. VK_FORMAT_R4G4_UNORM_PACK8 = 1,
  176. VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
  177. VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
  178. VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
  179. VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
  180. VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
  181. VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
  182. VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
  183. VK_FORMAT_R8_UNORM = 9,
  184. VK_FORMAT_R8_SNORM = 10,
  185. VK_FORMAT_R8_USCALED = 11,
  186. VK_FORMAT_R8_SSCALED = 12,
  187. VK_FORMAT_R8_UINT = 13,
  188. VK_FORMAT_R8_SINT = 14,
  189. VK_FORMAT_R8_SRGB = 15,
  190. VK_FORMAT_R8G8_UNORM = 16,
  191. VK_FORMAT_R8G8_SNORM = 17,
  192. VK_FORMAT_R8G8_USCALED = 18,
  193. VK_FORMAT_R8G8_SSCALED = 19,
  194. VK_FORMAT_R8G8_UINT = 20,
  195. VK_FORMAT_R8G8_SINT = 21,
  196. VK_FORMAT_R8G8_SRGB = 22,
  197. VK_FORMAT_R8G8B8_UNORM = 23,
  198. VK_FORMAT_R8G8B8_SNORM = 24,
  199. VK_FORMAT_R8G8B8_USCALED = 25,
  200. VK_FORMAT_R8G8B8_SSCALED = 26,
  201. VK_FORMAT_R8G8B8_UINT = 27,
  202. VK_FORMAT_R8G8B8_SINT = 28,
  203. VK_FORMAT_R8G8B8_SRGB = 29,
  204. VK_FORMAT_B8G8R8_UNORM = 30,
  205. VK_FORMAT_B8G8R8_SNORM = 31,
  206. VK_FORMAT_B8G8R8_USCALED = 32,
  207. VK_FORMAT_B8G8R8_SSCALED = 33,
  208. VK_FORMAT_B8G8R8_UINT = 34,
  209. VK_FORMAT_B8G8R8_SINT = 35,
  210. VK_FORMAT_B8G8R8_SRGB = 36,
  211. VK_FORMAT_R8G8B8A8_UNORM = 37,
  212. VK_FORMAT_R8G8B8A8_SNORM = 38,
  213. VK_FORMAT_R8G8B8A8_USCALED = 39,
  214. VK_FORMAT_R8G8B8A8_SSCALED = 40,
  215. VK_FORMAT_R8G8B8A8_UINT = 41,
  216. VK_FORMAT_R8G8B8A8_SINT = 42,
  217. VK_FORMAT_R8G8B8A8_SRGB = 43,
  218. VK_FORMAT_B8G8R8A8_UNORM = 44,
  219. VK_FORMAT_B8G8R8A8_SNORM = 45,
  220. VK_FORMAT_B8G8R8A8_USCALED = 46,
  221. VK_FORMAT_B8G8R8A8_SSCALED = 47,
  222. VK_FORMAT_B8G8R8A8_UINT = 48,
  223. VK_FORMAT_B8G8R8A8_SINT = 49,
  224. VK_FORMAT_B8G8R8A8_SRGB = 50,
  225. VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
  226. VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
  227. VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
  228. VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
  229. VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
  230. VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
  231. VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
  232. VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
  233. VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
  234. VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
  235. VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
  236. VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
  237. VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
  238. VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
  239. VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
  240. VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
  241. VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
  242. VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
  243. VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
  244. VK_FORMAT_R16_UNORM = 70,
  245. VK_FORMAT_R16_SNORM = 71,
  246. VK_FORMAT_R16_USCALED = 72,
  247. VK_FORMAT_R16_SSCALED = 73,
  248. VK_FORMAT_R16_UINT = 74,
  249. VK_FORMAT_R16_SINT = 75,
  250. VK_FORMAT_R16_SFLOAT = 76,
  251. VK_FORMAT_R16G16_UNORM = 77,
  252. VK_FORMAT_R16G16_SNORM = 78,
  253. VK_FORMAT_R16G16_USCALED = 79,
  254. VK_FORMAT_R16G16_SSCALED = 80,
  255. VK_FORMAT_R16G16_UINT = 81,
  256. VK_FORMAT_R16G16_SINT = 82,
  257. VK_FORMAT_R16G16_SFLOAT = 83,
  258. VK_FORMAT_R16G16B16_UNORM = 84,
  259. VK_FORMAT_R16G16B16_SNORM = 85,
  260. VK_FORMAT_R16G16B16_USCALED = 86,
  261. VK_FORMAT_R16G16B16_SSCALED = 87,
  262. VK_FORMAT_R16G16B16_UINT = 88,
  263. VK_FORMAT_R16G16B16_SINT = 89,
  264. VK_FORMAT_R16G16B16_SFLOAT = 90,
  265. VK_FORMAT_R16G16B16A16_UNORM = 91,
  266. VK_FORMAT_R16G16B16A16_SNORM = 92,
  267. VK_FORMAT_R16G16B16A16_USCALED = 93,
  268. VK_FORMAT_R16G16B16A16_SSCALED = 94,
  269. VK_FORMAT_R16G16B16A16_UINT = 95,
  270. VK_FORMAT_R16G16B16A16_SINT = 96,
  271. VK_FORMAT_R16G16B16A16_SFLOAT = 97,
  272. VK_FORMAT_R32_UINT = 98,
  273. VK_FORMAT_R32_SINT = 99,
  274. VK_FORMAT_R32_SFLOAT = 100,
  275. VK_FORMAT_R32G32_UINT = 101,
  276. VK_FORMAT_R32G32_SINT = 102,
  277. VK_FORMAT_R32G32_SFLOAT = 103,
  278. VK_FORMAT_R32G32B32_UINT = 104,
  279. VK_FORMAT_R32G32B32_SINT = 105,
  280. VK_FORMAT_R32G32B32_SFLOAT = 106,
  281. VK_FORMAT_R32G32B32A32_UINT = 107,
  282. VK_FORMAT_R32G32B32A32_SINT = 108,
  283. VK_FORMAT_R32G32B32A32_SFLOAT = 109,
  284. VK_FORMAT_R64_UINT = 110,
  285. VK_FORMAT_R64_SINT = 111,
  286. VK_FORMAT_R64_SFLOAT = 112,
  287. VK_FORMAT_R64G64_UINT = 113,
  288. VK_FORMAT_R64G64_SINT = 114,
  289. VK_FORMAT_R64G64_SFLOAT = 115,
  290. VK_FORMAT_R64G64B64_UINT = 116,
  291. VK_FORMAT_R64G64B64_SINT = 117,
  292. VK_FORMAT_R64G64B64_SFLOAT = 118,
  293. VK_FORMAT_R64G64B64A64_UINT = 119,
  294. VK_FORMAT_R64G64B64A64_SINT = 120,
  295. VK_FORMAT_R64G64B64A64_SFLOAT = 121,
  296. VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
  297. VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
  298. VK_FORMAT_D16_UNORM = 124,
  299. VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
  300. VK_FORMAT_D32_SFLOAT = 126,
  301. VK_FORMAT_S8_UINT = 127,
  302. VK_FORMAT_D16_UNORM_S8_UINT = 128,
  303. VK_FORMAT_D24_UNORM_S8_UINT = 129,
  304. VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
  305. VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
  306. VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
  307. VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
  308. VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
  309. VK_FORMAT_BC2_UNORM_BLOCK = 135,
  310. VK_FORMAT_BC2_SRGB_BLOCK = 136,
  311. VK_FORMAT_BC3_UNORM_BLOCK = 137,
  312. VK_FORMAT_BC3_SRGB_BLOCK = 138,
  313. VK_FORMAT_BC4_UNORM_BLOCK = 139,
  314. VK_FORMAT_BC4_SNORM_BLOCK = 140,
  315. VK_FORMAT_BC5_UNORM_BLOCK = 141,
  316. VK_FORMAT_BC5_SNORM_BLOCK = 142,
  317. VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
  318. VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
  319. VK_FORMAT_BC7_UNORM_BLOCK = 145,
  320. VK_FORMAT_BC7_SRGB_BLOCK = 146,
  321. VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
  322. VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
  323. VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
  324. VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
  325. VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
  326. VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
  327. VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
  328. VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
  329. VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
  330. VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
  331. VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
  332. VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
  333. VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
  334. VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
  335. VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
  336. VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
  337. VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
  338. VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
  339. VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
  340. VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
  341. VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
  342. VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
  343. VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
  344. VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
  345. VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
  346. VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
  347. VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
  348. VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
  349. VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
  350. VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
  351. VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
  352. VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
  353. VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
  354. VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
  355. VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
  356. VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
  357. VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
  358. VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
  359. VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
  360. VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
  361. VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
  362. VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
  363. }
  364. enum VkImageType {
  365. VK_IMAGE_TYPE_1D = 0,
  366. VK_IMAGE_TYPE_2D = 1,
  367. VK_IMAGE_TYPE_3D = 2,
  368. VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
  369. VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
  370. VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
  371. VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
  372. }
  373. enum VkImageTiling {
  374. VK_IMAGE_TILING_OPTIMAL = 0,
  375. VK_IMAGE_TILING_LINEAR = 1,
  376. VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
  377. VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
  378. VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
  379. VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
  380. }
  381. enum VkPhysicalDeviceType {
  382. VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
  383. VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
  384. VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
  385. VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
  386. VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
  387. VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
  388. VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
  389. VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
  390. VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
  391. }
  392. enum VkQueryType {
  393. VK_QUERY_TYPE_OCCLUSION = 0,
  394. VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
  395. VK_QUERY_TYPE_TIMESTAMP = 2,
  396. VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
  397. VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
  398. VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
  399. VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
  400. }
  401. enum VkSharingMode {
  402. VK_SHARING_MODE_EXCLUSIVE = 0,
  403. VK_SHARING_MODE_CONCURRENT = 1,
  404. VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
  405. VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
  406. VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
  407. VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
  408. }
  409. enum VkImageLayout {
  410. VK_IMAGE_LAYOUT_UNDEFINED = 0,
  411. VK_IMAGE_LAYOUT_GENERAL = 1,
  412. VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
  413. VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
  414. VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
  415. VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
  416. VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
  417. VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
  418. VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
  419. VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
  420. VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
  421. VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
  422. VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
  423. VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
  424. }
  425. enum VkImageViewType {
  426. VK_IMAGE_VIEW_TYPE_1D = 0,
  427. VK_IMAGE_VIEW_TYPE_2D = 1,
  428. VK_IMAGE_VIEW_TYPE_3D = 2,
  429. VK_IMAGE_VIEW_TYPE_CUBE = 3,
  430. VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
  431. VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
  432. VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
  433. VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
  434. VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
  435. VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
  436. VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
  437. }
  438. enum VkComponentSwizzle {
  439. VK_COMPONENT_SWIZZLE_IDENTITY = 0,
  440. VK_COMPONENT_SWIZZLE_ZERO = 1,
  441. VK_COMPONENT_SWIZZLE_ONE = 2,
  442. VK_COMPONENT_SWIZZLE_R = 3,
  443. VK_COMPONENT_SWIZZLE_G = 4,
  444. VK_COMPONENT_SWIZZLE_B = 5,
  445. VK_COMPONENT_SWIZZLE_A = 6,
  446. VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
  447. VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
  448. VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
  449. VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
  450. }
  451. enum VkVertexInputRate {
  452. VK_VERTEX_INPUT_RATE_VERTEX = 0,
  453. VK_VERTEX_INPUT_RATE_INSTANCE = 1,
  454. VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
  455. VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
  456. VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
  457. VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
  458. }
  459. enum VkPrimitiveTopology {
  460. VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
  461. VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
  462. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
  463. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
  464. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
  465. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
  466. VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
  467. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
  468. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
  469. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
  470. VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
  471. VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
  472. VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
  473. VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
  474. VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
  475. }
  476. enum VkPolygonMode {
  477. VK_POLYGON_MODE_FILL = 0,
  478. VK_POLYGON_MODE_LINE = 1,
  479. VK_POLYGON_MODE_POINT = 2,
  480. VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
  481. VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
  482. VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
  483. VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
  484. }
  485. enum VkFrontFace {
  486. VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
  487. VK_FRONT_FACE_CLOCKWISE = 1,
  488. VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
  489. VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
  490. VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
  491. VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
  492. }
  493. enum VkCompareOp {
  494. VK_COMPARE_OP_NEVER = 0,
  495. VK_COMPARE_OP_LESS = 1,
  496. VK_COMPARE_OP_EQUAL = 2,
  497. VK_COMPARE_OP_LESS_OR_EQUAL = 3,
  498. VK_COMPARE_OP_GREATER = 4,
  499. VK_COMPARE_OP_NOT_EQUAL = 5,
  500. VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
  501. VK_COMPARE_OP_ALWAYS = 7,
  502. VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
  503. VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
  504. VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
  505. VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
  506. }
  507. enum VkStencilOp {
  508. VK_STENCIL_OP_KEEP = 0,
  509. VK_STENCIL_OP_ZERO = 1,
  510. VK_STENCIL_OP_REPLACE = 2,
  511. VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
  512. VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
  513. VK_STENCIL_OP_INVERT = 5,
  514. VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
  515. VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
  516. VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
  517. VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
  518. VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
  519. VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
  520. }
  521. enum VkLogicOp {
  522. VK_LOGIC_OP_CLEAR = 0,
  523. VK_LOGIC_OP_AND = 1,
  524. VK_LOGIC_OP_AND_REVERSE = 2,
  525. VK_LOGIC_OP_COPY = 3,
  526. VK_LOGIC_OP_AND_INVERTED = 4,
  527. VK_LOGIC_OP_NO_OP = 5,
  528. VK_LOGIC_OP_XOR = 6,
  529. VK_LOGIC_OP_OR = 7,
  530. VK_LOGIC_OP_NOR = 8,
  531. VK_LOGIC_OP_EQUIVALENT = 9,
  532. VK_LOGIC_OP_INVERT = 10,
  533. VK_LOGIC_OP_OR_REVERSE = 11,
  534. VK_LOGIC_OP_COPY_INVERTED = 12,
  535. VK_LOGIC_OP_OR_INVERTED = 13,
  536. VK_LOGIC_OP_NAND = 14,
  537. VK_LOGIC_OP_SET = 15,
  538. VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
  539. VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
  540. VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
  541. VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
  542. }
  543. enum VkBlendFactor {
  544. VK_BLEND_FACTOR_ZERO = 0,
  545. VK_BLEND_FACTOR_ONE = 1,
  546. VK_BLEND_FACTOR_SRC_COLOR = 2,
  547. VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
  548. VK_BLEND_FACTOR_DST_COLOR = 4,
  549. VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
  550. VK_BLEND_FACTOR_SRC_ALPHA = 6,
  551. VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
  552. VK_BLEND_FACTOR_DST_ALPHA = 8,
  553. VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
  554. VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
  555. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
  556. VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
  557. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
  558. VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
  559. VK_BLEND_FACTOR_SRC1_COLOR = 15,
  560. VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
  561. VK_BLEND_FACTOR_SRC1_ALPHA = 17,
  562. VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
  563. VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
  564. VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
  565. VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
  566. VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
  567. }
  568. enum VkBlendOp {
  569. VK_BLEND_OP_ADD = 0,
  570. VK_BLEND_OP_SUBTRACT = 1,
  571. VK_BLEND_OP_REVERSE_SUBTRACT = 2,
  572. VK_BLEND_OP_MIN = 3,
  573. VK_BLEND_OP_MAX = 4,
  574. VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
  575. VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
  576. VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
  577. VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
  578. }
  579. enum VkDynamicState {
  580. VK_DYNAMIC_STATE_VIEWPORT = 0,
  581. VK_DYNAMIC_STATE_SCISSOR = 1,
  582. VK_DYNAMIC_STATE_LINE_WIDTH = 2,
  583. VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
  584. VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
  585. VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
  586. VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
  587. VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
  588. VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
  589. VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
  590. VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
  591. VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
  592. VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
  593. }
  594. enum VkFilter {
  595. VK_FILTER_NEAREST = 0,
  596. VK_FILTER_LINEAR = 1,
  597. VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
  598. VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
  599. VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
  600. VK_FILTER_MAX_ENUM = 0x7FFFFFFF
  601. }
  602. enum VkSamplerMipmapMode {
  603. VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
  604. VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
  605. VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
  606. VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
  607. VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
  608. VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
  609. }
  610. enum VkSamplerAddressMode {
  611. VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
  612. VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
  613. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
  614. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
  615. VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
  616. VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
  617. VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
  618. VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
  619. VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
  620. }
  621. enum VkBorderColor {
  622. VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
  623. VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
  624. VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
  625. VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
  626. VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
  627. VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
  628. VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
  629. VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
  630. VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
  631. VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
  632. }
  633. enum VkDescriptorType {
  634. VK_DESCRIPTOR_TYPE_SAMPLER = 0,
  635. VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
  636. VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
  637. VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
  638. VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
  639. VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
  640. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
  641. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
  642. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
  643. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
  644. VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
  645. VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
  646. VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
  647. VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
  648. VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
  649. }
  650. enum VkAttachmentLoadOp {
  651. VK_ATTACHMENT_LOAD_OP_LOAD = 0,
  652. VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
  653. VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
  654. VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
  655. VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
  656. VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
  657. VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
  658. }
  659. enum VkAttachmentStoreOp {
  660. VK_ATTACHMENT_STORE_OP_STORE = 0,
  661. VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
  662. VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
  663. VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
  664. VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
  665. VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
  666. }
  667. enum VkPipelineBindPoint {
  668. VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
  669. VK_PIPELINE_BIND_POINT_COMPUTE = 1,
  670. VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
  671. VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
  672. VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
  673. VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
  674. }
  675. enum VkCommandBufferLevel {
  676. VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
  677. VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
  678. VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
  679. VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
  680. VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
  681. VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
  682. }
  683. enum VkIndexType {
  684. VK_INDEX_TYPE_UINT16 = 0,
  685. VK_INDEX_TYPE_UINT32 = 1,
  686. VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
  687. VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
  688. VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
  689. VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
  690. }
  691. enum VkSubpassContents {
  692. VK_SUBPASS_CONTENTS_INLINE = 0,
  693. VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
  694. VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
  695. VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
  696. VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
  697. VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
  698. }
  699. alias VkInstanceCreateFlags = VkFlags;
  700. enum VkFormatFeatureFlagBits {
  701. VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
  702. VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
  703. VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
  704. VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
  705. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
  706. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
  707. VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
  708. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
  709. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
  710. VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
  711. VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
  712. VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
  713. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
  714. }
  715. alias VkFormatFeatureFlags = VkFlags;
  716. enum VkImageUsageFlagBits {
  717. VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
  718. VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
  719. VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
  720. VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
  721. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
  722. VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
  723. VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
  724. VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
  725. }
  726. alias VkImageUsageFlags = VkFlags;
  727. enum VkImageCreateFlagBits {
  728. VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
  729. VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
  730. VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
  731. VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
  732. VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
  733. }
  734. alias VkImageCreateFlags = VkFlags;
  735. enum VkSampleCountFlagBits {
  736. VK_SAMPLE_COUNT_1_BIT = 0x00000001,
  737. VK_SAMPLE_COUNT_2_BIT = 0x00000002,
  738. VK_SAMPLE_COUNT_4_BIT = 0x00000004,
  739. VK_SAMPLE_COUNT_8_BIT = 0x00000008,
  740. VK_SAMPLE_COUNT_16_BIT = 0x00000010,
  741. VK_SAMPLE_COUNT_32_BIT = 0x00000020,
  742. VK_SAMPLE_COUNT_64_BIT = 0x00000040,
  743. }
  744. alias VkSampleCountFlags = VkFlags;
  745. enum VkQueueFlagBits {
  746. VK_QUEUE_GRAPHICS_BIT = 0x00000001,
  747. VK_QUEUE_COMPUTE_BIT = 0x00000002,
  748. VK_QUEUE_TRANSFER_BIT = 0x00000004,
  749. VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
  750. }
  751. alias VkQueueFlags = VkFlags;
  752. enum VkMemoryPropertyFlagBits {
  753. VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
  754. VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
  755. VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
  756. VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
  757. VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
  758. }
  759. alias VkMemoryPropertyFlags = VkFlags;
  760. enum VkMemoryHeapFlagBits {
  761. VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
  762. }
  763. alias VkMemoryHeapFlags = VkFlags;
  764. alias VkDeviceCreateFlags = VkFlags;
  765. alias VkDeviceQueueCreateFlags = VkFlags;
  766. enum VkPipelineStageFlagBits {
  767. VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
  768. VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
  769. VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
  770. VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
  771. VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
  772. VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
  773. VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
  774. VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
  775. VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
  776. VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
  777. VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
  778. VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
  779. VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
  780. VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
  781. VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
  782. VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
  783. VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
  784. }
  785. alias VkPipelineStageFlags = VkFlags;
  786. alias VkMemoryMapFlags = VkFlags;
  787. enum VkImageAspectFlagBits {
  788. VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
  789. VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
  790. VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
  791. VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
  792. }
  793. alias VkImageAspectFlags = VkFlags;
  794. enum VkSparseImageFormatFlagBits {
  795. VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
  796. VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
  797. VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
  798. }
  799. alias VkSparseImageFormatFlags = VkFlags;
  800. enum VkSparseMemoryBindFlagBits {
  801. VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
  802. }
  803. alias VkSparseMemoryBindFlags = VkFlags;
  804. enum VkFenceCreateFlagBits {
  805. VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
  806. }
  807. alias VkFenceCreateFlags = VkFlags;
  808. alias VkSemaphoreCreateFlags = VkFlags;
  809. alias VkEventCreateFlags = VkFlags;
  810. alias VkQueryPoolCreateFlags = VkFlags;
  811. enum VkQueryPipelineStatisticFlagBits {
  812. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
  813. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
  814. VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
  815. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
  816. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
  817. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
  818. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
  819. VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
  820. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
  821. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
  822. VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
  823. }
  824. alias VkQueryPipelineStatisticFlags = VkFlags;
  825. enum VkQueryResultFlagBits {
  826. VK_QUERY_RESULT_64_BIT = 0x00000001,
  827. VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
  828. VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
  829. VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
  830. }
  831. alias VkQueryResultFlags = VkFlags;
  832. enum VkBufferCreateFlagBits {
  833. VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
  834. VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
  835. VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
  836. }
  837. alias VkBufferCreateFlags = VkFlags;
  838. enum VkBufferUsageFlagBits {
  839. VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
  840. VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
  841. VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
  842. VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
  843. VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
  844. VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
  845. VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
  846. VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
  847. VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
  848. }
  849. alias VkBufferUsageFlags = VkFlags;
  850. alias VkBufferViewCreateFlags = VkFlags;
  851. alias VkImageViewCreateFlags = VkFlags;
  852. alias VkShaderModuleCreateFlags = VkFlags;
  853. alias VkPipelineCacheCreateFlags = VkFlags;
  854. enum VkPipelineCreateFlagBits {
  855. VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
  856. VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
  857. VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
  858. }
  859. alias VkPipelineCreateFlags = VkFlags;
  860. alias VkPipelineShaderStageCreateFlags = VkFlags;
  861. enum VkShaderStageFlagBits {
  862. VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
  863. VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
  864. VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
  865. VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
  866. VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
  867. VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
  868. VK_SHADER_STAGE_ALL_GRAPHICS = 0x1F,
  869. VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
  870. }
  871. alias VkPipelineVertexInputStateCreateFlags = VkFlags;
  872. alias VkPipelineInputAssemblyStateCreateFlags = VkFlags;
  873. alias VkPipelineTessellationStateCreateFlags = VkFlags;
  874. alias VkPipelineViewportStateCreateFlags = VkFlags;
  875. alias VkPipelineRasterizationStateCreateFlags = VkFlags;
  876. enum VkCullModeFlagBits {
  877. VK_CULL_MODE_NONE = 0,
  878. VK_CULL_MODE_FRONT_BIT = 0x00000001,
  879. VK_CULL_MODE_BACK_BIT = 0x00000002,
  880. VK_CULL_MODE_FRONT_AND_BACK = 0x3,
  881. }
  882. alias VkCullModeFlags = VkFlags;
  883. alias VkPipelineMultisampleStateCreateFlags = VkFlags;
  884. alias VkPipelineDepthStencilStateCreateFlags = VkFlags;
  885. alias VkPipelineColorBlendStateCreateFlags = VkFlags;
  886. enum VkColorComponentFlagBits {
  887. VK_COLOR_COMPONENT_R_BIT = 0x00000001,
  888. VK_COLOR_COMPONENT_G_BIT = 0x00000002,
  889. VK_COLOR_COMPONENT_B_BIT = 0x00000004,
  890. VK_COLOR_COMPONENT_A_BIT = 0x00000008,
  891. }
  892. alias VkColorComponentFlags = VkFlags;
  893. alias VkPipelineDynamicStateCreateFlags = VkFlags;
  894. alias VkPipelineLayoutCreateFlags = VkFlags;
  895. alias VkShaderStageFlags = VkFlags;
  896. alias VkSamplerCreateFlags = VkFlags;
  897. alias VkDescriptorSetLayoutCreateFlags = VkFlags;
  898. enum VkDescriptorPoolCreateFlagBits {
  899. VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
  900. }
  901. alias VkDescriptorPoolCreateFlags = VkFlags;
  902. alias VkDescriptorPoolResetFlags = VkFlags;
  903. alias VkFramebufferCreateFlags = VkFlags;
  904. alias VkRenderPassCreateFlags = VkFlags;
  905. enum VkAttachmentDescriptionFlagBits {
  906. VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
  907. }
  908. alias VkAttachmentDescriptionFlags = VkFlags;
  909. alias VkSubpassDescriptionFlags = VkFlags;
  910. enum VkAccessFlagBits {
  911. VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
  912. VK_ACCESS_INDEX_READ_BIT = 0x00000002,
  913. VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
  914. VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
  915. VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
  916. VK_ACCESS_SHADER_READ_BIT = 0x00000020,
  917. VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
  918. VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
  919. VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
  920. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
  921. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
  922. VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
  923. VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
  924. VK_ACCESS_HOST_READ_BIT = 0x00002000,
  925. VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
  926. VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
  927. VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
  928. }
  929. alias VkAccessFlags = VkFlags;
  930. enum VkDependencyFlagBits {
  931. VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
  932. }
  933. alias VkDependencyFlags = VkFlags;
  934. enum VkCommandPoolCreateFlagBits {
  935. VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
  936. VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
  937. }
  938. alias VkCommandPoolCreateFlags = VkFlags;
  939. enum VkCommandPoolResetFlagBits {
  940. VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
  941. }
  942. alias VkCommandPoolResetFlags = VkFlags;
  943. enum VkCommandBufferUsageFlagBits {
  944. VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
  945. VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
  946. VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
  947. }
  948. alias VkCommandBufferUsageFlags = VkFlags;
  949. enum VkQueryControlFlagBits {
  950. VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
  951. }
  952. alias VkQueryControlFlags = VkFlags;
  953. enum VkCommandBufferResetFlagBits {
  954. VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
  955. }
  956. alias VkCommandBufferResetFlags = VkFlags;
  957. enum VkStencilFaceFlagBits {
  958. VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
  959. VK_STENCIL_FACE_BACK_BIT = 0x00000002,
  960. VK_STENCIL_FRONT_AND_BACK = 0x3,
  961. }
  962. alias VkStencilFaceFlags = VkFlags;
  963. alias PFN_vkAllocationFunction = nothrow void* function(void* pUserData, size_t size, size_t alignment, VkSystemAllocationScope allocationScope);
  964. alias PFN_vkReallocationFunction = nothrow void* function(void* pUserData, void* pOriginal, size_t size, size_t alignment, VkSystemAllocationScope allocationScope);
  965. alias PFN_vkFreeFunction = nothrow void function(void* pUserData, void* pMemory);
  966. alias PFN_vkInternalAllocationNotification = nothrow void function(void* pUserData, size_t size, VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope);
  967. alias PFN_vkInternalFreeNotification = nothrow void function(void* pUserData, size_t size, VkInternalAllocationType allocationType, VkSystemAllocationScope allocationScope);
  968. alias PFN_vkVoidFunction = nothrow void function();
  969. struct VkApplicationInfo {
  970. VkStructureType sType;
  971. const(void)* pNext;
  972. const(char)* pApplicationName;
  973. uint applicationVersion;
  974. const(char)* pEngineName;
  975. uint engineVersion;
  976. uint apiVersion;
  977. }
  978. struct VkInstanceCreateInfo {
  979. VkStructureType sType;
  980. const(void)* pNext;
  981. VkInstanceCreateFlags flags;
  982. const(VkApplicationInfo)* pApplicationInfo;
  983. uint enabledLayerCount;
  984. const(char*)* ppEnabledLayerNames;
  985. uint enabledExtensionCount;
  986. const(char*)* ppEnabledExtensionNames;
  987. }
  988. struct VkAllocationCallbacks {
  989. void* pUserData;
  990. PFN_vkAllocationFunction pfnAllocation;
  991. PFN_vkReallocationFunction pfnReallocation;
  992. PFN_vkFreeFunction pfnFree;
  993. PFN_vkInternalAllocationNotification pfnInternalAllocation;
  994. PFN_vkInternalFreeNotification pfnInternalFree;
  995. }
  996. struct VkPhysicalDeviceFeatures {
  997. VkBool32 robustBufferAccess;
  998. VkBool32 fullDrawIndexUint32;
  999. VkBool32 imageCubeArray;
  1000. VkBool32 independentBlend;
  1001. VkBool32 geometryShader;
  1002. VkBool32 tessellationShader;
  1003. VkBool32 sampleRateShading;
  1004. VkBool32 dualSrcBlend;
  1005. VkBool32 logicOp;
  1006. VkBool32 multiDrawIndirect;
  1007. VkBool32 drawIndirectFirstInstance;
  1008. VkBool32 depthClamp;
  1009. VkBool32 depthBiasClamp;
  1010. VkBool32 fillModeNonSolid;
  1011. VkBool32 depthBounds;
  1012. VkBool32 wideLines;
  1013. VkBool32 largePoints;
  1014. VkBool32 alphaToOne;
  1015. VkBool32 multiViewport;
  1016. VkBool32 samplerAnisotropy;
  1017. VkBool32 textureCompressionETC2;
  1018. VkBool32 textureCompressionASTC_LDR;
  1019. VkBool32 textureCompressionBC;
  1020. VkBool32 occlusionQueryPrecise;
  1021. VkBool32 pipelineStatisticsQuery;
  1022. VkBool32 vertexPipelineStoresAndAtomics;
  1023. VkBool32 fragmentStoresAndAtomics;
  1024. VkBool32 shaderTessellationAndGeometryPointSize;
  1025. VkBool32 shaderImageGatherExtended;
  1026. VkBool32 shaderStorageImageExtendedFormats;
  1027. VkBool32 shaderStorageImageMultisample;
  1028. VkBool32 shaderStorageImageReadWithoutFormat;
  1029. VkBool32 shaderStorageImageWriteWithoutFormat;
  1030. VkBool32 shaderUniformBufferArrayDynamicIndexing;
  1031. VkBool32 shaderSampledImageArrayDynamicIndexing;
  1032. VkBool32 shaderStorageBufferArrayDynamicIndexing;
  1033. VkBool32 shaderStorageImageArrayDynamicIndexing;
  1034. VkBool32 shaderClipDistance;
  1035. VkBool32 shaderCullDistance;
  1036. VkBool32 shaderFloat64;
  1037. VkBool32 shaderInt64;
  1038. VkBool32 shaderInt16;
  1039. VkBool32 shaderResourceResidency;
  1040. VkBool32 shaderResourceMinLod;
  1041. VkBool32 sparseBinding;
  1042. VkBool32 sparseResidencyBuffer;
  1043. VkBool32 sparseResidencyImage2D;
  1044. VkBool32 sparseResidencyImage3D;
  1045. VkBool32 sparseResidency2Samples;
  1046. VkBool32 sparseResidency4Samples;
  1047. VkBool32 sparseResidency8Samples;
  1048. VkBool32 sparseResidency16Samples;
  1049. VkBool32 sparseResidencyAliased;
  1050. VkBool32 variableMultisampleRate;
  1051. VkBool32 inheritedQueries;
  1052. }
  1053. struct VkFormatProperties {
  1054. VkFormatFeatureFlags linearTilingFeatures;
  1055. VkFormatFeatureFlags optimalTilingFeatures;
  1056. VkFormatFeatureFlags bufferFeatures;
  1057. }
  1058. struct VkExtent3D {
  1059. uint width;
  1060. uint height;
  1061. uint depth;
  1062. }
  1063. struct VkImageFormatProperties {
  1064. VkExtent3D maxExtent;
  1065. uint maxMipLevels;
  1066. uint maxArrayLayers;
  1067. VkSampleCountFlags sampleCounts;
  1068. VkDeviceSize maxResourceSize;
  1069. }
  1070. struct VkPhysicalDeviceLimits {
  1071. uint maxImageDimension1D;
  1072. uint maxImageDimension2D;
  1073. uint maxImageDimension3D;
  1074. uint maxImageDimensionCube;
  1075. uint maxImageArrayLayers;
  1076. uint maxTexelBufferElements;
  1077. uint maxUniformBufferRange;
  1078. uint maxStorageBufferRange;
  1079. uint maxPushConstantsSize;
  1080. uint maxMemoryAllocationCount;
  1081. uint maxSamplerAllocationCount;
  1082. VkDeviceSize bufferImageGranularity;
  1083. VkDeviceSize sparseAddressSpaceSize;
  1084. uint maxBoundDescriptorSets;
  1085. uint maxPerStageDescriptorSamplers;
  1086. uint maxPerStageDescriptorUniformBuffers;
  1087. uint maxPerStageDescriptorStorageBuffers;
  1088. uint maxPerStageDescriptorSampledImages;
  1089. uint maxPerStageDescriptorStorageImages;
  1090. uint maxPerStageDescriptorInputAttachments;
  1091. uint maxPerStageResources;
  1092. uint maxDescriptorSetSamplers;
  1093. uint maxDescriptorSetUniformBuffers;
  1094. uint maxDescriptorSetUniformBuffersDynamic;
  1095. uint maxDescriptorSetStorageBuffers;
  1096. uint maxDescriptorSetStorageBuffersDynamic;
  1097. uint maxDescriptorSetSampledImages;
  1098. uint maxDescriptorSetStorageImages;
  1099. uint maxDescriptorSetInputAttachments;
  1100. uint maxVertexInputAttributes;
  1101. uint maxVertexInputBindings;
  1102. uint maxVertexInputAttributeOffset;
  1103. uint maxVertexInputBindingStride;
  1104. uint maxVertexOutputComponents;
  1105. uint maxTessellationGenerationLevel;
  1106. uint maxTessellationPatchSize;
  1107. uint maxTessellationControlPerVertexInputComponents;
  1108. uint maxTessellationControlPerVertexOutputComponents;
  1109. uint maxTessellationControlPerPatchOutputComponents;
  1110. uint maxTessellationControlTotalOutputComponents;
  1111. uint maxTessellationEvaluationInputComponents;
  1112. uint maxTessellationEvaluationOutputComponents;
  1113. uint maxGeometryShaderInvocations;
  1114. uint maxGeometryInputComponents;
  1115. uint maxGeometryOutputComponents;
  1116. uint maxGeometryOutputVertices;
  1117. uint maxGeometryTotalOutputComponents;
  1118. uint maxFragmentInputComponents;
  1119. uint maxFragmentOutputAttachments;
  1120. uint maxFragmentDualSrcAttachments;
  1121. uint maxFragmentCombinedOutputResources;
  1122. uint maxComputeSharedMemorySize;
  1123. uint[3] maxComputeWorkGroupCount;
  1124. uint maxComputeWorkGroupInvocations;
  1125. uint[3] maxComputeWorkGroupSize;
  1126. uint subPixelPrecisionBits;
  1127. uint subTexelPrecisionBits;
  1128. uint mipmapPrecisionBits;
  1129. uint maxDrawIndexedIndexValue;
  1130. uint maxDrawIndirectCount;
  1131. float maxSamplerLodBias;
  1132. float maxSamplerAnisotropy;
  1133. uint maxViewports;
  1134. uint[2] maxViewportDimensions;
  1135. float[2] viewportBoundsRange;
  1136. uint viewportSubPixelBits;
  1137. size_t minMemoryMapAlignment;
  1138. VkDeviceSize minTexelBufferOffsetAlignment;
  1139. VkDeviceSize minUniformBufferOffsetAlignment;
  1140. VkDeviceSize minStorageBufferOffsetAlignment;
  1141. int minTexelOffset;
  1142. uint maxTexelOffset;
  1143. int minTexelGatherOffset;
  1144. uint maxTexelGatherOffset;
  1145. float minInterpolationOffset;
  1146. float maxInterpolationOffset;
  1147. uint subPixelInterpolationOffsetBits;
  1148. uint maxFramebufferWidth;
  1149. uint maxFramebufferHeight;
  1150. uint maxFramebufferLayers;
  1151. VkSampleCountFlags framebufferColorSampleCounts;
  1152. VkSampleCountFlags framebufferDepthSampleCounts;
  1153. VkSampleCountFlags framebufferStencilSampleCounts;
  1154. VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
  1155. uint maxColorAttachments;
  1156. VkSampleCountFlags sampledImageColorSampleCounts;
  1157. VkSampleCountFlags sampledImageIntegerSampleCounts;
  1158. VkSampleCountFlags sampledImageDepthSampleCounts;
  1159. VkSampleCountFlags sampledImageStencilSampleCounts;
  1160. VkSampleCountFlags storageImageSampleCounts;
  1161. uint maxSampleMaskWords;
  1162. VkBool32 timestampComputeAndGraphics;
  1163. float timestampPeriod;
  1164. uint maxClipDistances;
  1165. uint maxCullDistances;
  1166. uint maxCombinedClipAndCullDistances;
  1167. uint discreteQueuePriorities;
  1168. float[2] pointSizeRange;
  1169. float[2] lineWidthRange;
  1170. float pointSizeGranularity;
  1171. float lineWidthGranularity;
  1172. VkBool32 strictLines;
  1173. VkBool32 standardSampleLocations;
  1174. VkDeviceSize optimalBufferCopyOffsetAlignment;
  1175. VkDeviceSize optimalBufferCopyRowPitchAlignment;
  1176. VkDeviceSize nonCoherentAtomSize;
  1177. }
  1178. struct VkPhysicalDeviceSparseProperties {
  1179. VkBool32 residencyStandard2DBlockShape;
  1180. VkBool32 residencyStandard2DMultisampleBlockShape;
  1181. VkBool32 residencyStandard3DBlockShape;
  1182. VkBool32 residencyAlignedMipSize;
  1183. VkBool32 residencyNonResidentStrict;
  1184. }
  1185. struct VkPhysicalDeviceProperties {
  1186. uint apiVersion;
  1187. uint driverVersion;
  1188. uint vendorID;
  1189. uint deviceID;
  1190. VkPhysicalDeviceType deviceType;
  1191. char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName;
  1192. ubyte[VK_UUID_SIZE] pipelineCacheUUID;
  1193. VkPhysicalDeviceLimits limits;
  1194. VkPhysicalDeviceSparseProperties sparseProperties;
  1195. }
  1196. struct VkQueueFamilyProperties {
  1197. VkQueueFlags queueFlags;
  1198. uint queueCount;
  1199. uint timestampValidBits;
  1200. VkExtent3D minImageTransferGranularity;
  1201. }
  1202. struct VkMemoryType {
  1203. VkMemoryPropertyFlags propertyFlags;
  1204. uint heapIndex;
  1205. }
  1206. struct VkMemoryHeap {
  1207. VkDeviceSize size;
  1208. VkMemoryHeapFlags flags;
  1209. }
  1210. struct VkPhysicalDeviceMemoryProperties {
  1211. uint memoryTypeCount;
  1212. VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes;
  1213. uint memoryHeapCount;
  1214. VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps;
  1215. }
  1216. struct VkDeviceQueueCreateInfo {
  1217. VkStructureType sType;
  1218. const(void)* pNext;
  1219. VkDeviceQueueCreateFlags flags;
  1220. uint queueFamilyIndex;
  1221. uint queueCount;
  1222. const(float)* pQueuePriorities;
  1223. }
  1224. struct VkDeviceCreateInfo {
  1225. VkStructureType sType;
  1226. const(void)* pNext;
  1227. VkDeviceCreateFlags flags;
  1228. uint queueCreateInfoCount;
  1229. const(VkDeviceQueueCreateInfo)* pQueueCreateInfos;
  1230. uint enabledLayerCount;
  1231. const(char*)* ppEnabledLayerNames;
  1232. uint enabledExtensionCount;
  1233. const(char*)* ppEnabledExtensionNames;
  1234. const(VkPhysicalDeviceFeatures)* pEnabledFeatures;
  1235. }
  1236. struct VkExtensionProperties {
  1237. char[VK_MAX_EXTENSION_NAME_SIZE] extensionName;
  1238. uint specVersion;
  1239. }
  1240. struct VkLayerProperties {
  1241. char[VK_MAX_EXTENSION_NAME_SIZE] layerName;
  1242. uint specVersion;
  1243. uint implementationVersion;
  1244. char[VK_MAX_DESCRIPTION_SIZE] description;
  1245. }
  1246. struct VkSubmitInfo {
  1247. VkStructureType sType;
  1248. const(void)* pNext;
  1249. uint waitSemaphoreCount;
  1250. const(VkSemaphore)* pWaitSemaphores;
  1251. const(VkPipelineStageFlags)* pWaitDstStageMask;
  1252. uint commandBufferCount;
  1253. const(VkCommandBuffer)* pCommandBuffers;
  1254. uint signalSemaphoreCount;
  1255. const(VkSemaphore)* pSignalSemaphores;
  1256. }
  1257. struct VkMemoryAllocateInfo {
  1258. VkStructureType sType;
  1259. const(void)* pNext;
  1260. VkDeviceSize allocationSize;
  1261. uint memoryTypeIndex;
  1262. }
  1263. struct VkMappedMemoryRange {
  1264. VkStructureType sType;
  1265. const(void)* pNext;
  1266. VkDeviceMemory memory;
  1267. VkDeviceSize offset;
  1268. VkDeviceSize size;
  1269. }
  1270. struct VkMemoryRequirements {
  1271. VkDeviceSize size;
  1272. VkDeviceSize alignment;
  1273. uint memoryTypeBits;
  1274. }
  1275. struct VkSparseImageFormatProperties {
  1276. VkImageAspectFlags aspectMask;
  1277. VkExtent3D imageGranularity;
  1278. VkSparseImageFormatFlags flags;
  1279. }
  1280. struct VkSparseImageMemoryRequirements {
  1281. VkSparseImageFormatProperties formatProperties;
  1282. uint imageMipTailFirstLod;
  1283. VkDeviceSize imageMipTailSize;
  1284. VkDeviceSize imageMipTailOffset;
  1285. VkDeviceSize imageMipTailStride;
  1286. }
  1287. struct VkSparseMemoryBind {
  1288. VkDeviceSize resourceOffset;
  1289. VkDeviceSize size;
  1290. VkDeviceMemory memory;
  1291. VkDeviceSize memoryOffset;
  1292. VkSparseMemoryBindFlags flags;
  1293. }
  1294. struct VkSparseBufferMemoryBindInfo {
  1295. VkBuffer buffer;
  1296. uint bindCount;
  1297. const(VkSparseMemoryBind)* pBinds;
  1298. }
  1299. struct VkSparseImageOpaqueMemoryBindInfo {
  1300. VkImage image;
  1301. uint bindCount;
  1302. const(VkSparseMemoryBind)* pBinds;
  1303. }
  1304. struct VkImageSubresource {
  1305. VkImageAspectFlags aspectMask;
  1306. uint mipLevel;
  1307. uint arrayLayer;
  1308. }
  1309. struct VkOffset3D {
  1310. int x;
  1311. int y;
  1312. int z;
  1313. }
  1314. struct VkSparseImageMemoryBind {
  1315. VkImageSubresource subresource;
  1316. VkOffset3D offset;
  1317. VkExtent3D extent;
  1318. VkDeviceMemory memory;
  1319. VkDeviceSize memoryOffset;
  1320. VkSparseMemoryBindFlags flags;
  1321. }
  1322. struct VkSparseImageMemoryBindInfo {
  1323. VkImage image;
  1324. uint bindCount;
  1325. const(VkSparseImageMemoryBind)* pBinds;
  1326. }
  1327. struct VkBindSparseInfo {
  1328. VkStructureType sType;
  1329. const(void)* pNext;
  1330. uint waitSemaphoreCount;
  1331. const(VkSemaphore)* pWaitSemaphores;
  1332. uint bufferBindCount;
  1333. const(VkSparseBufferMemoryBindInfo)* pBufferBinds;
  1334. uint imageOpaqueBindCount;
  1335. const(VkSparseImageOpaqueMemoryBindInfo)* pImageOpaqueBinds;
  1336. uint imageBindCount;
  1337. const(VkSparseImageMemoryBindInfo)* pImageBinds;
  1338. uint signalSemaphoreCount;
  1339. const(VkSemaphore)* pSignalSemaphores;
  1340. }
  1341. struct VkFenceCreateInfo {
  1342. VkStructureType sType;
  1343. const(void)* pNext;
  1344. VkFenceCreateFlags flags;
  1345. }
  1346. struct VkSemaphoreCreateInfo {
  1347. VkStructureType sType;
  1348. const(void)* pNext;
  1349. VkSemaphoreCreateFlags flags;
  1350. }
  1351. struct VkEventCreateInfo {
  1352. VkStructureType sType;
  1353. const(void)* pNext;
  1354. VkEventCreateFlags flags;
  1355. }
  1356. struct VkQueryPoolCreateInfo {
  1357. VkStructureType sType;
  1358. const(void)* pNext;
  1359. VkQueryPoolCreateFlags flags;
  1360. VkQueryType queryType;
  1361. uint queryCount;
  1362. VkQueryPipelineStatisticFlags pipelineStatistics;
  1363. }
  1364. struct VkBufferCreateInfo {
  1365. VkStructureType sType;
  1366. const(void)* pNext;
  1367. VkBufferCreateFlags flags;
  1368. VkDeviceSize size;
  1369. VkBufferUsageFlags usage;
  1370. VkSharingMode sharingMode;
  1371. uint queueFamilyIndexCount;
  1372. const(uint)* pQueueFamilyIndices;
  1373. }
  1374. struct VkBufferViewCreateInfo {
  1375. VkStructureType sType;
  1376. const(void)* pNext;
  1377. VkBufferViewCreateFlags flags;
  1378. VkBuffer buffer;
  1379. VkFormat format;
  1380. VkDeviceSize offset;
  1381. VkDeviceSize range;
  1382. }
  1383. struct VkImageCreateInfo {
  1384. VkStructureType sType;
  1385. const(void)* pNext;
  1386. VkImageCreateFlags flags;
  1387. VkImageType imageType;
  1388. VkFormat format;
  1389. VkExtent3D extent;
  1390. uint mipLevels;
  1391. uint arrayLayers;
  1392. VkSampleCountFlagBits samples;
  1393. VkImageTiling tiling;
  1394. VkImageUsageFlags usage;
  1395. VkSharingMode sharingMode;
  1396. uint queueFamilyIndexCount;
  1397. const(uint)* pQueueFamilyIndices;
  1398. VkImageLayout initialLayout;
  1399. }
  1400. struct VkSubresourceLayout {
  1401. VkDeviceSize offset;
  1402. VkDeviceSize size;
  1403. VkDeviceSize rowPitch;
  1404. VkDeviceSize arrayPitch;
  1405. VkDeviceSize depthPitch;
  1406. }
  1407. struct VkComponentMapping {
  1408. VkComponentSwizzle r;
  1409. VkComponentSwizzle g;
  1410. VkComponentSwizzle b;
  1411. VkComponentSwizzle a;
  1412. }
  1413. struct VkImageSubresourceRange {
  1414. VkImageAspectFlags aspectMask;
  1415. uint baseMipLevel;
  1416. uint levelCount;
  1417. uint baseArrayLayer;
  1418. uint layerCount;
  1419. }
  1420. struct VkImageViewCreateInfo {
  1421. VkStructureType sType;
  1422. const(void)* pNext;
  1423. VkImageViewCreateFlags flags;
  1424. VkImage image;
  1425. VkImageViewType viewType;
  1426. VkFormat format;
  1427. VkComponentMapping components;
  1428. VkImageSubresourceRange subresourceRange;
  1429. }
  1430. struct VkShaderModuleCreateInfo {
  1431. VkStructureType sType;
  1432. const(void)* pNext;
  1433. VkShaderModuleCreateFlags flags;
  1434. size_t codeSize;
  1435. const(uint)* pCode;
  1436. }
  1437. struct VkPipelineCacheCreateInfo {
  1438. VkStructureType sType;
  1439. const(void)* pNext;
  1440. VkPipelineCacheCreateFlags flags;
  1441. size_t initialDataSize;
  1442. const(void)* pInitialData;
  1443. }
  1444. struct VkSpecializationMapEntry {
  1445. uint constantID;
  1446. uint offset;
  1447. size_t size;
  1448. }
  1449. struct VkSpecializationInfo {
  1450. uint mapEntryCount;
  1451. const(VkSpecializationMapEntry)* pMapEntries;
  1452. size_t dataSize;
  1453. const(void)* pData;
  1454. }
  1455. struct VkPipelineShaderStageCreateInfo {
  1456. VkStructureType sType;
  1457. const(void)* pNext;
  1458. VkPipelineShaderStageCreateFlags flags;
  1459. VkShaderStageFlagBits stage;
  1460. VkShaderModule module_;
  1461. const(char)* pName;
  1462. const(VkSpecializationInfo)* pSpecializationInfo;
  1463. }
  1464. struct VkVertexInputBindingDescription {
  1465. uint binding;
  1466. uint stride;
  1467. VkVertexInputRate inputRate;
  1468. }
  1469. struct VkVertexInputAttributeDescription {
  1470. uint location;
  1471. uint binding;
  1472. VkFormat format;
  1473. uint offset;
  1474. }
  1475. struct VkPipelineVertexInputStateCreateInfo {
  1476. VkStructureType sType;
  1477. const(void)* pNext;
  1478. VkPipelineVertexInputStateCreateFlags flags;
  1479. uint vertexBindingDescriptionCount;
  1480. const(VkVertexInputBindingDescription)* pVertexBindingDescriptions;
  1481. uint vertexAttributeDescriptionCount;
  1482. const(VkVertexInputAttributeDescription)* pVertexAttributeDescriptions;
  1483. }
  1484. struct VkPipelineInputAssemblyStateCreateInfo {
  1485. VkStructureType sType;
  1486. const(void)* pNext;
  1487. VkPipelineInputAssemblyStateCreateFlags flags;
  1488. VkPrimitiveTopology topology;
  1489. VkBool32 primitiveRestartEnable;
  1490. }
  1491. struct VkPipelineTessellationStateCreateInfo {
  1492. VkStructureType sType;
  1493. const(void)* pNext;
  1494. VkPipelineTessellationStateCreateFlags flags;
  1495. uint patchControlPoints;
  1496. }
  1497. struct VkViewport {
  1498. float x;
  1499. float y;
  1500. float width;
  1501. float height;
  1502. float minDepth;
  1503. float maxDepth;
  1504. }
  1505. struct VkOffset2D {
  1506. int x;
  1507. int y;
  1508. }
  1509. struct VkExtent2D {
  1510. uint width;
  1511. uint height;
  1512. }
  1513. struct VkRect2D {
  1514. VkOffset2D offset;
  1515. VkExtent2D extent;
  1516. }
  1517. struct VkPipelineViewportStateCreateInfo {
  1518. VkStructureType sType;
  1519. const(void)* pNext;
  1520. VkPipelineViewportStateCreateFlags flags;
  1521. uint viewportCount;
  1522. const(VkViewport)* pViewports;
  1523. uint scissorCount;
  1524. const(VkRect2D)* pScissors;
  1525. }
  1526. struct VkPipelineRasterizationStateCreateInfo {
  1527. VkStructureType sType;
  1528. const(void)* pNext;
  1529. VkPipelineRasterizationStateCreateFlags flags;
  1530. VkBool32 depthClampEnable;
  1531. VkBool32 rasterizerDiscardEnable;
  1532. VkPolygonMode polygonMode;
  1533. VkCullModeFlags cullMode;
  1534. VkFrontFace frontFace;
  1535. VkBool32 depthBiasEnable;
  1536. float depthBiasConstantFactor;
  1537. float depthBiasClamp;
  1538. float depthBiasSlopeFactor;
  1539. float lineWidth;
  1540. }
  1541. struct VkPipelineMultisampleStateCreateInfo {
  1542. VkStructureType sType;
  1543. const(void)* pNext;
  1544. VkPipelineMultisampleStateCreateFlags flags;
  1545. VkSampleCountFlagBits rasterizationSamples;
  1546. VkBool32 sampleShadingEnable;
  1547. float minSampleShading;
  1548. const(VkSampleMask)* pSampleMask;
  1549. VkBool32 alphaToCoverageEnable;
  1550. VkBool32 alphaToOneEnable;
  1551. }
  1552. struct VkStencilOpState {
  1553. VkStencilOp failOp;
  1554. VkStencilOp passOp;
  1555. VkStencilOp depthFailOp;
  1556. VkCompareOp compareOp;
  1557. uint compareMask;
  1558. uint writeMask;
  1559. uint reference;
  1560. }
  1561. struct VkPipelineDepthStencilStateCreateInfo {
  1562. VkStructureType sType;
  1563. const(void)* pNext;
  1564. VkPipelineDepthStencilStateCreateFlags flags;
  1565. VkBool32 depthTestEnable;
  1566. VkBool32 depthWriteEnable;
  1567. VkCompareOp depthCompareOp;
  1568. VkBool32 depthBoundsTestEnable;
  1569. VkBool32 stencilTestEnable;
  1570. VkStencilOpState front;
  1571. VkStencilOpState back;
  1572. float minDepthBounds;
  1573. float maxDepthBounds;
  1574. }
  1575. struct VkPipelineColorBlendAttachmentState {
  1576. VkBool32 blendEnable;
  1577. VkBlendFactor srcColorBlendFactor;
  1578. VkBlendFactor dstColorBlendFactor;
  1579. VkBlendOp colorBlendOp;
  1580. VkBlendFactor srcAlphaBlendFactor;
  1581. VkBlendFactor dstAlphaBlendFactor;
  1582. VkBlendOp alphaBlendOp;
  1583. VkColorComponentFlags colorWriteMask;
  1584. }
  1585. struct VkPipelineColorBlendStateCreateInfo {
  1586. VkStructureType sType;
  1587. const(void)* pNext;
  1588. VkPipelineColorBlendStateCreateFlags flags;
  1589. VkBool32 logicOpEnable;
  1590. VkLogicOp logicOp;
  1591. uint attachmentCount;
  1592. const(VkPipelineColorBlendAttachmentState)* pAttachments;
  1593. float[4] blendConstants;
  1594. }
  1595. struct VkPipelineDynamicStateCreateInfo {
  1596. VkStructureType sType;
  1597. const(void)* pNext;
  1598. VkPipelineDynamicStateCreateFlags flags;
  1599. uint dynamicStateCount;
  1600. const(VkDynamicState)* pDynamicStates;
  1601. }
  1602. struct VkGraphicsPipelineCreateInfo {
  1603. VkStructureType sType;
  1604. const(void)* pNext;
  1605. VkPipelineCreateFlags flags;
  1606. uint stageCount;
  1607. const(VkPipelineShaderStageCreateInfo)* pStages;
  1608. const(VkPipelineVertexInputStateCreateInfo)* pVertexInputState;
  1609. const(VkPipelineInputAssemblyStateCreateInfo)* pInputAssemblyState;
  1610. const(VkPipelineTessellationStateCreateInfo)* pTessellationState;
  1611. const(VkPipelineViewportStateCreateInfo)* pViewportState;
  1612. const(VkPipelineRasterizationStateCreateInfo)* pRasterizationState;
  1613. const(VkPipelineMultisampleStateCreateInfo)* pMultisampleState;
  1614. const(VkPipelineDepthStencilStateCreateInfo)* pDepthStencilState;
  1615. const(VkPipelineColorBlendStateCreateInfo)* pColorBlendState;
  1616. const(VkPipelineDynamicStateCreateInfo)* pDynamicState;
  1617. VkPipelineLayout layout;
  1618. VkRenderPass renderPass;
  1619. uint subpass;
  1620. VkPipeline basePipelineHandle;
  1621. int basePipelineIndex;
  1622. }
  1623. struct VkComputePipelineCreateInfo {
  1624. VkStructureType sType;
  1625. const(void)* pNext;
  1626. VkPipelineCreateFlags flags;
  1627. VkPipelineShaderStageCreateInfo stage;
  1628. VkPipelineLayout layout;
  1629. VkPipeline basePipelineHandle;
  1630. int basePipelineIndex;
  1631. }
  1632. struct VkPushConstantRange {
  1633. VkShaderStageFlags stageFlags;
  1634. uint offset;
  1635. uint size;
  1636. }
  1637. struct VkPipelineLayoutCreateInfo {
  1638. VkStructureType sType;
  1639. const(void)* pNext;
  1640. VkPipelineLayoutCreateFlags flags;
  1641. uint setLayoutCount;
  1642. const(VkDescriptorSetLayout)* pSetLayouts;
  1643. uint pushConstantRangeCount;
  1644. const(VkPushConstantRange)* pPushConstantRanges;
  1645. }
  1646. struct VkSamplerCreateInfo {
  1647. VkStructureType sType;
  1648. const(void)* pNext;
  1649. VkSamplerCreateFlags flags;
  1650. VkFilter magFilter;
  1651. VkFilter minFilter;
  1652. VkSamplerMipmapMode mipmapMode;
  1653. VkSamplerAddressMode addressModeU;
  1654. VkSamplerAddressMode addressModeV;
  1655. VkSamplerAddressMode addressModeW;
  1656. float mipLodBias;
  1657. VkBool32 anisotropyEnable;
  1658. float maxAnisotropy;
  1659. VkBool32 compareEnable;
  1660. VkCompareOp compareOp;
  1661. float minLod;
  1662. float maxLod;
  1663. VkBorderColor borderColor;
  1664. VkBool32 unnormalizedCoordinates;
  1665. }
  1666. struct VkDescriptorSetLayoutBinding {
  1667. uint binding;
  1668. VkDescriptorType descriptorType;
  1669. uint descriptorCount;
  1670. VkShaderStageFlags stageFlags;
  1671. const(VkSampler)* pImmutableSamplers;
  1672. }
  1673. struct VkDescriptorSetLayoutCreateInfo {
  1674. VkStructureType sType;
  1675. const(void)* pNext;
  1676. VkDescriptorSetLayoutCreateFlags flags;
  1677. uint bindingCount;
  1678. const(VkDescriptorSetLayoutBinding)* pBindings;
  1679. }
  1680. struct VkDescriptorPoolSize {
  1681. VkDescriptorType type;
  1682. uint descriptorCount;
  1683. }
  1684. struct VkDescriptorPoolCreateInfo {
  1685. VkStructureType sType;
  1686. const(void)* pNext;
  1687. VkDescriptorPoolCreateFlags flags;
  1688. uint maxSets;
  1689. uint poolSizeCount;
  1690. const(VkDescriptorPoolSize)* pPoolSizes;
  1691. }
  1692. struct VkDescriptorSetAllocateInfo {
  1693. VkStructureType sType;
  1694. const(void)* pNext;
  1695. VkDescriptorPool descriptorPool;
  1696. uint descriptorSetCount;
  1697. const(VkDescriptorSetLayout)* pSetLayouts;
  1698. }
  1699. struct VkDescriptorImageInfo {
  1700. VkSampler sampler;
  1701. VkImageView imageView;
  1702. VkImageLayout imageLayout;
  1703. }
  1704. struct VkDescriptorBufferInfo {
  1705. VkBuffer buffer;
  1706. VkDeviceSize offset;
  1707. VkDeviceSize range;
  1708. }
  1709. struct VkWriteDescriptorSet {
  1710. VkStructureType sType;
  1711. const(void)* pNext;
  1712. VkDescriptorSet dstSet;
  1713. uint dstBinding;
  1714. uint dstArrayElement;
  1715. uint descriptorCount;
  1716. VkDescriptorType descriptorType;
  1717. const(VkDescriptorImageInfo)* pImageInfo;
  1718. const(VkDescriptorBufferInfo)* pBufferInfo;
  1719. const(VkBufferView)* pTexelBufferView;
  1720. }
  1721. struct VkCopyDescriptorSet {
  1722. VkStructureType sType;
  1723. const(void)* pNext;
  1724. VkDescriptorSet srcSet;
  1725. uint srcBinding;
  1726. uint srcArrayElement;
  1727. VkDescriptorSet dstSet;
  1728. uint dstBinding;
  1729. uint dstArrayElement;
  1730. uint descriptorCount;
  1731. }
  1732. struct VkFramebufferCreateInfo {
  1733. VkStructureType sType;
  1734. const(void)* pNext;
  1735. VkFramebufferCreateFlags flags;
  1736. VkRenderPass renderPass;
  1737. uint attachmentCount;
  1738. const(VkImageView)* pAttachments;
  1739. uint width;
  1740. uint height;
  1741. uint layers;
  1742. }
  1743. struct VkAttachmentDescription {
  1744. VkAttachmentDescriptionFlags flags;
  1745. VkFormat format;
  1746. VkSampleCountFlagBits samples;
  1747. VkAttachmentLoadOp loadOp;
  1748. VkAttachmentStoreOp storeOp;
  1749. VkAttachmentLoadOp stencilLoadOp;
  1750. VkAttachmentStoreOp stencilStoreOp;
  1751. VkImageLayout initialLayout;
  1752. VkImageLayout finalLayout;
  1753. }
  1754. struct VkAttachmentReference {
  1755. uint attachment;
  1756. VkImageLayout layout;
  1757. }
  1758. struct VkSubpassDescription {
  1759. VkSubpassDescriptionFlags flags;
  1760. VkPipelineBindPoint pipelineBindPoint;
  1761. uint inputAttachmentCount;
  1762. const(VkAttachmentReference)* pInputAttachments;
  1763. uint colorAttachmentCount;
  1764. const(VkAttachmentReference)* pColorAttachments;
  1765. const(VkAttachmentReference)* pResolveAttachments;
  1766. const(VkAttachmentReference)* pDepthStencilAttachment;
  1767. uint preserveAttachmentCount;
  1768. const(uint)* pPreserveAttachments;
  1769. }
  1770. struct VkSubpassDependency {
  1771. uint srcSubpass;
  1772. uint dstSubpass;
  1773. VkPipelineStageFlags srcStageMask;
  1774. VkPipelineStageFlags dstStageMask;
  1775. VkAccessFlags srcAccessMask;
  1776. VkAccessFlags dstAccessMask;
  1777. VkDependencyFlags dependencyFlags;
  1778. }
  1779. struct VkRenderPassCreateInfo {
  1780. VkStructureType sType;
  1781. const(void)* pNext;
  1782. VkRenderPassCreateFlags flags;
  1783. uint attachmentCount;
  1784. const(VkAttachmentDescription)* pAttachments;
  1785. uint subpassCount;
  1786. const(VkSubpassDescription)* pSubpasses;
  1787. uint dependencyCount;
  1788. const(VkSubpassDependency)* pDependencies;
  1789. }
  1790. struct VkCommandPoolCreateInfo {
  1791. VkStructureType sType;
  1792. const(void)* pNext;
  1793. VkCommandPoolCreateFlags flags;
  1794. uint queueFamilyIndex;
  1795. }
  1796. struct VkCommandBufferAllocateInfo {
  1797. VkStructureType sType;
  1798. const(void)* pNext;
  1799. VkCommandPool commandPool;
  1800. VkCommandBufferLevel level;
  1801. uint commandBufferCount;
  1802. }
  1803. struct VkCommandBufferInheritanceInfo {
  1804. VkStructureType sType;
  1805. const(void)* pNext;
  1806. VkRenderPass renderPass;
  1807. uint subpass;
  1808. VkFramebuffer framebuffer;
  1809. VkBool32 occlusionQueryEnable;
  1810. VkQueryControlFlags queryFlags;
  1811. VkQueryPipelineStatisticFlags pipelineStatistics;
  1812. }
  1813. struct VkCommandBufferBeginInfo {
  1814. VkStructureType sType;
  1815. const(void)* pNext;
  1816. VkCommandBufferUsageFlags flags;
  1817. const(VkCommandBufferInheritanceInfo)* pInheritanceInfo;
  1818. }
  1819. struct VkBufferCopy {
  1820. VkDeviceSize srcOffset;
  1821. VkDeviceSize dstOffset;
  1822. VkDeviceSize size;
  1823. }
  1824. struct VkImageSubresourceLayers {
  1825. VkImageAspectFlags aspectMask;
  1826. uint mipLevel;
  1827. uint baseArrayLayer;
  1828. uint layerCount;
  1829. }
  1830. struct VkImageCopy {
  1831. VkImageSubresourceLayers srcSubresource;
  1832. VkOffset3D srcOffset;
  1833. VkImageSubresourceLayers dstSubresource;
  1834. VkOffset3D dstOffset;
  1835. VkExtent3D extent;
  1836. }
  1837. struct VkImageBlit {
  1838. VkImageSubresourceLayers srcSubresource;
  1839. VkOffset3D[2] srcOffsets;
  1840. VkImageSubresourceLayers dstSubresource;
  1841. VkOffset3D[2] dstOffsets;
  1842. }
  1843. struct VkBufferImageCopy {
  1844. VkDeviceSize bufferOffset;
  1845. uint bufferRowLength;
  1846. uint bufferImageHeight;
  1847. VkImageSubresourceLayers imageSubresource;
  1848. VkOffset3D imageOffset;
  1849. VkExtent3D imageExtent;
  1850. }
  1851. union VkClearColorValue {
  1852. float[4] float32;
  1853. int[4] int32;
  1854. uint[4] uint32;
  1855. }
  1856. struct VkClearDepthStencilValue {
  1857. float depth;
  1858. uint stencil;
  1859. }
  1860. union VkClearValue {
  1861. VkClearColorValue color;
  1862. VkClearDepthStencilValue depthStencil;
  1863. }
  1864. struct VkClearAttachment {
  1865. VkImageAspectFlags aspectMask;
  1866. uint colorAttachment;
  1867. VkClearValue clearValue;
  1868. }
  1869. struct VkClearRect {
  1870. VkRect2D rect;
  1871. uint baseArrayLayer;
  1872. uint layerCount;
  1873. }
  1874. struct VkImageResolve {
  1875. VkImageSubresourceLayers srcSubresource;
  1876. VkOffset3D srcOffset;
  1877. VkImageSubresourceLayers dstSubresource;
  1878. VkOffset3D dstOffset;
  1879. VkExtent3D extent;
  1880. }
  1881. struct VkMemoryBarrier {
  1882. VkStructureType sType;
  1883. const(void)* pNext;
  1884. VkAccessFlags srcAccessMask;
  1885. VkAccessFlags dstAccessMask;
  1886. }
  1887. struct VkBufferMemoryBarrier {
  1888. VkStructureType sType;
  1889. const(void)* pNext;
  1890. VkAccessFlags srcAccessMask;
  1891. VkAccessFlags dstAccessMask;
  1892. uint srcQueueFamilyIndex;
  1893. uint dstQueueFamilyIndex;
  1894. VkBuffer buffer;
  1895. VkDeviceSize offset;
  1896. VkDeviceSize size;
  1897. }
  1898. struct VkImageMemoryBarrier {
  1899. VkStructureType sType;
  1900. const(void)* pNext;
  1901. VkAccessFlags srcAccessMask;
  1902. VkAccessFlags dstAccessMask;
  1903. VkImageLayout oldLayout;
  1904. VkImageLayout newLayout;
  1905. uint srcQueueFamilyIndex;
  1906. uint dstQueueFamilyIndex;
  1907. VkImage image;
  1908. VkImageSubresourceRange subresourceRange;
  1909. }
  1910. struct VkRenderPassBeginInfo {
  1911. VkStructureType sType;
  1912. const(void)* pNext;
  1913. VkRenderPass renderPass;
  1914. VkFramebuffer framebuffer;
  1915. VkRect2D renderArea;
  1916. uint clearValueCount;
  1917. const(VkClearValue)* pClearValues;
  1918. }
  1919. struct VkDispatchIndirectCommand {
  1920. uint x;
  1921. uint y;
  1922. uint z;
  1923. }
  1924. struct VkDrawIndexedIndirectCommand {
  1925. uint indexCount;
  1926. uint instanceCount;
  1927. uint firstIndex;
  1928. int vertexOffset;
  1929. uint firstInstance;
  1930. }
  1931. struct VkDrawIndirectCommand {
  1932. uint vertexCount;
  1933. uint instanceCount;
  1934. uint firstVertex;
  1935. uint firstInstance;
  1936. }
  1937. alias PFN_vkCreateInstance = nothrow VkResult function(const(VkInstanceCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkInstance* pInstance);
  1938. alias PFN_vkDestroyInstance = nothrow void function(VkInstance instance, const(VkAllocationCallbacks)* pAllocator);
  1939. alias PFN_vkEnumeratePhysicalDevices = nothrow VkResult function(VkInstance instance, uint* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
  1940. alias PFN_vkGetPhysicalDeviceFeatures = nothrow void function(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
  1941. alias PFN_vkGetPhysicalDeviceFormatProperties = nothrow void function(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
  1942. alias PFN_vkGetPhysicalDeviceImageFormatProperties = nothrow VkResult function(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
  1943. alias PFN_vkGetPhysicalDeviceProperties = nothrow void function(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
  1944. alias PFN_vkGetPhysicalDeviceQueueFamilyProperties = nothrow void function(VkPhysicalDevice physicalDevice, uint* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
  1945. alias PFN_vkGetPhysicalDeviceMemoryProperties = nothrow void function(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
  1946. alias PFN_vkGetInstanceProcAddr = nothrow PFN_vkVoidFunction function(VkInstance instance, const(char)* pName);
  1947. alias PFN_vkGetDeviceProcAddr = nothrow PFN_vkVoidFunction function(VkDevice device, const(char)* pName);
  1948. alias PFN_vkCreateDevice = nothrow VkResult function(VkPhysicalDevice physicalDevice, const(VkDeviceCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDevice* pDevice);
  1949. alias PFN_vkDestroyDevice = nothrow void function(VkDevice device, const(VkAllocationCallbacks)* pAllocator);
  1950. alias PFN_vkEnumerateInstanceExtensionProperties = nothrow VkResult function(const(char)* pLayerName, uint* pPropertyCount, VkExtensionProperties* pProperties);
  1951. alias PFN_vkEnumerateDeviceExtensionProperties = nothrow VkResult function(VkPhysicalDevice physicalDevice, const(char)* pLayerName, uint* pPropertyCount, VkExtensionProperties* pProperties);
  1952. alias PFN_vkEnumerateInstanceLayerProperties = nothrow VkResult function(uint* pPropertyCount, VkLayerProperties* pProperties);
  1953. alias PFN_vkEnumerateDeviceLayerProperties = nothrow VkResult function(VkPhysicalDevice physicalDevice, uint* pPropertyCount, VkLayerProperties* pProperties);
  1954. alias PFN_vkGetDeviceQueue = nothrow void function(VkDevice device, uint queueFamilyIndex, uint queueIndex, VkQueue* pQueue);
  1955. alias PFN_vkQueueSubmit = nothrow VkResult function(VkQueue queue, uint submitCount, const(VkSubmitInfo)* pSubmits, VkFence fence);
  1956. alias PFN_vkQueueWaitIdle = nothrow VkResult function(VkQueue queue);
  1957. alias PFN_vkDeviceWaitIdle = nothrow VkResult function(VkDevice device);
  1958. alias PFN_vkAllocateMemory = nothrow VkResult function(VkDevice device, const(VkMemoryAllocateInfo)* pAllocateInfo, const(VkAllocationCallbacks)* pAllocator, VkDeviceMemory* pMemory);
  1959. alias PFN_vkFreeMemory = nothrow void function(VkDevice device, VkDeviceMemory memory, const(VkAllocationCallbacks)* pAllocator);
  1960. alias PFN_vkMapMemory = nothrow VkResult function(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
  1961. alias PFN_vkUnmapMemory = nothrow void function(VkDevice device, VkDeviceMemory memory);
  1962. alias PFN_vkFlushMappedMemoryRanges = nothrow VkResult function(VkDevice device, uint memoryRangeCount, const(VkMappedMemoryRange)* pMemoryRanges);
  1963. alias PFN_vkInvalidateMappedMemoryRanges = nothrow VkResult function(VkDevice device, uint memoryRangeCount, const(VkMappedMemoryRange)* pMemoryRanges);
  1964. alias PFN_vkGetDeviceMemoryCommitment = nothrow void function(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
  1965. alias PFN_vkBindBufferMemory = nothrow VkResult function(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  1966. alias PFN_vkBindImageMemory = nothrow VkResult function(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  1967. alias PFN_vkGetBufferMemoryRequirements = nothrow void function(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
  1968. alias PFN_vkGetImageMemoryRequirements = nothrow void function(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
  1969. alias PFN_vkGetImageSparseMemoryRequirements = nothrow void function(VkDevice device, VkImage image, uint* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
  1970. alias PFN_vkGetPhysicalDeviceSparseImageFormatProperties = nothrow void function(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint* pPropertyCount, VkSparseImageFormatProperties* pProperties);
  1971. alias PFN_vkQueueBindSparse = nothrow VkResult function(VkQueue queue, uint bindInfoCount, const(VkBindSparseInfo)* pBindInfo, VkFence fence);
  1972. alias PFN_vkCreateFence = nothrow VkResult function(VkDevice device, const(VkFenceCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkFence* pFence);
  1973. alias PFN_vkDestroyFence = nothrow void function(VkDevice device, VkFence fence, const(VkAllocationCallbacks)* pAllocator);
  1974. alias PFN_vkResetFences = nothrow VkResult function(VkDevice device, uint fenceCount, const(VkFence)* pFences);
  1975. alias PFN_vkGetFenceStatus = nothrow VkResult function(VkDevice device, VkFence fence);
  1976. alias PFN_vkWaitForFences = nothrow VkResult function(VkDevice device, uint fenceCount, const(VkFence)* pFences, VkBool32 waitAll, ulong timeout);
  1977. alias PFN_vkCreateSemaphore = nothrow VkResult function(VkDevice device, const(VkSemaphoreCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSemaphore* pSemaphore);
  1978. alias PFN_vkDestroySemaphore = nothrow void function(VkDevice device, VkSemaphore semaphore, const(VkAllocationCallbacks)* pAllocator);
  1979. alias PFN_vkCreateEvent = nothrow VkResult function(VkDevice device, const(VkEventCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkEvent* pEvent);
  1980. alias PFN_vkDestroyEvent = nothrow void function(VkDevice device, VkEvent event, const(VkAllocationCallbacks)* pAllocator);
  1981. alias PFN_vkGetEventStatus = nothrow VkResult function(VkDevice device, VkEvent event);
  1982. alias PFN_vkSetEvent = nothrow VkResult function(VkDevice device, VkEvent event);
  1983. alias PFN_vkResetEvent = nothrow VkResult function(VkDevice device, VkEvent event);
  1984. alias PFN_vkCreateQueryPool = nothrow VkResult function(VkDevice device, const(VkQueryPoolCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkQueryPool* pQueryPool);
  1985. alias PFN_vkDestroyQueryPool = nothrow void function(VkDevice device, VkQueryPool queryPool, const(VkAllocationCallbacks)* pAllocator);
  1986. alias PFN_vkGetQueryPoolResults = nothrow VkResult function(VkDevice device, VkQueryPool queryPool, uint firstQuery, uint queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
  1987. alias PFN_vkCreateBuffer = nothrow VkResult function(VkDevice device, const(VkBufferCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkBuffer* pBuffer);
  1988. alias PFN_vkDestroyBuffer = nothrow void function(VkDevice device, VkBuffer buffer, const(VkAllocationCallbacks)* pAllocator);
  1989. alias PFN_vkCreateBufferView = nothrow VkResult function(VkDevice device, const(VkBufferViewCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkBufferView* pView);
  1990. alias PFN_vkDestroyBufferView = nothrow void function(VkDevice device, VkBufferView bufferView, const(VkAllocationCallbacks)* pAllocator);
  1991. alias PFN_vkCreateImage = nothrow VkResult function(VkDevice device, const(VkImageCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkImage* pImage);
  1992. alias PFN_vkDestroyImage = nothrow void function(VkDevice device, VkImage image, const(VkAllocationCallbacks)* pAllocator);
  1993. alias PFN_vkGetImageSubresourceLayout = nothrow void function(VkDevice device, VkImage image, const(VkImageSubresource)* pSubresource, VkSubresourceLayout* pLayout);
  1994. alias PFN_vkCreateImageView = nothrow VkResult function(VkDevice device, const(VkImageViewCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkImageView* pView);
  1995. alias PFN_vkDestroyImageView = nothrow void function(VkDevice device, VkImageView imageView, const(VkAllocationCallbacks)* pAllocator);
  1996. alias PFN_vkCreateShaderModule = nothrow VkResult function(VkDevice device, const(VkShaderModuleCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkShaderModule* pShaderModule);
  1997. alias PFN_vkDestroyShaderModule = nothrow void function(VkDevice device, VkShaderModule shaderModule, const(VkAllocationCallbacks)* pAllocator);
  1998. alias PFN_vkCreatePipelineCache = nothrow VkResult function(VkDevice device, const(VkPipelineCacheCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkPipelineCache* pPipelineCache);
  1999. alias PFN_vkDestroyPipelineCache = nothrow void function(VkDevice device, VkPipelineCache pipelineCache, const(VkAllocationCallbacks)* pAllocator);
  2000. alias PFN_vkGetPipelineCacheData = nothrow VkResult function(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
  2001. alias PFN_vkMergePipelineCaches = nothrow VkResult function(VkDevice device, VkPipelineCache dstCache, uint srcCacheCount, const(VkPipelineCache)* pSrcCaches);
  2002. alias PFN_vkCreateGraphicsPipelines = nothrow VkResult function(VkDevice device, VkPipelineCache pipelineCache, uint createInfoCount, const(VkGraphicsPipelineCreateInfo)* pCreateInfos, const(VkAllocationCallbacks)* pAllocator, VkPipeline* pPipelines);
  2003. alias PFN_vkCreateComputePipelines = nothrow VkResult function(VkDevice device, VkPipelineCache pipelineCache, uint createInfoCount, const(VkComputePipelineCreateInfo)* pCreateInfos, const(VkAllocationCallbacks)* pAllocator, VkPipeline* pPipelines);
  2004. alias PFN_vkDestroyPipeline = nothrow void function(VkDevice device, VkPipeline pipeline, const(VkAllocationCallbacks)* pAllocator);
  2005. alias PFN_vkCreatePipelineLayout = nothrow VkResult function(VkDevice device, const(VkPipelineLayoutCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkPipelineLayout* pPipelineLayout);
  2006. alias PFN_vkDestroyPipelineLayout = nothrow void function(VkDevice device, VkPipelineLayout pipelineLayout, const(VkAllocationCallbacks)* pAllocator);
  2007. alias PFN_vkCreateSampler = nothrow VkResult function(VkDevice device, const(VkSamplerCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSampler* pSampler);
  2008. alias PFN_vkDestroySampler = nothrow void function(VkDevice device, VkSampler sampler, const(VkAllocationCallbacks)* pAllocator);
  2009. alias PFN_vkCreateDescriptorSetLayout = nothrow VkResult function(VkDevice device, const(VkDescriptorSetLayoutCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDescriptorSetLayout* pSetLayout);
  2010. alias PFN_vkDestroyDescriptorSetLayout = nothrow void function(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const(VkAllocationCallbacks)* pAllocator);
  2011. alias PFN_vkCreateDescriptorPool = nothrow VkResult function(VkDevice device, const(VkDescriptorPoolCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDescriptorPool* pDescriptorPool);
  2012. alias PFN_vkDestroyDescriptorPool = nothrow void function(VkDevice device, VkDescriptorPool descriptorPool, const(VkAllocationCallbacks)* pAllocator);
  2013. alias PFN_vkResetDescriptorPool = nothrow VkResult function(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
  2014. alias PFN_vkAllocateDescriptorSets = nothrow VkResult function(VkDevice device, const(VkDescriptorSetAllocateInfo)* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
  2015. alias PFN_vkFreeDescriptorSets = nothrow VkResult function(VkDevice device, VkDescriptorPool descriptorPool, uint descriptorSetCount, const(VkDescriptorSet)* pDescriptorSets);
  2016. alias PFN_vkUpdateDescriptorSets = nothrow void function(VkDevice device, uint descriptorWriteCount, const(VkWriteDescriptorSet)* pDescriptorWrites, uint descriptorCopyCount, const(VkCopyDescriptorSet)* pDescriptorCopies);
  2017. alias PFN_vkCreateFramebuffer = nothrow VkResult function(VkDevice device, const(VkFramebufferCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkFramebuffer* pFramebuffer);
  2018. alias PFN_vkDestroyFramebuffer = nothrow void function(VkDevice device, VkFramebuffer framebuffer, const(VkAllocationCallbacks)* pAllocator);
  2019. alias PFN_vkCreateRenderPass = nothrow VkResult function(VkDevice device, const(VkRenderPassCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkRenderPass* pRenderPass);
  2020. alias PFN_vkDestroyRenderPass = nothrow void function(VkDevice device, VkRenderPass renderPass, const(VkAllocationCallbacks)* pAllocator);
  2021. alias PFN_vkGetRenderAreaGranularity = nothrow void function(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
  2022. alias PFN_vkCreateCommandPool = nothrow VkResult function(VkDevice device, const(VkCommandPoolCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkCommandPool* pCommandPool);
  2023. alias PFN_vkDestroyCommandPool = nothrow void function(VkDevice device, VkCommandPool commandPool, const(VkAllocationCallbacks)* pAllocator);
  2024. alias PFN_vkResetCommandPool = nothrow VkResult function(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
  2025. alias PFN_vkAllocateCommandBuffers = nothrow VkResult function(VkDevice device, const(VkCommandBufferAllocateInfo)* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
  2026. alias PFN_vkFreeCommandBuffers = nothrow void function(VkDevice device, VkCommandPool commandPool, uint commandBufferCount, const(VkCommandBuffer)* pCommandBuffers);
  2027. alias PFN_vkBeginCommandBuffer = nothrow VkResult function(VkCommandBuffer commandBuffer, const(VkCommandBufferBeginInfo)* pBeginInfo);
  2028. alias PFN_vkEndCommandBuffer = nothrow VkResult function(VkCommandBuffer commandBuffer);
  2029. alias PFN_vkResetCommandBuffer = nothrow VkResult function(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
  2030. alias PFN_vkCmdBindPipeline = nothrow void function(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
  2031. alias PFN_vkCmdSetViewport = nothrow void function(VkCommandBuffer commandBuffer, uint firstViewport, uint viewportCount, const(VkViewport)* pViewports);
  2032. alias PFN_vkCmdSetScissor = nothrow void function(VkCommandBuffer commandBuffer, uint firstScissor, uint scissorCount, const(VkRect2D)* pScissors);
  2033. alias PFN_vkCmdSetLineWidth = nothrow void function(VkCommandBuffer commandBuffer, float lineWidth);
  2034. alias PFN_vkCmdSetDepthBias = nothrow void function(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
  2035. alias PFN_vkCmdSetBlendConstants = nothrow void function(VkCommandBuffer commandBuffer, const(float)[4] blendConstants);
  2036. alias PFN_vkCmdSetDepthBounds = nothrow void function(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
  2037. alias PFN_vkCmdSetStencilCompareMask = nothrow void function(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint compareMask);
  2038. alias PFN_vkCmdSetStencilWriteMask = nothrow void function(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint writeMask);
  2039. alias PFN_vkCmdSetStencilReference = nothrow void function(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint reference);
  2040. alias PFN_vkCmdBindDescriptorSets = nothrow void function(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint firstSet, uint descriptorSetCount, const(VkDescriptorSet)* pDescriptorSets, uint dynamicOffsetCount, const(uint)* pDynamicOffsets);
  2041. alias PFN_vkCmdBindIndexBuffer = nothrow void function(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
  2042. alias PFN_vkCmdBindVertexBuffers = nothrow void function(VkCommandBuffer commandBuffer, uint firstBinding, uint bindingCount, const(VkBuffer)* pBuffers, const(VkDeviceSize)* pOffsets);
  2043. alias PFN_vkCmdDraw = nothrow void function(VkCommandBuffer commandBuffer, uint vertexCount, uint instanceCount, uint firstVertex, uint firstInstance);
  2044. alias PFN_vkCmdDrawIndexed = nothrow void function(VkCommandBuffer commandBuffer, uint indexCount, uint instanceCount, uint firstIndex, int vertexOffset, uint firstInstance);
  2045. alias PFN_vkCmdDrawIndirect = nothrow void function(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint drawCount, uint stride);
  2046. alias PFN_vkCmdDrawIndexedIndirect = nothrow void function(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint drawCount, uint stride);
  2047. alias PFN_vkCmdDispatch = nothrow void function(VkCommandBuffer commandBuffer, uint x, uint y, uint z);
  2048. alias PFN_vkCmdDispatchIndirect = nothrow void function(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
  2049. alias PFN_vkCmdCopyBuffer = nothrow void function(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint regionCount, const(VkBufferCopy)* pRegions);
  2050. alias PFN_vkCmdCopyImage = nothrow void function(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint regionCount, const(VkImageCopy)* pRegions);
  2051. alias PFN_vkCmdBlitImage = nothrow void function(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint regionCount, const(VkImageBlit)* pRegions, VkFilter filter);
  2052. alias PFN_vkCmdCopyBufferToImage = nothrow void function(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint regionCount, const(VkBufferImageCopy)* pRegions);
  2053. alias PFN_vkCmdCopyImageToBuffer = nothrow void function(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint regionCount, const(VkBufferImageCopy)* pRegions);
  2054. alias PFN_vkCmdUpdateBuffer = nothrow void function(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const(uint)* pData);
  2055. alias PFN_vkCmdFillBuffer = nothrow void function(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint data);
  2056. alias PFN_vkCmdClearColorImage = nothrow void function(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const(VkClearColorValue)* pColor, uint rangeCount, const(VkImageSubresourceRange)* pRanges);
  2057. alias PFN_vkCmdClearDepthStencilImage = nothrow void function(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const(VkClearDepthStencilValue)* pDepthStencil, uint rangeCount, const(VkImageSubresourceRange)* pRanges);
  2058. alias PFN_vkCmdClearAttachments = nothrow void function(VkCommandBuffer commandBuffer, uint attachmentCount, const(VkClearAttachment)* pAttachments, uint rectCount, const(VkClearRect)* pRects);
  2059. alias PFN_vkCmdResolveImage = nothrow void function(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint regionCount, const(VkImageResolve)* pRegions);
  2060. alias PFN_vkCmdSetEvent = nothrow void function(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  2061. alias PFN_vkCmdResetEvent = nothrow void function(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  2062. alias PFN_vkCmdWaitEvents = nothrow void function(VkCommandBuffer commandBuffer, uint eventCount, const(VkEvent)* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint memoryBarrierCount, const(VkMemoryBarrier)* pMemoryBarriers, uint bufferMemoryBarrierCount, const(VkBufferMemoryBarrier)* pBufferMemoryBarriers, uint imageMemoryBarrierCount, const(VkImageMemoryBarrier)* pImageMemoryBarriers);
  2063. alias PFN_vkCmdPipelineBarrier = nothrow void function(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint memoryBarrierCount, const(VkMemoryBarrier)* pMemoryBarriers, uint bufferMemoryBarrierCount, const(VkBufferMemoryBarrier)* pBufferMemoryBarriers, uint imageMemoryBarrierCount, const(VkImageMemoryBarrier)* pImageMemoryBarriers);
  2064. alias PFN_vkCmdBeginQuery = nothrow void function(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint query, VkQueryControlFlags flags);
  2065. alias PFN_vkCmdEndQuery = nothrow void function(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint query);
  2066. alias PFN_vkCmdResetQueryPool = nothrow void function(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint firstQuery, uint queryCount);
  2067. alias PFN_vkCmdWriteTimestamp = nothrow void function(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint query);
  2068. alias PFN_vkCmdCopyQueryPoolResults = nothrow void function(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint firstQuery, uint queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
  2069. alias PFN_vkCmdPushConstants = nothrow void function(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint offset, uint size, const(void)* pValues);
  2070. alias PFN_vkCmdBeginRenderPass = nothrow void function(VkCommandBuffer commandBuffer, const(VkRenderPassBeginInfo)* pRenderPassBegin, VkSubpassContents contents);
  2071. alias PFN_vkCmdNextSubpass = nothrow void function(VkCommandBuffer commandBuffer, VkSubpassContents contents);
  2072. alias PFN_vkCmdEndRenderPass = nothrow void function(VkCommandBuffer commandBuffer);
  2073. alias PFN_vkCmdExecuteCommands = nothrow void function(VkCommandBuffer commandBuffer, uint commandBufferCount, const(VkCommandBuffer)* pCommandBuffers);
  2074. version (none) {
  2075. VkResult vkCreateInstance(const(VkInstanceCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkInstance* pInstance);
  2076. void vkDestroyInstance(VkInstance instance, const(VkAllocationCallbacks)* pAllocator);
  2077. VkResult vkEnumeratePhysicalDevices(VkInstance instance, uint* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
  2078. void vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
  2079. void vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
  2080. VkResult vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
  2081. void vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
  2082. void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, uint* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
  2083. void vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
  2084. PFN_vkVoidFunction vkGetInstanceProcAddr(VkInstance instance, const(char)* pName);
  2085. PFN_vkVoidFunction vkGetDeviceProcAddr(VkDevice device, const(char)* pName);
  2086. VkResult vkCreateDevice(VkPhysicalDevice physicalDevice, const(VkDeviceCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDevice* pDevice);
  2087. void vkDestroyDevice(VkDevice device, const(VkAllocationCallbacks)* pAllocator);
  2088. VkResult vkEnumerateInstanceExtensionProperties(const(char)* pLayerName, uint* pPropertyCount, VkExtensionProperties* pProperties);
  2089. VkResult vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, const(char)* pLayerName, uint* pPropertyCount, VkExtensionProperties* pProperties);
  2090. VkResult vkEnumerateInstanceLayerProperties(uint* pPropertyCount, VkLayerProperties* pProperties);
  2091. VkResult vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice, uint* pPropertyCount, VkLayerProperties* pProperties);
  2092. void vkGetDeviceQueue(VkDevice device, uint queueFamilyIndex, uint queueIndex, VkQueue* pQueue);
  2093. VkResult vkQueueSubmit(VkQueue queue, uint submitCount, const(VkSubmitInfo)* pSubmits, VkFence fence);
  2094. VkResult vkQueueWaitIdle(VkQueue queue);
  2095. VkResult vkDeviceWaitIdle(VkDevice device);
  2096. VkResult vkAllocateMemory(VkDevice device, const(VkMemoryAllocateInfo)* pAllocateInfo, const(VkAllocationCallbacks)* pAllocator, VkDeviceMemory* pMemory);
  2097. void vkFreeMemory(VkDevice device, VkDeviceMemory memory, const(VkAllocationCallbacks)* pAllocator);
  2098. VkResult vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
  2099. void vkUnmapMemory(VkDevice device, VkDeviceMemory memory);
  2100. VkResult vkFlushMappedMemoryRanges(VkDevice device, uint memoryRangeCount, const(VkMappedMemoryRange)* pMemoryRanges);
  2101. VkResult vkInvalidateMappedMemoryRanges(VkDevice device, uint memoryRangeCount, const(VkMappedMemoryRange)* pMemoryRanges);
  2102. void vkGetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
  2103. VkResult vkBindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  2104. VkResult vkBindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  2105. void vkGetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
  2106. void vkGetImageMemoryRequirements(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
  2107. void vkGetImageSparseMemoryRequirements(VkDevice device, VkImage image, uint* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
  2108. void vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint* pPropertyCount, VkSparseImageFormatProperties* pProperties);
  2109. VkResult vkQueueBindSparse(VkQueue queue, uint bindInfoCount, const(VkBindSparseInfo)* pBindInfo, VkFence fence);
  2110. VkResult vkCreateFence(VkDevice device, const(VkFenceCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkFence* pFence);
  2111. void vkDestroyFence(VkDevice device, VkFence fence, const(VkAllocationCallbacks)* pAllocator);
  2112. VkResult vkResetFences(VkDevice device, uint fenceCount, const(VkFence)* pFences);
  2113. VkResult vkGetFenceStatus(VkDevice device, VkFence fence);
  2114. VkResult vkWaitForFences(VkDevice device, uint fenceCount, const(VkFence)* pFences, VkBool32 waitAll, ulong timeout);
  2115. VkResult vkCreateSemaphore(VkDevice device, const(VkSemaphoreCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSemaphore* pSemaphore);
  2116. void vkDestroySemaphore(VkDevice device, VkSemaphore semaphore, const(VkAllocationCallbacks)* pAllocator);
  2117. VkResult vkCreateEvent(VkDevice device, const(VkEventCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkEvent* pEvent);
  2118. void vkDestroyEvent(VkDevice device, VkEvent event, const(VkAllocationCallbacks)* pAllocator);
  2119. VkResult vkGetEventStatus(VkDevice device, VkEvent event);
  2120. VkResult vkSetEvent(VkDevice device, VkEvent event);
  2121. VkResult vkResetEvent(VkDevice device, VkEvent event);
  2122. VkResult vkCreateQueryPool(VkDevice device, const(VkQueryPoolCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkQueryPool* pQueryPool);
  2123. void vkDestroyQueryPool(VkDevice device, VkQueryPool queryPool, const(VkAllocationCallbacks)* pAllocator);
  2124. VkResult vkGetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint firstQuery, uint queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
  2125. VkResult vkCreateBuffer(VkDevice device, const(VkBufferCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkBuffer* pBuffer);
  2126. void vkDestroyBuffer(VkDevice device, VkBuffer buffer, const(VkAllocationCallbacks)* pAllocator);
  2127. VkResult vkCreateBufferView(VkDevice device, const(VkBufferViewCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkBufferView* pView);
  2128. void vkDestroyBufferView(VkDevice device, VkBufferView bufferView, const(VkAllocationCallbacks)* pAllocator);
  2129. VkResult vkCreateImage(VkDevice device, const(VkImageCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkImage* pImage);
  2130. void vkDestroyImage(VkDevice device, VkImage image, const(VkAllocationCallbacks)* pAllocator);
  2131. void vkGetImageSubresourceLayout(VkDevice device, VkImage image, const(VkImageSubresource)* pSubresource, VkSubresourceLayout* pLayout);
  2132. VkResult vkCreateImageView(VkDevice device, const(VkImageViewCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkImageView* pView);
  2133. void vkDestroyImageView(VkDevice device, VkImageView imageView, const(VkAllocationCallbacks)* pAllocator);
  2134. VkResult vkCreateShaderModule(VkDevice device, const(VkShaderModuleCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkShaderModule* pShaderModule);
  2135. void vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule, const(VkAllocationCallbacks)* pAllocator);
  2136. VkResult vkCreatePipelineCache(VkDevice device, const(VkPipelineCacheCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkPipelineCache* pPipelineCache);
  2137. void vkDestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache, const(VkAllocationCallbacks)* pAllocator);
  2138. VkResult vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
  2139. VkResult vkMergePipelineCaches(VkDevice device, VkPipelineCache dstCache, uint srcCacheCount, const(VkPipelineCache)* pSrcCaches);
  2140. VkResult vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint createInfoCount, const(VkGraphicsPipelineCreateInfo)* pCreateInfos, const(VkAllocationCallbacks)* pAllocator, VkPipeline* pPipelines);
  2141. VkResult vkCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint createInfoCount, const(VkComputePipelineCreateInfo)* pCreateInfos, const(VkAllocationCallbacks)* pAllocator, VkPipeline* pPipelines);
  2142. void vkDestroyPipeline(VkDevice device, VkPipeline pipeline, const(VkAllocationCallbacks)* pAllocator);
  2143. VkResult vkCreatePipelineLayout(VkDevice device, const(VkPipelineLayoutCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkPipelineLayout* pPipelineLayout);
  2144. void vkDestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout, const(VkAllocationCallbacks)* pAllocator);
  2145. VkResult vkCreateSampler(VkDevice device, const(VkSamplerCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSampler* pSampler);
  2146. void vkDestroySampler(VkDevice device, VkSampler sampler, const(VkAllocationCallbacks)* pAllocator);
  2147. VkResult vkCreateDescriptorSetLayout(VkDevice device, const(VkDescriptorSetLayoutCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDescriptorSetLayout* pSetLayout);
  2148. void vkDestroyDescriptorSetLayout(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const(VkAllocationCallbacks)* pAllocator);
  2149. VkResult vkCreateDescriptorPool(VkDevice device, const(VkDescriptorPoolCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDescriptorPool* pDescriptorPool);
  2150. void vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const(VkAllocationCallbacks)* pAllocator);
  2151. VkResult vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
  2152. VkResult vkAllocateDescriptorSets(VkDevice device, const(VkDescriptorSetAllocateInfo)* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
  2153. VkResult vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint descriptorSetCount, const(VkDescriptorSet)* pDescriptorSets);
  2154. void vkUpdateDescriptorSets(VkDevice device, uint descriptorWriteCount, const(VkWriteDescriptorSet)* pDescriptorWrites, uint descriptorCopyCount, const(VkCopyDescriptorSet)* pDescriptorCopies);
  2155. VkResult vkCreateFramebuffer(VkDevice device, const(VkFramebufferCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkFramebuffer* pFramebuffer);
  2156. void vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const(VkAllocationCallbacks)* pAllocator);
  2157. VkResult vkCreateRenderPass(VkDevice device, const(VkRenderPassCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkRenderPass* pRenderPass);
  2158. void vkDestroyRenderPass(VkDevice device, VkRenderPass renderPass, const(VkAllocationCallbacks)* pAllocator);
  2159. void vkGetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
  2160. VkResult vkCreateCommandPool(VkDevice device, const(VkCommandPoolCreateInfo)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkCommandPool* pCommandPool);
  2161. void vkDestroyCommandPool(VkDevice device, VkCommandPool commandPool, const(VkAllocationCallbacks)* pAllocator);
  2162. VkResult vkResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
  2163. VkResult vkAllocateCommandBuffers(VkDevice device, const(VkCommandBufferAllocateInfo)* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
  2164. void vkFreeCommandBuffers(VkDevice device, VkCommandPool commandPool, uint commandBufferCount, const(VkCommandBuffer)* pCommandBuffers);
  2165. VkResult vkBeginCommandBuffer(VkCommandBuffer commandBuffer, const(VkCommandBufferBeginInfo)* pBeginInfo);
  2166. VkResult vkEndCommandBuffer(VkCommandBuffer commandBuffer);
  2167. VkResult vkResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
  2168. void vkCmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
  2169. void vkCmdSetViewport(VkCommandBuffer commandBuffer, uint firstViewport, uint viewportCount, const(VkViewport)* pViewports);
  2170. void vkCmdSetScissor(VkCommandBuffer commandBuffer, uint firstScissor, uint scissorCount, const(VkRect2D)* pScissors);
  2171. void vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth);
  2172. void vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
  2173. void vkCmdSetBlendConstants(VkCommandBuffer commandBuffer, const(float)[4] blendConstants);
  2174. void vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
  2175. void vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint compareMask);
  2176. void vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint writeMask);
  2177. void vkCmdSetStencilReference(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint reference);
  2178. void vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint firstSet, uint descriptorSetCount, const(VkDescriptorSet)* pDescriptorSets, uint dynamicOffsetCount, const(uint)* pDynamicOffsets);
  2179. void vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
  2180. void vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint firstBinding, uint bindingCount, const(VkBuffer)* pBuffers, const(VkDeviceSize)* pOffsets);
  2181. void vkCmdDraw(VkCommandBuffer commandBuffer, uint vertexCount, uint instanceCount, uint firstVertex, uint firstInstance);
  2182. void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, uint indexCount, uint instanceCount, uint firstIndex, int vertexOffset, uint firstInstance);
  2183. void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint drawCount, uint stride);
  2184. void vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint drawCount, uint stride);
  2185. void vkCmdDispatch(VkCommandBuffer commandBuffer, uint x, uint y, uint z);
  2186. void vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
  2187. void vkCmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint regionCount, const(VkBufferCopy)* pRegions);
  2188. void vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint regionCount, const(VkImageCopy)* pRegions);
  2189. void vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint regionCount, const(VkImageBlit)* pRegions, VkFilter filter);
  2190. void vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint regionCount, const(VkBufferImageCopy)* pRegions);
  2191. void vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint regionCount, const(VkBufferImageCopy)* pRegions);
  2192. void vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const(uint)* pData);
  2193. void vkCmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint data);
  2194. void vkCmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const(VkClearColorValue)* pColor, uint rangeCount, const(VkImageSubresourceRange)* pRanges);
  2195. void vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const(VkClearDepthStencilValue)* pDepthStencil, uint rangeCount, const(VkImageSubresourceRange)* pRanges);
  2196. void vkCmdClearAttachments(VkCommandBuffer commandBuffer, uint attachmentCount, const(VkClearAttachment)* pAttachments, uint rectCount, const(VkClearRect)* pRects);
  2197. void vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint regionCount, const(VkImageResolve)* pRegions);
  2198. void vkCmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  2199. void vkCmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  2200. void vkCmdWaitEvents(VkCommandBuffer commandBuffer, uint eventCount, const(VkEvent)* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint memoryBarrierCount, const(VkMemoryBarrier)* pMemoryBarriers, uint bufferMemoryBarrierCount, const(VkBufferMemoryBarrier)* pBufferMemoryBarriers, uint imageMemoryBarrierCount, const(VkImageMemoryBarrier)* pImageMemoryBarriers);
  2201. void vkCmdPipelineBarrier(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint memoryBarrierCount, const(VkMemoryBarrier)* pMemoryBarriers, uint bufferMemoryBarrierCount, const(VkBufferMemoryBarrier)* pBufferMemoryBarriers, uint imageMemoryBarrierCount, const(VkImageMemoryBarrier)* pImageMemoryBarriers);
  2202. void vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint query, VkQueryControlFlags flags);
  2203. void vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint query);
  2204. void vkCmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint firstQuery, uint queryCount);
  2205. void vkCmdWriteTimestamp(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint query);
  2206. void vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint firstQuery, uint queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
  2207. void vkCmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint offset, uint size, const(void)* pValues);
  2208. void vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, const(VkRenderPassBeginInfo)* pRenderPassBegin, VkSubpassContents contents);
  2209. void vkCmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents);
  2210. void vkCmdEndRenderPass(VkCommandBuffer commandBuffer);
  2211. void vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint commandBufferCount, const(VkCommandBuffer)* pCommandBuffers);
  2212. }
  2213. enum VK_KHR_surface = 1;
  2214. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSurfaceKHR";
  2215. enum VK_KHR_SURFACE_SPEC_VERSION = 25;
  2216. enum VK_KHR_SURFACE_EXTENSION_NAME = "VK_KHR_surface";
  2217. enum VkColorSpaceKHR {
  2218. VK_COLORSPACE_SRGB_NONLINEAR_KHR = 0,
  2219. VK_COLORSPACE_BEGIN_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
  2220. VK_COLORSPACE_END_RANGE = VK_COLORSPACE_SRGB_NONLINEAR_KHR,
  2221. VK_COLORSPACE_RANGE_SIZE = (VK_COLORSPACE_SRGB_NONLINEAR_KHR - VK_COLORSPACE_SRGB_NONLINEAR_KHR + 1),
  2222. VK_COLORSPACE_MAX_ENUM = 0x7FFFFFFF
  2223. }
  2224. enum VkPresentModeKHR {
  2225. VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
  2226. VK_PRESENT_MODE_MAILBOX_KHR = 1,
  2227. VK_PRESENT_MODE_FIFO_KHR = 2,
  2228. VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
  2229. VK_PRESENT_MODE_BEGIN_RANGE = VK_PRESENT_MODE_IMMEDIATE_KHR,
  2230. VK_PRESENT_MODE_END_RANGE = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
  2231. VK_PRESENT_MODE_RANGE_SIZE = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
  2232. VK_PRESENT_MODE_MAX_ENUM = 0x7FFFFFFF
  2233. }
  2234. enum VkSurfaceTransformFlagBitsKHR {
  2235. VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
  2236. VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
  2237. VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
  2238. VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
  2239. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
  2240. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
  2241. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
  2242. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
  2243. VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
  2244. }
  2245. alias VkSurfaceTransformFlagsKHR = VkFlags;
  2246. enum VkCompositeAlphaFlagBitsKHR {
  2247. VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
  2248. VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
  2249. VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
  2250. VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
  2251. }
  2252. alias VkCompositeAlphaFlagsKHR = VkFlags;
  2253. struct VkSurfaceCapabilitiesKHR {
  2254. uint minImageCount;
  2255. uint maxImageCount;
  2256. VkExtent2D currentExtent;
  2257. VkExtent2D minImageExtent;
  2258. VkExtent2D maxImageExtent;
  2259. uint maxImageArrayLayers;
  2260. VkSurfaceTransformFlagsKHR supportedTransforms;
  2261. VkSurfaceTransformFlagBitsKHR currentTransform;
  2262. VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
  2263. VkImageUsageFlags supportedUsageFlags;
  2264. }
  2265. struct VkSurfaceFormatKHR {
  2266. VkFormat format;
  2267. VkColorSpaceKHR colorSpace;
  2268. }
  2269. alias PFN_vkDestroySurfaceKHR = nothrow void function(VkInstance instance, VkSurfaceKHR surface, const(VkAllocationCallbacks)* pAllocator);
  2270. alias PFN_vkGetPhysicalDeviceSurfaceSupportKHR = nothrow VkResult function(VkPhysicalDevice physicalDevice, uint queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
  2271. alias PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = nothrow VkResult function(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
  2272. alias PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = nothrow VkResult function(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
  2273. alias PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = nothrow VkResult function(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint* pPresentModeCount, VkPresentModeKHR* pPresentModes);
  2274. version (none) {
  2275. void vkDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface, const(VkAllocationCallbacks)* pAllocator);
  2276. VkResult vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, uint queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
  2277. VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
  2278. VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
  2279. VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint* pPresentModeCount, VkPresentModeKHR* pPresentModes);
  2280. }
  2281. enum VK_KHR_swapchain = 1;
  2282. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSwapchainKHR";
  2283. enum VK_KHR_SWAPCHAIN_SPEC_VERSION = 67;
  2284. enum VK_KHR_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_swapchain";
  2285. alias VkSwapchainCreateFlagsKHR = VkFlags;
  2286. struct VkSwapchainCreateInfoKHR {
  2287. VkStructureType sType;
  2288. const(void)* pNext;
  2289. VkSwapchainCreateFlagsKHR flags;
  2290. VkSurfaceKHR surface;
  2291. uint minImageCount;
  2292. VkFormat imageFormat;
  2293. VkColorSpaceKHR imageColorSpace;
  2294. VkExtent2D imageExtent;
  2295. uint imageArrayLayers;
  2296. VkImageUsageFlags imageUsage;
  2297. VkSharingMode imageSharingMode;
  2298. uint queueFamilyIndexCount;
  2299. const(uint)* pQueueFamilyIndices;
  2300. VkSurfaceTransformFlagBitsKHR preTransform;
  2301. VkCompositeAlphaFlagBitsKHR compositeAlpha;
  2302. VkPresentModeKHR presentMode;
  2303. VkBool32 clipped;
  2304. VkSwapchainKHR oldSwapchain;
  2305. }
  2306. struct VkPresentInfoKHR {
  2307. VkStructureType sType;
  2308. const(void)* pNext;
  2309. uint waitSemaphoreCount;
  2310. const(VkSemaphore)* pWaitSemaphores;
  2311. uint swapchainCount;
  2312. const(VkSwapchainKHR)* pSwapchains;
  2313. const(uint)* pImageIndices;
  2314. VkResult* pResults;
  2315. }
  2316. alias PFN_vkCreateSwapchainKHR = nothrow VkResult function(VkDevice device, const(VkSwapchainCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSwapchainKHR* pSwapchain);
  2317. alias PFN_vkDestroySwapchainKHR = nothrow void function(VkDevice device, VkSwapchainKHR swapchain, const(VkAllocationCallbacks)* pAllocator);
  2318. alias PFN_vkGetSwapchainImagesKHR = nothrow VkResult function(VkDevice device, VkSwapchainKHR swapchain, uint* pSwapchainImageCount, VkImage* pSwapchainImages);
  2319. alias PFN_vkAcquireNextImageKHR = nothrow VkResult function(VkDevice device, VkSwapchainKHR swapchain, ulong timeout, VkSemaphore semaphore, VkFence fence, uint* pImageIndex);
  2320. alias PFN_vkQueuePresentKHR = nothrow VkResult function(VkQueue queue, const(VkPresentInfoKHR)* pPresentInfo);
  2321. version (none) {
  2322. VkResult vkCreateSwapchainKHR(VkDevice device, const(VkSwapchainCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSwapchainKHR* pSwapchain);
  2323. void vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain, const(VkAllocationCallbacks)* pAllocator);
  2324. VkResult vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain, uint* pSwapchainImageCount, VkImage* pSwapchainImages);
  2325. VkResult vkAcquireNextImageKHR(VkDevice device, VkSwapchainKHR swapchain, ulong timeout, VkSemaphore semaphore, VkFence fence, uint* pImageIndex);
  2326. VkResult vkQueuePresentKHR(VkQueue queue, const(VkPresentInfoKHR)* pPresentInfo);
  2327. }
  2328. enum VK_KHR_display = 1;
  2329. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDisplayKHR";
  2330. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDisplayModeKHR";
  2331. enum VK_KHR_DISPLAY_SPEC_VERSION = 21;
  2332. enum VK_KHR_DISPLAY_EXTENSION_NAME = "VK_KHR_display";
  2333. enum VkDisplayPlaneAlphaFlagBitsKHR {
  2334. VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
  2335. VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
  2336. VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
  2337. VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
  2338. }
  2339. alias VkDisplayModeCreateFlagsKHR = VkFlags;
  2340. alias VkDisplayPlaneAlphaFlagsKHR = VkFlags;
  2341. alias VkDisplaySurfaceCreateFlagsKHR = VkFlags;
  2342. struct VkDisplayPropertiesKHR {
  2343. VkDisplayKHR display;
  2344. const(char)* displayName;
  2345. VkExtent2D physicalDimensions;
  2346. VkExtent2D physicalResolution;
  2347. VkSurfaceTransformFlagsKHR supportedTransforms;
  2348. VkBool32 planeReorderPossible;
  2349. VkBool32 persistentContent;
  2350. }
  2351. struct VkDisplayModeParametersKHR {
  2352. VkExtent2D visibleRegion;
  2353. uint refreshRate;
  2354. }
  2355. struct VkDisplayModePropertiesKHR {
  2356. VkDisplayModeKHR displayMode;
  2357. VkDisplayModeParametersKHR parameters;
  2358. }
  2359. struct VkDisplayModeCreateInfoKHR {
  2360. VkStructureType sType;
  2361. const(void)* pNext;
  2362. VkDisplayModeCreateFlagsKHR flags;
  2363. VkDisplayModeParametersKHR parameters;
  2364. }
  2365. struct VkDisplayPlaneCapabilitiesKHR {
  2366. VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
  2367. VkOffset2D minSrcPosition;
  2368. VkOffset2D maxSrcPosition;
  2369. VkExtent2D minSrcExtent;
  2370. VkExtent2D maxSrcExtent;
  2371. VkOffset2D minDstPosition;
  2372. VkOffset2D maxDstPosition;
  2373. VkExtent2D minDstExtent;
  2374. VkExtent2D maxDstExtent;
  2375. }
  2376. struct VkDisplayPlanePropertiesKHR {
  2377. VkDisplayKHR currentDisplay;
  2378. uint currentStackIndex;
  2379. }
  2380. struct VkDisplaySurfaceCreateInfoKHR {
  2381. VkStructureType sType;
  2382. const(void)* pNext;
  2383. VkDisplaySurfaceCreateFlagsKHR flags;
  2384. VkDisplayModeKHR displayMode;
  2385. uint planeIndex;
  2386. uint planeStackIndex;
  2387. VkSurfaceTransformFlagBitsKHR transform;
  2388. float globalAlpha;
  2389. VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
  2390. VkExtent2D imageExtent;
  2391. }
  2392. alias PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = nothrow VkResult function(VkPhysicalDevice physicalDevice, uint* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
  2393. alias PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = nothrow VkResult function(VkPhysicalDevice physicalDevice, uint* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
  2394. alias PFN_vkGetDisplayPlaneSupportedDisplaysKHR = nothrow VkResult function(VkPhysicalDevice physicalDevice, uint planeIndex, uint* pDisplayCount, VkDisplayKHR* pDisplays);
  2395. alias PFN_vkGetDisplayModePropertiesKHR = nothrow VkResult function(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
  2396. alias PFN_vkCreateDisplayModeKHR = nothrow VkResult function(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const(VkDisplayModeCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDisplayModeKHR* pMode);
  2397. alias PFN_vkGetDisplayPlaneCapabilitiesKHR = nothrow VkResult function(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
  2398. alias PFN_vkCreateDisplayPlaneSurfaceKHR = nothrow VkResult function(VkInstance instance, const(VkDisplaySurfaceCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSurfaceKHR* pSurface);
  2399. version (none) {
  2400. VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice, uint* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
  2401. VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice, uint* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
  2402. VkResult vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice, uint planeIndex, uint* pDisplayCount, VkDisplayKHR* pDisplays);
  2403. VkResult vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
  2404. VkResult vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const(VkDisplayModeCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDisplayModeKHR* pMode);
  2405. VkResult vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
  2406. VkResult vkCreateDisplayPlaneSurfaceKHR(VkInstance instance, const(VkDisplaySurfaceCreateInfoKHR)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkSurfaceKHR* pSurface);
  2407. }
  2408. enum VK_KHR_display_swapchain = 1;
  2409. enum VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION = 9;
  2410. enum VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_display_swapchain";
  2411. struct VkDisplayPresentInfoKHR {
  2412. VkStructureType sType;
  2413. const(void)* pNext;
  2414. VkRect2D srcRect;
  2415. VkRect2D dstRect;
  2416. VkBool32 persistent;
  2417. }
  2418. alias PFN_vkCreateSharedSwapchainsKHR = nothrow VkResult function(VkDevice device, uint swapchainCount, const(VkSwapchainCreateInfoKHR)* pCreateInfos, const(VkAllocationCallbacks)* pAllocator, VkSwapchainKHR* pSwapchains);
  2419. version (none) {
  2420. VkResult vkCreateSharedSwapchainsKHR(VkDevice device, uint swapchainCount, const(VkSwapchainCreateInfoKHR)* pCreateInfos, const(VkAllocationCallbacks)* pAllocator, VkSwapchainKHR* pSwapchains);
  2421. }
  2422. enum VK_EXT_debug_report = 1;
  2423. mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDebugReportCallbackEXT";
  2424. enum VK_EXT_DEBUG_REPORT_SPEC_VERSION = 1;
  2425. enum VK_EXT_DEBUG_REPORT_EXTENSION_NAME = "VK_EXT_debug_report";
  2426. enum VkDebugReportObjectTypeEXT {
  2427. VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
  2428. VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
  2429. VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
  2430. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
  2431. VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
  2432. VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
  2433. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
  2434. VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
  2435. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
  2436. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
  2437. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
  2438. VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
  2439. VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
  2440. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
  2441. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
  2442. VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
  2443. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
  2444. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
  2445. VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
  2446. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
  2447. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
  2448. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
  2449. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
  2450. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
  2451. VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
  2452. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
  2453. VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
  2454. VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
  2455. VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
  2456. }
  2457. enum VkDebugReportErrorEXT {
  2458. VK_DEBUG_REPORT_ERROR_NONE_EXT = 0,
  2459. VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = 1,
  2460. }
  2461. enum VkDebugReportFlagBitsEXT {
  2462. VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
  2463. VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
  2464. VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
  2465. VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
  2466. VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
  2467. }
  2468. alias VkDebugReportFlagsEXT = VkFlags;
  2469. alias PFN_vkDebugReportCallbackEXT = nothrow VkBool32 function(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, ulong object, size_t location, int messageCode, const(char)* pLayerPrefix, const(char)* pMessage, void* pUserData);
  2470. struct VkDebugReportCallbackCreateInfoEXT {
  2471. VkStructureType sType;
  2472. const(void)* pNext;
  2473. VkDebugReportFlagsEXT flags;
  2474. PFN_vkDebugReportCallbackEXT pfnCallback;
  2475. void* pUserData;
  2476. }
  2477. alias PFN_vkCreateDebugReportCallbackEXT = nothrow VkResult function(VkInstance instance, const(VkDebugReportCallbackCreateInfoEXT)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDebugReportCallbackEXT* pCallback);
  2478. alias PFN_vkDestroyDebugReportCallbackEXT = nothrow void function(VkInstance instance, VkDebugReportCallbackEXT callback, const(VkAllocationCallbacks)* pAllocator);
  2479. alias PFN_vkDebugReportMessageEXT = nothrow void function(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, ulong object, size_t location, int messageCode, const(char)* pLayerPrefix, const(char)* pMessage);
  2480. version (none) {
  2481. VkResult vkCreateDebugReportCallbackEXT(VkInstance instance, const(VkDebugReportCallbackCreateInfoEXT)* pCreateInfo, const(VkAllocationCallbacks)* pAllocator, VkDebugReportCallbackEXT* pCallback);
  2482. void vkDestroyDebugReportCallbackEXT(VkInstance instance, VkDebugReportCallbackEXT callback, const(VkAllocationCallbacks)* pAllocator);
  2483. void vkDebugReportMessageEXT(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, ulong object, size_t location, int messageCode, const(char)* pLayerPrefix, const(char)* pMessage);
  2484. }