vulkan.h 212 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486
  1. /**
  2. * Loader generated by glad 2.0.0-beta on Tue Jun 28 22:05:49 2022
  3. *
  4. * Generator: C/C++
  5. * Specification: vk
  6. * Extensions: 11
  7. *
  8. * APIs:
  9. * - vulkan=1.0
  10. *
  11. * Options:
  12. * - ALIAS = False
  13. * - DEBUG = False
  14. * - HEADER_ONLY = True
  15. * - LOADER = True
  16. * - MX = False
  17. * - MX_GLOBAL = False
  18. * - ON_DEMAND = False
  19. *
  20. * Commandline:
  21. * --api='vulkan=1.0' --extensions='VK_EXT_debug_report,VK_EXT_debug_utils,VK_EXT_scalar_block_layout,VK_EXT_validation_features,VK_KHR_get_physical_device_properties2,VK_KHR_portability_enumeration,VK_KHR_shader_subgroup_extended_types,VK_KHR_surface,VK_KHR_swapchain,VK_KHR_win32_surface,VK_KHR_xcb_surface' c --header-only --loader
  22. *
  23. * Online:
  24. * http://glad.sh/#api=vulkan%3D1.0&extensions=VK_EXT_debug_report%2CVK_EXT_debug_utils%2CVK_EXT_scalar_block_layout%2CVK_EXT_validation_features%2CVK_KHR_get_physical_device_properties2%2CVK_KHR_portability_enumeration%2CVK_KHR_shader_subgroup_extended_types%2CVK_KHR_surface%2CVK_KHR_swapchain%2CVK_KHR_win32_surface%2CVK_KHR_xcb_surface&generator=c&options=HEADER_ONLY%2CLOADER
  25. *
  26. */
  27. #ifndef GLAD_VULKAN_H_
  28. #define GLAD_VULKAN_H_
  29. #ifdef VULKAN_H_
  30. #error header already included (API: vulkan), remove previous include!
  31. #endif
  32. #define VULKAN_H_ 1
  33. #ifdef VULKAN_CORE_H_
  34. #error header already included (API: vulkan), remove previous include!
  35. #endif
  36. #define VULKAN_CORE_H_ 1
  37. #define GLAD_VULKAN
  38. #define GLAD_OPTION_VULKAN_HEADER_ONLY
  39. #define GLAD_OPTION_VULKAN_LOADER
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43. #ifndef GLAD_PLATFORM_H_
  44. #define GLAD_PLATFORM_H_
  45. #ifndef GLAD_PLATFORM_WIN32
  46. #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
  47. #define GLAD_PLATFORM_WIN32 1
  48. #else
  49. #define GLAD_PLATFORM_WIN32 0
  50. #endif
  51. #endif
  52. #ifndef GLAD_PLATFORM_APPLE
  53. #ifdef __APPLE__
  54. #define GLAD_PLATFORM_APPLE 1
  55. #else
  56. #define GLAD_PLATFORM_APPLE 0
  57. #endif
  58. #endif
  59. #ifndef GLAD_PLATFORM_EMSCRIPTEN
  60. #ifdef __EMSCRIPTEN__
  61. #define GLAD_PLATFORM_EMSCRIPTEN 1
  62. #else
  63. #define GLAD_PLATFORM_EMSCRIPTEN 0
  64. #endif
  65. #endif
  66. #ifndef GLAD_PLATFORM_UWP
  67. #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
  68. #ifdef __has_include
  69. #if __has_include(<winapifamily.h>)
  70. #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
  71. #endif
  72. #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
  73. #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
  74. #endif
  75. #endif
  76. #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
  77. #include <winapifamily.h>
  78. #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
  79. #define GLAD_PLATFORM_UWP 1
  80. #endif
  81. #endif
  82. #ifndef GLAD_PLATFORM_UWP
  83. #define GLAD_PLATFORM_UWP 0
  84. #endif
  85. #endif
  86. #ifdef __GNUC__
  87. #define GLAD_GNUC_EXTENSION __extension__
  88. #else
  89. #define GLAD_GNUC_EXTENSION
  90. #endif
  91. #ifndef GLAD_API_CALL
  92. #if defined(GLAD_API_CALL_EXPORT)
  93. #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
  94. #if defined(GLAD_API_CALL_EXPORT_BUILD)
  95. #if defined(__GNUC__)
  96. #define GLAD_API_CALL __attribute__ ((dllexport)) extern
  97. #else
  98. #define GLAD_API_CALL __declspec(dllexport) extern
  99. #endif
  100. #else
  101. #if defined(__GNUC__)
  102. #define GLAD_API_CALL __attribute__ ((dllimport)) extern
  103. #else
  104. #define GLAD_API_CALL __declspec(dllimport) extern
  105. #endif
  106. #endif
  107. #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
  108. #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
  109. #else
  110. #define GLAD_API_CALL extern
  111. #endif
  112. #else
  113. #define GLAD_API_CALL extern
  114. #endif
  115. #endif
  116. #ifdef APIENTRY
  117. #define GLAD_API_PTR APIENTRY
  118. #elif GLAD_PLATFORM_WIN32
  119. #define GLAD_API_PTR __stdcall
  120. #else
  121. #define GLAD_API_PTR
  122. #endif
  123. #ifndef GLAPI
  124. #define GLAPI GLAD_API_CALL
  125. #endif
  126. #ifndef GLAPIENTRY
  127. #define GLAPIENTRY GLAD_API_PTR
  128. #endif
  129. #define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
  130. #define GLAD_VERSION_MAJOR(version) (version / 10000)
  131. #define GLAD_VERSION_MINOR(version) (version % 10000)
  132. #define GLAD_GENERATOR_VERSION "2.0.0-beta"
  133. typedef void (*GLADapiproc)(void);
  134. typedef GLADapiproc (*GLADloadfunc)(const char *name);
  135. typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
  136. typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
  137. typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);
  138. #endif /* GLAD_PLATFORM_H_ */
  139. #define VK_ATTACHMENT_UNUSED (~0U)
  140. #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
  141. #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
  142. #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
  143. #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
  144. #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
  145. #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
  146. #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
  147. #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 5
  148. #define VK_FALSE 0
  149. #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
  150. #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
  151. #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
  152. #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
  153. #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
  154. #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
  155. #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
  156. #define VK_KHR_SURFACE_SPEC_VERSION 25
  157. #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
  158. #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
  159. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  160. #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
  161. #endif
  162. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  163. #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
  164. #endif
  165. #if defined(VK_USE_PLATFORM_XCB_KHR)
  166. #define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
  167. #endif
  168. #if defined(VK_USE_PLATFORM_XCB_KHR)
  169. #define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
  170. #endif
  171. #define VK_LOD_CLAMP_NONE 1000.0F
  172. #define VK_MAX_DESCRIPTION_SIZE 256
  173. #define VK_MAX_DEVICE_GROUP_SIZE 32
  174. #define VK_MAX_EXTENSION_NAME_SIZE 256
  175. #define VK_MAX_MEMORY_HEAPS 16
  176. #define VK_MAX_MEMORY_TYPES 32
  177. #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
  178. #define VK_QUEUE_FAMILY_IGNORED (~0U)
  179. #define VK_REMAINING_ARRAY_LAYERS (~0U)
  180. #define VK_REMAINING_MIP_LEVELS (~0U)
  181. #define VK_SUBPASS_EXTERNAL (~0U)
  182. #define VK_TRUE 1
  183. #define VK_UUID_SIZE 16
  184. #define VK_WHOLE_SIZE (~0ULL)
  185. /* */
  186. /* File: vk_platform.h */
  187. /* */
  188. /*
  189. ** Copyright 2014-2022 The Khronos Group Inc.
  190. **
  191. ** SPDX-License-Identifier: Apache-2.0
  192. */
  193. #ifndef VK_PLATFORM_H_
  194. #define VK_PLATFORM_H_
  195. #ifdef __cplusplus
  196. extern "C"
  197. {
  198. #endif /* __cplusplus */
  199. /*
  200. ***************************************************************************************************
  201. * Platform-specific directives and type declarations
  202. ***************************************************************************************************
  203. */
  204. /* Platform-specific calling convention macros.
  205. *
  206. * Platforms should define these so that Vulkan clients call Vulkan commands
  207. * with the same calling conventions that the Vulkan implementation expects.
  208. *
  209. * VKAPI_ATTR - Placed before the return type in function declarations.
  210. * Useful for C++11 and GCC/Clang-style function attribute syntax.
  211. * VKAPI_CALL - Placed after the return type in function declarations.
  212. * Useful for MSVC-style calling convention syntax.
  213. * VKAPI_PTR - Placed between the '(' and '*' in function pointer types.
  214. *
  215. * Function declaration: VKAPI_ATTR void VKAPI_CALL vkCommand(void);
  216. * Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void);
  217. */
  218. #if defined(_WIN32)
  219. /* On Windows, Vulkan commands use the stdcall convention */
  220. #define VKAPI_ATTR
  221. #define VKAPI_CALL __stdcall
  222. #define VKAPI_PTR VKAPI_CALL
  223. #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
  224. #error "Vulkan is not supported for the 'armeabi' NDK ABI"
  225. #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
  226. /* On Android 32-bit ARM targets, Vulkan functions use the "hardfloat" */
  227. /* calling convention, i.e. float parameters are passed in registers. This */
  228. /* is true even if the rest of the application passes floats on the stack, */
  229. /* as it does by default when compiling for the armeabi-v7a NDK ABI. */
  230. #define VKAPI_ATTR __attribute__((pcs("aapcs-vfp")))
  231. #define VKAPI_CALL
  232. #define VKAPI_PTR VKAPI_ATTR
  233. #else
  234. /* On other platforms, use the default calling convention */
  235. #define VKAPI_ATTR
  236. #define VKAPI_CALL
  237. #define VKAPI_PTR
  238. #endif
  239. #if !defined(VK_NO_STDDEF_H)
  240. #include <stddef.h>
  241. #endif /* !defined(VK_NO_STDDEF_H) */
  242. #if !defined(VK_NO_STDINT_H)
  243. #if defined(_MSC_VER) && (_MSC_VER < 1600)
  244. typedef signed __int8 int8_t;
  245. typedef unsigned __int8 uint8_t;
  246. typedef signed __int16 int16_t;
  247. typedef unsigned __int16 uint16_t;
  248. typedef signed __int32 int32_t;
  249. typedef unsigned __int32 uint32_t;
  250. typedef signed __int64 int64_t;
  251. typedef unsigned __int64 uint64_t;
  252. #else
  253. #include <stdint.h>
  254. #endif
  255. #endif /* !defined(VK_NO_STDINT_H) */
  256. #ifdef __cplusplus
  257. } /* extern "C" */
  258. #endif /* __cplusplus */
  259. #endif
  260. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  261. #include <windows.h>
  262. #endif
  263. #if defined(VK_USE_PLATFORM_XCB_KHR)
  264. #include <xcb/xcb.h>
  265. #endif
  266. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  267. #endif
  268. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  269. #endif
  270. #if defined(VK_USE_PLATFORM_XCB_KHR)
  271. #endif
  272. #if defined(VK_USE_PLATFORM_XCB_KHR)
  273. #endif
  274. #if defined(VK_USE_PLATFORM_XCB_KHR)
  275. #endif
  276. /* DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. */
  277. #define VK_MAKE_VERSION(major, minor, patch) \
  278. ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
  279. /* DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. */
  280. #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
  281. /* DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. */
  282. #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
  283. /* DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. */
  284. #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
  285. #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
  286. ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
  287. #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29)
  288. #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU)
  289. #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
  290. #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
  291. /* DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. */
  292. /*#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 */
  293. /* Vulkan 1.0 version number */
  294. #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)/* Patch version should always be set to 0 */
  295. /* Version of this file */
  296. #define VK_HEADER_VERSION 218
  297. /* Complete version of this file */
  298. #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
  299. #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
  300. #ifndef VK_USE_64_BIT_PTR_DEFINES
  301. #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
  302. #define VK_USE_64_BIT_PTR_DEFINES 1
  303. #else
  304. #define VK_USE_64_BIT_PTR_DEFINES 0
  305. #endif
  306. #endif
  307. #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
  308. #if (VK_USE_64_BIT_PTR_DEFINES==1)
  309. #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
  310. #define VK_NULL_HANDLE nullptr
  311. #else
  312. #define VK_NULL_HANDLE ((void*)0)
  313. #endif
  314. #else
  315. #define VK_NULL_HANDLE 0ULL
  316. #endif
  317. #endif
  318. #ifndef VK_NULL_HANDLE
  319. #define VK_NULL_HANDLE 0
  320. #endif
  321. #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
  322. #if (VK_USE_64_BIT_PTR_DEFINES==1)
  323. #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
  324. #else
  325. #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
  326. #endif
  327. #endif
  328. VK_DEFINE_HANDLE(VkInstance)
  329. VK_DEFINE_HANDLE(VkPhysicalDevice)
  330. VK_DEFINE_HANDLE(VkDevice)
  331. VK_DEFINE_HANDLE(VkQueue)
  332. VK_DEFINE_HANDLE(VkCommandBuffer)
  333. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
  334. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
  335. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
  336. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
  337. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
  338. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
  339. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
  340. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
  341. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
  342. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
  343. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
  344. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
  345. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
  346. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
  347. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
  348. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
  349. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
  350. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
  351. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
  352. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
  353. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
  354. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
  355. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
  356. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
  357. typedef enum VkAttachmentLoadOp {
  358. VK_ATTACHMENT_LOAD_OP_LOAD = 0,
  359. VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
  360. VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
  361. VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
  362. } VkAttachmentLoadOp;
  363. typedef enum VkAttachmentStoreOp {
  364. VK_ATTACHMENT_STORE_OP_STORE = 0,
  365. VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
  366. VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
  367. } VkAttachmentStoreOp;
  368. typedef enum VkBlendFactor {
  369. VK_BLEND_FACTOR_ZERO = 0,
  370. VK_BLEND_FACTOR_ONE = 1,
  371. VK_BLEND_FACTOR_SRC_COLOR = 2,
  372. VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
  373. VK_BLEND_FACTOR_DST_COLOR = 4,
  374. VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
  375. VK_BLEND_FACTOR_SRC_ALPHA = 6,
  376. VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
  377. VK_BLEND_FACTOR_DST_ALPHA = 8,
  378. VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
  379. VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
  380. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
  381. VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
  382. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
  383. VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
  384. VK_BLEND_FACTOR_SRC1_COLOR = 15,
  385. VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
  386. VK_BLEND_FACTOR_SRC1_ALPHA = 17,
  387. VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
  388. VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
  389. } VkBlendFactor;
  390. typedef enum VkBlendOp {
  391. VK_BLEND_OP_ADD = 0,
  392. VK_BLEND_OP_SUBTRACT = 1,
  393. VK_BLEND_OP_REVERSE_SUBTRACT = 2,
  394. VK_BLEND_OP_MIN = 3,
  395. VK_BLEND_OP_MAX = 4,
  396. VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
  397. } VkBlendOp;
  398. typedef enum VkBorderColor {
  399. VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
  400. VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
  401. VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
  402. VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
  403. VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
  404. VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
  405. VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
  406. } VkBorderColor;
  407. typedef enum VkPipelineCacheHeaderVersion {
  408. VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
  409. VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
  410. } VkPipelineCacheHeaderVersion;
  411. typedef enum VkInstanceCreateFlagBits {
  412. VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 1,
  413. VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  414. } VkInstanceCreateFlagBits;
  415. typedef enum VkBufferCreateFlagBits {
  416. VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 1,
  417. VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 2,
  418. VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4,
  419. VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  420. } VkBufferCreateFlagBits;
  421. typedef enum VkBufferUsageFlagBits {
  422. VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 1,
  423. VK_BUFFER_USAGE_TRANSFER_DST_BIT = 2,
  424. VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 4,
  425. VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 8,
  426. VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 16,
  427. VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 32,
  428. VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 64,
  429. VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128,
  430. VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256,
  431. VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  432. } VkBufferUsageFlagBits;
  433. typedef enum VkColorComponentFlagBits {
  434. VK_COLOR_COMPONENT_R_BIT = 1,
  435. VK_COLOR_COMPONENT_G_BIT = 2,
  436. VK_COLOR_COMPONENT_B_BIT = 4,
  437. VK_COLOR_COMPONENT_A_BIT = 8,
  438. VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  439. } VkColorComponentFlagBits;
  440. typedef enum VkComponentSwizzle {
  441. VK_COMPONENT_SWIZZLE_IDENTITY = 0,
  442. VK_COMPONENT_SWIZZLE_ZERO = 1,
  443. VK_COMPONENT_SWIZZLE_ONE = 2,
  444. VK_COMPONENT_SWIZZLE_R = 3,
  445. VK_COMPONENT_SWIZZLE_G = 4,
  446. VK_COMPONENT_SWIZZLE_B = 5,
  447. VK_COMPONENT_SWIZZLE_A = 6,
  448. VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
  449. } VkComponentSwizzle;
  450. typedef enum VkCommandPoolCreateFlagBits {
  451. VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 1,
  452. VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 2,
  453. VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  454. } VkCommandPoolCreateFlagBits;
  455. typedef enum VkCommandPoolResetFlagBits {
  456. VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 1,
  457. VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  458. } VkCommandPoolResetFlagBits;
  459. typedef enum VkCommandBufferResetFlagBits {
  460. VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 1,
  461. VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  462. } VkCommandBufferResetFlagBits;
  463. typedef enum VkCommandBufferLevel {
  464. VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
  465. VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
  466. VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
  467. } VkCommandBufferLevel;
  468. typedef enum VkCommandBufferUsageFlagBits {
  469. VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 1,
  470. VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 2,
  471. VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 4,
  472. VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  473. } VkCommandBufferUsageFlagBits;
  474. typedef enum VkCompareOp {
  475. VK_COMPARE_OP_NEVER = 0,
  476. VK_COMPARE_OP_LESS = 1,
  477. VK_COMPARE_OP_EQUAL = 2,
  478. VK_COMPARE_OP_LESS_OR_EQUAL = 3,
  479. VK_COMPARE_OP_GREATER = 4,
  480. VK_COMPARE_OP_NOT_EQUAL = 5,
  481. VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
  482. VK_COMPARE_OP_ALWAYS = 7,
  483. VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
  484. } VkCompareOp;
  485. typedef enum VkCullModeFlagBits {
  486. VK_CULL_MODE_NONE = 0,
  487. VK_CULL_MODE_FRONT_BIT = 1,
  488. VK_CULL_MODE_BACK_BIT = 2,
  489. VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
  490. VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  491. } VkCullModeFlagBits;
  492. typedef enum VkDescriptorType {
  493. VK_DESCRIPTOR_TYPE_SAMPLER = 0,
  494. VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
  495. VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
  496. VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
  497. VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
  498. VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
  499. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
  500. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
  501. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
  502. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
  503. VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
  504. VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
  505. } VkDescriptorType;
  506. typedef enum VkDynamicState {
  507. VK_DYNAMIC_STATE_VIEWPORT = 0,
  508. VK_DYNAMIC_STATE_SCISSOR = 1,
  509. VK_DYNAMIC_STATE_LINE_WIDTH = 2,
  510. VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
  511. VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
  512. VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
  513. VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
  514. VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
  515. VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
  516. VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
  517. } VkDynamicState;
  518. typedef enum VkFenceCreateFlagBits {
  519. VK_FENCE_CREATE_SIGNALED_BIT = 1,
  520. VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  521. } VkFenceCreateFlagBits;
  522. typedef enum VkPolygonMode {
  523. VK_POLYGON_MODE_FILL = 0,
  524. VK_POLYGON_MODE_LINE = 1,
  525. VK_POLYGON_MODE_POINT = 2,
  526. VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
  527. } VkPolygonMode;
  528. typedef enum VkFormat {
  529. VK_FORMAT_UNDEFINED = 0,
  530. VK_FORMAT_R4G4_UNORM_PACK8 = 1,
  531. VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
  532. VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
  533. VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
  534. VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
  535. VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
  536. VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
  537. VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
  538. VK_FORMAT_R8_UNORM = 9,
  539. VK_FORMAT_R8_SNORM = 10,
  540. VK_FORMAT_R8_USCALED = 11,
  541. VK_FORMAT_R8_SSCALED = 12,
  542. VK_FORMAT_R8_UINT = 13,
  543. VK_FORMAT_R8_SINT = 14,
  544. VK_FORMAT_R8_SRGB = 15,
  545. VK_FORMAT_R8G8_UNORM = 16,
  546. VK_FORMAT_R8G8_SNORM = 17,
  547. VK_FORMAT_R8G8_USCALED = 18,
  548. VK_FORMAT_R8G8_SSCALED = 19,
  549. VK_FORMAT_R8G8_UINT = 20,
  550. VK_FORMAT_R8G8_SINT = 21,
  551. VK_FORMAT_R8G8_SRGB = 22,
  552. VK_FORMAT_R8G8B8_UNORM = 23,
  553. VK_FORMAT_R8G8B8_SNORM = 24,
  554. VK_FORMAT_R8G8B8_USCALED = 25,
  555. VK_FORMAT_R8G8B8_SSCALED = 26,
  556. VK_FORMAT_R8G8B8_UINT = 27,
  557. VK_FORMAT_R8G8B8_SINT = 28,
  558. VK_FORMAT_R8G8B8_SRGB = 29,
  559. VK_FORMAT_B8G8R8_UNORM = 30,
  560. VK_FORMAT_B8G8R8_SNORM = 31,
  561. VK_FORMAT_B8G8R8_USCALED = 32,
  562. VK_FORMAT_B8G8R8_SSCALED = 33,
  563. VK_FORMAT_B8G8R8_UINT = 34,
  564. VK_FORMAT_B8G8R8_SINT = 35,
  565. VK_FORMAT_B8G8R8_SRGB = 36,
  566. VK_FORMAT_R8G8B8A8_UNORM = 37,
  567. VK_FORMAT_R8G8B8A8_SNORM = 38,
  568. VK_FORMAT_R8G8B8A8_USCALED = 39,
  569. VK_FORMAT_R8G8B8A8_SSCALED = 40,
  570. VK_FORMAT_R8G8B8A8_UINT = 41,
  571. VK_FORMAT_R8G8B8A8_SINT = 42,
  572. VK_FORMAT_R8G8B8A8_SRGB = 43,
  573. VK_FORMAT_B8G8R8A8_UNORM = 44,
  574. VK_FORMAT_B8G8R8A8_SNORM = 45,
  575. VK_FORMAT_B8G8R8A8_USCALED = 46,
  576. VK_FORMAT_B8G8R8A8_SSCALED = 47,
  577. VK_FORMAT_B8G8R8A8_UINT = 48,
  578. VK_FORMAT_B8G8R8A8_SINT = 49,
  579. VK_FORMAT_B8G8R8A8_SRGB = 50,
  580. VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
  581. VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
  582. VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
  583. VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
  584. VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
  585. VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
  586. VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
  587. VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
  588. VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
  589. VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
  590. VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
  591. VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
  592. VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
  593. VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
  594. VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
  595. VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
  596. VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
  597. VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
  598. VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
  599. VK_FORMAT_R16_UNORM = 70,
  600. VK_FORMAT_R16_SNORM = 71,
  601. VK_FORMAT_R16_USCALED = 72,
  602. VK_FORMAT_R16_SSCALED = 73,
  603. VK_FORMAT_R16_UINT = 74,
  604. VK_FORMAT_R16_SINT = 75,
  605. VK_FORMAT_R16_SFLOAT = 76,
  606. VK_FORMAT_R16G16_UNORM = 77,
  607. VK_FORMAT_R16G16_SNORM = 78,
  608. VK_FORMAT_R16G16_USCALED = 79,
  609. VK_FORMAT_R16G16_SSCALED = 80,
  610. VK_FORMAT_R16G16_UINT = 81,
  611. VK_FORMAT_R16G16_SINT = 82,
  612. VK_FORMAT_R16G16_SFLOAT = 83,
  613. VK_FORMAT_R16G16B16_UNORM = 84,
  614. VK_FORMAT_R16G16B16_SNORM = 85,
  615. VK_FORMAT_R16G16B16_USCALED = 86,
  616. VK_FORMAT_R16G16B16_SSCALED = 87,
  617. VK_FORMAT_R16G16B16_UINT = 88,
  618. VK_FORMAT_R16G16B16_SINT = 89,
  619. VK_FORMAT_R16G16B16_SFLOAT = 90,
  620. VK_FORMAT_R16G16B16A16_UNORM = 91,
  621. VK_FORMAT_R16G16B16A16_SNORM = 92,
  622. VK_FORMAT_R16G16B16A16_USCALED = 93,
  623. VK_FORMAT_R16G16B16A16_SSCALED = 94,
  624. VK_FORMAT_R16G16B16A16_UINT = 95,
  625. VK_FORMAT_R16G16B16A16_SINT = 96,
  626. VK_FORMAT_R16G16B16A16_SFLOAT = 97,
  627. VK_FORMAT_R32_UINT = 98,
  628. VK_FORMAT_R32_SINT = 99,
  629. VK_FORMAT_R32_SFLOAT = 100,
  630. VK_FORMAT_R32G32_UINT = 101,
  631. VK_FORMAT_R32G32_SINT = 102,
  632. VK_FORMAT_R32G32_SFLOAT = 103,
  633. VK_FORMAT_R32G32B32_UINT = 104,
  634. VK_FORMAT_R32G32B32_SINT = 105,
  635. VK_FORMAT_R32G32B32_SFLOAT = 106,
  636. VK_FORMAT_R32G32B32A32_UINT = 107,
  637. VK_FORMAT_R32G32B32A32_SINT = 108,
  638. VK_FORMAT_R32G32B32A32_SFLOAT = 109,
  639. VK_FORMAT_R64_UINT = 110,
  640. VK_FORMAT_R64_SINT = 111,
  641. VK_FORMAT_R64_SFLOAT = 112,
  642. VK_FORMAT_R64G64_UINT = 113,
  643. VK_FORMAT_R64G64_SINT = 114,
  644. VK_FORMAT_R64G64_SFLOAT = 115,
  645. VK_FORMAT_R64G64B64_UINT = 116,
  646. VK_FORMAT_R64G64B64_SINT = 117,
  647. VK_FORMAT_R64G64B64_SFLOAT = 118,
  648. VK_FORMAT_R64G64B64A64_UINT = 119,
  649. VK_FORMAT_R64G64B64A64_SINT = 120,
  650. VK_FORMAT_R64G64B64A64_SFLOAT = 121,
  651. VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
  652. VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
  653. VK_FORMAT_D16_UNORM = 124,
  654. VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
  655. VK_FORMAT_D32_SFLOAT = 126,
  656. VK_FORMAT_S8_UINT = 127,
  657. VK_FORMAT_D16_UNORM_S8_UINT = 128,
  658. VK_FORMAT_D24_UNORM_S8_UINT = 129,
  659. VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
  660. VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
  661. VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
  662. VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
  663. VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
  664. VK_FORMAT_BC2_UNORM_BLOCK = 135,
  665. VK_FORMAT_BC2_SRGB_BLOCK = 136,
  666. VK_FORMAT_BC3_UNORM_BLOCK = 137,
  667. VK_FORMAT_BC3_SRGB_BLOCK = 138,
  668. VK_FORMAT_BC4_UNORM_BLOCK = 139,
  669. VK_FORMAT_BC4_SNORM_BLOCK = 140,
  670. VK_FORMAT_BC5_UNORM_BLOCK = 141,
  671. VK_FORMAT_BC5_SNORM_BLOCK = 142,
  672. VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
  673. VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
  674. VK_FORMAT_BC7_UNORM_BLOCK = 145,
  675. VK_FORMAT_BC7_SRGB_BLOCK = 146,
  676. VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
  677. VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
  678. VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
  679. VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
  680. VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
  681. VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
  682. VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
  683. VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
  684. VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
  685. VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
  686. VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
  687. VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
  688. VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
  689. VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
  690. VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
  691. VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
  692. VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
  693. VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
  694. VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
  695. VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
  696. VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
  697. VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
  698. VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
  699. VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
  700. VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
  701. VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
  702. VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
  703. VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
  704. VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
  705. VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
  706. VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
  707. VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
  708. VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
  709. VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
  710. VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
  711. VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
  712. VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
  713. VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
  714. VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
  715. } VkFormat;
  716. typedef enum VkFormatFeatureFlagBits {
  717. VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 1,
  718. VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 2,
  719. VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 4,
  720. VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 8,
  721. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 16,
  722. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 32,
  723. VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 64,
  724. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 128,
  725. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 256,
  726. VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 512,
  727. VK_FORMAT_FEATURE_BLIT_SRC_BIT = 1024,
  728. VK_FORMAT_FEATURE_BLIT_DST_BIT = 2048,
  729. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 4096,
  730. VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  731. } VkFormatFeatureFlagBits;
  732. typedef enum VkFrontFace {
  733. VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
  734. VK_FRONT_FACE_CLOCKWISE = 1,
  735. VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
  736. } VkFrontFace;
  737. typedef enum VkImageAspectFlagBits {
  738. VK_IMAGE_ASPECT_COLOR_BIT = 1,
  739. VK_IMAGE_ASPECT_DEPTH_BIT = 2,
  740. VK_IMAGE_ASPECT_STENCIL_BIT = 4,
  741. VK_IMAGE_ASPECT_METADATA_BIT = 8,
  742. VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  743. } VkImageAspectFlagBits;
  744. typedef enum VkImageCreateFlagBits {
  745. VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 1,
  746. VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 2,
  747. VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 4,
  748. VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 8,
  749. VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 16,
  750. VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  751. } VkImageCreateFlagBits;
  752. typedef enum VkImageLayout {
  753. VK_IMAGE_LAYOUT_UNDEFINED = 0,
  754. VK_IMAGE_LAYOUT_GENERAL = 1,
  755. VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
  756. VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
  757. VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
  758. VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
  759. VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
  760. VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
  761. VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
  762. VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
  763. VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
  764. } VkImageLayout;
  765. typedef enum VkImageTiling {
  766. VK_IMAGE_TILING_OPTIMAL = 0,
  767. VK_IMAGE_TILING_LINEAR = 1,
  768. VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
  769. } VkImageTiling;
  770. typedef enum VkImageType {
  771. VK_IMAGE_TYPE_1D = 0,
  772. VK_IMAGE_TYPE_2D = 1,
  773. VK_IMAGE_TYPE_3D = 2,
  774. VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
  775. } VkImageType;
  776. typedef enum VkImageUsageFlagBits {
  777. VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 1,
  778. VK_IMAGE_USAGE_TRANSFER_DST_BIT = 2,
  779. VK_IMAGE_USAGE_SAMPLED_BIT = 4,
  780. VK_IMAGE_USAGE_STORAGE_BIT = 8,
  781. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 16,
  782. VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32,
  783. VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64,
  784. VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128,
  785. VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  786. } VkImageUsageFlagBits;
  787. typedef enum VkImageViewType {
  788. VK_IMAGE_VIEW_TYPE_1D = 0,
  789. VK_IMAGE_VIEW_TYPE_2D = 1,
  790. VK_IMAGE_VIEW_TYPE_3D = 2,
  791. VK_IMAGE_VIEW_TYPE_CUBE = 3,
  792. VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
  793. VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
  794. VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
  795. VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
  796. } VkImageViewType;
  797. typedef enum VkSharingMode {
  798. VK_SHARING_MODE_EXCLUSIVE = 0,
  799. VK_SHARING_MODE_CONCURRENT = 1,
  800. VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
  801. } VkSharingMode;
  802. typedef enum VkIndexType {
  803. VK_INDEX_TYPE_UINT16 = 0,
  804. VK_INDEX_TYPE_UINT32 = 1,
  805. VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
  806. } VkIndexType;
  807. typedef enum VkLogicOp {
  808. VK_LOGIC_OP_CLEAR = 0,
  809. VK_LOGIC_OP_AND = 1,
  810. VK_LOGIC_OP_AND_REVERSE = 2,
  811. VK_LOGIC_OP_COPY = 3,
  812. VK_LOGIC_OP_AND_INVERTED = 4,
  813. VK_LOGIC_OP_NO_OP = 5,
  814. VK_LOGIC_OP_XOR = 6,
  815. VK_LOGIC_OP_OR = 7,
  816. VK_LOGIC_OP_NOR = 8,
  817. VK_LOGIC_OP_EQUIVALENT = 9,
  818. VK_LOGIC_OP_INVERT = 10,
  819. VK_LOGIC_OP_OR_REVERSE = 11,
  820. VK_LOGIC_OP_COPY_INVERTED = 12,
  821. VK_LOGIC_OP_OR_INVERTED = 13,
  822. VK_LOGIC_OP_NAND = 14,
  823. VK_LOGIC_OP_SET = 15,
  824. VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
  825. } VkLogicOp;
  826. typedef enum VkMemoryHeapFlagBits {
  827. VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 1,
  828. VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  829. } VkMemoryHeapFlagBits;
  830. typedef enum VkAccessFlagBits {
  831. VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 1,
  832. VK_ACCESS_INDEX_READ_BIT = 2,
  833. VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 4,
  834. VK_ACCESS_UNIFORM_READ_BIT = 8,
  835. VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 16,
  836. VK_ACCESS_SHADER_READ_BIT = 32,
  837. VK_ACCESS_SHADER_WRITE_BIT = 64,
  838. VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 128,
  839. VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 256,
  840. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 512,
  841. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 1024,
  842. VK_ACCESS_TRANSFER_READ_BIT = 2048,
  843. VK_ACCESS_TRANSFER_WRITE_BIT = 4096,
  844. VK_ACCESS_HOST_READ_BIT = 8192,
  845. VK_ACCESS_HOST_WRITE_BIT = 16384,
  846. VK_ACCESS_MEMORY_READ_BIT = 32768,
  847. VK_ACCESS_MEMORY_WRITE_BIT = 65536,
  848. VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  849. } VkAccessFlagBits;
  850. typedef enum VkMemoryPropertyFlagBits {
  851. VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 1,
  852. VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 2,
  853. VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 4,
  854. VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 8,
  855. VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 16,
  856. VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  857. } VkMemoryPropertyFlagBits;
  858. typedef enum VkPhysicalDeviceType {
  859. VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
  860. VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
  861. VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
  862. VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
  863. VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
  864. VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
  865. } VkPhysicalDeviceType;
  866. typedef enum VkPipelineBindPoint {
  867. VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
  868. VK_PIPELINE_BIND_POINT_COMPUTE = 1,
  869. VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
  870. } VkPipelineBindPoint;
  871. typedef enum VkPipelineCreateFlagBits {
  872. VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 1,
  873. VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 2,
  874. VK_PIPELINE_CREATE_DERIVATIVE_BIT = 4,
  875. VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  876. } VkPipelineCreateFlagBits;
  877. typedef enum VkPrimitiveTopology {
  878. VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
  879. VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
  880. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
  881. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
  882. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
  883. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
  884. VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
  885. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
  886. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
  887. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
  888. VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
  889. VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
  890. } VkPrimitiveTopology;
  891. typedef enum VkQueryControlFlagBits {
  892. VK_QUERY_CONTROL_PRECISE_BIT = 1,
  893. VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  894. } VkQueryControlFlagBits;
  895. typedef enum VkQueryPipelineStatisticFlagBits {
  896. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 1,
  897. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 2,
  898. VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 4,
  899. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 8,
  900. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 16,
  901. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 32,
  902. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 64,
  903. VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 128,
  904. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256,
  905. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512,
  906. VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024,
  907. VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  908. } VkQueryPipelineStatisticFlagBits;
  909. typedef enum VkQueryResultFlagBits {
  910. VK_QUERY_RESULT_64_BIT = 1,
  911. VK_QUERY_RESULT_WAIT_BIT = 2,
  912. VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4,
  913. VK_QUERY_RESULT_PARTIAL_BIT = 8,
  914. VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  915. } VkQueryResultFlagBits;
  916. typedef enum VkQueryType {
  917. VK_QUERY_TYPE_OCCLUSION = 0,
  918. VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
  919. VK_QUERY_TYPE_TIMESTAMP = 2,
  920. VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
  921. } VkQueryType;
  922. typedef enum VkQueueFlagBits {
  923. VK_QUEUE_GRAPHICS_BIT = 1,
  924. VK_QUEUE_COMPUTE_BIT = 2,
  925. VK_QUEUE_TRANSFER_BIT = 4,
  926. VK_QUEUE_SPARSE_BINDING_BIT = 8,
  927. VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  928. } VkQueueFlagBits;
  929. typedef enum VkSubpassContents {
  930. VK_SUBPASS_CONTENTS_INLINE = 0,
  931. VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
  932. VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
  933. } VkSubpassContents;
  934. typedef enum VkResult {
  935. VK_SUCCESS = 0,
  936. VK_NOT_READY = 1,
  937. VK_TIMEOUT = 2,
  938. VK_EVENT_SET = 3,
  939. VK_EVENT_RESET = 4,
  940. VK_INCOMPLETE = 5,
  941. VK_ERROR_OUT_OF_HOST_MEMORY = -1,
  942. VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
  943. VK_ERROR_INITIALIZATION_FAILED = -3,
  944. VK_ERROR_DEVICE_LOST = -4,
  945. VK_ERROR_MEMORY_MAP_FAILED = -5,
  946. VK_ERROR_LAYER_NOT_PRESENT = -6,
  947. VK_ERROR_EXTENSION_NOT_PRESENT = -7,
  948. VK_ERROR_FEATURE_NOT_PRESENT = -8,
  949. VK_ERROR_INCOMPATIBLE_DRIVER = -9,
  950. VK_ERROR_TOO_MANY_OBJECTS = -10,
  951. VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
  952. VK_ERROR_FRAGMENTED_POOL = -12,
  953. VK_ERROR_UNKNOWN = -13,
  954. VK_ERROR_SURFACE_LOST_KHR = -1000000000,
  955. VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
  956. VK_SUBOPTIMAL_KHR = 1000001003,
  957. VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
  958. VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
  959. VK_RESULT_MAX_ENUM = 0x7FFFFFFF
  960. } VkResult;
  961. typedef enum VkShaderStageFlagBits {
  962. VK_SHADER_STAGE_VERTEX_BIT = 1,
  963. VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 2,
  964. VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 4,
  965. VK_SHADER_STAGE_GEOMETRY_BIT = 8,
  966. VK_SHADER_STAGE_FRAGMENT_BIT = 16,
  967. VK_SHADER_STAGE_COMPUTE_BIT = 32,
  968. VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
  969. VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
  970. VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  971. } VkShaderStageFlagBits;
  972. typedef enum VkSparseMemoryBindFlagBits {
  973. VK_SPARSE_MEMORY_BIND_METADATA_BIT = 1,
  974. VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  975. } VkSparseMemoryBindFlagBits;
  976. typedef enum VkStencilFaceFlagBits {
  977. VK_STENCIL_FACE_FRONT_BIT = 1,
  978. VK_STENCIL_FACE_BACK_BIT = 2,
  979. VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
  980. VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
  981. VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  982. } VkStencilFaceFlagBits;
  983. typedef enum VkStencilOp {
  984. VK_STENCIL_OP_KEEP = 0,
  985. VK_STENCIL_OP_ZERO = 1,
  986. VK_STENCIL_OP_REPLACE = 2,
  987. VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
  988. VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
  989. VK_STENCIL_OP_INVERT = 5,
  990. VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
  991. VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
  992. VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
  993. } VkStencilOp;
  994. typedef enum VkStructureType {
  995. VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
  996. VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
  997. VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
  998. VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
  999. VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
  1000. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
  1001. VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
  1002. VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
  1003. VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
  1004. VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
  1005. VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
  1006. VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
  1007. VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
  1008. VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
  1009. VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
  1010. VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
  1011. VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
  1012. VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
  1013. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
  1014. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
  1015. VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
  1016. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
  1017. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
  1018. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
  1019. VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
  1020. VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
  1021. VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
  1022. VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
  1023. VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
  1024. VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
  1025. VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
  1026. VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
  1027. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
  1028. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
  1029. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
  1030. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
  1031. VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
  1032. VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
  1033. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
  1034. VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
  1035. VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
  1036. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
  1037. VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
  1038. VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
  1039. VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
  1040. VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
  1041. VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
  1042. VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
  1043. VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
  1044. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
  1045. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
  1046. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
  1047. VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
  1048. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
  1049. VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
  1050. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
  1051. VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
  1052. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
  1053. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
  1054. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
  1055. VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
  1056. VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
  1057. VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
  1058. VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
  1059. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
  1060. VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
  1061. VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
  1062. VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
  1063. VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
  1064. VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
  1065. VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
  1066. VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
  1067. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
  1068. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
  1069. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
  1070. VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
  1071. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
  1072. VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
  1073. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
  1074. VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
  1075. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
  1076. VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
  1077. VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
  1078. VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
  1079. VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
  1080. VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
  1081. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
  1082. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
  1083. VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
  1084. VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
  1085. } VkStructureType;
  1086. typedef enum VkSystemAllocationScope {
  1087. VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
  1088. VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
  1089. VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
  1090. VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
  1091. VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
  1092. VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
  1093. } VkSystemAllocationScope;
  1094. typedef enum VkInternalAllocationType {
  1095. VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
  1096. VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
  1097. } VkInternalAllocationType;
  1098. typedef enum VkSamplerAddressMode {
  1099. VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
  1100. VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
  1101. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
  1102. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
  1103. VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
  1104. } VkSamplerAddressMode;
  1105. typedef enum VkFilter {
  1106. VK_FILTER_NEAREST = 0,
  1107. VK_FILTER_LINEAR = 1,
  1108. VK_FILTER_MAX_ENUM = 0x7FFFFFFF
  1109. } VkFilter;
  1110. typedef enum VkSamplerMipmapMode {
  1111. VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
  1112. VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
  1113. VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
  1114. } VkSamplerMipmapMode;
  1115. typedef enum VkVertexInputRate {
  1116. VK_VERTEX_INPUT_RATE_VERTEX = 0,
  1117. VK_VERTEX_INPUT_RATE_INSTANCE = 1,
  1118. VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
  1119. } VkVertexInputRate;
  1120. typedef enum VkPipelineStageFlagBits {
  1121. VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 1,
  1122. VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 2,
  1123. VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 4,
  1124. VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 8,
  1125. VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 16,
  1126. VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 32,
  1127. VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 64,
  1128. VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 128,
  1129. VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 256,
  1130. VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 512,
  1131. VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 1024,
  1132. VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 2048,
  1133. VK_PIPELINE_STAGE_TRANSFER_BIT = 4096,
  1134. VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 8192,
  1135. VK_PIPELINE_STAGE_HOST_BIT = 16384,
  1136. VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 32768,
  1137. VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 65536,
  1138. VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1139. } VkPipelineStageFlagBits;
  1140. typedef enum VkSparseImageFormatFlagBits {
  1141. VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 1,
  1142. VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 2,
  1143. VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 4,
  1144. VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1145. } VkSparseImageFormatFlagBits;
  1146. typedef enum VkSampleCountFlagBits {
  1147. VK_SAMPLE_COUNT_1_BIT = 1,
  1148. VK_SAMPLE_COUNT_2_BIT = 2,
  1149. VK_SAMPLE_COUNT_4_BIT = 4,
  1150. VK_SAMPLE_COUNT_8_BIT = 8,
  1151. VK_SAMPLE_COUNT_16_BIT = 16,
  1152. VK_SAMPLE_COUNT_32_BIT = 32,
  1153. VK_SAMPLE_COUNT_64_BIT = 64,
  1154. VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1155. } VkSampleCountFlagBits;
  1156. typedef enum VkAttachmentDescriptionFlagBits {
  1157. VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 1,
  1158. VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1159. } VkAttachmentDescriptionFlagBits;
  1160. typedef enum VkDescriptorPoolCreateFlagBits {
  1161. VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1,
  1162. VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1163. } VkDescriptorPoolCreateFlagBits;
  1164. typedef enum VkDependencyFlagBits {
  1165. VK_DEPENDENCY_BY_REGION_BIT = 1,
  1166. VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1167. } VkDependencyFlagBits;
  1168. typedef enum VkObjectType {
  1169. VK_OBJECT_TYPE_UNKNOWN = 0,
  1170. VK_OBJECT_TYPE_INSTANCE = 1,
  1171. VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
  1172. VK_OBJECT_TYPE_DEVICE = 3,
  1173. VK_OBJECT_TYPE_QUEUE = 4,
  1174. VK_OBJECT_TYPE_SEMAPHORE = 5,
  1175. VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
  1176. VK_OBJECT_TYPE_FENCE = 7,
  1177. VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
  1178. VK_OBJECT_TYPE_BUFFER = 9,
  1179. VK_OBJECT_TYPE_IMAGE = 10,
  1180. VK_OBJECT_TYPE_EVENT = 11,
  1181. VK_OBJECT_TYPE_QUERY_POOL = 12,
  1182. VK_OBJECT_TYPE_BUFFER_VIEW = 13,
  1183. VK_OBJECT_TYPE_IMAGE_VIEW = 14,
  1184. VK_OBJECT_TYPE_SHADER_MODULE = 15,
  1185. VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
  1186. VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
  1187. VK_OBJECT_TYPE_RENDER_PASS = 18,
  1188. VK_OBJECT_TYPE_PIPELINE = 19,
  1189. VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
  1190. VK_OBJECT_TYPE_SAMPLER = 21,
  1191. VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
  1192. VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
  1193. VK_OBJECT_TYPE_FRAMEBUFFER = 24,
  1194. VK_OBJECT_TYPE_COMMAND_POOL = 25,
  1195. VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
  1196. VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
  1197. VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
  1198. VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
  1199. VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
  1200. } VkObjectType;
  1201. typedef enum VkColorSpaceKHR {
  1202. VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
  1203. VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
  1204. VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
  1205. } VkColorSpaceKHR;
  1206. typedef enum VkCompositeAlphaFlagBitsKHR {
  1207. VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 1,
  1208. VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 2,
  1209. VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 4,
  1210. VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 8,
  1211. VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  1212. } VkCompositeAlphaFlagBitsKHR;
  1213. typedef enum VkPresentModeKHR {
  1214. VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
  1215. VK_PRESENT_MODE_MAILBOX_KHR = 1,
  1216. VK_PRESENT_MODE_FIFO_KHR = 2,
  1217. VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
  1218. VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  1219. } VkPresentModeKHR;
  1220. typedef enum VkSurfaceTransformFlagBitsKHR {
  1221. VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 1,
  1222. VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 2,
  1223. VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 4,
  1224. VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 8,
  1225. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 16,
  1226. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 32,
  1227. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 64,
  1228. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 128,
  1229. VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 256,
  1230. VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  1231. } VkSurfaceTransformFlagBitsKHR;
  1232. typedef enum VkDebugReportFlagBitsEXT {
  1233. VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1,
  1234. VK_DEBUG_REPORT_WARNING_BIT_EXT = 2,
  1235. VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4,
  1236. VK_DEBUG_REPORT_ERROR_BIT_EXT = 8,
  1237. VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16,
  1238. VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  1239. } VkDebugReportFlagBitsEXT;
  1240. typedef enum VkDebugReportObjectTypeEXT {
  1241. VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
  1242. VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
  1243. VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
  1244. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
  1245. VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
  1246. VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
  1247. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
  1248. VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
  1249. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
  1250. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
  1251. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
  1252. VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
  1253. VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
  1254. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
  1255. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
  1256. VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
  1257. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
  1258. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
  1259. VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
  1260. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
  1261. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
  1262. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
  1263. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
  1264. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
  1265. VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
  1266. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
  1267. VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
  1268. VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
  1269. VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
  1270. VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
  1271. VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
  1272. VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
  1273. VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
  1274. VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
  1275. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
  1276. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
  1277. VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  1278. } VkDebugReportObjectTypeEXT;
  1279. typedef enum VkValidationFeatureEnableEXT {
  1280. VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
  1281. VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
  1282. VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
  1283. VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
  1284. VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
  1285. VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
  1286. } VkValidationFeatureEnableEXT;
  1287. typedef enum VkValidationFeatureDisableEXT {
  1288. VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
  1289. VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
  1290. VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
  1291. VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
  1292. VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
  1293. VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
  1294. VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
  1295. VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
  1296. VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
  1297. } VkValidationFeatureDisableEXT;
  1298. typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
  1299. VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 1,
  1300. VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 2,
  1301. VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 4,
  1302. VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 8,
  1303. VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  1304. } VkDeviceGroupPresentModeFlagBitsKHR;
  1305. typedef enum VkSwapchainCreateFlagBitsKHR {
  1306. VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1,
  1307. VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2,
  1308. VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  1309. } VkSwapchainCreateFlagBitsKHR;
  1310. typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
  1311. VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1,
  1312. VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16,
  1313. VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256,
  1314. VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096,
  1315. VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  1316. } VkDebugUtilsMessageSeverityFlagBitsEXT;
  1317. typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
  1318. VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1,
  1319. VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2,
  1320. VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4,
  1321. VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  1322. } VkDebugUtilsMessageTypeFlagBitsEXT;
  1323. typedef enum VkVendorId {
  1324. VK_VENDOR_ID_VIV = 0x10001,
  1325. VK_VENDOR_ID_VSI = 0x10002,
  1326. VK_VENDOR_ID_KAZAN = 0x10003,
  1327. VK_VENDOR_ID_CODEPLAY = 0x10004,
  1328. VK_VENDOR_ID_MESA = 0x10005,
  1329. VK_VENDOR_ID_POCL = 0x10006,
  1330. VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
  1331. } VkVendorId;
  1332. typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
  1333. void* pUserData,
  1334. size_t size,
  1335. VkInternalAllocationType allocationType,
  1336. VkSystemAllocationScope allocationScope);
  1337. typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
  1338. void* pUserData,
  1339. size_t size,
  1340. VkInternalAllocationType allocationType,
  1341. VkSystemAllocationScope allocationScope);
  1342. typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
  1343. void* pUserData,
  1344. void* pOriginal,
  1345. size_t size,
  1346. size_t alignment,
  1347. VkSystemAllocationScope allocationScope);
  1348. typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
  1349. void* pUserData,
  1350. size_t size,
  1351. size_t alignment,
  1352. VkSystemAllocationScope allocationScope);
  1353. typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
  1354. void* pUserData,
  1355. void* pMemory);
  1356. typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
  1357. typedef struct VkBaseOutStructure {
  1358. VkStructureType sType;
  1359. struct VkBaseOutStructure * pNext;
  1360. } VkBaseOutStructure;
  1361. typedef struct VkBaseInStructure {
  1362. VkStructureType sType;
  1363. const struct VkBaseInStructure * pNext;
  1364. } VkBaseInStructure;
  1365. typedef struct VkOffset2D {
  1366. int32_t x;
  1367. int32_t y;
  1368. } VkOffset2D;
  1369. typedef struct VkOffset3D {
  1370. int32_t x;
  1371. int32_t y;
  1372. int32_t z;
  1373. } VkOffset3D;
  1374. typedef struct VkExtent2D {
  1375. uint32_t width;
  1376. uint32_t height;
  1377. } VkExtent2D;
  1378. typedef struct VkExtent3D {
  1379. uint32_t width;
  1380. uint32_t height;
  1381. uint32_t depth;
  1382. } VkExtent3D;
  1383. typedef struct VkViewport {
  1384. float x;
  1385. float y;
  1386. float width;
  1387. float height;
  1388. float minDepth;
  1389. float maxDepth;
  1390. } VkViewport;
  1391. typedef struct VkRect2D {
  1392. VkOffset2D offset;
  1393. VkExtent2D extent;
  1394. } VkRect2D;
  1395. typedef struct VkClearRect {
  1396. VkRect2D rect;
  1397. uint32_t baseArrayLayer;
  1398. uint32_t layerCount;
  1399. } VkClearRect;
  1400. typedef struct VkComponentMapping {
  1401. VkComponentSwizzle r;
  1402. VkComponentSwizzle g;
  1403. VkComponentSwizzle b;
  1404. VkComponentSwizzle a;
  1405. } VkComponentMapping;
  1406. typedef struct VkExtensionProperties {
  1407. char extensionName [ VK_MAX_EXTENSION_NAME_SIZE ];
  1408. uint32_t specVersion;
  1409. } VkExtensionProperties;
  1410. typedef struct VkLayerProperties {
  1411. char layerName [ VK_MAX_EXTENSION_NAME_SIZE ];
  1412. uint32_t specVersion;
  1413. uint32_t implementationVersion;
  1414. char description [ VK_MAX_DESCRIPTION_SIZE ];
  1415. } VkLayerProperties;
  1416. typedef struct VkApplicationInfo {
  1417. VkStructureType sType;
  1418. const void * pNext;
  1419. const char * pApplicationName;
  1420. uint32_t applicationVersion;
  1421. const char * pEngineName;
  1422. uint32_t engineVersion;
  1423. uint32_t apiVersion;
  1424. } VkApplicationInfo;
  1425. typedef struct VkAllocationCallbacks {
  1426. void * pUserData;
  1427. PFN_vkAllocationFunction pfnAllocation;
  1428. PFN_vkReallocationFunction pfnReallocation;
  1429. PFN_vkFreeFunction pfnFree;
  1430. PFN_vkInternalAllocationNotification pfnInternalAllocation;
  1431. PFN_vkInternalFreeNotification pfnInternalFree;
  1432. } VkAllocationCallbacks;
  1433. typedef struct VkDescriptorImageInfo {
  1434. VkSampler sampler;
  1435. VkImageView imageView;
  1436. VkImageLayout imageLayout;
  1437. } VkDescriptorImageInfo;
  1438. typedef struct VkCopyDescriptorSet {
  1439. VkStructureType sType;
  1440. const void * pNext;
  1441. VkDescriptorSet srcSet;
  1442. uint32_t srcBinding;
  1443. uint32_t srcArrayElement;
  1444. VkDescriptorSet dstSet;
  1445. uint32_t dstBinding;
  1446. uint32_t dstArrayElement;
  1447. uint32_t descriptorCount;
  1448. } VkCopyDescriptorSet;
  1449. typedef struct VkDescriptorPoolSize {
  1450. VkDescriptorType type;
  1451. uint32_t descriptorCount;
  1452. } VkDescriptorPoolSize;
  1453. typedef struct VkDescriptorSetAllocateInfo {
  1454. VkStructureType sType;
  1455. const void * pNext;
  1456. VkDescriptorPool descriptorPool;
  1457. uint32_t descriptorSetCount;
  1458. const VkDescriptorSetLayout * pSetLayouts;
  1459. } VkDescriptorSetAllocateInfo;
  1460. typedef struct VkSpecializationMapEntry {
  1461. uint32_t constantID;
  1462. uint32_t offset;
  1463. size_t size;
  1464. } VkSpecializationMapEntry;
  1465. typedef struct VkSpecializationInfo {
  1466. uint32_t mapEntryCount;
  1467. const VkSpecializationMapEntry * pMapEntries;
  1468. size_t dataSize;
  1469. const void * pData;
  1470. } VkSpecializationInfo;
  1471. typedef struct VkVertexInputBindingDescription {
  1472. uint32_t binding;
  1473. uint32_t stride;
  1474. VkVertexInputRate inputRate;
  1475. } VkVertexInputBindingDescription;
  1476. typedef struct VkVertexInputAttributeDescription {
  1477. uint32_t location;
  1478. uint32_t binding;
  1479. VkFormat format;
  1480. uint32_t offset;
  1481. } VkVertexInputAttributeDescription;
  1482. typedef struct VkStencilOpState {
  1483. VkStencilOp failOp;
  1484. VkStencilOp passOp;
  1485. VkStencilOp depthFailOp;
  1486. VkCompareOp compareOp;
  1487. uint32_t compareMask;
  1488. uint32_t writeMask;
  1489. uint32_t reference;
  1490. } VkStencilOpState;
  1491. typedef struct VkPipelineCacheHeaderVersionOne {
  1492. uint32_t headerSize;
  1493. VkPipelineCacheHeaderVersion headerVersion;
  1494. uint32_t vendorID;
  1495. uint32_t deviceID;
  1496. uint8_t pipelineCacheUUID [ VK_UUID_SIZE ];
  1497. } VkPipelineCacheHeaderVersionOne;
  1498. typedef struct VkCommandBufferAllocateInfo {
  1499. VkStructureType sType;
  1500. const void * pNext;
  1501. VkCommandPool commandPool;
  1502. VkCommandBufferLevel level;
  1503. uint32_t commandBufferCount;
  1504. } VkCommandBufferAllocateInfo;
  1505. typedef union VkClearColorValue {
  1506. float float32 [4];
  1507. int32_t int32 [4];
  1508. uint32_t uint32 [4];
  1509. } VkClearColorValue;
  1510. typedef struct VkClearDepthStencilValue {
  1511. float depth;
  1512. uint32_t stencil;
  1513. } VkClearDepthStencilValue;
  1514. typedef union VkClearValue {
  1515. VkClearColorValue color;
  1516. VkClearDepthStencilValue depthStencil;
  1517. } VkClearValue;
  1518. typedef struct VkAttachmentReference {
  1519. uint32_t attachment;
  1520. VkImageLayout layout;
  1521. } VkAttachmentReference;
  1522. typedef struct VkDrawIndirectCommand {
  1523. uint32_t vertexCount;
  1524. uint32_t instanceCount;
  1525. uint32_t firstVertex;
  1526. uint32_t firstInstance;
  1527. } VkDrawIndirectCommand;
  1528. typedef struct VkDrawIndexedIndirectCommand {
  1529. uint32_t indexCount;
  1530. uint32_t instanceCount;
  1531. uint32_t firstIndex;
  1532. int32_t vertexOffset;
  1533. uint32_t firstInstance;
  1534. } VkDrawIndexedIndirectCommand;
  1535. typedef struct VkDispatchIndirectCommand {
  1536. uint32_t x;
  1537. uint32_t y;
  1538. uint32_t z;
  1539. } VkDispatchIndirectCommand;
  1540. typedef struct VkSurfaceFormatKHR {
  1541. VkFormat format;
  1542. VkColorSpaceKHR colorSpace;
  1543. } VkSurfaceFormatKHR;
  1544. typedef struct VkPresentInfoKHR {
  1545. VkStructureType sType;
  1546. const void * pNext;
  1547. uint32_t waitSemaphoreCount;
  1548. const VkSemaphore * pWaitSemaphores;
  1549. uint32_t swapchainCount;
  1550. const VkSwapchainKHR * pSwapchains;
  1551. const uint32_t * pImageIndices;
  1552. VkResult * pResults;
  1553. } VkPresentInfoKHR;
  1554. typedef struct VkValidationFeaturesEXT {
  1555. VkStructureType sType;
  1556. const void * pNext;
  1557. uint32_t enabledValidationFeatureCount;
  1558. const VkValidationFeatureEnableEXT * pEnabledValidationFeatures;
  1559. uint32_t disabledValidationFeatureCount;
  1560. const VkValidationFeatureDisableEXT * pDisabledValidationFeatures;
  1561. } VkValidationFeaturesEXT;
  1562. typedef struct VkImageSwapchainCreateInfoKHR {
  1563. VkStructureType sType;
  1564. const void * pNext;
  1565. VkSwapchainKHR swapchain;
  1566. } VkImageSwapchainCreateInfoKHR;
  1567. typedef struct VkBindImageMemorySwapchainInfoKHR {
  1568. VkStructureType sType;
  1569. const void * pNext;
  1570. VkSwapchainKHR swapchain;
  1571. uint32_t imageIndex;
  1572. } VkBindImageMemorySwapchainInfoKHR;
  1573. typedef struct VkAcquireNextImageInfoKHR {
  1574. VkStructureType sType;
  1575. const void * pNext;
  1576. VkSwapchainKHR swapchain;
  1577. uint64_t timeout;
  1578. VkSemaphore semaphore;
  1579. VkFence fence;
  1580. uint32_t deviceMask;
  1581. } VkAcquireNextImageInfoKHR;
  1582. typedef struct VkDeviceGroupPresentInfoKHR {
  1583. VkStructureType sType;
  1584. const void * pNext;
  1585. uint32_t swapchainCount;
  1586. const uint32_t * pDeviceMasks;
  1587. VkDeviceGroupPresentModeFlagBitsKHR mode;
  1588. } VkDeviceGroupPresentInfoKHR;
  1589. typedef struct VkDebugUtilsObjectNameInfoEXT {
  1590. VkStructureType sType;
  1591. const void * pNext;
  1592. VkObjectType objectType;
  1593. uint64_t objectHandle;
  1594. const char * pObjectName;
  1595. } VkDebugUtilsObjectNameInfoEXT;
  1596. typedef struct VkDebugUtilsObjectTagInfoEXT {
  1597. VkStructureType sType;
  1598. const void * pNext;
  1599. VkObjectType objectType;
  1600. uint64_t objectHandle;
  1601. uint64_t tagName;
  1602. size_t tagSize;
  1603. const void * pTag;
  1604. } VkDebugUtilsObjectTagInfoEXT;
  1605. typedef struct VkDebugUtilsLabelEXT {
  1606. VkStructureType sType;
  1607. const void * pNext;
  1608. const char * pLabelName;
  1609. float color [4];
  1610. } VkDebugUtilsLabelEXT;
  1611. typedef uint32_t VkSampleMask;
  1612. typedef uint32_t VkBool32;
  1613. typedef uint32_t VkFlags;
  1614. typedef uint64_t VkDeviceSize;
  1615. typedef uint64_t VkDeviceAddress;
  1616. typedef VkFlags VkFramebufferCreateFlags;
  1617. typedef VkFlags VkQueryPoolCreateFlags;
  1618. typedef VkFlags VkRenderPassCreateFlags;
  1619. typedef VkFlags VkSamplerCreateFlags;
  1620. typedef VkFlags VkPipelineLayoutCreateFlags;
  1621. typedef VkFlags VkPipelineCacheCreateFlags;
  1622. typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
  1623. typedef VkFlags VkPipelineDynamicStateCreateFlags;
  1624. typedef VkFlags VkPipelineColorBlendStateCreateFlags;
  1625. typedef VkFlags VkPipelineMultisampleStateCreateFlags;
  1626. typedef VkFlags VkPipelineRasterizationStateCreateFlags;
  1627. typedef VkFlags VkPipelineViewportStateCreateFlags;
  1628. typedef VkFlags VkPipelineTessellationStateCreateFlags;
  1629. typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
  1630. typedef VkFlags VkPipelineVertexInputStateCreateFlags;
  1631. typedef VkFlags VkPipelineShaderStageCreateFlags;
  1632. typedef VkFlags VkDescriptorSetLayoutCreateFlags;
  1633. typedef VkFlags VkBufferViewCreateFlags;
  1634. typedef VkFlags VkInstanceCreateFlags;
  1635. typedef VkFlags VkDeviceCreateFlags;
  1636. typedef VkFlags VkDeviceQueueCreateFlags;
  1637. typedef VkFlags VkQueueFlags;
  1638. typedef VkFlags VkMemoryPropertyFlags;
  1639. typedef VkFlags VkMemoryHeapFlags;
  1640. typedef VkFlags VkAccessFlags;
  1641. typedef VkFlags VkBufferUsageFlags;
  1642. typedef VkFlags VkBufferCreateFlags;
  1643. typedef VkFlags VkShaderStageFlags;
  1644. typedef VkFlags VkImageUsageFlags;
  1645. typedef VkFlags VkImageCreateFlags;
  1646. typedef VkFlags VkImageViewCreateFlags;
  1647. typedef VkFlags VkPipelineCreateFlags;
  1648. typedef VkFlags VkColorComponentFlags;
  1649. typedef VkFlags VkFenceCreateFlags;
  1650. typedef VkFlags VkSemaphoreCreateFlags;
  1651. typedef VkFlags VkFormatFeatureFlags;
  1652. typedef VkFlags VkQueryControlFlags;
  1653. typedef VkFlags VkQueryResultFlags;
  1654. typedef VkFlags VkShaderModuleCreateFlags;
  1655. typedef VkFlags VkEventCreateFlags;
  1656. typedef VkFlags VkCommandPoolCreateFlags;
  1657. typedef VkFlags VkCommandPoolResetFlags;
  1658. typedef VkFlags VkCommandBufferResetFlags;
  1659. typedef VkFlags VkCommandBufferUsageFlags;
  1660. typedef VkFlags VkQueryPipelineStatisticFlags;
  1661. typedef VkFlags VkMemoryMapFlags;
  1662. typedef VkFlags VkImageAspectFlags;
  1663. typedef VkFlags VkSparseMemoryBindFlags;
  1664. typedef VkFlags VkSparseImageFormatFlags;
  1665. typedef VkFlags VkSubpassDescriptionFlags;
  1666. typedef VkFlags VkPipelineStageFlags;
  1667. typedef VkFlags VkSampleCountFlags;
  1668. typedef VkFlags VkAttachmentDescriptionFlags;
  1669. typedef VkFlags VkStencilFaceFlags;
  1670. typedef VkFlags VkCullModeFlags;
  1671. typedef VkFlags VkDescriptorPoolCreateFlags;
  1672. typedef VkFlags VkDescriptorPoolResetFlags;
  1673. typedef VkFlags VkDependencyFlags;
  1674. typedef VkFlags VkCompositeAlphaFlagsKHR;
  1675. typedef VkFlags VkSurfaceTransformFlagsKHR;
  1676. typedef VkFlags VkSwapchainCreateFlagsKHR;
  1677. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  1678. typedef VkFlags VkWin32SurfaceCreateFlagsKHR;
  1679. #endif
  1680. #if defined(VK_USE_PLATFORM_XCB_KHR)
  1681. typedef VkFlags VkXcbSurfaceCreateFlagsKHR;
  1682. #endif
  1683. typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
  1684. typedef VkFlags VkDebugReportFlagsEXT;
  1685. typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
  1686. typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
  1687. typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
  1688. typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
  1689. typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
  1690. VkDebugReportFlagsEXT flags,
  1691. VkDebugReportObjectTypeEXT objectType,
  1692. uint64_t object,
  1693. size_t location,
  1694. int32_t messageCode,
  1695. const char* pLayerPrefix,
  1696. const char* pMessage,
  1697. void* pUserData);
  1698. typedef struct VkDeviceQueueCreateInfo {
  1699. VkStructureType sType;
  1700. const void * pNext;
  1701. VkDeviceQueueCreateFlags flags;
  1702. uint32_t queueFamilyIndex;
  1703. uint32_t queueCount;
  1704. const float * pQueuePriorities;
  1705. } VkDeviceQueueCreateInfo;
  1706. typedef struct VkInstanceCreateInfo {
  1707. VkStructureType sType;
  1708. const void * pNext;
  1709. VkInstanceCreateFlags flags;
  1710. const VkApplicationInfo * pApplicationInfo;
  1711. uint32_t enabledLayerCount;
  1712. const char * const* ppEnabledLayerNames;
  1713. uint32_t enabledExtensionCount;
  1714. const char * const* ppEnabledExtensionNames;
  1715. } VkInstanceCreateInfo;
  1716. typedef struct VkQueueFamilyProperties {
  1717. VkQueueFlags queueFlags;
  1718. uint32_t queueCount;
  1719. uint32_t timestampValidBits;
  1720. VkExtent3D minImageTransferGranularity;
  1721. } VkQueueFamilyProperties;
  1722. typedef struct VkMemoryAllocateInfo {
  1723. VkStructureType sType;
  1724. const void * pNext;
  1725. VkDeviceSize allocationSize;
  1726. uint32_t memoryTypeIndex;
  1727. } VkMemoryAllocateInfo;
  1728. typedef struct VkMemoryRequirements {
  1729. VkDeviceSize size;
  1730. VkDeviceSize alignment;
  1731. uint32_t memoryTypeBits;
  1732. } VkMemoryRequirements;
  1733. typedef struct VkSparseImageFormatProperties {
  1734. VkImageAspectFlags aspectMask;
  1735. VkExtent3D imageGranularity;
  1736. VkSparseImageFormatFlags flags;
  1737. } VkSparseImageFormatProperties;
  1738. typedef struct VkSparseImageMemoryRequirements {
  1739. VkSparseImageFormatProperties formatProperties;
  1740. uint32_t imageMipTailFirstLod;
  1741. VkDeviceSize imageMipTailSize;
  1742. VkDeviceSize imageMipTailOffset;
  1743. VkDeviceSize imageMipTailStride;
  1744. } VkSparseImageMemoryRequirements;
  1745. typedef struct VkMemoryType {
  1746. VkMemoryPropertyFlags propertyFlags;
  1747. uint32_t heapIndex;
  1748. } VkMemoryType;
  1749. typedef struct VkMemoryHeap {
  1750. VkDeviceSize size;
  1751. VkMemoryHeapFlags flags;
  1752. } VkMemoryHeap;
  1753. typedef struct VkMappedMemoryRange {
  1754. VkStructureType sType;
  1755. const void * pNext;
  1756. VkDeviceMemory memory;
  1757. VkDeviceSize offset;
  1758. VkDeviceSize size;
  1759. } VkMappedMemoryRange;
  1760. typedef struct VkFormatProperties {
  1761. VkFormatFeatureFlags linearTilingFeatures;
  1762. VkFormatFeatureFlags optimalTilingFeatures;
  1763. VkFormatFeatureFlags bufferFeatures;
  1764. } VkFormatProperties;
  1765. typedef struct VkImageFormatProperties {
  1766. VkExtent3D maxExtent;
  1767. uint32_t maxMipLevels;
  1768. uint32_t maxArrayLayers;
  1769. VkSampleCountFlags sampleCounts;
  1770. VkDeviceSize maxResourceSize;
  1771. } VkImageFormatProperties;
  1772. typedef struct VkDescriptorBufferInfo {
  1773. VkBuffer buffer;
  1774. VkDeviceSize offset;
  1775. VkDeviceSize range;
  1776. } VkDescriptorBufferInfo;
  1777. typedef struct VkWriteDescriptorSet {
  1778. VkStructureType sType;
  1779. const void * pNext;
  1780. VkDescriptorSet dstSet;
  1781. uint32_t dstBinding;
  1782. uint32_t dstArrayElement;
  1783. uint32_t descriptorCount;
  1784. VkDescriptorType descriptorType;
  1785. const VkDescriptorImageInfo * pImageInfo;
  1786. const VkDescriptorBufferInfo * pBufferInfo;
  1787. const VkBufferView * pTexelBufferView;
  1788. } VkWriteDescriptorSet;
  1789. typedef struct VkBufferCreateInfo {
  1790. VkStructureType sType;
  1791. const void * pNext;
  1792. VkBufferCreateFlags flags;
  1793. VkDeviceSize size;
  1794. VkBufferUsageFlags usage;
  1795. VkSharingMode sharingMode;
  1796. uint32_t queueFamilyIndexCount;
  1797. const uint32_t * pQueueFamilyIndices;
  1798. } VkBufferCreateInfo;
  1799. typedef struct VkBufferViewCreateInfo {
  1800. VkStructureType sType;
  1801. const void * pNext;
  1802. VkBufferViewCreateFlags flags;
  1803. VkBuffer buffer;
  1804. VkFormat format;
  1805. VkDeviceSize offset;
  1806. VkDeviceSize range;
  1807. } VkBufferViewCreateInfo;
  1808. typedef struct VkImageSubresource {
  1809. VkImageAspectFlags aspectMask;
  1810. uint32_t mipLevel;
  1811. uint32_t arrayLayer;
  1812. } VkImageSubresource;
  1813. typedef struct VkImageSubresourceLayers {
  1814. VkImageAspectFlags aspectMask;
  1815. uint32_t mipLevel;
  1816. uint32_t baseArrayLayer;
  1817. uint32_t layerCount;
  1818. } VkImageSubresourceLayers;
  1819. typedef struct VkImageSubresourceRange {
  1820. VkImageAspectFlags aspectMask;
  1821. uint32_t baseMipLevel;
  1822. uint32_t levelCount;
  1823. uint32_t baseArrayLayer;
  1824. uint32_t layerCount;
  1825. } VkImageSubresourceRange;
  1826. typedef struct VkMemoryBarrier {
  1827. VkStructureType sType;
  1828. const void * pNext;
  1829. VkAccessFlags srcAccessMask;
  1830. VkAccessFlags dstAccessMask;
  1831. } VkMemoryBarrier;
  1832. typedef struct VkBufferMemoryBarrier {
  1833. VkStructureType sType;
  1834. const void * pNext;
  1835. VkAccessFlags srcAccessMask;
  1836. VkAccessFlags dstAccessMask;
  1837. uint32_t srcQueueFamilyIndex;
  1838. uint32_t dstQueueFamilyIndex;
  1839. VkBuffer buffer;
  1840. VkDeviceSize offset;
  1841. VkDeviceSize size;
  1842. } VkBufferMemoryBarrier;
  1843. typedef struct VkImageMemoryBarrier {
  1844. VkStructureType sType;
  1845. const void * pNext;
  1846. VkAccessFlags srcAccessMask;
  1847. VkAccessFlags dstAccessMask;
  1848. VkImageLayout oldLayout;
  1849. VkImageLayout newLayout;
  1850. uint32_t srcQueueFamilyIndex;
  1851. uint32_t dstQueueFamilyIndex;
  1852. VkImage image;
  1853. VkImageSubresourceRange subresourceRange;
  1854. } VkImageMemoryBarrier;
  1855. typedef struct VkImageCreateInfo {
  1856. VkStructureType sType;
  1857. const void * pNext;
  1858. VkImageCreateFlags flags;
  1859. VkImageType imageType;
  1860. VkFormat format;
  1861. VkExtent3D extent;
  1862. uint32_t mipLevels;
  1863. uint32_t arrayLayers;
  1864. VkSampleCountFlagBits samples;
  1865. VkImageTiling tiling;
  1866. VkImageUsageFlags usage;
  1867. VkSharingMode sharingMode;
  1868. uint32_t queueFamilyIndexCount;
  1869. const uint32_t * pQueueFamilyIndices;
  1870. VkImageLayout initialLayout;
  1871. } VkImageCreateInfo;
  1872. typedef struct VkSubresourceLayout {
  1873. VkDeviceSize offset;
  1874. VkDeviceSize size;
  1875. VkDeviceSize rowPitch;
  1876. VkDeviceSize arrayPitch;
  1877. VkDeviceSize depthPitch;
  1878. } VkSubresourceLayout;
  1879. typedef struct VkImageViewCreateInfo {
  1880. VkStructureType sType;
  1881. const void * pNext;
  1882. VkImageViewCreateFlags flags;
  1883. VkImage image;
  1884. VkImageViewType viewType;
  1885. VkFormat format;
  1886. VkComponentMapping components;
  1887. VkImageSubresourceRange subresourceRange;
  1888. } VkImageViewCreateInfo;
  1889. typedef struct VkBufferCopy {
  1890. VkDeviceSize srcOffset;
  1891. VkDeviceSize dstOffset;
  1892. VkDeviceSize size;
  1893. } VkBufferCopy;
  1894. typedef struct VkSparseMemoryBind {
  1895. VkDeviceSize resourceOffset;
  1896. VkDeviceSize size;
  1897. VkDeviceMemory memory;
  1898. VkDeviceSize memoryOffset;
  1899. VkSparseMemoryBindFlags flags;
  1900. } VkSparseMemoryBind;
  1901. typedef struct VkSparseImageMemoryBind {
  1902. VkImageSubresource subresource;
  1903. VkOffset3D offset;
  1904. VkExtent3D extent;
  1905. VkDeviceMemory memory;
  1906. VkDeviceSize memoryOffset;
  1907. VkSparseMemoryBindFlags flags;
  1908. } VkSparseImageMemoryBind;
  1909. typedef struct VkSparseBufferMemoryBindInfo {
  1910. VkBuffer buffer;
  1911. uint32_t bindCount;
  1912. const VkSparseMemoryBind * pBinds;
  1913. } VkSparseBufferMemoryBindInfo;
  1914. typedef struct VkSparseImageOpaqueMemoryBindInfo {
  1915. VkImage image;
  1916. uint32_t bindCount;
  1917. const VkSparseMemoryBind * pBinds;
  1918. } VkSparseImageOpaqueMemoryBindInfo;
  1919. typedef struct VkSparseImageMemoryBindInfo {
  1920. VkImage image;
  1921. uint32_t bindCount;
  1922. const VkSparseImageMemoryBind * pBinds;
  1923. } VkSparseImageMemoryBindInfo;
  1924. typedef struct VkBindSparseInfo {
  1925. VkStructureType sType;
  1926. const void * pNext;
  1927. uint32_t waitSemaphoreCount;
  1928. const VkSemaphore * pWaitSemaphores;
  1929. uint32_t bufferBindCount;
  1930. const VkSparseBufferMemoryBindInfo * pBufferBinds;
  1931. uint32_t imageOpaqueBindCount;
  1932. const VkSparseImageOpaqueMemoryBindInfo * pImageOpaqueBinds;
  1933. uint32_t imageBindCount;
  1934. const VkSparseImageMemoryBindInfo * pImageBinds;
  1935. uint32_t signalSemaphoreCount;
  1936. const VkSemaphore * pSignalSemaphores;
  1937. } VkBindSparseInfo;
  1938. typedef struct VkImageCopy {
  1939. VkImageSubresourceLayers srcSubresource;
  1940. VkOffset3D srcOffset;
  1941. VkImageSubresourceLayers dstSubresource;
  1942. VkOffset3D dstOffset;
  1943. VkExtent3D extent;
  1944. } VkImageCopy;
  1945. typedef struct VkImageBlit {
  1946. VkImageSubresourceLayers srcSubresource;
  1947. VkOffset3D srcOffsets [2];
  1948. VkImageSubresourceLayers dstSubresource;
  1949. VkOffset3D dstOffsets [2];
  1950. } VkImageBlit;
  1951. typedef struct VkBufferImageCopy {
  1952. VkDeviceSize bufferOffset;
  1953. uint32_t bufferRowLength;
  1954. uint32_t bufferImageHeight;
  1955. VkImageSubresourceLayers imageSubresource;
  1956. VkOffset3D imageOffset;
  1957. VkExtent3D imageExtent;
  1958. } VkBufferImageCopy;
  1959. typedef struct VkImageResolve {
  1960. VkImageSubresourceLayers srcSubresource;
  1961. VkOffset3D srcOffset;
  1962. VkImageSubresourceLayers dstSubresource;
  1963. VkOffset3D dstOffset;
  1964. VkExtent3D extent;
  1965. } VkImageResolve;
  1966. typedef struct VkShaderModuleCreateInfo {
  1967. VkStructureType sType;
  1968. const void * pNext;
  1969. VkShaderModuleCreateFlags flags;
  1970. size_t codeSize;
  1971. const uint32_t * pCode;
  1972. } VkShaderModuleCreateInfo;
  1973. typedef struct VkDescriptorSetLayoutBinding {
  1974. uint32_t binding;
  1975. VkDescriptorType descriptorType;
  1976. uint32_t descriptorCount;
  1977. VkShaderStageFlags stageFlags;
  1978. const VkSampler * pImmutableSamplers;
  1979. } VkDescriptorSetLayoutBinding;
  1980. typedef struct VkDescriptorSetLayoutCreateInfo {
  1981. VkStructureType sType;
  1982. const void * pNext;
  1983. VkDescriptorSetLayoutCreateFlags flags;
  1984. uint32_t bindingCount;
  1985. const VkDescriptorSetLayoutBinding * pBindings;
  1986. } VkDescriptorSetLayoutCreateInfo;
  1987. typedef struct VkDescriptorPoolCreateInfo {
  1988. VkStructureType sType;
  1989. const void * pNext;
  1990. VkDescriptorPoolCreateFlags flags;
  1991. uint32_t maxSets;
  1992. uint32_t poolSizeCount;
  1993. const VkDescriptorPoolSize * pPoolSizes;
  1994. } VkDescriptorPoolCreateInfo;
  1995. typedef struct VkPipelineShaderStageCreateInfo {
  1996. VkStructureType sType;
  1997. const void * pNext;
  1998. VkPipelineShaderStageCreateFlags flags;
  1999. VkShaderStageFlagBits stage;
  2000. VkShaderModule module;
  2001. const char * pName;
  2002. const VkSpecializationInfo * pSpecializationInfo;
  2003. } VkPipelineShaderStageCreateInfo;
  2004. typedef struct VkComputePipelineCreateInfo {
  2005. VkStructureType sType;
  2006. const void * pNext;
  2007. VkPipelineCreateFlags flags;
  2008. VkPipelineShaderStageCreateInfo stage;
  2009. VkPipelineLayout layout;
  2010. VkPipeline basePipelineHandle;
  2011. int32_t basePipelineIndex;
  2012. } VkComputePipelineCreateInfo;
  2013. typedef struct VkPipelineVertexInputStateCreateInfo {
  2014. VkStructureType sType;
  2015. const void * pNext;
  2016. VkPipelineVertexInputStateCreateFlags flags;
  2017. uint32_t vertexBindingDescriptionCount;
  2018. const VkVertexInputBindingDescription * pVertexBindingDescriptions;
  2019. uint32_t vertexAttributeDescriptionCount;
  2020. const VkVertexInputAttributeDescription * pVertexAttributeDescriptions;
  2021. } VkPipelineVertexInputStateCreateInfo;
  2022. typedef struct VkPipelineInputAssemblyStateCreateInfo {
  2023. VkStructureType sType;
  2024. const void * pNext;
  2025. VkPipelineInputAssemblyStateCreateFlags flags;
  2026. VkPrimitiveTopology topology;
  2027. VkBool32 primitiveRestartEnable;
  2028. } VkPipelineInputAssemblyStateCreateInfo;
  2029. typedef struct VkPipelineTessellationStateCreateInfo {
  2030. VkStructureType sType;
  2031. const void * pNext;
  2032. VkPipelineTessellationStateCreateFlags flags;
  2033. uint32_t patchControlPoints;
  2034. } VkPipelineTessellationStateCreateInfo;
  2035. typedef struct VkPipelineViewportStateCreateInfo {
  2036. VkStructureType sType;
  2037. const void * pNext;
  2038. VkPipelineViewportStateCreateFlags flags;
  2039. uint32_t viewportCount;
  2040. const VkViewport * pViewports;
  2041. uint32_t scissorCount;
  2042. const VkRect2D * pScissors;
  2043. } VkPipelineViewportStateCreateInfo;
  2044. typedef struct VkPipelineRasterizationStateCreateInfo {
  2045. VkStructureType sType;
  2046. const void * pNext;
  2047. VkPipelineRasterizationStateCreateFlags flags;
  2048. VkBool32 depthClampEnable;
  2049. VkBool32 rasterizerDiscardEnable;
  2050. VkPolygonMode polygonMode;
  2051. VkCullModeFlags cullMode;
  2052. VkFrontFace frontFace;
  2053. VkBool32 depthBiasEnable;
  2054. float depthBiasConstantFactor;
  2055. float depthBiasClamp;
  2056. float depthBiasSlopeFactor;
  2057. float lineWidth;
  2058. } VkPipelineRasterizationStateCreateInfo;
  2059. typedef struct VkPipelineMultisampleStateCreateInfo {
  2060. VkStructureType sType;
  2061. const void * pNext;
  2062. VkPipelineMultisampleStateCreateFlags flags;
  2063. VkSampleCountFlagBits rasterizationSamples;
  2064. VkBool32 sampleShadingEnable;
  2065. float minSampleShading;
  2066. const VkSampleMask * pSampleMask;
  2067. VkBool32 alphaToCoverageEnable;
  2068. VkBool32 alphaToOneEnable;
  2069. } VkPipelineMultisampleStateCreateInfo;
  2070. typedef struct VkPipelineColorBlendAttachmentState {
  2071. VkBool32 blendEnable;
  2072. VkBlendFactor srcColorBlendFactor;
  2073. VkBlendFactor dstColorBlendFactor;
  2074. VkBlendOp colorBlendOp;
  2075. VkBlendFactor srcAlphaBlendFactor;
  2076. VkBlendFactor dstAlphaBlendFactor;
  2077. VkBlendOp alphaBlendOp;
  2078. VkColorComponentFlags colorWriteMask;
  2079. } VkPipelineColorBlendAttachmentState;
  2080. typedef struct VkPipelineColorBlendStateCreateInfo {
  2081. VkStructureType sType;
  2082. const void * pNext;
  2083. VkPipelineColorBlendStateCreateFlags flags;
  2084. VkBool32 logicOpEnable;
  2085. VkLogicOp logicOp;
  2086. uint32_t attachmentCount;
  2087. const VkPipelineColorBlendAttachmentState * pAttachments;
  2088. float blendConstants [4];
  2089. } VkPipelineColorBlendStateCreateInfo;
  2090. typedef struct VkPipelineDynamicStateCreateInfo {
  2091. VkStructureType sType;
  2092. const void * pNext;
  2093. VkPipelineDynamicStateCreateFlags flags;
  2094. uint32_t dynamicStateCount;
  2095. const VkDynamicState * pDynamicStates;
  2096. } VkPipelineDynamicStateCreateInfo;
  2097. typedef struct VkPipelineDepthStencilStateCreateInfo {
  2098. VkStructureType sType;
  2099. const void * pNext;
  2100. VkPipelineDepthStencilStateCreateFlags flags;
  2101. VkBool32 depthTestEnable;
  2102. VkBool32 depthWriteEnable;
  2103. VkCompareOp depthCompareOp;
  2104. VkBool32 depthBoundsTestEnable;
  2105. VkBool32 stencilTestEnable;
  2106. VkStencilOpState front;
  2107. VkStencilOpState back;
  2108. float minDepthBounds;
  2109. float maxDepthBounds;
  2110. } VkPipelineDepthStencilStateCreateInfo;
  2111. typedef struct VkGraphicsPipelineCreateInfo {
  2112. VkStructureType sType;
  2113. const void * pNext;
  2114. VkPipelineCreateFlags flags;
  2115. uint32_t stageCount;
  2116. const VkPipelineShaderStageCreateInfo * pStages;
  2117. const VkPipelineVertexInputStateCreateInfo * pVertexInputState;
  2118. const VkPipelineInputAssemblyStateCreateInfo * pInputAssemblyState;
  2119. const VkPipelineTessellationStateCreateInfo * pTessellationState;
  2120. const VkPipelineViewportStateCreateInfo * pViewportState;
  2121. const VkPipelineRasterizationStateCreateInfo * pRasterizationState;
  2122. const VkPipelineMultisampleStateCreateInfo * pMultisampleState;
  2123. const VkPipelineDepthStencilStateCreateInfo * pDepthStencilState;
  2124. const VkPipelineColorBlendStateCreateInfo * pColorBlendState;
  2125. const VkPipelineDynamicStateCreateInfo * pDynamicState;
  2126. VkPipelineLayout layout;
  2127. VkRenderPass renderPass;
  2128. uint32_t subpass;
  2129. VkPipeline basePipelineHandle;
  2130. int32_t basePipelineIndex;
  2131. } VkGraphicsPipelineCreateInfo;
  2132. typedef struct VkPipelineCacheCreateInfo {
  2133. VkStructureType sType;
  2134. const void * pNext;
  2135. VkPipelineCacheCreateFlags flags;
  2136. size_t initialDataSize;
  2137. const void * pInitialData;
  2138. } VkPipelineCacheCreateInfo;
  2139. typedef struct VkPushConstantRange {
  2140. VkShaderStageFlags stageFlags;
  2141. uint32_t offset;
  2142. uint32_t size;
  2143. } VkPushConstantRange;
  2144. typedef struct VkPipelineLayoutCreateInfo {
  2145. VkStructureType sType;
  2146. const void * pNext;
  2147. VkPipelineLayoutCreateFlags flags;
  2148. uint32_t setLayoutCount;
  2149. const VkDescriptorSetLayout * pSetLayouts;
  2150. uint32_t pushConstantRangeCount;
  2151. const VkPushConstantRange * pPushConstantRanges;
  2152. } VkPipelineLayoutCreateInfo;
  2153. typedef struct VkSamplerCreateInfo {
  2154. VkStructureType sType;
  2155. const void * pNext;
  2156. VkSamplerCreateFlags flags;
  2157. VkFilter magFilter;
  2158. VkFilter minFilter;
  2159. VkSamplerMipmapMode mipmapMode;
  2160. VkSamplerAddressMode addressModeU;
  2161. VkSamplerAddressMode addressModeV;
  2162. VkSamplerAddressMode addressModeW;
  2163. float mipLodBias;
  2164. VkBool32 anisotropyEnable;
  2165. float maxAnisotropy;
  2166. VkBool32 compareEnable;
  2167. VkCompareOp compareOp;
  2168. float minLod;
  2169. float maxLod;
  2170. VkBorderColor borderColor;
  2171. VkBool32 unnormalizedCoordinates;
  2172. } VkSamplerCreateInfo;
  2173. typedef struct VkCommandPoolCreateInfo {
  2174. VkStructureType sType;
  2175. const void * pNext;
  2176. VkCommandPoolCreateFlags flags;
  2177. uint32_t queueFamilyIndex;
  2178. } VkCommandPoolCreateInfo;
  2179. typedef struct VkCommandBufferInheritanceInfo {
  2180. VkStructureType sType;
  2181. const void * pNext;
  2182. VkRenderPass renderPass;
  2183. uint32_t subpass;
  2184. VkFramebuffer framebuffer;
  2185. VkBool32 occlusionQueryEnable;
  2186. VkQueryControlFlags queryFlags;
  2187. VkQueryPipelineStatisticFlags pipelineStatistics;
  2188. } VkCommandBufferInheritanceInfo;
  2189. typedef struct VkCommandBufferBeginInfo {
  2190. VkStructureType sType;
  2191. const void * pNext;
  2192. VkCommandBufferUsageFlags flags;
  2193. const VkCommandBufferInheritanceInfo * pInheritanceInfo;
  2194. } VkCommandBufferBeginInfo;
  2195. typedef struct VkRenderPassBeginInfo {
  2196. VkStructureType sType;
  2197. const void * pNext;
  2198. VkRenderPass renderPass;
  2199. VkFramebuffer framebuffer;
  2200. VkRect2D renderArea;
  2201. uint32_t clearValueCount;
  2202. const VkClearValue * pClearValues;
  2203. } VkRenderPassBeginInfo;
  2204. typedef struct VkClearAttachment {
  2205. VkImageAspectFlags aspectMask;
  2206. uint32_t colorAttachment;
  2207. VkClearValue clearValue;
  2208. } VkClearAttachment;
  2209. typedef struct VkAttachmentDescription {
  2210. VkAttachmentDescriptionFlags flags;
  2211. VkFormat format;
  2212. VkSampleCountFlagBits samples;
  2213. VkAttachmentLoadOp loadOp;
  2214. VkAttachmentStoreOp storeOp;
  2215. VkAttachmentLoadOp stencilLoadOp;
  2216. VkAttachmentStoreOp stencilStoreOp;
  2217. VkImageLayout initialLayout;
  2218. VkImageLayout finalLayout;
  2219. } VkAttachmentDescription;
  2220. typedef struct VkSubpassDescription {
  2221. VkSubpassDescriptionFlags flags;
  2222. VkPipelineBindPoint pipelineBindPoint;
  2223. uint32_t inputAttachmentCount;
  2224. const VkAttachmentReference * pInputAttachments;
  2225. uint32_t colorAttachmentCount;
  2226. const VkAttachmentReference * pColorAttachments;
  2227. const VkAttachmentReference * pResolveAttachments;
  2228. const VkAttachmentReference * pDepthStencilAttachment;
  2229. uint32_t preserveAttachmentCount;
  2230. const uint32_t * pPreserveAttachments;
  2231. } VkSubpassDescription;
  2232. typedef struct VkSubpassDependency {
  2233. uint32_t srcSubpass;
  2234. uint32_t dstSubpass;
  2235. VkPipelineStageFlags srcStageMask;
  2236. VkPipelineStageFlags dstStageMask;
  2237. VkAccessFlags srcAccessMask;
  2238. VkAccessFlags dstAccessMask;
  2239. VkDependencyFlags dependencyFlags;
  2240. } VkSubpassDependency;
  2241. typedef struct VkRenderPassCreateInfo {
  2242. VkStructureType sType;
  2243. const void * pNext;
  2244. VkRenderPassCreateFlags flags;
  2245. uint32_t attachmentCount;
  2246. const VkAttachmentDescription * pAttachments;
  2247. uint32_t subpassCount;
  2248. const VkSubpassDescription * pSubpasses;
  2249. uint32_t dependencyCount;
  2250. const VkSubpassDependency * pDependencies;
  2251. } VkRenderPassCreateInfo;
  2252. typedef struct VkEventCreateInfo {
  2253. VkStructureType sType;
  2254. const void * pNext;
  2255. VkEventCreateFlags flags;
  2256. } VkEventCreateInfo;
  2257. typedef struct VkFenceCreateInfo {
  2258. VkStructureType sType;
  2259. const void * pNext;
  2260. VkFenceCreateFlags flags;
  2261. } VkFenceCreateInfo;
  2262. typedef struct VkPhysicalDeviceFeatures {
  2263. VkBool32 robustBufferAccess;
  2264. VkBool32 fullDrawIndexUint32;
  2265. VkBool32 imageCubeArray;
  2266. VkBool32 independentBlend;
  2267. VkBool32 geometryShader;
  2268. VkBool32 tessellationShader;
  2269. VkBool32 sampleRateShading;
  2270. VkBool32 dualSrcBlend;
  2271. VkBool32 logicOp;
  2272. VkBool32 multiDrawIndirect;
  2273. VkBool32 drawIndirectFirstInstance;
  2274. VkBool32 depthClamp;
  2275. VkBool32 depthBiasClamp;
  2276. VkBool32 fillModeNonSolid;
  2277. VkBool32 depthBounds;
  2278. VkBool32 wideLines;
  2279. VkBool32 largePoints;
  2280. VkBool32 alphaToOne;
  2281. VkBool32 multiViewport;
  2282. VkBool32 samplerAnisotropy;
  2283. VkBool32 textureCompressionETC2;
  2284. VkBool32 textureCompressionASTC_LDR;
  2285. VkBool32 textureCompressionBC;
  2286. VkBool32 occlusionQueryPrecise;
  2287. VkBool32 pipelineStatisticsQuery;
  2288. VkBool32 vertexPipelineStoresAndAtomics;
  2289. VkBool32 fragmentStoresAndAtomics;
  2290. VkBool32 shaderTessellationAndGeometryPointSize;
  2291. VkBool32 shaderImageGatherExtended;
  2292. VkBool32 shaderStorageImageExtendedFormats;
  2293. VkBool32 shaderStorageImageMultisample;
  2294. VkBool32 shaderStorageImageReadWithoutFormat;
  2295. VkBool32 shaderStorageImageWriteWithoutFormat;
  2296. VkBool32 shaderUniformBufferArrayDynamicIndexing;
  2297. VkBool32 shaderSampledImageArrayDynamicIndexing;
  2298. VkBool32 shaderStorageBufferArrayDynamicIndexing;
  2299. VkBool32 shaderStorageImageArrayDynamicIndexing;
  2300. VkBool32 shaderClipDistance;
  2301. VkBool32 shaderCullDistance;
  2302. VkBool32 shaderFloat64;
  2303. VkBool32 shaderInt64;
  2304. VkBool32 shaderInt16;
  2305. VkBool32 shaderResourceResidency;
  2306. VkBool32 shaderResourceMinLod;
  2307. VkBool32 sparseBinding;
  2308. VkBool32 sparseResidencyBuffer;
  2309. VkBool32 sparseResidencyImage2D;
  2310. VkBool32 sparseResidencyImage3D;
  2311. VkBool32 sparseResidency2Samples;
  2312. VkBool32 sparseResidency4Samples;
  2313. VkBool32 sparseResidency8Samples;
  2314. VkBool32 sparseResidency16Samples;
  2315. VkBool32 sparseResidencyAliased;
  2316. VkBool32 variableMultisampleRate;
  2317. VkBool32 inheritedQueries;
  2318. } VkPhysicalDeviceFeatures;
  2319. typedef struct VkPhysicalDeviceSparseProperties {
  2320. VkBool32 residencyStandard2DBlockShape;
  2321. VkBool32 residencyStandard2DMultisampleBlockShape;
  2322. VkBool32 residencyStandard3DBlockShape;
  2323. VkBool32 residencyAlignedMipSize;
  2324. VkBool32 residencyNonResidentStrict;
  2325. } VkPhysicalDeviceSparseProperties;
  2326. typedef struct VkPhysicalDeviceLimits {
  2327. uint32_t maxImageDimension1D;
  2328. uint32_t maxImageDimension2D;
  2329. uint32_t maxImageDimension3D;
  2330. uint32_t maxImageDimensionCube;
  2331. uint32_t maxImageArrayLayers;
  2332. uint32_t maxTexelBufferElements;
  2333. uint32_t maxUniformBufferRange;
  2334. uint32_t maxStorageBufferRange;
  2335. uint32_t maxPushConstantsSize;
  2336. uint32_t maxMemoryAllocationCount;
  2337. uint32_t maxSamplerAllocationCount;
  2338. VkDeviceSize bufferImageGranularity;
  2339. VkDeviceSize sparseAddressSpaceSize;
  2340. uint32_t maxBoundDescriptorSets;
  2341. uint32_t maxPerStageDescriptorSamplers;
  2342. uint32_t maxPerStageDescriptorUniformBuffers;
  2343. uint32_t maxPerStageDescriptorStorageBuffers;
  2344. uint32_t maxPerStageDescriptorSampledImages;
  2345. uint32_t maxPerStageDescriptorStorageImages;
  2346. uint32_t maxPerStageDescriptorInputAttachments;
  2347. uint32_t maxPerStageResources;
  2348. uint32_t maxDescriptorSetSamplers;
  2349. uint32_t maxDescriptorSetUniformBuffers;
  2350. uint32_t maxDescriptorSetUniformBuffersDynamic;
  2351. uint32_t maxDescriptorSetStorageBuffers;
  2352. uint32_t maxDescriptorSetStorageBuffersDynamic;
  2353. uint32_t maxDescriptorSetSampledImages;
  2354. uint32_t maxDescriptorSetStorageImages;
  2355. uint32_t maxDescriptorSetInputAttachments;
  2356. uint32_t maxVertexInputAttributes;
  2357. uint32_t maxVertexInputBindings;
  2358. uint32_t maxVertexInputAttributeOffset;
  2359. uint32_t maxVertexInputBindingStride;
  2360. uint32_t maxVertexOutputComponents;
  2361. uint32_t maxTessellationGenerationLevel;
  2362. uint32_t maxTessellationPatchSize;
  2363. uint32_t maxTessellationControlPerVertexInputComponents;
  2364. uint32_t maxTessellationControlPerVertexOutputComponents;
  2365. uint32_t maxTessellationControlPerPatchOutputComponents;
  2366. uint32_t maxTessellationControlTotalOutputComponents;
  2367. uint32_t maxTessellationEvaluationInputComponents;
  2368. uint32_t maxTessellationEvaluationOutputComponents;
  2369. uint32_t maxGeometryShaderInvocations;
  2370. uint32_t maxGeometryInputComponents;
  2371. uint32_t maxGeometryOutputComponents;
  2372. uint32_t maxGeometryOutputVertices;
  2373. uint32_t maxGeometryTotalOutputComponents;
  2374. uint32_t maxFragmentInputComponents;
  2375. uint32_t maxFragmentOutputAttachments;
  2376. uint32_t maxFragmentDualSrcAttachments;
  2377. uint32_t maxFragmentCombinedOutputResources;
  2378. uint32_t maxComputeSharedMemorySize;
  2379. uint32_t maxComputeWorkGroupCount [3];
  2380. uint32_t maxComputeWorkGroupInvocations;
  2381. uint32_t maxComputeWorkGroupSize [3];
  2382. uint32_t subPixelPrecisionBits;
  2383. uint32_t subTexelPrecisionBits;
  2384. uint32_t mipmapPrecisionBits;
  2385. uint32_t maxDrawIndexedIndexValue;
  2386. uint32_t maxDrawIndirectCount;
  2387. float maxSamplerLodBias;
  2388. float maxSamplerAnisotropy;
  2389. uint32_t maxViewports;
  2390. uint32_t maxViewportDimensions [2];
  2391. float viewportBoundsRange [2];
  2392. uint32_t viewportSubPixelBits;
  2393. size_t minMemoryMapAlignment;
  2394. VkDeviceSize minTexelBufferOffsetAlignment;
  2395. VkDeviceSize minUniformBufferOffsetAlignment;
  2396. VkDeviceSize minStorageBufferOffsetAlignment;
  2397. int32_t minTexelOffset;
  2398. uint32_t maxTexelOffset;
  2399. int32_t minTexelGatherOffset;
  2400. uint32_t maxTexelGatherOffset;
  2401. float minInterpolationOffset;
  2402. float maxInterpolationOffset;
  2403. uint32_t subPixelInterpolationOffsetBits;
  2404. uint32_t maxFramebufferWidth;
  2405. uint32_t maxFramebufferHeight;
  2406. uint32_t maxFramebufferLayers;
  2407. VkSampleCountFlags framebufferColorSampleCounts;
  2408. VkSampleCountFlags framebufferDepthSampleCounts;
  2409. VkSampleCountFlags framebufferStencilSampleCounts;
  2410. VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
  2411. uint32_t maxColorAttachments;
  2412. VkSampleCountFlags sampledImageColorSampleCounts;
  2413. VkSampleCountFlags sampledImageIntegerSampleCounts;
  2414. VkSampleCountFlags sampledImageDepthSampleCounts;
  2415. VkSampleCountFlags sampledImageStencilSampleCounts;
  2416. VkSampleCountFlags storageImageSampleCounts;
  2417. uint32_t maxSampleMaskWords;
  2418. VkBool32 timestampComputeAndGraphics;
  2419. float timestampPeriod;
  2420. uint32_t maxClipDistances;
  2421. uint32_t maxCullDistances;
  2422. uint32_t maxCombinedClipAndCullDistances;
  2423. uint32_t discreteQueuePriorities;
  2424. float pointSizeRange [2];
  2425. float lineWidthRange [2];
  2426. float pointSizeGranularity;
  2427. float lineWidthGranularity;
  2428. VkBool32 strictLines;
  2429. VkBool32 standardSampleLocations;
  2430. VkDeviceSize optimalBufferCopyOffsetAlignment;
  2431. VkDeviceSize optimalBufferCopyRowPitchAlignment;
  2432. VkDeviceSize nonCoherentAtomSize;
  2433. } VkPhysicalDeviceLimits;
  2434. typedef struct VkSemaphoreCreateInfo {
  2435. VkStructureType sType;
  2436. const void * pNext;
  2437. VkSemaphoreCreateFlags flags;
  2438. } VkSemaphoreCreateInfo;
  2439. typedef struct VkQueryPoolCreateInfo {
  2440. VkStructureType sType;
  2441. const void * pNext;
  2442. VkQueryPoolCreateFlags flags;
  2443. VkQueryType queryType;
  2444. uint32_t queryCount;
  2445. VkQueryPipelineStatisticFlags pipelineStatistics;
  2446. } VkQueryPoolCreateInfo;
  2447. typedef struct VkFramebufferCreateInfo {
  2448. VkStructureType sType;
  2449. const void * pNext;
  2450. VkFramebufferCreateFlags flags;
  2451. VkRenderPass renderPass;
  2452. uint32_t attachmentCount;
  2453. const VkImageView * pAttachments;
  2454. uint32_t width;
  2455. uint32_t height;
  2456. uint32_t layers;
  2457. } VkFramebufferCreateInfo;
  2458. typedef struct VkSubmitInfo {
  2459. VkStructureType sType;
  2460. const void * pNext;
  2461. uint32_t waitSemaphoreCount;
  2462. const VkSemaphore * pWaitSemaphores;
  2463. const VkPipelineStageFlags * pWaitDstStageMask;
  2464. uint32_t commandBufferCount;
  2465. const VkCommandBuffer * pCommandBuffers;
  2466. uint32_t signalSemaphoreCount;
  2467. const VkSemaphore * pSignalSemaphores;
  2468. } VkSubmitInfo;
  2469. typedef struct VkSurfaceCapabilitiesKHR {
  2470. uint32_t minImageCount;
  2471. uint32_t maxImageCount;
  2472. VkExtent2D currentExtent;
  2473. VkExtent2D minImageExtent;
  2474. VkExtent2D maxImageExtent;
  2475. uint32_t maxImageArrayLayers;
  2476. VkSurfaceTransformFlagsKHR supportedTransforms;
  2477. VkSurfaceTransformFlagBitsKHR currentTransform;
  2478. VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
  2479. VkImageUsageFlags supportedUsageFlags;
  2480. } VkSurfaceCapabilitiesKHR;
  2481. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  2482. typedef struct VkWin32SurfaceCreateInfoKHR {
  2483. VkStructureType sType;
  2484. const void * pNext;
  2485. VkWin32SurfaceCreateFlagsKHR flags;
  2486. HINSTANCE hinstance;
  2487. HWND hwnd;
  2488. } VkWin32SurfaceCreateInfoKHR;
  2489. #endif
  2490. #if defined(VK_USE_PLATFORM_XCB_KHR)
  2491. typedef struct VkXcbSurfaceCreateInfoKHR {
  2492. VkStructureType sType;
  2493. const void * pNext;
  2494. VkXcbSurfaceCreateFlagsKHR flags;
  2495. xcb_connection_t * connection;
  2496. xcb_window_t window;
  2497. } VkXcbSurfaceCreateInfoKHR;
  2498. #endif
  2499. typedef struct VkSwapchainCreateInfoKHR {
  2500. VkStructureType sType;
  2501. const void * pNext;
  2502. VkSwapchainCreateFlagsKHR flags;
  2503. VkSurfaceKHR surface;
  2504. uint32_t minImageCount;
  2505. VkFormat imageFormat;
  2506. VkColorSpaceKHR imageColorSpace;
  2507. VkExtent2D imageExtent;
  2508. uint32_t imageArrayLayers;
  2509. VkImageUsageFlags imageUsage;
  2510. VkSharingMode imageSharingMode;
  2511. uint32_t queueFamilyIndexCount;
  2512. const uint32_t * pQueueFamilyIndices;
  2513. VkSurfaceTransformFlagBitsKHR preTransform;
  2514. VkCompositeAlphaFlagBitsKHR compositeAlpha;
  2515. VkPresentModeKHR presentMode;
  2516. VkBool32 clipped;
  2517. VkSwapchainKHR oldSwapchain;
  2518. } VkSwapchainCreateInfoKHR;
  2519. typedef struct VkDebugReportCallbackCreateInfoEXT {
  2520. VkStructureType sType;
  2521. const void * pNext;
  2522. VkDebugReportFlagsEXT flags;
  2523. PFN_vkDebugReportCallbackEXT pfnCallback;
  2524. void * pUserData;
  2525. } VkDebugReportCallbackCreateInfoEXT;
  2526. typedef struct VkPhysicalDeviceFeatures2 {
  2527. VkStructureType sType;
  2528. void * pNext;
  2529. VkPhysicalDeviceFeatures features;
  2530. } VkPhysicalDeviceFeatures2;
  2531. typedef struct VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
  2532. typedef struct VkFormatProperties2 {
  2533. VkStructureType sType;
  2534. void * pNext;
  2535. VkFormatProperties formatProperties;
  2536. } VkFormatProperties2;
  2537. typedef struct VkFormatProperties2 VkFormatProperties2KHR;
  2538. typedef struct VkImageFormatProperties2 {
  2539. VkStructureType sType;
  2540. void * pNext;
  2541. VkImageFormatProperties imageFormatProperties;
  2542. } VkImageFormatProperties2;
  2543. typedef struct VkImageFormatProperties2 VkImageFormatProperties2KHR;
  2544. typedef struct VkPhysicalDeviceImageFormatInfo2 {
  2545. VkStructureType sType;
  2546. const void * pNext;
  2547. VkFormat format;
  2548. VkImageType type;
  2549. VkImageTiling tiling;
  2550. VkImageUsageFlags usage;
  2551. VkImageCreateFlags flags;
  2552. } VkPhysicalDeviceImageFormatInfo2;
  2553. typedef struct VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
  2554. typedef struct VkQueueFamilyProperties2 {
  2555. VkStructureType sType;
  2556. void * pNext;
  2557. VkQueueFamilyProperties queueFamilyProperties;
  2558. } VkQueueFamilyProperties2;
  2559. typedef struct VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
  2560. typedef struct VkSparseImageFormatProperties2 {
  2561. VkStructureType sType;
  2562. void * pNext;
  2563. VkSparseImageFormatProperties properties;
  2564. } VkSparseImageFormatProperties2;
  2565. typedef struct VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
  2566. typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
  2567. VkStructureType sType;
  2568. const void * pNext;
  2569. VkFormat format;
  2570. VkImageType type;
  2571. VkSampleCountFlagBits samples;
  2572. VkImageUsageFlags usage;
  2573. VkImageTiling tiling;
  2574. } VkPhysicalDeviceSparseImageFormatInfo2;
  2575. typedef struct VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
  2576. typedef struct VkDeviceGroupPresentCapabilitiesKHR {
  2577. VkStructureType sType;
  2578. void * pNext;
  2579. uint32_t presentMask [ VK_MAX_DEVICE_GROUP_SIZE ];
  2580. VkDeviceGroupPresentModeFlagsKHR modes;
  2581. } VkDeviceGroupPresentCapabilitiesKHR;
  2582. typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
  2583. VkStructureType sType;
  2584. const void * pNext;
  2585. VkDeviceGroupPresentModeFlagsKHR modes;
  2586. } VkDeviceGroupSwapchainCreateInfoKHR;
  2587. typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
  2588. VkStructureType sType;
  2589. void * pNext;
  2590. VkBool32 shaderSubgroupExtendedTypes;
  2591. } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  2592. typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
  2593. typedef struct VkDebugUtilsMessengerCallbackDataEXT {
  2594. VkStructureType sType;
  2595. const void * pNext;
  2596. VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
  2597. const char * pMessageIdName;
  2598. int32_t messageIdNumber;
  2599. const char * pMessage;
  2600. uint32_t queueLabelCount;
  2601. const VkDebugUtilsLabelEXT * pQueueLabels;
  2602. uint32_t cmdBufLabelCount;
  2603. const VkDebugUtilsLabelEXT * pCmdBufLabels;
  2604. uint32_t objectCount;
  2605. const VkDebugUtilsObjectNameInfoEXT * pObjects;
  2606. } VkDebugUtilsMessengerCallbackDataEXT;
  2607. typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
  2608. VkStructureType sType;
  2609. void * pNext;
  2610. VkBool32 scalarBlockLayout;
  2611. } VkPhysicalDeviceScalarBlockLayoutFeatures;
  2612. typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
  2613. typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
  2614. VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
  2615. VkDebugUtilsMessageTypeFlagsEXT messageTypes,
  2616. const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
  2617. void* pUserData);
  2618. typedef struct VkPhysicalDeviceProperties {
  2619. uint32_t apiVersion;
  2620. uint32_t driverVersion;
  2621. uint32_t vendorID;
  2622. uint32_t deviceID;
  2623. VkPhysicalDeviceType deviceType;
  2624. char deviceName [ VK_MAX_PHYSICAL_DEVICE_NAME_SIZE ];
  2625. uint8_t pipelineCacheUUID [ VK_UUID_SIZE ];
  2626. VkPhysicalDeviceLimits limits;
  2627. VkPhysicalDeviceSparseProperties sparseProperties;
  2628. } VkPhysicalDeviceProperties;
  2629. typedef struct VkDeviceCreateInfo {
  2630. VkStructureType sType;
  2631. const void * pNext;
  2632. VkDeviceCreateFlags flags;
  2633. uint32_t queueCreateInfoCount;
  2634. const VkDeviceQueueCreateInfo * pQueueCreateInfos;
  2635. uint32_t enabledLayerCount;
  2636. const char * const* ppEnabledLayerNames;
  2637. uint32_t enabledExtensionCount;
  2638. const char * const* ppEnabledExtensionNames;
  2639. const VkPhysicalDeviceFeatures * pEnabledFeatures;
  2640. } VkDeviceCreateInfo;
  2641. typedef struct VkPhysicalDeviceMemoryProperties {
  2642. uint32_t memoryTypeCount;
  2643. VkMemoryType memoryTypes [ VK_MAX_MEMORY_TYPES ];
  2644. uint32_t memoryHeapCount;
  2645. VkMemoryHeap memoryHeaps [ VK_MAX_MEMORY_HEAPS ];
  2646. } VkPhysicalDeviceMemoryProperties;
  2647. typedef struct VkPhysicalDeviceProperties2 {
  2648. VkStructureType sType;
  2649. void * pNext;
  2650. VkPhysicalDeviceProperties properties;
  2651. } VkPhysicalDeviceProperties2;
  2652. typedef struct VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
  2653. typedef struct VkPhysicalDeviceMemoryProperties2 {
  2654. VkStructureType sType;
  2655. void * pNext;
  2656. VkPhysicalDeviceMemoryProperties memoryProperties;
  2657. } VkPhysicalDeviceMemoryProperties2;
  2658. typedef struct VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
  2659. typedef struct VkDebugUtilsMessengerCreateInfoEXT {
  2660. VkStructureType sType;
  2661. const void * pNext;
  2662. VkDebugUtilsMessengerCreateFlagsEXT flags;
  2663. VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
  2664. VkDebugUtilsMessageTypeFlagsEXT messageType;
  2665. PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
  2666. void * pUserData;
  2667. } VkDebugUtilsMessengerCreateInfoEXT;
  2668. #define VK_VERSION_1_0 1
  2669. GLAD_API_CALL int GLAD_VK_VERSION_1_0;
  2670. #define VK_EXT_debug_report 1
  2671. GLAD_API_CALL int GLAD_VK_EXT_debug_report;
  2672. #define VK_EXT_debug_utils 1
  2673. GLAD_API_CALL int GLAD_VK_EXT_debug_utils;
  2674. #define VK_EXT_scalar_block_layout 1
  2675. GLAD_API_CALL int GLAD_VK_EXT_scalar_block_layout;
  2676. #define VK_EXT_validation_features 1
  2677. GLAD_API_CALL int GLAD_VK_EXT_validation_features;
  2678. #define VK_KHR_get_physical_device_properties2 1
  2679. GLAD_API_CALL int GLAD_VK_KHR_get_physical_device_properties2;
  2680. #define VK_KHR_portability_enumeration 1
  2681. GLAD_API_CALL int GLAD_VK_KHR_portability_enumeration;
  2682. #define VK_KHR_shader_subgroup_extended_types 1
  2683. GLAD_API_CALL int GLAD_VK_KHR_shader_subgroup_extended_types;
  2684. #define VK_KHR_surface 1
  2685. GLAD_API_CALL int GLAD_VK_KHR_surface;
  2686. #define VK_KHR_swapchain 1
  2687. GLAD_API_CALL int GLAD_VK_KHR_swapchain;
  2688. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  2689. #define VK_KHR_win32_surface 1
  2690. GLAD_API_CALL int GLAD_VK_KHR_win32_surface;
  2691. #endif
  2692. #if defined(VK_USE_PLATFORM_XCB_KHR)
  2693. #define VK_KHR_xcb_surface 1
  2694. GLAD_API_CALL int GLAD_VK_KHR_xcb_surface;
  2695. #endif
  2696. typedef VkResult (GLAD_API_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR * pAcquireInfo, uint32_t * pImageIndex);
  2697. typedef VkResult (GLAD_API_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t * pImageIndex);
  2698. typedef VkResult (GLAD_API_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo * pAllocateInfo, VkCommandBuffer * pCommandBuffers);
  2699. typedef VkResult (GLAD_API_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo * pAllocateInfo, VkDescriptorSet * pDescriptorSets);
  2700. typedef VkResult (GLAD_API_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo * pAllocateInfo, const VkAllocationCallbacks * pAllocator, VkDeviceMemory * pMemory);
  2701. typedef VkResult (GLAD_API_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo * pBeginInfo);
  2702. typedef VkResult (GLAD_API_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  2703. typedef VkResult (GLAD_API_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  2704. typedef void (GLAD_API_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT * pLabelInfo);
  2705. typedef void (GLAD_API_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
  2706. typedef void (GLAD_API_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo * pRenderPassBegin, VkSubpassContents contents);
  2707. typedef void (GLAD_API_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet * pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t * pDynamicOffsets);
  2708. typedef void (GLAD_API_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
  2709. typedef void (GLAD_API_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
  2710. typedef void (GLAD_API_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer * pBuffers, const VkDeviceSize * pOffsets);
  2711. typedef void (GLAD_API_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit * pRegions, VkFilter filter);
  2712. typedef void (GLAD_API_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment * pAttachments, uint32_t rectCount, const VkClearRect * pRects);
  2713. typedef void (GLAD_API_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue * pColor, uint32_t rangeCount, const VkImageSubresourceRange * pRanges);
  2714. typedef void (GLAD_API_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue * pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange * pRanges);
  2715. typedef void (GLAD_API_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy * pRegions);
  2716. typedef void (GLAD_API_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy * pRegions);
  2717. typedef void (GLAD_API_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy * pRegions);
  2718. typedef void (GLAD_API_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy * pRegions);
  2719. typedef void (GLAD_API_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
  2720. typedef void (GLAD_API_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  2721. typedef void (GLAD_API_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
  2722. typedef void (GLAD_API_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
  2723. typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
  2724. typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  2725. typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  2726. typedef void (GLAD_API_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
  2727. typedef void (GLAD_API_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
  2728. typedef void (GLAD_API_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
  2729. typedef void (GLAD_API_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers);
  2730. typedef void (GLAD_API_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
  2731. typedef void (GLAD_API_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT * pLabelInfo);
  2732. typedef void (GLAD_API_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
  2733. typedef void (GLAD_API_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier * pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier * pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier * pImageMemoryBarriers);
  2734. typedef void (GLAD_API_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void * pValues);
  2735. typedef void (GLAD_API_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  2736. typedef void (GLAD_API_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  2737. typedef void (GLAD_API_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve * pRegions);
  2738. typedef void (GLAD_API_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants [4]);
  2739. typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
  2740. typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
  2741. typedef void (GLAD_API_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  2742. typedef void (GLAD_API_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
  2743. typedef void (GLAD_API_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D * pScissors);
  2744. typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
  2745. typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
  2746. typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
  2747. typedef void (GLAD_API_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport * pViewports);
  2748. typedef void (GLAD_API_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void * pData);
  2749. typedef void (GLAD_API_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent * pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier * pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier * pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier * pImageMemoryBarriers);
  2750. typedef void (GLAD_API_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
  2751. typedef VkResult (GLAD_API_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkBuffer * pBuffer);
  2752. typedef VkResult (GLAD_API_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkBufferView * pView);
  2753. typedef VkResult (GLAD_API_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkCommandPool * pCommandPool);
  2754. typedef VkResult (GLAD_API_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkPipeline * pPipelines);
  2755. typedef VkResult (GLAD_API_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDebugReportCallbackEXT * pCallback);
  2756. typedef VkResult (GLAD_API_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDebugUtilsMessengerEXT * pMessenger);
  2757. typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorPool * pDescriptorPool);
  2758. typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorSetLayout * pSetLayout);
  2759. typedef VkResult (GLAD_API_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDevice * pDevice);
  2760. typedef VkResult (GLAD_API_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkEvent * pEvent);
  2761. typedef VkResult (GLAD_API_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkFence * pFence);
  2762. typedef VkResult (GLAD_API_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkFramebuffer * pFramebuffer);
  2763. typedef VkResult (GLAD_API_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkPipeline * pPipelines);
  2764. typedef VkResult (GLAD_API_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkImage * pImage);
  2765. typedef VkResult (GLAD_API_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkImageView * pView);
  2766. typedef VkResult (GLAD_API_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkInstance * pInstance);
  2767. typedef VkResult (GLAD_API_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPipelineCache * pPipelineCache);
  2768. typedef VkResult (GLAD_API_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPipelineLayout * pPipelineLayout);
  2769. typedef VkResult (GLAD_API_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkQueryPool * pQueryPool);
  2770. typedef VkResult (GLAD_API_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkRenderPass * pRenderPass);
  2771. typedef VkResult (GLAD_API_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSampler * pSampler);
  2772. typedef VkResult (GLAD_API_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSemaphore * pSemaphore);
  2773. typedef VkResult (GLAD_API_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkShaderModule * pShaderModule);
  2774. typedef VkResult (GLAD_API_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSwapchainKHR * pSwapchain);
  2775. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  2776. typedef VkResult (GLAD_API_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
  2777. #endif
  2778. #if defined(VK_USE_PLATFORM_XCB_KHR)
  2779. typedef VkResult (GLAD_API_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
  2780. #endif
  2781. typedef void (GLAD_API_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char * pLayerPrefix, const char * pMessage);
  2782. typedef void (GLAD_API_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks * pAllocator);
  2783. typedef void (GLAD_API_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks * pAllocator);
  2784. typedef void (GLAD_API_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks * pAllocator);
  2785. typedef void (GLAD_API_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks * pAllocator);
  2786. typedef void (GLAD_API_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks * pAllocator);
  2787. typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks * pAllocator);
  2788. typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks * pAllocator);
  2789. typedef void (GLAD_API_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks * pAllocator);
  2790. typedef void (GLAD_API_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks * pAllocator);
  2791. typedef void (GLAD_API_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks * pAllocator);
  2792. typedef void (GLAD_API_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks * pAllocator);
  2793. typedef void (GLAD_API_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks * pAllocator);
  2794. typedef void (GLAD_API_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks * pAllocator);
  2795. typedef void (GLAD_API_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks * pAllocator);
  2796. typedef void (GLAD_API_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks * pAllocator);
  2797. typedef void (GLAD_API_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks * pAllocator);
  2798. typedef void (GLAD_API_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks * pAllocator);
  2799. typedef void (GLAD_API_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks * pAllocator);
  2800. typedef void (GLAD_API_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks * pAllocator);
  2801. typedef void (GLAD_API_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks * pAllocator);
  2802. typedef void (GLAD_API_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks * pAllocator);
  2803. typedef void (GLAD_API_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks * pAllocator);
  2804. typedef void (GLAD_API_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks * pAllocator);
  2805. typedef void (GLAD_API_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks * pAllocator);
  2806. typedef VkResult (GLAD_API_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
  2807. typedef VkResult (GLAD_API_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
  2808. typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char * pLayerName, uint32_t * pPropertyCount, VkExtensionProperties * pProperties);
  2809. typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkLayerProperties * pProperties);
  2810. typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char * pLayerName, uint32_t * pPropertyCount, VkExtensionProperties * pProperties);
  2811. typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t * pPropertyCount, VkLayerProperties * pProperties);
  2812. typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t * pPhysicalDeviceCount, VkPhysicalDevice * pPhysicalDevices);
  2813. typedef VkResult (GLAD_API_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges);
  2814. typedef void (GLAD_API_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers);
  2815. typedef VkResult (GLAD_API_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet * pDescriptorSets);
  2816. typedef void (GLAD_API_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks * pAllocator);
  2817. typedef void (GLAD_API_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements * pMemoryRequirements);
  2818. typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities);
  2819. typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR * pModes);
  2820. typedef void (GLAD_API_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize * pCommittedMemoryInBytes);
  2821. typedef PFN_vkVoidFunction (GLAD_API_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char * pName);
  2822. typedef void (GLAD_API_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue * pQueue);
  2823. typedef VkResult (GLAD_API_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
  2824. typedef VkResult (GLAD_API_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
  2825. typedef void (GLAD_API_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements * pMemoryRequirements);
  2826. typedef void (GLAD_API_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t * pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements * pSparseMemoryRequirements);
  2827. typedef void (GLAD_API_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource * pSubresource, VkSubresourceLayout * pLayout);
  2828. typedef PFN_vkVoidFunction (GLAD_API_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char * pName);
  2829. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures * pFeatures);
  2830. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures);
  2831. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties * pFormatProperties);
  2832. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2 * pFormatProperties);
  2833. typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties * pImageFormatProperties);
  2834. typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo, VkImageFormatProperties2 * pImageFormatProperties);
  2835. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties * pMemoryProperties);
  2836. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties);
  2837. typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pRectCount, VkRect2D * pRects);
  2838. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties * pProperties);
  2839. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties);
  2840. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t * pQueueFamilyPropertyCount, VkQueueFamilyProperties * pQueueFamilyProperties);
  2841. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t * pQueueFamilyPropertyCount, VkQueueFamilyProperties2 * pQueueFamilyProperties);
  2842. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t * pPropertyCount, VkSparseImageFormatProperties * pProperties);
  2843. typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, uint32_t * pPropertyCount, VkSparseImageFormatProperties2 * pProperties);
  2844. typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR * pSurfaceCapabilities);
  2845. typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pSurfaceFormatCount, VkSurfaceFormatKHR * pSurfaceFormats);
  2846. typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pPresentModeCount, VkPresentModeKHR * pPresentModes);
  2847. typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32 * pSupported);
  2848. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  2849. typedef VkBool32 (GLAD_API_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
  2850. #endif
  2851. #if defined(VK_USE_PLATFORM_XCB_KHR)
  2852. typedef VkBool32 (GLAD_API_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t * connection, xcb_visualid_t visual_id);
  2853. #endif
  2854. typedef VkResult (GLAD_API_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t * pDataSize, void * pData);
  2855. typedef VkResult (GLAD_API_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void * pData, VkDeviceSize stride, VkQueryResultFlags flags);
  2856. typedef void (GLAD_API_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D * pGranularity);
  2857. typedef VkResult (GLAD_API_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t * pSwapchainImageCount, VkImage * pSwapchainImages);
  2858. typedef VkResult (GLAD_API_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges);
  2859. typedef VkResult (GLAD_API_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void ** ppData);
  2860. typedef VkResult (GLAD_API_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache * pSrcCaches);
  2861. typedef void (GLAD_API_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT * pLabelInfo);
  2862. typedef VkResult (GLAD_API_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo * pBindInfo, VkFence fence);
  2863. typedef void (GLAD_API_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
  2864. typedef void (GLAD_API_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT * pLabelInfo);
  2865. typedef VkResult (GLAD_API_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR * pPresentInfo);
  2866. typedef VkResult (GLAD_API_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo * pSubmits, VkFence fence);
  2867. typedef VkResult (GLAD_API_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
  2868. typedef VkResult (GLAD_API_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
  2869. typedef VkResult (GLAD_API_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
  2870. typedef VkResult (GLAD_API_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
  2871. typedef VkResult (GLAD_API_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
  2872. typedef VkResult (GLAD_API_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence * pFences);
  2873. typedef VkResult (GLAD_API_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT * pNameInfo);
  2874. typedef VkResult (GLAD_API_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT * pTagInfo);
  2875. typedef VkResult (GLAD_API_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
  2876. typedef void (GLAD_API_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData);
  2877. typedef void (GLAD_API_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
  2878. typedef void (GLAD_API_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet * pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet * pDescriptorCopies);
  2879. typedef VkResult (GLAD_API_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence * pFences, VkBool32 waitAll, uint64_t timeout);
  2880. GLAD_API_CALL PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR;
  2881. #define vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR
  2882. GLAD_API_CALL PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR;
  2883. #define vkAcquireNextImageKHR glad_vkAcquireNextImageKHR
  2884. GLAD_API_CALL PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers;
  2885. #define vkAllocateCommandBuffers glad_vkAllocateCommandBuffers
  2886. GLAD_API_CALL PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets;
  2887. #define vkAllocateDescriptorSets glad_vkAllocateDescriptorSets
  2888. GLAD_API_CALL PFN_vkAllocateMemory glad_vkAllocateMemory;
  2889. #define vkAllocateMemory glad_vkAllocateMemory
  2890. GLAD_API_CALL PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer;
  2891. #define vkBeginCommandBuffer glad_vkBeginCommandBuffer
  2892. GLAD_API_CALL PFN_vkBindBufferMemory glad_vkBindBufferMemory;
  2893. #define vkBindBufferMemory glad_vkBindBufferMemory
  2894. GLAD_API_CALL PFN_vkBindImageMemory glad_vkBindImageMemory;
  2895. #define vkBindImageMemory glad_vkBindImageMemory
  2896. GLAD_API_CALL PFN_vkCmdBeginDebugUtilsLabelEXT glad_vkCmdBeginDebugUtilsLabelEXT;
  2897. #define vkCmdBeginDebugUtilsLabelEXT glad_vkCmdBeginDebugUtilsLabelEXT
  2898. GLAD_API_CALL PFN_vkCmdBeginQuery glad_vkCmdBeginQuery;
  2899. #define vkCmdBeginQuery glad_vkCmdBeginQuery
  2900. GLAD_API_CALL PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass;
  2901. #define vkCmdBeginRenderPass glad_vkCmdBeginRenderPass
  2902. GLAD_API_CALL PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets;
  2903. #define vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets
  2904. GLAD_API_CALL PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer;
  2905. #define vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer
  2906. GLAD_API_CALL PFN_vkCmdBindPipeline glad_vkCmdBindPipeline;
  2907. #define vkCmdBindPipeline glad_vkCmdBindPipeline
  2908. GLAD_API_CALL PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers;
  2909. #define vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers
  2910. GLAD_API_CALL PFN_vkCmdBlitImage glad_vkCmdBlitImage;
  2911. #define vkCmdBlitImage glad_vkCmdBlitImage
  2912. GLAD_API_CALL PFN_vkCmdClearAttachments glad_vkCmdClearAttachments;
  2913. #define vkCmdClearAttachments glad_vkCmdClearAttachments
  2914. GLAD_API_CALL PFN_vkCmdClearColorImage glad_vkCmdClearColorImage;
  2915. #define vkCmdClearColorImage glad_vkCmdClearColorImage
  2916. GLAD_API_CALL PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage;
  2917. #define vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage
  2918. GLAD_API_CALL PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer;
  2919. #define vkCmdCopyBuffer glad_vkCmdCopyBuffer
  2920. GLAD_API_CALL PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage;
  2921. #define vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage
  2922. GLAD_API_CALL PFN_vkCmdCopyImage glad_vkCmdCopyImage;
  2923. #define vkCmdCopyImage glad_vkCmdCopyImage
  2924. GLAD_API_CALL PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer;
  2925. #define vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer
  2926. GLAD_API_CALL PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults;
  2927. #define vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults
  2928. GLAD_API_CALL PFN_vkCmdDispatch glad_vkCmdDispatch;
  2929. #define vkCmdDispatch glad_vkCmdDispatch
  2930. GLAD_API_CALL PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect;
  2931. #define vkCmdDispatchIndirect glad_vkCmdDispatchIndirect
  2932. GLAD_API_CALL PFN_vkCmdDraw glad_vkCmdDraw;
  2933. #define vkCmdDraw glad_vkCmdDraw
  2934. GLAD_API_CALL PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed;
  2935. #define vkCmdDrawIndexed glad_vkCmdDrawIndexed
  2936. GLAD_API_CALL PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect;
  2937. #define vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect
  2938. GLAD_API_CALL PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect;
  2939. #define vkCmdDrawIndirect glad_vkCmdDrawIndirect
  2940. GLAD_API_CALL PFN_vkCmdEndDebugUtilsLabelEXT glad_vkCmdEndDebugUtilsLabelEXT;
  2941. #define vkCmdEndDebugUtilsLabelEXT glad_vkCmdEndDebugUtilsLabelEXT
  2942. GLAD_API_CALL PFN_vkCmdEndQuery glad_vkCmdEndQuery;
  2943. #define vkCmdEndQuery glad_vkCmdEndQuery
  2944. GLAD_API_CALL PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass;
  2945. #define vkCmdEndRenderPass glad_vkCmdEndRenderPass
  2946. GLAD_API_CALL PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands;
  2947. #define vkCmdExecuteCommands glad_vkCmdExecuteCommands
  2948. GLAD_API_CALL PFN_vkCmdFillBuffer glad_vkCmdFillBuffer;
  2949. #define vkCmdFillBuffer glad_vkCmdFillBuffer
  2950. GLAD_API_CALL PFN_vkCmdInsertDebugUtilsLabelEXT glad_vkCmdInsertDebugUtilsLabelEXT;
  2951. #define vkCmdInsertDebugUtilsLabelEXT glad_vkCmdInsertDebugUtilsLabelEXT
  2952. GLAD_API_CALL PFN_vkCmdNextSubpass glad_vkCmdNextSubpass;
  2953. #define vkCmdNextSubpass glad_vkCmdNextSubpass
  2954. GLAD_API_CALL PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier;
  2955. #define vkCmdPipelineBarrier glad_vkCmdPipelineBarrier
  2956. GLAD_API_CALL PFN_vkCmdPushConstants glad_vkCmdPushConstants;
  2957. #define vkCmdPushConstants glad_vkCmdPushConstants
  2958. GLAD_API_CALL PFN_vkCmdResetEvent glad_vkCmdResetEvent;
  2959. #define vkCmdResetEvent glad_vkCmdResetEvent
  2960. GLAD_API_CALL PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool;
  2961. #define vkCmdResetQueryPool glad_vkCmdResetQueryPool
  2962. GLAD_API_CALL PFN_vkCmdResolveImage glad_vkCmdResolveImage;
  2963. #define vkCmdResolveImage glad_vkCmdResolveImage
  2964. GLAD_API_CALL PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants;
  2965. #define vkCmdSetBlendConstants glad_vkCmdSetBlendConstants
  2966. GLAD_API_CALL PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias;
  2967. #define vkCmdSetDepthBias glad_vkCmdSetDepthBias
  2968. GLAD_API_CALL PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds;
  2969. #define vkCmdSetDepthBounds glad_vkCmdSetDepthBounds
  2970. GLAD_API_CALL PFN_vkCmdSetEvent glad_vkCmdSetEvent;
  2971. #define vkCmdSetEvent glad_vkCmdSetEvent
  2972. GLAD_API_CALL PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth;
  2973. #define vkCmdSetLineWidth glad_vkCmdSetLineWidth
  2974. GLAD_API_CALL PFN_vkCmdSetScissor glad_vkCmdSetScissor;
  2975. #define vkCmdSetScissor glad_vkCmdSetScissor
  2976. GLAD_API_CALL PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask;
  2977. #define vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask
  2978. GLAD_API_CALL PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference;
  2979. #define vkCmdSetStencilReference glad_vkCmdSetStencilReference
  2980. GLAD_API_CALL PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask;
  2981. #define vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask
  2982. GLAD_API_CALL PFN_vkCmdSetViewport glad_vkCmdSetViewport;
  2983. #define vkCmdSetViewport glad_vkCmdSetViewport
  2984. GLAD_API_CALL PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer;
  2985. #define vkCmdUpdateBuffer glad_vkCmdUpdateBuffer
  2986. GLAD_API_CALL PFN_vkCmdWaitEvents glad_vkCmdWaitEvents;
  2987. #define vkCmdWaitEvents glad_vkCmdWaitEvents
  2988. GLAD_API_CALL PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp;
  2989. #define vkCmdWriteTimestamp glad_vkCmdWriteTimestamp
  2990. GLAD_API_CALL PFN_vkCreateBuffer glad_vkCreateBuffer;
  2991. #define vkCreateBuffer glad_vkCreateBuffer
  2992. GLAD_API_CALL PFN_vkCreateBufferView glad_vkCreateBufferView;
  2993. #define vkCreateBufferView glad_vkCreateBufferView
  2994. GLAD_API_CALL PFN_vkCreateCommandPool glad_vkCreateCommandPool;
  2995. #define vkCreateCommandPool glad_vkCreateCommandPool
  2996. GLAD_API_CALL PFN_vkCreateComputePipelines glad_vkCreateComputePipelines;
  2997. #define vkCreateComputePipelines glad_vkCreateComputePipelines
  2998. GLAD_API_CALL PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT;
  2999. #define vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT
  3000. GLAD_API_CALL PFN_vkCreateDebugUtilsMessengerEXT glad_vkCreateDebugUtilsMessengerEXT;
  3001. #define vkCreateDebugUtilsMessengerEXT glad_vkCreateDebugUtilsMessengerEXT
  3002. GLAD_API_CALL PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool;
  3003. #define vkCreateDescriptorPool glad_vkCreateDescriptorPool
  3004. GLAD_API_CALL PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout;
  3005. #define vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout
  3006. GLAD_API_CALL PFN_vkCreateDevice glad_vkCreateDevice;
  3007. #define vkCreateDevice glad_vkCreateDevice
  3008. GLAD_API_CALL PFN_vkCreateEvent glad_vkCreateEvent;
  3009. #define vkCreateEvent glad_vkCreateEvent
  3010. GLAD_API_CALL PFN_vkCreateFence glad_vkCreateFence;
  3011. #define vkCreateFence glad_vkCreateFence
  3012. GLAD_API_CALL PFN_vkCreateFramebuffer glad_vkCreateFramebuffer;
  3013. #define vkCreateFramebuffer glad_vkCreateFramebuffer
  3014. GLAD_API_CALL PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines;
  3015. #define vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines
  3016. GLAD_API_CALL PFN_vkCreateImage glad_vkCreateImage;
  3017. #define vkCreateImage glad_vkCreateImage
  3018. GLAD_API_CALL PFN_vkCreateImageView glad_vkCreateImageView;
  3019. #define vkCreateImageView glad_vkCreateImageView
  3020. GLAD_API_CALL PFN_vkCreateInstance glad_vkCreateInstance;
  3021. #define vkCreateInstance glad_vkCreateInstance
  3022. GLAD_API_CALL PFN_vkCreatePipelineCache glad_vkCreatePipelineCache;
  3023. #define vkCreatePipelineCache glad_vkCreatePipelineCache
  3024. GLAD_API_CALL PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout;
  3025. #define vkCreatePipelineLayout glad_vkCreatePipelineLayout
  3026. GLAD_API_CALL PFN_vkCreateQueryPool glad_vkCreateQueryPool;
  3027. #define vkCreateQueryPool glad_vkCreateQueryPool
  3028. GLAD_API_CALL PFN_vkCreateRenderPass glad_vkCreateRenderPass;
  3029. #define vkCreateRenderPass glad_vkCreateRenderPass
  3030. GLAD_API_CALL PFN_vkCreateSampler glad_vkCreateSampler;
  3031. #define vkCreateSampler glad_vkCreateSampler
  3032. GLAD_API_CALL PFN_vkCreateSemaphore glad_vkCreateSemaphore;
  3033. #define vkCreateSemaphore glad_vkCreateSemaphore
  3034. GLAD_API_CALL PFN_vkCreateShaderModule glad_vkCreateShaderModule;
  3035. #define vkCreateShaderModule glad_vkCreateShaderModule
  3036. GLAD_API_CALL PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR;
  3037. #define vkCreateSwapchainKHR glad_vkCreateSwapchainKHR
  3038. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  3039. GLAD_API_CALL PFN_vkCreateWin32SurfaceKHR glad_vkCreateWin32SurfaceKHR;
  3040. #define vkCreateWin32SurfaceKHR glad_vkCreateWin32SurfaceKHR
  3041. #endif
  3042. #if defined(VK_USE_PLATFORM_XCB_KHR)
  3043. GLAD_API_CALL PFN_vkCreateXcbSurfaceKHR glad_vkCreateXcbSurfaceKHR;
  3044. #define vkCreateXcbSurfaceKHR glad_vkCreateXcbSurfaceKHR
  3045. #endif
  3046. GLAD_API_CALL PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT;
  3047. #define vkDebugReportMessageEXT glad_vkDebugReportMessageEXT
  3048. GLAD_API_CALL PFN_vkDestroyBuffer glad_vkDestroyBuffer;
  3049. #define vkDestroyBuffer glad_vkDestroyBuffer
  3050. GLAD_API_CALL PFN_vkDestroyBufferView glad_vkDestroyBufferView;
  3051. #define vkDestroyBufferView glad_vkDestroyBufferView
  3052. GLAD_API_CALL PFN_vkDestroyCommandPool glad_vkDestroyCommandPool;
  3053. #define vkDestroyCommandPool glad_vkDestroyCommandPool
  3054. GLAD_API_CALL PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT;
  3055. #define vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT
  3056. GLAD_API_CALL PFN_vkDestroyDebugUtilsMessengerEXT glad_vkDestroyDebugUtilsMessengerEXT;
  3057. #define vkDestroyDebugUtilsMessengerEXT glad_vkDestroyDebugUtilsMessengerEXT
  3058. GLAD_API_CALL PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool;
  3059. #define vkDestroyDescriptorPool glad_vkDestroyDescriptorPool
  3060. GLAD_API_CALL PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout;
  3061. #define vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout
  3062. GLAD_API_CALL PFN_vkDestroyDevice glad_vkDestroyDevice;
  3063. #define vkDestroyDevice glad_vkDestroyDevice
  3064. GLAD_API_CALL PFN_vkDestroyEvent glad_vkDestroyEvent;
  3065. #define vkDestroyEvent glad_vkDestroyEvent
  3066. GLAD_API_CALL PFN_vkDestroyFence glad_vkDestroyFence;
  3067. #define vkDestroyFence glad_vkDestroyFence
  3068. GLAD_API_CALL PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer;
  3069. #define vkDestroyFramebuffer glad_vkDestroyFramebuffer
  3070. GLAD_API_CALL PFN_vkDestroyImage glad_vkDestroyImage;
  3071. #define vkDestroyImage glad_vkDestroyImage
  3072. GLAD_API_CALL PFN_vkDestroyImageView glad_vkDestroyImageView;
  3073. #define vkDestroyImageView glad_vkDestroyImageView
  3074. GLAD_API_CALL PFN_vkDestroyInstance glad_vkDestroyInstance;
  3075. #define vkDestroyInstance glad_vkDestroyInstance
  3076. GLAD_API_CALL PFN_vkDestroyPipeline glad_vkDestroyPipeline;
  3077. #define vkDestroyPipeline glad_vkDestroyPipeline
  3078. GLAD_API_CALL PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache;
  3079. #define vkDestroyPipelineCache glad_vkDestroyPipelineCache
  3080. GLAD_API_CALL PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout;
  3081. #define vkDestroyPipelineLayout glad_vkDestroyPipelineLayout
  3082. GLAD_API_CALL PFN_vkDestroyQueryPool glad_vkDestroyQueryPool;
  3083. #define vkDestroyQueryPool glad_vkDestroyQueryPool
  3084. GLAD_API_CALL PFN_vkDestroyRenderPass glad_vkDestroyRenderPass;
  3085. #define vkDestroyRenderPass glad_vkDestroyRenderPass
  3086. GLAD_API_CALL PFN_vkDestroySampler glad_vkDestroySampler;
  3087. #define vkDestroySampler glad_vkDestroySampler
  3088. GLAD_API_CALL PFN_vkDestroySemaphore glad_vkDestroySemaphore;
  3089. #define vkDestroySemaphore glad_vkDestroySemaphore
  3090. GLAD_API_CALL PFN_vkDestroyShaderModule glad_vkDestroyShaderModule;
  3091. #define vkDestroyShaderModule glad_vkDestroyShaderModule
  3092. GLAD_API_CALL PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR;
  3093. #define vkDestroySurfaceKHR glad_vkDestroySurfaceKHR
  3094. GLAD_API_CALL PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR;
  3095. #define vkDestroySwapchainKHR glad_vkDestroySwapchainKHR
  3096. GLAD_API_CALL PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle;
  3097. #define vkDeviceWaitIdle glad_vkDeviceWaitIdle
  3098. GLAD_API_CALL PFN_vkEndCommandBuffer glad_vkEndCommandBuffer;
  3099. #define vkEndCommandBuffer glad_vkEndCommandBuffer
  3100. GLAD_API_CALL PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties;
  3101. #define vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties
  3102. GLAD_API_CALL PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties;
  3103. #define vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties
  3104. GLAD_API_CALL PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties;
  3105. #define vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties
  3106. GLAD_API_CALL PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties;
  3107. #define vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties
  3108. GLAD_API_CALL PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices;
  3109. #define vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices
  3110. GLAD_API_CALL PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges;
  3111. #define vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges
  3112. GLAD_API_CALL PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers;
  3113. #define vkFreeCommandBuffers glad_vkFreeCommandBuffers
  3114. GLAD_API_CALL PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets;
  3115. #define vkFreeDescriptorSets glad_vkFreeDescriptorSets
  3116. GLAD_API_CALL PFN_vkFreeMemory glad_vkFreeMemory;
  3117. #define vkFreeMemory glad_vkFreeMemory
  3118. GLAD_API_CALL PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements;
  3119. #define vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements
  3120. GLAD_API_CALL PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR;
  3121. #define vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR
  3122. GLAD_API_CALL PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR;
  3123. #define vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR
  3124. GLAD_API_CALL PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment;
  3125. #define vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment
  3126. GLAD_API_CALL PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr;
  3127. #define vkGetDeviceProcAddr glad_vkGetDeviceProcAddr
  3128. GLAD_API_CALL PFN_vkGetDeviceQueue glad_vkGetDeviceQueue;
  3129. #define vkGetDeviceQueue glad_vkGetDeviceQueue
  3130. GLAD_API_CALL PFN_vkGetEventStatus glad_vkGetEventStatus;
  3131. #define vkGetEventStatus glad_vkGetEventStatus
  3132. GLAD_API_CALL PFN_vkGetFenceStatus glad_vkGetFenceStatus;
  3133. #define vkGetFenceStatus glad_vkGetFenceStatus
  3134. GLAD_API_CALL PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements;
  3135. #define vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements
  3136. GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements;
  3137. #define vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements
  3138. GLAD_API_CALL PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout;
  3139. #define vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout
  3140. GLAD_API_CALL PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr;
  3141. #define vkGetInstanceProcAddr glad_vkGetInstanceProcAddr
  3142. GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures;
  3143. #define vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures
  3144. GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures2KHR glad_vkGetPhysicalDeviceFeatures2KHR;
  3145. #define vkGetPhysicalDeviceFeatures2KHR glad_vkGetPhysicalDeviceFeatures2KHR
  3146. GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties;
  3147. #define vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties
  3148. GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties2KHR glad_vkGetPhysicalDeviceFormatProperties2KHR;
  3149. #define vkGetPhysicalDeviceFormatProperties2KHR glad_vkGetPhysicalDeviceFormatProperties2KHR
  3150. GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties;
  3151. #define vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties
  3152. GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties2KHR glad_vkGetPhysicalDeviceImageFormatProperties2KHR;
  3153. #define vkGetPhysicalDeviceImageFormatProperties2KHR glad_vkGetPhysicalDeviceImageFormatProperties2KHR
  3154. GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties;
  3155. #define vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties
  3156. GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties2KHR glad_vkGetPhysicalDeviceMemoryProperties2KHR;
  3157. #define vkGetPhysicalDeviceMemoryProperties2KHR glad_vkGetPhysicalDeviceMemoryProperties2KHR
  3158. GLAD_API_CALL PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR;
  3159. #define vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR
  3160. GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties;
  3161. #define vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties
  3162. GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties2KHR glad_vkGetPhysicalDeviceProperties2KHR;
  3163. #define vkGetPhysicalDeviceProperties2KHR glad_vkGetPhysicalDeviceProperties2KHR
  3164. GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties;
  3165. #define vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties
  3166. GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR glad_vkGetPhysicalDeviceQueueFamilyProperties2KHR;
  3167. #define vkGetPhysicalDeviceQueueFamilyProperties2KHR glad_vkGetPhysicalDeviceQueueFamilyProperties2KHR
  3168. GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties;
  3169. #define vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties
  3170. GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR glad_vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
  3171. #define vkGetPhysicalDeviceSparseImageFormatProperties2KHR glad_vkGetPhysicalDeviceSparseImageFormatProperties2KHR
  3172. GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
  3173. #define vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
  3174. GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR;
  3175. #define vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR
  3176. GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR;
  3177. #define vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR
  3178. GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR;
  3179. #define vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR
  3180. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  3181. GLAD_API_CALL PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR glad_vkGetPhysicalDeviceWin32PresentationSupportKHR;
  3182. #define vkGetPhysicalDeviceWin32PresentationSupportKHR glad_vkGetPhysicalDeviceWin32PresentationSupportKHR
  3183. #endif
  3184. #if defined(VK_USE_PLATFORM_XCB_KHR)
  3185. GLAD_API_CALL PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR glad_vkGetPhysicalDeviceXcbPresentationSupportKHR;
  3186. #define vkGetPhysicalDeviceXcbPresentationSupportKHR glad_vkGetPhysicalDeviceXcbPresentationSupportKHR
  3187. #endif
  3188. GLAD_API_CALL PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData;
  3189. #define vkGetPipelineCacheData glad_vkGetPipelineCacheData
  3190. GLAD_API_CALL PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults;
  3191. #define vkGetQueryPoolResults glad_vkGetQueryPoolResults
  3192. GLAD_API_CALL PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity;
  3193. #define vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity
  3194. GLAD_API_CALL PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR;
  3195. #define vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR
  3196. GLAD_API_CALL PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges;
  3197. #define vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges
  3198. GLAD_API_CALL PFN_vkMapMemory glad_vkMapMemory;
  3199. #define vkMapMemory glad_vkMapMemory
  3200. GLAD_API_CALL PFN_vkMergePipelineCaches glad_vkMergePipelineCaches;
  3201. #define vkMergePipelineCaches glad_vkMergePipelineCaches
  3202. GLAD_API_CALL PFN_vkQueueBeginDebugUtilsLabelEXT glad_vkQueueBeginDebugUtilsLabelEXT;
  3203. #define vkQueueBeginDebugUtilsLabelEXT glad_vkQueueBeginDebugUtilsLabelEXT
  3204. GLAD_API_CALL PFN_vkQueueBindSparse glad_vkQueueBindSparse;
  3205. #define vkQueueBindSparse glad_vkQueueBindSparse
  3206. GLAD_API_CALL PFN_vkQueueEndDebugUtilsLabelEXT glad_vkQueueEndDebugUtilsLabelEXT;
  3207. #define vkQueueEndDebugUtilsLabelEXT glad_vkQueueEndDebugUtilsLabelEXT
  3208. GLAD_API_CALL PFN_vkQueueInsertDebugUtilsLabelEXT glad_vkQueueInsertDebugUtilsLabelEXT;
  3209. #define vkQueueInsertDebugUtilsLabelEXT glad_vkQueueInsertDebugUtilsLabelEXT
  3210. GLAD_API_CALL PFN_vkQueuePresentKHR glad_vkQueuePresentKHR;
  3211. #define vkQueuePresentKHR glad_vkQueuePresentKHR
  3212. GLAD_API_CALL PFN_vkQueueSubmit glad_vkQueueSubmit;
  3213. #define vkQueueSubmit glad_vkQueueSubmit
  3214. GLAD_API_CALL PFN_vkQueueWaitIdle glad_vkQueueWaitIdle;
  3215. #define vkQueueWaitIdle glad_vkQueueWaitIdle
  3216. GLAD_API_CALL PFN_vkResetCommandBuffer glad_vkResetCommandBuffer;
  3217. #define vkResetCommandBuffer glad_vkResetCommandBuffer
  3218. GLAD_API_CALL PFN_vkResetCommandPool glad_vkResetCommandPool;
  3219. #define vkResetCommandPool glad_vkResetCommandPool
  3220. GLAD_API_CALL PFN_vkResetDescriptorPool glad_vkResetDescriptorPool;
  3221. #define vkResetDescriptorPool glad_vkResetDescriptorPool
  3222. GLAD_API_CALL PFN_vkResetEvent glad_vkResetEvent;
  3223. #define vkResetEvent glad_vkResetEvent
  3224. GLAD_API_CALL PFN_vkResetFences glad_vkResetFences;
  3225. #define vkResetFences glad_vkResetFences
  3226. GLAD_API_CALL PFN_vkSetDebugUtilsObjectNameEXT glad_vkSetDebugUtilsObjectNameEXT;
  3227. #define vkSetDebugUtilsObjectNameEXT glad_vkSetDebugUtilsObjectNameEXT
  3228. GLAD_API_CALL PFN_vkSetDebugUtilsObjectTagEXT glad_vkSetDebugUtilsObjectTagEXT;
  3229. #define vkSetDebugUtilsObjectTagEXT glad_vkSetDebugUtilsObjectTagEXT
  3230. GLAD_API_CALL PFN_vkSetEvent glad_vkSetEvent;
  3231. #define vkSetEvent glad_vkSetEvent
  3232. GLAD_API_CALL PFN_vkSubmitDebugUtilsMessageEXT glad_vkSubmitDebugUtilsMessageEXT;
  3233. #define vkSubmitDebugUtilsMessageEXT glad_vkSubmitDebugUtilsMessageEXT
  3234. GLAD_API_CALL PFN_vkUnmapMemory glad_vkUnmapMemory;
  3235. #define vkUnmapMemory glad_vkUnmapMemory
  3236. GLAD_API_CALL PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets;
  3237. #define vkUpdateDescriptorSets glad_vkUpdateDescriptorSets
  3238. GLAD_API_CALL PFN_vkWaitForFences glad_vkWaitForFences;
  3239. #define vkWaitForFences glad_vkWaitForFences
  3240. GLAD_API_CALL int gladLoadVulkanUserPtr( VkPhysicalDevice physical_device, GLADuserptrloadfunc load, void *userptr);
  3241. GLAD_API_CALL int gladLoadVulkan( VkPhysicalDevice physical_device, GLADloadfunc load);
  3242. #ifdef GLAD_VULKAN
  3243. GLAD_API_CALL int gladLoaderLoadVulkan( VkInstance instance, VkPhysicalDevice physical_device, VkDevice device);
  3244. GLAD_API_CALL void gladLoaderUnloadVulkan(void);
  3245. #endif
  3246. #ifdef __cplusplus
  3247. }
  3248. #endif
  3249. #endif
  3250. /* Source */
  3251. #ifdef GLAD_VULKAN_IMPLEMENTATION
  3252. #include <stdio.h>
  3253. #include <stdlib.h>
  3254. #include <string.h>
  3255. #ifndef GLAD_IMPL_UTIL_C_
  3256. #define GLAD_IMPL_UTIL_C_
  3257. #ifdef _MSC_VER
  3258. #define GLAD_IMPL_UTIL_SSCANF sscanf_s
  3259. #else
  3260. #define GLAD_IMPL_UTIL_SSCANF sscanf
  3261. #endif
  3262. #endif /* GLAD_IMPL_UTIL_C_ */
  3263. #ifdef __cplusplus
  3264. extern "C" {
  3265. #endif
  3266. int GLAD_VK_VERSION_1_0 = 0;
  3267. int GLAD_VK_EXT_debug_report = 0;
  3268. int GLAD_VK_EXT_debug_utils = 0;
  3269. int GLAD_VK_EXT_scalar_block_layout = 0;
  3270. int GLAD_VK_EXT_validation_features = 0;
  3271. int GLAD_VK_KHR_get_physical_device_properties2 = 0;
  3272. int GLAD_VK_KHR_portability_enumeration = 0;
  3273. int GLAD_VK_KHR_shader_subgroup_extended_types = 0;
  3274. int GLAD_VK_KHR_surface = 0;
  3275. int GLAD_VK_KHR_swapchain = 0;
  3276. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  3277. int GLAD_VK_KHR_win32_surface = 0;
  3278. #endif
  3279. #if defined(VK_USE_PLATFORM_XCB_KHR)
  3280. int GLAD_VK_KHR_xcb_surface = 0;
  3281. #endif
  3282. PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR = NULL;
  3283. PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR = NULL;
  3284. PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers = NULL;
  3285. PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets = NULL;
  3286. PFN_vkAllocateMemory glad_vkAllocateMemory = NULL;
  3287. PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer = NULL;
  3288. PFN_vkBindBufferMemory glad_vkBindBufferMemory = NULL;
  3289. PFN_vkBindImageMemory glad_vkBindImageMemory = NULL;
  3290. PFN_vkCmdBeginDebugUtilsLabelEXT glad_vkCmdBeginDebugUtilsLabelEXT = NULL;
  3291. PFN_vkCmdBeginQuery glad_vkCmdBeginQuery = NULL;
  3292. PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass = NULL;
  3293. PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets = NULL;
  3294. PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer = NULL;
  3295. PFN_vkCmdBindPipeline glad_vkCmdBindPipeline = NULL;
  3296. PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers = NULL;
  3297. PFN_vkCmdBlitImage glad_vkCmdBlitImage = NULL;
  3298. PFN_vkCmdClearAttachments glad_vkCmdClearAttachments = NULL;
  3299. PFN_vkCmdClearColorImage glad_vkCmdClearColorImage = NULL;
  3300. PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage = NULL;
  3301. PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer = NULL;
  3302. PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage = NULL;
  3303. PFN_vkCmdCopyImage glad_vkCmdCopyImage = NULL;
  3304. PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer = NULL;
  3305. PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults = NULL;
  3306. PFN_vkCmdDispatch glad_vkCmdDispatch = NULL;
  3307. PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect = NULL;
  3308. PFN_vkCmdDraw glad_vkCmdDraw = NULL;
  3309. PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed = NULL;
  3310. PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect = NULL;
  3311. PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect = NULL;
  3312. PFN_vkCmdEndDebugUtilsLabelEXT glad_vkCmdEndDebugUtilsLabelEXT = NULL;
  3313. PFN_vkCmdEndQuery glad_vkCmdEndQuery = NULL;
  3314. PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass = NULL;
  3315. PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands = NULL;
  3316. PFN_vkCmdFillBuffer glad_vkCmdFillBuffer = NULL;
  3317. PFN_vkCmdInsertDebugUtilsLabelEXT glad_vkCmdInsertDebugUtilsLabelEXT = NULL;
  3318. PFN_vkCmdNextSubpass glad_vkCmdNextSubpass = NULL;
  3319. PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier = NULL;
  3320. PFN_vkCmdPushConstants glad_vkCmdPushConstants = NULL;
  3321. PFN_vkCmdResetEvent glad_vkCmdResetEvent = NULL;
  3322. PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool = NULL;
  3323. PFN_vkCmdResolveImage glad_vkCmdResolveImage = NULL;
  3324. PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants = NULL;
  3325. PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias = NULL;
  3326. PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds = NULL;
  3327. PFN_vkCmdSetEvent glad_vkCmdSetEvent = NULL;
  3328. PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth = NULL;
  3329. PFN_vkCmdSetScissor glad_vkCmdSetScissor = NULL;
  3330. PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask = NULL;
  3331. PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference = NULL;
  3332. PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask = NULL;
  3333. PFN_vkCmdSetViewport glad_vkCmdSetViewport = NULL;
  3334. PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer = NULL;
  3335. PFN_vkCmdWaitEvents glad_vkCmdWaitEvents = NULL;
  3336. PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp = NULL;
  3337. PFN_vkCreateBuffer glad_vkCreateBuffer = NULL;
  3338. PFN_vkCreateBufferView glad_vkCreateBufferView = NULL;
  3339. PFN_vkCreateCommandPool glad_vkCreateCommandPool = NULL;
  3340. PFN_vkCreateComputePipelines glad_vkCreateComputePipelines = NULL;
  3341. PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT = NULL;
  3342. PFN_vkCreateDebugUtilsMessengerEXT glad_vkCreateDebugUtilsMessengerEXT = NULL;
  3343. PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool = NULL;
  3344. PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout = NULL;
  3345. PFN_vkCreateDevice glad_vkCreateDevice = NULL;
  3346. PFN_vkCreateEvent glad_vkCreateEvent = NULL;
  3347. PFN_vkCreateFence glad_vkCreateFence = NULL;
  3348. PFN_vkCreateFramebuffer glad_vkCreateFramebuffer = NULL;
  3349. PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines = NULL;
  3350. PFN_vkCreateImage glad_vkCreateImage = NULL;
  3351. PFN_vkCreateImageView glad_vkCreateImageView = NULL;
  3352. PFN_vkCreateInstance glad_vkCreateInstance = NULL;
  3353. PFN_vkCreatePipelineCache glad_vkCreatePipelineCache = NULL;
  3354. PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout = NULL;
  3355. PFN_vkCreateQueryPool glad_vkCreateQueryPool = NULL;
  3356. PFN_vkCreateRenderPass glad_vkCreateRenderPass = NULL;
  3357. PFN_vkCreateSampler glad_vkCreateSampler = NULL;
  3358. PFN_vkCreateSemaphore glad_vkCreateSemaphore = NULL;
  3359. PFN_vkCreateShaderModule glad_vkCreateShaderModule = NULL;
  3360. PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR = NULL;
  3361. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  3362. PFN_vkCreateWin32SurfaceKHR glad_vkCreateWin32SurfaceKHR = NULL;
  3363. #endif
  3364. #if defined(VK_USE_PLATFORM_XCB_KHR)
  3365. PFN_vkCreateXcbSurfaceKHR glad_vkCreateXcbSurfaceKHR = NULL;
  3366. #endif
  3367. PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT = NULL;
  3368. PFN_vkDestroyBuffer glad_vkDestroyBuffer = NULL;
  3369. PFN_vkDestroyBufferView glad_vkDestroyBufferView = NULL;
  3370. PFN_vkDestroyCommandPool glad_vkDestroyCommandPool = NULL;
  3371. PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT = NULL;
  3372. PFN_vkDestroyDebugUtilsMessengerEXT glad_vkDestroyDebugUtilsMessengerEXT = NULL;
  3373. PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool = NULL;
  3374. PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout = NULL;
  3375. PFN_vkDestroyDevice glad_vkDestroyDevice = NULL;
  3376. PFN_vkDestroyEvent glad_vkDestroyEvent = NULL;
  3377. PFN_vkDestroyFence glad_vkDestroyFence = NULL;
  3378. PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer = NULL;
  3379. PFN_vkDestroyImage glad_vkDestroyImage = NULL;
  3380. PFN_vkDestroyImageView glad_vkDestroyImageView = NULL;
  3381. PFN_vkDestroyInstance glad_vkDestroyInstance = NULL;
  3382. PFN_vkDestroyPipeline glad_vkDestroyPipeline = NULL;
  3383. PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache = NULL;
  3384. PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout = NULL;
  3385. PFN_vkDestroyQueryPool glad_vkDestroyQueryPool = NULL;
  3386. PFN_vkDestroyRenderPass glad_vkDestroyRenderPass = NULL;
  3387. PFN_vkDestroySampler glad_vkDestroySampler = NULL;
  3388. PFN_vkDestroySemaphore glad_vkDestroySemaphore = NULL;
  3389. PFN_vkDestroyShaderModule glad_vkDestroyShaderModule = NULL;
  3390. PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR = NULL;
  3391. PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR = NULL;
  3392. PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle = NULL;
  3393. PFN_vkEndCommandBuffer glad_vkEndCommandBuffer = NULL;
  3394. PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties = NULL;
  3395. PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties = NULL;
  3396. PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties = NULL;
  3397. PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties = NULL;
  3398. PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices = NULL;
  3399. PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges = NULL;
  3400. PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers = NULL;
  3401. PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets = NULL;
  3402. PFN_vkFreeMemory glad_vkFreeMemory = NULL;
  3403. PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements = NULL;
  3404. PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR = NULL;
  3405. PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR = NULL;
  3406. PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment = NULL;
  3407. PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr = NULL;
  3408. PFN_vkGetDeviceQueue glad_vkGetDeviceQueue = NULL;
  3409. PFN_vkGetEventStatus glad_vkGetEventStatus = NULL;
  3410. PFN_vkGetFenceStatus glad_vkGetFenceStatus = NULL;
  3411. PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements = NULL;
  3412. PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements = NULL;
  3413. PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout = NULL;
  3414. PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr = NULL;
  3415. PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures = NULL;
  3416. PFN_vkGetPhysicalDeviceFeatures2KHR glad_vkGetPhysicalDeviceFeatures2KHR = NULL;
  3417. PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties = NULL;
  3418. PFN_vkGetPhysicalDeviceFormatProperties2KHR glad_vkGetPhysicalDeviceFormatProperties2KHR = NULL;
  3419. PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties = NULL;
  3420. PFN_vkGetPhysicalDeviceImageFormatProperties2KHR glad_vkGetPhysicalDeviceImageFormatProperties2KHR = NULL;
  3421. PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties = NULL;
  3422. PFN_vkGetPhysicalDeviceMemoryProperties2KHR glad_vkGetPhysicalDeviceMemoryProperties2KHR = NULL;
  3423. PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR = NULL;
  3424. PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties = NULL;
  3425. PFN_vkGetPhysicalDeviceProperties2KHR glad_vkGetPhysicalDeviceProperties2KHR = NULL;
  3426. PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties = NULL;
  3427. PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR glad_vkGetPhysicalDeviceQueueFamilyProperties2KHR = NULL;
  3428. PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties = NULL;
  3429. PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR glad_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = NULL;
  3430. PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = NULL;
  3431. PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR = NULL;
  3432. PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR = NULL;
  3433. PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR = NULL;
  3434. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  3435. PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR glad_vkGetPhysicalDeviceWin32PresentationSupportKHR = NULL;
  3436. #endif
  3437. #if defined(VK_USE_PLATFORM_XCB_KHR)
  3438. PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR glad_vkGetPhysicalDeviceXcbPresentationSupportKHR = NULL;
  3439. #endif
  3440. PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData = NULL;
  3441. PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults = NULL;
  3442. PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity = NULL;
  3443. PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR = NULL;
  3444. PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges = NULL;
  3445. PFN_vkMapMemory glad_vkMapMemory = NULL;
  3446. PFN_vkMergePipelineCaches glad_vkMergePipelineCaches = NULL;
  3447. PFN_vkQueueBeginDebugUtilsLabelEXT glad_vkQueueBeginDebugUtilsLabelEXT = NULL;
  3448. PFN_vkQueueBindSparse glad_vkQueueBindSparse = NULL;
  3449. PFN_vkQueueEndDebugUtilsLabelEXT glad_vkQueueEndDebugUtilsLabelEXT = NULL;
  3450. PFN_vkQueueInsertDebugUtilsLabelEXT glad_vkQueueInsertDebugUtilsLabelEXT = NULL;
  3451. PFN_vkQueuePresentKHR glad_vkQueuePresentKHR = NULL;
  3452. PFN_vkQueueSubmit glad_vkQueueSubmit = NULL;
  3453. PFN_vkQueueWaitIdle glad_vkQueueWaitIdle = NULL;
  3454. PFN_vkResetCommandBuffer glad_vkResetCommandBuffer = NULL;
  3455. PFN_vkResetCommandPool glad_vkResetCommandPool = NULL;
  3456. PFN_vkResetDescriptorPool glad_vkResetDescriptorPool = NULL;
  3457. PFN_vkResetEvent glad_vkResetEvent = NULL;
  3458. PFN_vkResetFences glad_vkResetFences = NULL;
  3459. PFN_vkSetDebugUtilsObjectNameEXT glad_vkSetDebugUtilsObjectNameEXT = NULL;
  3460. PFN_vkSetDebugUtilsObjectTagEXT glad_vkSetDebugUtilsObjectTagEXT = NULL;
  3461. PFN_vkSetEvent glad_vkSetEvent = NULL;
  3462. PFN_vkSubmitDebugUtilsMessageEXT glad_vkSubmitDebugUtilsMessageEXT = NULL;
  3463. PFN_vkUnmapMemory glad_vkUnmapMemory = NULL;
  3464. PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets = NULL;
  3465. PFN_vkWaitForFences glad_vkWaitForFences = NULL;
  3466. static void glad_vk_load_VK_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) {
  3467. if(!GLAD_VK_VERSION_1_0) return;
  3468. glad_vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers) load(userptr, "vkAllocateCommandBuffers");
  3469. glad_vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets) load(userptr, "vkAllocateDescriptorSets");
  3470. glad_vkAllocateMemory = (PFN_vkAllocateMemory) load(userptr, "vkAllocateMemory");
  3471. glad_vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer) load(userptr, "vkBeginCommandBuffer");
  3472. glad_vkBindBufferMemory = (PFN_vkBindBufferMemory) load(userptr, "vkBindBufferMemory");
  3473. glad_vkBindImageMemory = (PFN_vkBindImageMemory) load(userptr, "vkBindImageMemory");
  3474. glad_vkCmdBeginQuery = (PFN_vkCmdBeginQuery) load(userptr, "vkCmdBeginQuery");
  3475. glad_vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass) load(userptr, "vkCmdBeginRenderPass");
  3476. glad_vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets) load(userptr, "vkCmdBindDescriptorSets");
  3477. glad_vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer) load(userptr, "vkCmdBindIndexBuffer");
  3478. glad_vkCmdBindPipeline = (PFN_vkCmdBindPipeline) load(userptr, "vkCmdBindPipeline");
  3479. glad_vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers) load(userptr, "vkCmdBindVertexBuffers");
  3480. glad_vkCmdBlitImage = (PFN_vkCmdBlitImage) load(userptr, "vkCmdBlitImage");
  3481. glad_vkCmdClearAttachments = (PFN_vkCmdClearAttachments) load(userptr, "vkCmdClearAttachments");
  3482. glad_vkCmdClearColorImage = (PFN_vkCmdClearColorImage) load(userptr, "vkCmdClearColorImage");
  3483. glad_vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage) load(userptr, "vkCmdClearDepthStencilImage");
  3484. glad_vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer) load(userptr, "vkCmdCopyBuffer");
  3485. glad_vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage) load(userptr, "vkCmdCopyBufferToImage");
  3486. glad_vkCmdCopyImage = (PFN_vkCmdCopyImage) load(userptr, "vkCmdCopyImage");
  3487. glad_vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer) load(userptr, "vkCmdCopyImageToBuffer");
  3488. glad_vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults) load(userptr, "vkCmdCopyQueryPoolResults");
  3489. glad_vkCmdDispatch = (PFN_vkCmdDispatch) load(userptr, "vkCmdDispatch");
  3490. glad_vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect) load(userptr, "vkCmdDispatchIndirect");
  3491. glad_vkCmdDraw = (PFN_vkCmdDraw) load(userptr, "vkCmdDraw");
  3492. glad_vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed) load(userptr, "vkCmdDrawIndexed");
  3493. glad_vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect) load(userptr, "vkCmdDrawIndexedIndirect");
  3494. glad_vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect) load(userptr, "vkCmdDrawIndirect");
  3495. glad_vkCmdEndQuery = (PFN_vkCmdEndQuery) load(userptr, "vkCmdEndQuery");
  3496. glad_vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass) load(userptr, "vkCmdEndRenderPass");
  3497. glad_vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands) load(userptr, "vkCmdExecuteCommands");
  3498. glad_vkCmdFillBuffer = (PFN_vkCmdFillBuffer) load(userptr, "vkCmdFillBuffer");
  3499. glad_vkCmdNextSubpass = (PFN_vkCmdNextSubpass) load(userptr, "vkCmdNextSubpass");
  3500. glad_vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier) load(userptr, "vkCmdPipelineBarrier");
  3501. glad_vkCmdPushConstants = (PFN_vkCmdPushConstants) load(userptr, "vkCmdPushConstants");
  3502. glad_vkCmdResetEvent = (PFN_vkCmdResetEvent) load(userptr, "vkCmdResetEvent");
  3503. glad_vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool) load(userptr, "vkCmdResetQueryPool");
  3504. glad_vkCmdResolveImage = (PFN_vkCmdResolveImage) load(userptr, "vkCmdResolveImage");
  3505. glad_vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants) load(userptr, "vkCmdSetBlendConstants");
  3506. glad_vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias) load(userptr, "vkCmdSetDepthBias");
  3507. glad_vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds) load(userptr, "vkCmdSetDepthBounds");
  3508. glad_vkCmdSetEvent = (PFN_vkCmdSetEvent) load(userptr, "vkCmdSetEvent");
  3509. glad_vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth) load(userptr, "vkCmdSetLineWidth");
  3510. glad_vkCmdSetScissor = (PFN_vkCmdSetScissor) load(userptr, "vkCmdSetScissor");
  3511. glad_vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask) load(userptr, "vkCmdSetStencilCompareMask");
  3512. glad_vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference) load(userptr, "vkCmdSetStencilReference");
  3513. glad_vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask) load(userptr, "vkCmdSetStencilWriteMask");
  3514. glad_vkCmdSetViewport = (PFN_vkCmdSetViewport) load(userptr, "vkCmdSetViewport");
  3515. glad_vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer) load(userptr, "vkCmdUpdateBuffer");
  3516. glad_vkCmdWaitEvents = (PFN_vkCmdWaitEvents) load(userptr, "vkCmdWaitEvents");
  3517. glad_vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp) load(userptr, "vkCmdWriteTimestamp");
  3518. glad_vkCreateBuffer = (PFN_vkCreateBuffer) load(userptr, "vkCreateBuffer");
  3519. glad_vkCreateBufferView = (PFN_vkCreateBufferView) load(userptr, "vkCreateBufferView");
  3520. glad_vkCreateCommandPool = (PFN_vkCreateCommandPool) load(userptr, "vkCreateCommandPool");
  3521. glad_vkCreateComputePipelines = (PFN_vkCreateComputePipelines) load(userptr, "vkCreateComputePipelines");
  3522. glad_vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool) load(userptr, "vkCreateDescriptorPool");
  3523. glad_vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout) load(userptr, "vkCreateDescriptorSetLayout");
  3524. glad_vkCreateDevice = (PFN_vkCreateDevice) load(userptr, "vkCreateDevice");
  3525. glad_vkCreateEvent = (PFN_vkCreateEvent) load(userptr, "vkCreateEvent");
  3526. glad_vkCreateFence = (PFN_vkCreateFence) load(userptr, "vkCreateFence");
  3527. glad_vkCreateFramebuffer = (PFN_vkCreateFramebuffer) load(userptr, "vkCreateFramebuffer");
  3528. glad_vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines) load(userptr, "vkCreateGraphicsPipelines");
  3529. glad_vkCreateImage = (PFN_vkCreateImage) load(userptr, "vkCreateImage");
  3530. glad_vkCreateImageView = (PFN_vkCreateImageView) load(userptr, "vkCreateImageView");
  3531. glad_vkCreateInstance = (PFN_vkCreateInstance) load(userptr, "vkCreateInstance");
  3532. glad_vkCreatePipelineCache = (PFN_vkCreatePipelineCache) load(userptr, "vkCreatePipelineCache");
  3533. glad_vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout) load(userptr, "vkCreatePipelineLayout");
  3534. glad_vkCreateQueryPool = (PFN_vkCreateQueryPool) load(userptr, "vkCreateQueryPool");
  3535. glad_vkCreateRenderPass = (PFN_vkCreateRenderPass) load(userptr, "vkCreateRenderPass");
  3536. glad_vkCreateSampler = (PFN_vkCreateSampler) load(userptr, "vkCreateSampler");
  3537. glad_vkCreateSemaphore = (PFN_vkCreateSemaphore) load(userptr, "vkCreateSemaphore");
  3538. glad_vkCreateShaderModule = (PFN_vkCreateShaderModule) load(userptr, "vkCreateShaderModule");
  3539. glad_vkDestroyBuffer = (PFN_vkDestroyBuffer) load(userptr, "vkDestroyBuffer");
  3540. glad_vkDestroyBufferView = (PFN_vkDestroyBufferView) load(userptr, "vkDestroyBufferView");
  3541. glad_vkDestroyCommandPool = (PFN_vkDestroyCommandPool) load(userptr, "vkDestroyCommandPool");
  3542. glad_vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool) load(userptr, "vkDestroyDescriptorPool");
  3543. glad_vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout) load(userptr, "vkDestroyDescriptorSetLayout");
  3544. glad_vkDestroyDevice = (PFN_vkDestroyDevice) load(userptr, "vkDestroyDevice");
  3545. glad_vkDestroyEvent = (PFN_vkDestroyEvent) load(userptr, "vkDestroyEvent");
  3546. glad_vkDestroyFence = (PFN_vkDestroyFence) load(userptr, "vkDestroyFence");
  3547. glad_vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer) load(userptr, "vkDestroyFramebuffer");
  3548. glad_vkDestroyImage = (PFN_vkDestroyImage) load(userptr, "vkDestroyImage");
  3549. glad_vkDestroyImageView = (PFN_vkDestroyImageView) load(userptr, "vkDestroyImageView");
  3550. glad_vkDestroyInstance = (PFN_vkDestroyInstance) load(userptr, "vkDestroyInstance");
  3551. glad_vkDestroyPipeline = (PFN_vkDestroyPipeline) load(userptr, "vkDestroyPipeline");
  3552. glad_vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache) load(userptr, "vkDestroyPipelineCache");
  3553. glad_vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout) load(userptr, "vkDestroyPipelineLayout");
  3554. glad_vkDestroyQueryPool = (PFN_vkDestroyQueryPool) load(userptr, "vkDestroyQueryPool");
  3555. glad_vkDestroyRenderPass = (PFN_vkDestroyRenderPass) load(userptr, "vkDestroyRenderPass");
  3556. glad_vkDestroySampler = (PFN_vkDestroySampler) load(userptr, "vkDestroySampler");
  3557. glad_vkDestroySemaphore = (PFN_vkDestroySemaphore) load(userptr, "vkDestroySemaphore");
  3558. glad_vkDestroyShaderModule = (PFN_vkDestroyShaderModule) load(userptr, "vkDestroyShaderModule");
  3559. glad_vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle) load(userptr, "vkDeviceWaitIdle");
  3560. glad_vkEndCommandBuffer = (PFN_vkEndCommandBuffer) load(userptr, "vkEndCommandBuffer");
  3561. glad_vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties) load(userptr, "vkEnumerateDeviceExtensionProperties");
  3562. glad_vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties) load(userptr, "vkEnumerateDeviceLayerProperties");
  3563. glad_vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties) load(userptr, "vkEnumerateInstanceExtensionProperties");
  3564. glad_vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties) load(userptr, "vkEnumerateInstanceLayerProperties");
  3565. glad_vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices) load(userptr, "vkEnumeratePhysicalDevices");
  3566. glad_vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges) load(userptr, "vkFlushMappedMemoryRanges");
  3567. glad_vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers) load(userptr, "vkFreeCommandBuffers");
  3568. glad_vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets) load(userptr, "vkFreeDescriptorSets");
  3569. glad_vkFreeMemory = (PFN_vkFreeMemory) load(userptr, "vkFreeMemory");
  3570. glad_vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements) load(userptr, "vkGetBufferMemoryRequirements");
  3571. glad_vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment) load(userptr, "vkGetDeviceMemoryCommitment");
  3572. glad_vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr) load(userptr, "vkGetDeviceProcAddr");
  3573. glad_vkGetDeviceQueue = (PFN_vkGetDeviceQueue) load(userptr, "vkGetDeviceQueue");
  3574. glad_vkGetEventStatus = (PFN_vkGetEventStatus) load(userptr, "vkGetEventStatus");
  3575. glad_vkGetFenceStatus = (PFN_vkGetFenceStatus) load(userptr, "vkGetFenceStatus");
  3576. glad_vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements) load(userptr, "vkGetImageMemoryRequirements");
  3577. glad_vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements) load(userptr, "vkGetImageSparseMemoryRequirements");
  3578. glad_vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout) load(userptr, "vkGetImageSubresourceLayout");
  3579. glad_vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr) load(userptr, "vkGetInstanceProcAddr");
  3580. glad_vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures) load(userptr, "vkGetPhysicalDeviceFeatures");
  3581. glad_vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties) load(userptr, "vkGetPhysicalDeviceFormatProperties");
  3582. glad_vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties) load(userptr, "vkGetPhysicalDeviceImageFormatProperties");
  3583. glad_vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties) load(userptr, "vkGetPhysicalDeviceMemoryProperties");
  3584. glad_vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties) load(userptr, "vkGetPhysicalDeviceProperties");
  3585. glad_vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties) load(userptr, "vkGetPhysicalDeviceQueueFamilyProperties");
  3586. glad_vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties) load(userptr, "vkGetPhysicalDeviceSparseImageFormatProperties");
  3587. glad_vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData) load(userptr, "vkGetPipelineCacheData");
  3588. glad_vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults) load(userptr, "vkGetQueryPoolResults");
  3589. glad_vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity) load(userptr, "vkGetRenderAreaGranularity");
  3590. glad_vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges) load(userptr, "vkInvalidateMappedMemoryRanges");
  3591. glad_vkMapMemory = (PFN_vkMapMemory) load(userptr, "vkMapMemory");
  3592. glad_vkMergePipelineCaches = (PFN_vkMergePipelineCaches) load(userptr, "vkMergePipelineCaches");
  3593. glad_vkQueueBindSparse = (PFN_vkQueueBindSparse) load(userptr, "vkQueueBindSparse");
  3594. glad_vkQueueSubmit = (PFN_vkQueueSubmit) load(userptr, "vkQueueSubmit");
  3595. glad_vkQueueWaitIdle = (PFN_vkQueueWaitIdle) load(userptr, "vkQueueWaitIdle");
  3596. glad_vkResetCommandBuffer = (PFN_vkResetCommandBuffer) load(userptr, "vkResetCommandBuffer");
  3597. glad_vkResetCommandPool = (PFN_vkResetCommandPool) load(userptr, "vkResetCommandPool");
  3598. glad_vkResetDescriptorPool = (PFN_vkResetDescriptorPool) load(userptr, "vkResetDescriptorPool");
  3599. glad_vkResetEvent = (PFN_vkResetEvent) load(userptr, "vkResetEvent");
  3600. glad_vkResetFences = (PFN_vkResetFences) load(userptr, "vkResetFences");
  3601. glad_vkSetEvent = (PFN_vkSetEvent) load(userptr, "vkSetEvent");
  3602. glad_vkUnmapMemory = (PFN_vkUnmapMemory) load(userptr, "vkUnmapMemory");
  3603. glad_vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets) load(userptr, "vkUpdateDescriptorSets");
  3604. glad_vkWaitForFences = (PFN_vkWaitForFences) load(userptr, "vkWaitForFences");
  3605. }
  3606. static void glad_vk_load_VK_EXT_debug_report( GLADuserptrloadfunc load, void* userptr) {
  3607. if(!GLAD_VK_EXT_debug_report) return;
  3608. glad_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT) load(userptr, "vkCreateDebugReportCallbackEXT");
  3609. glad_vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT) load(userptr, "vkDebugReportMessageEXT");
  3610. glad_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT) load(userptr, "vkDestroyDebugReportCallbackEXT");
  3611. }
  3612. static void glad_vk_load_VK_EXT_debug_utils( GLADuserptrloadfunc load, void* userptr) {
  3613. if(!GLAD_VK_EXT_debug_utils) return;
  3614. glad_vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT) load(userptr, "vkCmdBeginDebugUtilsLabelEXT");
  3615. glad_vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT) load(userptr, "vkCmdEndDebugUtilsLabelEXT");
  3616. glad_vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT) load(userptr, "vkCmdInsertDebugUtilsLabelEXT");
  3617. glad_vkCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT) load(userptr, "vkCreateDebugUtilsMessengerEXT");
  3618. glad_vkDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT) load(userptr, "vkDestroyDebugUtilsMessengerEXT");
  3619. glad_vkQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT) load(userptr, "vkQueueBeginDebugUtilsLabelEXT");
  3620. glad_vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT) load(userptr, "vkQueueEndDebugUtilsLabelEXT");
  3621. glad_vkQueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT) load(userptr, "vkQueueInsertDebugUtilsLabelEXT");
  3622. glad_vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT) load(userptr, "vkSetDebugUtilsObjectNameEXT");
  3623. glad_vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT) load(userptr, "vkSetDebugUtilsObjectTagEXT");
  3624. glad_vkSubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT) load(userptr, "vkSubmitDebugUtilsMessageEXT");
  3625. }
  3626. static void glad_vk_load_VK_KHR_get_physical_device_properties2( GLADuserptrloadfunc load, void* userptr) {
  3627. if(!GLAD_VK_KHR_get_physical_device_properties2) return;
  3628. glad_vkGetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR) load(userptr, "vkGetPhysicalDeviceFeatures2KHR");
  3629. glad_vkGetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR) load(userptr, "vkGetPhysicalDeviceFormatProperties2KHR");
  3630. glad_vkGetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR) load(userptr, "vkGetPhysicalDeviceImageFormatProperties2KHR");
  3631. glad_vkGetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR) load(userptr, "vkGetPhysicalDeviceMemoryProperties2KHR");
  3632. glad_vkGetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR) load(userptr, "vkGetPhysicalDeviceProperties2KHR");
  3633. glad_vkGetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR) load(userptr, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
  3634. glad_vkGetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR) load(userptr, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
  3635. }
  3636. static void glad_vk_load_VK_KHR_surface( GLADuserptrloadfunc load, void* userptr) {
  3637. if(!GLAD_VK_KHR_surface) return;
  3638. glad_vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR) load(userptr, "vkDestroySurfaceKHR");
  3639. glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR) load(userptr, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
  3640. glad_vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR) load(userptr, "vkGetPhysicalDeviceSurfaceFormatsKHR");
  3641. glad_vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR) load(userptr, "vkGetPhysicalDeviceSurfacePresentModesKHR");
  3642. glad_vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR) load(userptr, "vkGetPhysicalDeviceSurfaceSupportKHR");
  3643. }
  3644. static void glad_vk_load_VK_KHR_swapchain( GLADuserptrloadfunc load, void* userptr) {
  3645. if(!GLAD_VK_KHR_swapchain) return;
  3646. glad_vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR) load(userptr, "vkAcquireNextImage2KHR");
  3647. glad_vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR) load(userptr, "vkAcquireNextImageKHR");
  3648. glad_vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR) load(userptr, "vkCreateSwapchainKHR");
  3649. glad_vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR) load(userptr, "vkDestroySwapchainKHR");
  3650. glad_vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR) load(userptr, "vkGetDeviceGroupPresentCapabilitiesKHR");
  3651. glad_vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR) load(userptr, "vkGetDeviceGroupSurfacePresentModesKHR");
  3652. glad_vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR) load(userptr, "vkGetPhysicalDevicePresentRectanglesKHR");
  3653. glad_vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR) load(userptr, "vkGetSwapchainImagesKHR");
  3654. glad_vkQueuePresentKHR = (PFN_vkQueuePresentKHR) load(userptr, "vkQueuePresentKHR");
  3655. }
  3656. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  3657. static void glad_vk_load_VK_KHR_win32_surface( GLADuserptrloadfunc load, void* userptr) {
  3658. if(!GLAD_VK_KHR_win32_surface) return;
  3659. glad_vkCreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR) load(userptr, "vkCreateWin32SurfaceKHR");
  3660. glad_vkGetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR) load(userptr, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
  3661. }
  3662. #endif
  3663. #if defined(VK_USE_PLATFORM_XCB_KHR)
  3664. static void glad_vk_load_VK_KHR_xcb_surface( GLADuserptrloadfunc load, void* userptr) {
  3665. if(!GLAD_VK_KHR_xcb_surface) return;
  3666. glad_vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR) load(userptr, "vkCreateXcbSurfaceKHR");
  3667. glad_vkGetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR) load(userptr, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
  3668. }
  3669. #endif
  3670. static int glad_vk_get_extensions( VkPhysicalDevice physical_device, uint32_t *out_extension_count, char ***out_extensions) {
  3671. uint32_t i;
  3672. uint32_t instance_extension_count = 0;
  3673. uint32_t device_extension_count = 0;
  3674. uint32_t max_extension_count = 0;
  3675. uint32_t total_extension_count = 0;
  3676. char **extensions = NULL;
  3677. VkExtensionProperties *ext_properties = NULL;
  3678. VkResult result;
  3679. if (glad_vkEnumerateInstanceExtensionProperties == NULL || (physical_device != NULL && glad_vkEnumerateDeviceExtensionProperties == NULL)) {
  3680. return 0;
  3681. }
  3682. result = glad_vkEnumerateInstanceExtensionProperties(NULL, &instance_extension_count, NULL);
  3683. if (result != VK_SUCCESS) {
  3684. return 0;
  3685. }
  3686. if (physical_device != NULL) {
  3687. result = glad_vkEnumerateDeviceExtensionProperties(physical_device, NULL, &device_extension_count, NULL);
  3688. if (result != VK_SUCCESS) {
  3689. return 0;
  3690. }
  3691. }
  3692. total_extension_count = instance_extension_count + device_extension_count;
  3693. if (total_extension_count <= 0) {
  3694. return 0;
  3695. }
  3696. max_extension_count = instance_extension_count > device_extension_count
  3697. ? instance_extension_count : device_extension_count;
  3698. ext_properties = (VkExtensionProperties*) malloc(max_extension_count * sizeof(VkExtensionProperties));
  3699. if (ext_properties == NULL) {
  3700. goto glad_vk_get_extensions_error;
  3701. }
  3702. result = glad_vkEnumerateInstanceExtensionProperties(NULL, &instance_extension_count, ext_properties);
  3703. if (result != VK_SUCCESS) {
  3704. goto glad_vk_get_extensions_error;
  3705. }
  3706. extensions = (char**) calloc(total_extension_count, sizeof(char*));
  3707. if (extensions == NULL) {
  3708. goto glad_vk_get_extensions_error;
  3709. }
  3710. for (i = 0; i < instance_extension_count; ++i) {
  3711. VkExtensionProperties ext = ext_properties[i];
  3712. size_t extension_name_length = strlen(ext.extensionName) + 1;
  3713. extensions[i] = (char*) malloc(extension_name_length * sizeof(char));
  3714. if (extensions[i] == NULL) {
  3715. goto glad_vk_get_extensions_error;
  3716. }
  3717. memcpy(extensions[i], ext.extensionName, extension_name_length * sizeof(char));
  3718. }
  3719. if (physical_device != NULL) {
  3720. result = glad_vkEnumerateDeviceExtensionProperties(physical_device, NULL, &device_extension_count, ext_properties);
  3721. if (result != VK_SUCCESS) {
  3722. goto glad_vk_get_extensions_error;
  3723. }
  3724. for (i = 0; i < device_extension_count; ++i) {
  3725. VkExtensionProperties ext = ext_properties[i];
  3726. size_t extension_name_length = strlen(ext.extensionName) + 1;
  3727. extensions[instance_extension_count + i] = (char*) malloc(extension_name_length * sizeof(char));
  3728. if (extensions[instance_extension_count + i] == NULL) {
  3729. goto glad_vk_get_extensions_error;
  3730. }
  3731. memcpy(extensions[instance_extension_count + i], ext.extensionName, extension_name_length * sizeof(char));
  3732. }
  3733. }
  3734. free((void*) ext_properties);
  3735. *out_extension_count = total_extension_count;
  3736. *out_extensions = extensions;
  3737. return 1;
  3738. glad_vk_get_extensions_error:
  3739. free((void*) ext_properties);
  3740. if (extensions != NULL) {
  3741. for (i = 0; i < total_extension_count; ++i) {
  3742. free((void*) extensions[i]);
  3743. }
  3744. free(extensions);
  3745. }
  3746. return 0;
  3747. }
  3748. static void glad_vk_free_extensions(uint32_t extension_count, char **extensions) {
  3749. uint32_t i;
  3750. for(i = 0; i < extension_count ; ++i) {
  3751. free((void*) (extensions[i]));
  3752. }
  3753. free((void*) extensions);
  3754. }
  3755. static int glad_vk_has_extension(const char *name, uint32_t extension_count, char **extensions) {
  3756. uint32_t i;
  3757. for (i = 0; i < extension_count; ++i) {
  3758. if(extensions[i] != NULL && strcmp(name, extensions[i]) == 0) {
  3759. return 1;
  3760. }
  3761. }
  3762. return 0;
  3763. }
  3764. static GLADapiproc glad_vk_get_proc_from_userptr(void *userptr, const char* name) {
  3765. return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
  3766. }
  3767. static int glad_vk_find_extensions_vulkan( VkPhysicalDevice physical_device) {
  3768. uint32_t extension_count = 0;
  3769. char **extensions = NULL;
  3770. if (!glad_vk_get_extensions(physical_device, &extension_count, &extensions)) return 0;
  3771. GLAD_VK_EXT_debug_report = glad_vk_has_extension("VK_EXT_debug_report", extension_count, extensions);
  3772. GLAD_VK_EXT_debug_utils = glad_vk_has_extension("VK_EXT_debug_utils", extension_count, extensions);
  3773. GLAD_VK_EXT_scalar_block_layout = glad_vk_has_extension("VK_EXT_scalar_block_layout", extension_count, extensions);
  3774. GLAD_VK_EXT_validation_features = glad_vk_has_extension("VK_EXT_validation_features", extension_count, extensions);
  3775. GLAD_VK_KHR_get_physical_device_properties2 = glad_vk_has_extension("VK_KHR_get_physical_device_properties2", extension_count, extensions);
  3776. GLAD_VK_KHR_portability_enumeration = glad_vk_has_extension("VK_KHR_portability_enumeration", extension_count, extensions);
  3777. GLAD_VK_KHR_shader_subgroup_extended_types = glad_vk_has_extension("VK_KHR_shader_subgroup_extended_types", extension_count, extensions);
  3778. GLAD_VK_KHR_surface = glad_vk_has_extension("VK_KHR_surface", extension_count, extensions);
  3779. GLAD_VK_KHR_swapchain = glad_vk_has_extension("VK_KHR_swapchain", extension_count, extensions);
  3780. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  3781. GLAD_VK_KHR_win32_surface = glad_vk_has_extension("VK_KHR_win32_surface", extension_count, extensions);
  3782. #endif
  3783. #if defined(VK_USE_PLATFORM_XCB_KHR)
  3784. GLAD_VK_KHR_xcb_surface = glad_vk_has_extension("VK_KHR_xcb_surface", extension_count, extensions);
  3785. #endif
  3786. (void) glad_vk_has_extension;
  3787. glad_vk_free_extensions(extension_count, extensions);
  3788. return 1;
  3789. }
  3790. static int glad_vk_find_core_vulkan( VkPhysicalDevice physical_device) {
  3791. int major = 1;
  3792. int minor = 0;
  3793. #ifdef VK_VERSION_1_1
  3794. if (glad_vkEnumerateInstanceVersion != NULL) {
  3795. uint32_t version;
  3796. VkResult result;
  3797. result = glad_vkEnumerateInstanceVersion(&version);
  3798. if (result == VK_SUCCESS) {
  3799. major = (int) VK_VERSION_MAJOR(version);
  3800. minor = (int) VK_VERSION_MINOR(version);
  3801. }
  3802. }
  3803. #endif
  3804. if (physical_device != NULL && glad_vkGetPhysicalDeviceProperties != NULL) {
  3805. VkPhysicalDeviceProperties properties;
  3806. glad_vkGetPhysicalDeviceProperties(physical_device, &properties);
  3807. major = (int) VK_VERSION_MAJOR(properties.apiVersion);
  3808. minor = (int) VK_VERSION_MINOR(properties.apiVersion);
  3809. }
  3810. GLAD_VK_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
  3811. return GLAD_MAKE_VERSION(major, minor);
  3812. }
  3813. int gladLoadVulkanUserPtr( VkPhysicalDevice physical_device, GLADuserptrloadfunc load, void *userptr) {
  3814. int version;
  3815. #ifdef VK_VERSION_1_1
  3816. glad_vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion) load(userptr, "vkEnumerateInstanceVersion");
  3817. #endif
  3818. version = glad_vk_find_core_vulkan( physical_device);
  3819. if (!version) {
  3820. return 0;
  3821. }
  3822. glad_vk_load_VK_VERSION_1_0(load, userptr);
  3823. if (!glad_vk_find_extensions_vulkan( physical_device)) return 0;
  3824. glad_vk_load_VK_EXT_debug_report(load, userptr);
  3825. glad_vk_load_VK_EXT_debug_utils(load, userptr);
  3826. glad_vk_load_VK_KHR_get_physical_device_properties2(load, userptr);
  3827. glad_vk_load_VK_KHR_surface(load, userptr);
  3828. glad_vk_load_VK_KHR_swapchain(load, userptr);
  3829. #if defined(VK_USE_PLATFORM_WIN32_KHR)
  3830. glad_vk_load_VK_KHR_win32_surface(load, userptr);
  3831. #endif
  3832. #if defined(VK_USE_PLATFORM_XCB_KHR)
  3833. glad_vk_load_VK_KHR_xcb_surface(load, userptr);
  3834. #endif
  3835. return version;
  3836. }
  3837. int gladLoadVulkan( VkPhysicalDevice physical_device, GLADloadfunc load) {
  3838. return gladLoadVulkanUserPtr( physical_device, glad_vk_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
  3839. }
  3840. #ifdef GLAD_VULKAN
  3841. #ifndef GLAD_LOADER_LIBRARY_C_
  3842. #define GLAD_LOADER_LIBRARY_C_
  3843. #include <stddef.h>
  3844. #include <stdlib.h>
  3845. #if GLAD_PLATFORM_WIN32
  3846. #include <windows.h>
  3847. #else
  3848. #include <dlfcn.h>
  3849. #endif
  3850. static void* glad_get_dlopen_handle(const char *lib_names[], int length) {
  3851. void *handle = NULL;
  3852. int i;
  3853. for (i = 0; i < length; ++i) {
  3854. #if GLAD_PLATFORM_WIN32
  3855. #if GLAD_PLATFORM_UWP
  3856. size_t buffer_size = (strlen(lib_names[i]) + 1) * sizeof(WCHAR);
  3857. LPWSTR buffer = (LPWSTR) malloc(buffer_size);
  3858. if (buffer != NULL) {
  3859. int ret = MultiByteToWideChar(CP_ACP, 0, lib_names[i], -1, buffer, buffer_size);
  3860. if (ret != 0) {
  3861. handle = (void*) LoadPackagedLibrary(buffer, 0);
  3862. }
  3863. free((void*) buffer);
  3864. }
  3865. #else
  3866. handle = (void*) LoadLibraryA(lib_names[i]);
  3867. #endif
  3868. #else
  3869. handle = dlopen(lib_names[i], RTLD_LAZY | RTLD_LOCAL);
  3870. #endif
  3871. if (handle != NULL) {
  3872. return handle;
  3873. }
  3874. }
  3875. return NULL;
  3876. }
  3877. static void glad_close_dlopen_handle(void* handle) {
  3878. if (handle != NULL) {
  3879. #if GLAD_PLATFORM_WIN32
  3880. FreeLibrary((HMODULE) handle);
  3881. #else
  3882. dlclose(handle);
  3883. #endif
  3884. }
  3885. }
  3886. static GLADapiproc glad_dlsym_handle(void* handle, const char *name) {
  3887. if (handle == NULL) {
  3888. return NULL;
  3889. }
  3890. #if GLAD_PLATFORM_WIN32
  3891. return (GLADapiproc) GetProcAddress((HMODULE) handle, name);
  3892. #else
  3893. return GLAD_GNUC_EXTENSION (GLADapiproc) dlsym(handle, name);
  3894. #endif
  3895. }
  3896. #endif /* GLAD_LOADER_LIBRARY_C_ */
  3897. static const char* DEVICE_FUNCTIONS[] = {
  3898. "vkAcquireNextImage2KHR",
  3899. "vkAcquireNextImageKHR",
  3900. "vkAllocateCommandBuffers",
  3901. "vkAllocateDescriptorSets",
  3902. "vkAllocateMemory",
  3903. "vkBeginCommandBuffer",
  3904. "vkBindBufferMemory",
  3905. "vkBindImageMemory",
  3906. "vkCmdBeginDebugUtilsLabelEXT",
  3907. "vkCmdBeginQuery",
  3908. "vkCmdBeginRenderPass",
  3909. "vkCmdBindDescriptorSets",
  3910. "vkCmdBindIndexBuffer",
  3911. "vkCmdBindPipeline",
  3912. "vkCmdBindVertexBuffers",
  3913. "vkCmdBlitImage",
  3914. "vkCmdClearAttachments",
  3915. "vkCmdClearColorImage",
  3916. "vkCmdClearDepthStencilImage",
  3917. "vkCmdCopyBuffer",
  3918. "vkCmdCopyBufferToImage",
  3919. "vkCmdCopyImage",
  3920. "vkCmdCopyImageToBuffer",
  3921. "vkCmdCopyQueryPoolResults",
  3922. "vkCmdDispatch",
  3923. "vkCmdDispatchIndirect",
  3924. "vkCmdDraw",
  3925. "vkCmdDrawIndexed",
  3926. "vkCmdDrawIndexedIndirect",
  3927. "vkCmdDrawIndirect",
  3928. "vkCmdEndDebugUtilsLabelEXT",
  3929. "vkCmdEndQuery",
  3930. "vkCmdEndRenderPass",
  3931. "vkCmdExecuteCommands",
  3932. "vkCmdFillBuffer",
  3933. "vkCmdInsertDebugUtilsLabelEXT",
  3934. "vkCmdNextSubpass",
  3935. "vkCmdPipelineBarrier",
  3936. "vkCmdPushConstants",
  3937. "vkCmdResetEvent",
  3938. "vkCmdResetQueryPool",
  3939. "vkCmdResolveImage",
  3940. "vkCmdSetBlendConstants",
  3941. "vkCmdSetDepthBias",
  3942. "vkCmdSetDepthBounds",
  3943. "vkCmdSetEvent",
  3944. "vkCmdSetLineWidth",
  3945. "vkCmdSetScissor",
  3946. "vkCmdSetStencilCompareMask",
  3947. "vkCmdSetStencilReference",
  3948. "vkCmdSetStencilWriteMask",
  3949. "vkCmdSetViewport",
  3950. "vkCmdUpdateBuffer",
  3951. "vkCmdWaitEvents",
  3952. "vkCmdWriteTimestamp",
  3953. "vkCreateBuffer",
  3954. "vkCreateBufferView",
  3955. "vkCreateCommandPool",
  3956. "vkCreateComputePipelines",
  3957. "vkCreateDescriptorPool",
  3958. "vkCreateDescriptorSetLayout",
  3959. "vkCreateEvent",
  3960. "vkCreateFence",
  3961. "vkCreateFramebuffer",
  3962. "vkCreateGraphicsPipelines",
  3963. "vkCreateImage",
  3964. "vkCreateImageView",
  3965. "vkCreatePipelineCache",
  3966. "vkCreatePipelineLayout",
  3967. "vkCreateQueryPool",
  3968. "vkCreateRenderPass",
  3969. "vkCreateSampler",
  3970. "vkCreateSemaphore",
  3971. "vkCreateShaderModule",
  3972. "vkCreateSwapchainKHR",
  3973. "vkDestroyBuffer",
  3974. "vkDestroyBufferView",
  3975. "vkDestroyCommandPool",
  3976. "vkDestroyDescriptorPool",
  3977. "vkDestroyDescriptorSetLayout",
  3978. "vkDestroyDevice",
  3979. "vkDestroyEvent",
  3980. "vkDestroyFence",
  3981. "vkDestroyFramebuffer",
  3982. "vkDestroyImage",
  3983. "vkDestroyImageView",
  3984. "vkDestroyPipeline",
  3985. "vkDestroyPipelineCache",
  3986. "vkDestroyPipelineLayout",
  3987. "vkDestroyQueryPool",
  3988. "vkDestroyRenderPass",
  3989. "vkDestroySampler",
  3990. "vkDestroySemaphore",
  3991. "vkDestroyShaderModule",
  3992. "vkDestroySwapchainKHR",
  3993. "vkDeviceWaitIdle",
  3994. "vkEndCommandBuffer",
  3995. "vkFlushMappedMemoryRanges",
  3996. "vkFreeCommandBuffers",
  3997. "vkFreeDescriptorSets",
  3998. "vkFreeMemory",
  3999. "vkGetBufferMemoryRequirements",
  4000. "vkGetDeviceGroupPresentCapabilitiesKHR",
  4001. "vkGetDeviceGroupSurfacePresentModesKHR",
  4002. "vkGetDeviceMemoryCommitment",
  4003. "vkGetDeviceProcAddr",
  4004. "vkGetDeviceQueue",
  4005. "vkGetEventStatus",
  4006. "vkGetFenceStatus",
  4007. "vkGetImageMemoryRequirements",
  4008. "vkGetImageSparseMemoryRequirements",
  4009. "vkGetImageSubresourceLayout",
  4010. "vkGetPipelineCacheData",
  4011. "vkGetQueryPoolResults",
  4012. "vkGetRenderAreaGranularity",
  4013. "vkGetSwapchainImagesKHR",
  4014. "vkInvalidateMappedMemoryRanges",
  4015. "vkMapMemory",
  4016. "vkMergePipelineCaches",
  4017. "vkQueueBeginDebugUtilsLabelEXT",
  4018. "vkQueueBindSparse",
  4019. "vkQueueEndDebugUtilsLabelEXT",
  4020. "vkQueueInsertDebugUtilsLabelEXT",
  4021. "vkQueuePresentKHR",
  4022. "vkQueueSubmit",
  4023. "vkQueueWaitIdle",
  4024. "vkResetCommandBuffer",
  4025. "vkResetCommandPool",
  4026. "vkResetDescriptorPool",
  4027. "vkResetEvent",
  4028. "vkResetFences",
  4029. "vkSetDebugUtilsObjectNameEXT",
  4030. "vkSetDebugUtilsObjectTagEXT",
  4031. "vkSetEvent",
  4032. "vkUnmapMemory",
  4033. "vkUpdateDescriptorSets",
  4034. "vkWaitForFences",
  4035. };
  4036. static int glad_vulkan_is_device_function(const char *name) {
  4037. /* Exists as a workaround for:
  4038. * https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/2323
  4039. *
  4040. * `vkGetDeviceProcAddr` does not return NULL for non-device functions.
  4041. */
  4042. int i;
  4043. int length = sizeof(DEVICE_FUNCTIONS) / sizeof(DEVICE_FUNCTIONS[0]);
  4044. for (i=0; i < length; ++i) {
  4045. if (strcmp(DEVICE_FUNCTIONS[i], name) == 0) {
  4046. return 1;
  4047. }
  4048. }
  4049. return 0;
  4050. }
  4051. struct _glad_vulkan_userptr {
  4052. void *vk_handle;
  4053. VkInstance vk_instance;
  4054. VkDevice vk_device;
  4055. PFN_vkGetInstanceProcAddr get_instance_proc_addr;
  4056. PFN_vkGetDeviceProcAddr get_device_proc_addr;
  4057. };
  4058. static GLADapiproc glad_vulkan_get_proc(void *vuserptr, const char *name) {
  4059. struct _glad_vulkan_userptr userptr = *(struct _glad_vulkan_userptr*) vuserptr;
  4060. PFN_vkVoidFunction result = NULL;
  4061. if (userptr.vk_device != NULL && glad_vulkan_is_device_function(name)) {
  4062. result = userptr.get_device_proc_addr(userptr.vk_device, name);
  4063. }
  4064. if (result == NULL && userptr.vk_instance != NULL) {
  4065. result = userptr.get_instance_proc_addr(userptr.vk_instance, name);
  4066. }
  4067. if(result == NULL) {
  4068. result = (PFN_vkVoidFunction) glad_dlsym_handle(userptr.vk_handle, name);
  4069. }
  4070. return (GLADapiproc) result;
  4071. }
  4072. static void* _vulkan_handle;
  4073. static void* glad_vulkan_dlopen_handle(void) {
  4074. static const char *NAMES[] = {
  4075. #if GLAD_PLATFORM_APPLE
  4076. "libvulkan.1.dylib",
  4077. #elif GLAD_PLATFORM_WIN32
  4078. "vulkan-1.dll",
  4079. "vulkan.dll",
  4080. #else
  4081. "libvulkan.so.1",
  4082. "libvulkan.so",
  4083. #endif
  4084. };
  4085. if (_vulkan_handle == NULL) {
  4086. _vulkan_handle = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0]));
  4087. }
  4088. return _vulkan_handle;
  4089. }
  4090. static struct _glad_vulkan_userptr glad_vulkan_build_userptr(void *handle, VkInstance instance, VkDevice device) {
  4091. struct _glad_vulkan_userptr userptr;
  4092. userptr.vk_handle = handle;
  4093. userptr.vk_instance = instance;
  4094. userptr.vk_device = device;
  4095. userptr.get_instance_proc_addr = (PFN_vkGetInstanceProcAddr) glad_dlsym_handle(handle, "vkGetInstanceProcAddr");
  4096. userptr.get_device_proc_addr = (PFN_vkGetDeviceProcAddr) glad_dlsym_handle(handle, "vkGetDeviceProcAddr");
  4097. return userptr;
  4098. }
  4099. int gladLoaderLoadVulkan( VkInstance instance, VkPhysicalDevice physical_device, VkDevice device) {
  4100. int version = 0;
  4101. void *handle = NULL;
  4102. int did_load = 0;
  4103. struct _glad_vulkan_userptr userptr;
  4104. did_load = _vulkan_handle == NULL;
  4105. handle = glad_vulkan_dlopen_handle();
  4106. if (handle != NULL) {
  4107. userptr = glad_vulkan_build_userptr(handle, instance, device);
  4108. if (userptr.get_instance_proc_addr != NULL && userptr.get_device_proc_addr != NULL) {
  4109. version = gladLoadVulkanUserPtr( physical_device, glad_vulkan_get_proc, &userptr);
  4110. }
  4111. if (!version && did_load) {
  4112. gladLoaderUnloadVulkan();
  4113. }
  4114. }
  4115. return version;
  4116. }
  4117. void gladLoaderUnloadVulkan(void) {
  4118. if (_vulkan_handle != NULL) {
  4119. glad_close_dlopen_handle(_vulkan_handle);
  4120. _vulkan_handle = NULL;
  4121. }
  4122. }
  4123. #endif /* GLAD_VULKAN */
  4124. #ifdef __cplusplus
  4125. }
  4126. #endif
  4127. #endif /* GLAD_VULKAN_IMPLEMENTATION */