vulkan.h 269 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823
  1. #ifndef VULKAN_H_
  2. #define VULKAN_H_ 1
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /*
  7. ** Copyright (c) 2015-2017 The Khronos Group Inc.
  8. **
  9. ** Licensed under the Apache License, Version 2.0 (the "License");
  10. ** you may not use this file except in compliance with the License.
  11. ** You may obtain a copy of the License at
  12. **
  13. ** http://www.apache.org/licenses/LICENSE-2.0
  14. **
  15. ** Unless required by applicable law or agreed to in writing, software
  16. ** distributed under the License is distributed on an "AS IS" BASIS,
  17. ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18. ** See the License for the specific language governing permissions and
  19. ** limitations under the License.
  20. */
  21. /*
  22. ** This header is generated from the Khronos Vulkan XML API Registry.
  23. **
  24. */
  25. #define VK_VERSION_1_0 1
  26. #include "vk_platform.h"
  27. #define VK_MAKE_VERSION(major, minor, patch) \
  28. (((major) << 22) | ((minor) << 12) | (patch))
  29. // 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.
  30. //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0)
  31. // Vulkan 1.0 version number
  32. #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)
  33. #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
  34. #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
  35. #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
  36. // Version of this file
  37. #define VK_HEADER_VERSION 46
  38. #define VK_NULL_HANDLE 0
  39. #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
  40. #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
  41. #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
  42. #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
  43. #else
  44. #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
  45. #endif
  46. #endif
  47. typedef uint32_t VkFlags;
  48. typedef uint32_t VkBool32;
  49. typedef uint64_t VkDeviceSize;
  50. typedef uint32_t VkSampleMask;
  51. VK_DEFINE_HANDLE(VkInstance)
  52. VK_DEFINE_HANDLE(VkPhysicalDevice)
  53. VK_DEFINE_HANDLE(VkDevice)
  54. VK_DEFINE_HANDLE(VkQueue)
  55. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
  56. VK_DEFINE_HANDLE(VkCommandBuffer)
  57. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
  58. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
  59. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
  60. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
  61. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
  62. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
  63. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
  64. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
  65. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
  66. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
  67. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
  68. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
  69. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
  70. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
  71. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
  72. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
  73. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
  74. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
  75. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
  76. #define VK_LOD_CLAMP_NONE 1000.0f
  77. #define VK_REMAINING_MIP_LEVELS (~0U)
  78. #define VK_REMAINING_ARRAY_LAYERS (~0U)
  79. #define VK_WHOLE_SIZE (~0ULL)
  80. #define VK_ATTACHMENT_UNUSED (~0U)
  81. #define VK_TRUE 1
  82. #define VK_FALSE 0
  83. #define VK_QUEUE_FAMILY_IGNORED (~0U)
  84. #define VK_SUBPASS_EXTERNAL (~0U)
  85. #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
  86. #define VK_UUID_SIZE 16
  87. #define VK_MAX_MEMORY_TYPES 32
  88. #define VK_MAX_MEMORY_HEAPS 16
  89. #define VK_MAX_EXTENSION_NAME_SIZE 256
  90. #define VK_MAX_DESCRIPTION_SIZE 256
  91. typedef enum VkPipelineCacheHeaderVersion {
  92. VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
  93. VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
  94. VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
  95. VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
  96. VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
  97. } VkPipelineCacheHeaderVersion;
  98. typedef enum VkResult {
  99. VK_SUCCESS = 0,
  100. VK_NOT_READY = 1,
  101. VK_TIMEOUT = 2,
  102. VK_EVENT_SET = 3,
  103. VK_EVENT_RESET = 4,
  104. VK_INCOMPLETE = 5,
  105. VK_ERROR_OUT_OF_HOST_MEMORY = -1,
  106. VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
  107. VK_ERROR_INITIALIZATION_FAILED = -3,
  108. VK_ERROR_DEVICE_LOST = -4,
  109. VK_ERROR_MEMORY_MAP_FAILED = -5,
  110. VK_ERROR_LAYER_NOT_PRESENT = -6,
  111. VK_ERROR_EXTENSION_NOT_PRESENT = -7,
  112. VK_ERROR_FEATURE_NOT_PRESENT = -8,
  113. VK_ERROR_INCOMPATIBLE_DRIVER = -9,
  114. VK_ERROR_TOO_MANY_OBJECTS = -10,
  115. VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
  116. VK_ERROR_FRAGMENTED_POOL = -12,
  117. VK_ERROR_SURFACE_LOST_KHR = -1000000000,
  118. VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
  119. VK_SUBOPTIMAL_KHR = 1000001003,
  120. VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
  121. VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
  122. VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
  123. VK_ERROR_INVALID_SHADER_NV = -1000012000,
  124. VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000,
  125. VK_ERROR_INVALID_EXTERNAL_HANDLE_KHX = -1000072003,
  126. VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
  127. VK_RESULT_END_RANGE = VK_INCOMPLETE,
  128. VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
  129. VK_RESULT_MAX_ENUM = 0x7FFFFFFF
  130. } VkResult;
  131. typedef enum VkStructureType {
  132. VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
  133. VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
  134. VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
  135. VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
  136. VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
  137. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
  138. VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
  139. VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
  140. VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
  141. VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
  142. VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
  143. VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
  144. VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
  145. VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
  146. VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
  147. VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
  148. VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
  149. VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
  150. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
  151. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
  152. VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
  153. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
  154. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
  155. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
  156. VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
  157. VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
  158. VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
  159. VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
  160. VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
  161. VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
  162. VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
  163. VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
  164. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
  165. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
  166. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
  167. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
  168. VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
  169. VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
  170. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
  171. VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
  172. VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
  173. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
  174. VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
  175. VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
  176. VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
  177. VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
  178. VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
  179. VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
  180. VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
  181. VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
  182. VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
  183. VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
  184. VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
  185. VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
  186. VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
  187. VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
  188. VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
  189. VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
  190. VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
  191. VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
  192. VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
  193. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
  194. VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
  195. VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
  196. VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
  197. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
  198. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
  199. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
  200. VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX = 1000053000,
  201. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX = 1000053001,
  202. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX = 1000053002,
  203. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
  204. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
  205. VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
  206. VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
  207. VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
  208. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
  209. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
  210. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
  211. VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
  212. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
  213. VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
  214. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
  215. VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
  216. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
  217. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX = 1000060000,
  218. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX = 1000060001,
  219. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX = 1000060002,
  220. VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX = 1000060003,
  221. VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX = 1000060004,
  222. VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX = 1000060005,
  223. VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX = 1000060006,
  224. VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX = 1000060007,
  225. VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX = 1000060008,
  226. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX = 1000060009,
  227. VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010,
  228. VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX = 1000060011,
  229. VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX = 1000060012,
  230. VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
  231. VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
  232. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX = 1000070000,
  233. VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX = 1000070001,
  234. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHX = 1000071000,
  235. VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHX = 1000071001,
  236. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHX = 1000071002,
  237. VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHX = 1000071003,
  238. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHX = 1000071004,
  239. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHX = 1000071005,
  240. VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHX = 1000071006,
  241. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHX = 1000071007,
  242. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHX = 1000072000,
  243. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHX = 1000072001,
  244. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHX = 1000072002,
  245. VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHX = 1000073000,
  246. VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHX = 1000073001,
  247. VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHX = 1000073002,
  248. VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHX = 1000074000,
  249. VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHX = 1000074001,
  250. VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHX = 1000075000,
  251. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHX = 1000076000,
  252. VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHX = 1000076001,
  253. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHX = 1000077000,
  254. VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHX = 1000078000,
  255. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHX = 1000078001,
  256. VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHX = 1000078002,
  257. VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHX = 1000079000,
  258. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
  259. VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
  260. VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
  261. VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
  262. VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
  263. VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
  264. VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
  265. VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
  266. VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
  267. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
  268. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = 1000090000,
  269. VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
  270. VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
  271. VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
  272. VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
  273. VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
  274. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
  275. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
  276. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
  277. VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
  278. VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
  279. VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
  280. VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
  281. VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
  282. VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
  283. VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
  284. VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
  285. } VkStructureType;
  286. typedef enum VkSystemAllocationScope {
  287. VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
  288. VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
  289. VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
  290. VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
  291. VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
  292. VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
  293. VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
  294. VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
  295. VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
  296. } VkSystemAllocationScope;
  297. typedef enum VkInternalAllocationType {
  298. VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
  299. VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
  300. VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
  301. VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
  302. VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
  303. } VkInternalAllocationType;
  304. typedef enum VkFormat {
  305. VK_FORMAT_UNDEFINED = 0,
  306. VK_FORMAT_R4G4_UNORM_PACK8 = 1,
  307. VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
  308. VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
  309. VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
  310. VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
  311. VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
  312. VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
  313. VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
  314. VK_FORMAT_R8_UNORM = 9,
  315. VK_FORMAT_R8_SNORM = 10,
  316. VK_FORMAT_R8_USCALED = 11,
  317. VK_FORMAT_R8_SSCALED = 12,
  318. VK_FORMAT_R8_UINT = 13,
  319. VK_FORMAT_R8_SINT = 14,
  320. VK_FORMAT_R8_SRGB = 15,
  321. VK_FORMAT_R8G8_UNORM = 16,
  322. VK_FORMAT_R8G8_SNORM = 17,
  323. VK_FORMAT_R8G8_USCALED = 18,
  324. VK_FORMAT_R8G8_SSCALED = 19,
  325. VK_FORMAT_R8G8_UINT = 20,
  326. VK_FORMAT_R8G8_SINT = 21,
  327. VK_FORMAT_R8G8_SRGB = 22,
  328. VK_FORMAT_R8G8B8_UNORM = 23,
  329. VK_FORMAT_R8G8B8_SNORM = 24,
  330. VK_FORMAT_R8G8B8_USCALED = 25,
  331. VK_FORMAT_R8G8B8_SSCALED = 26,
  332. VK_FORMAT_R8G8B8_UINT = 27,
  333. VK_FORMAT_R8G8B8_SINT = 28,
  334. VK_FORMAT_R8G8B8_SRGB = 29,
  335. VK_FORMAT_B8G8R8_UNORM = 30,
  336. VK_FORMAT_B8G8R8_SNORM = 31,
  337. VK_FORMAT_B8G8R8_USCALED = 32,
  338. VK_FORMAT_B8G8R8_SSCALED = 33,
  339. VK_FORMAT_B8G8R8_UINT = 34,
  340. VK_FORMAT_B8G8R8_SINT = 35,
  341. VK_FORMAT_B8G8R8_SRGB = 36,
  342. VK_FORMAT_R8G8B8A8_UNORM = 37,
  343. VK_FORMAT_R8G8B8A8_SNORM = 38,
  344. VK_FORMAT_R8G8B8A8_USCALED = 39,
  345. VK_FORMAT_R8G8B8A8_SSCALED = 40,
  346. VK_FORMAT_R8G8B8A8_UINT = 41,
  347. VK_FORMAT_R8G8B8A8_SINT = 42,
  348. VK_FORMAT_R8G8B8A8_SRGB = 43,
  349. VK_FORMAT_B8G8R8A8_UNORM = 44,
  350. VK_FORMAT_B8G8R8A8_SNORM = 45,
  351. VK_FORMAT_B8G8R8A8_USCALED = 46,
  352. VK_FORMAT_B8G8R8A8_SSCALED = 47,
  353. VK_FORMAT_B8G8R8A8_UINT = 48,
  354. VK_FORMAT_B8G8R8A8_SINT = 49,
  355. VK_FORMAT_B8G8R8A8_SRGB = 50,
  356. VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
  357. VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
  358. VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
  359. VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
  360. VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
  361. VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
  362. VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
  363. VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
  364. VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
  365. VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
  366. VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
  367. VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
  368. VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
  369. VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
  370. VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
  371. VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
  372. VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
  373. VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
  374. VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
  375. VK_FORMAT_R16_UNORM = 70,
  376. VK_FORMAT_R16_SNORM = 71,
  377. VK_FORMAT_R16_USCALED = 72,
  378. VK_FORMAT_R16_SSCALED = 73,
  379. VK_FORMAT_R16_UINT = 74,
  380. VK_FORMAT_R16_SINT = 75,
  381. VK_FORMAT_R16_SFLOAT = 76,
  382. VK_FORMAT_R16G16_UNORM = 77,
  383. VK_FORMAT_R16G16_SNORM = 78,
  384. VK_FORMAT_R16G16_USCALED = 79,
  385. VK_FORMAT_R16G16_SSCALED = 80,
  386. VK_FORMAT_R16G16_UINT = 81,
  387. VK_FORMAT_R16G16_SINT = 82,
  388. VK_FORMAT_R16G16_SFLOAT = 83,
  389. VK_FORMAT_R16G16B16_UNORM = 84,
  390. VK_FORMAT_R16G16B16_SNORM = 85,
  391. VK_FORMAT_R16G16B16_USCALED = 86,
  392. VK_FORMAT_R16G16B16_SSCALED = 87,
  393. VK_FORMAT_R16G16B16_UINT = 88,
  394. VK_FORMAT_R16G16B16_SINT = 89,
  395. VK_FORMAT_R16G16B16_SFLOAT = 90,
  396. VK_FORMAT_R16G16B16A16_UNORM = 91,
  397. VK_FORMAT_R16G16B16A16_SNORM = 92,
  398. VK_FORMAT_R16G16B16A16_USCALED = 93,
  399. VK_FORMAT_R16G16B16A16_SSCALED = 94,
  400. VK_FORMAT_R16G16B16A16_UINT = 95,
  401. VK_FORMAT_R16G16B16A16_SINT = 96,
  402. VK_FORMAT_R16G16B16A16_SFLOAT = 97,
  403. VK_FORMAT_R32_UINT = 98,
  404. VK_FORMAT_R32_SINT = 99,
  405. VK_FORMAT_R32_SFLOAT = 100,
  406. VK_FORMAT_R32G32_UINT = 101,
  407. VK_FORMAT_R32G32_SINT = 102,
  408. VK_FORMAT_R32G32_SFLOAT = 103,
  409. VK_FORMAT_R32G32B32_UINT = 104,
  410. VK_FORMAT_R32G32B32_SINT = 105,
  411. VK_FORMAT_R32G32B32_SFLOAT = 106,
  412. VK_FORMAT_R32G32B32A32_UINT = 107,
  413. VK_FORMAT_R32G32B32A32_SINT = 108,
  414. VK_FORMAT_R32G32B32A32_SFLOAT = 109,
  415. VK_FORMAT_R64_UINT = 110,
  416. VK_FORMAT_R64_SINT = 111,
  417. VK_FORMAT_R64_SFLOAT = 112,
  418. VK_FORMAT_R64G64_UINT = 113,
  419. VK_FORMAT_R64G64_SINT = 114,
  420. VK_FORMAT_R64G64_SFLOAT = 115,
  421. VK_FORMAT_R64G64B64_UINT = 116,
  422. VK_FORMAT_R64G64B64_SINT = 117,
  423. VK_FORMAT_R64G64B64_SFLOAT = 118,
  424. VK_FORMAT_R64G64B64A64_UINT = 119,
  425. VK_FORMAT_R64G64B64A64_SINT = 120,
  426. VK_FORMAT_R64G64B64A64_SFLOAT = 121,
  427. VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
  428. VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
  429. VK_FORMAT_D16_UNORM = 124,
  430. VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
  431. VK_FORMAT_D32_SFLOAT = 126,
  432. VK_FORMAT_S8_UINT = 127,
  433. VK_FORMAT_D16_UNORM_S8_UINT = 128,
  434. VK_FORMAT_D24_UNORM_S8_UINT = 129,
  435. VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
  436. VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
  437. VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
  438. VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
  439. VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
  440. VK_FORMAT_BC2_UNORM_BLOCK = 135,
  441. VK_FORMAT_BC2_SRGB_BLOCK = 136,
  442. VK_FORMAT_BC3_UNORM_BLOCK = 137,
  443. VK_FORMAT_BC3_SRGB_BLOCK = 138,
  444. VK_FORMAT_BC4_UNORM_BLOCK = 139,
  445. VK_FORMAT_BC4_SNORM_BLOCK = 140,
  446. VK_FORMAT_BC5_UNORM_BLOCK = 141,
  447. VK_FORMAT_BC5_SNORM_BLOCK = 142,
  448. VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
  449. VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
  450. VK_FORMAT_BC7_UNORM_BLOCK = 145,
  451. VK_FORMAT_BC7_SRGB_BLOCK = 146,
  452. VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
  453. VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
  454. VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
  455. VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
  456. VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
  457. VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
  458. VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
  459. VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
  460. VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
  461. VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
  462. VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
  463. VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
  464. VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
  465. VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
  466. VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
  467. VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
  468. VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
  469. VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
  470. VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
  471. VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
  472. VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
  473. VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
  474. VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
  475. VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
  476. VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
  477. VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
  478. VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
  479. VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
  480. VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
  481. VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
  482. VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
  483. VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
  484. VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
  485. VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
  486. VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
  487. VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
  488. VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
  489. VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
  490. VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
  491. VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
  492. VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
  493. VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
  494. VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
  495. VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
  496. VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
  497. VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
  498. VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
  499. VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
  500. VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
  501. VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
  502. } VkFormat;
  503. typedef enum VkImageType {
  504. VK_IMAGE_TYPE_1D = 0,
  505. VK_IMAGE_TYPE_2D = 1,
  506. VK_IMAGE_TYPE_3D = 2,
  507. VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
  508. VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
  509. VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
  510. VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
  511. } VkImageType;
  512. typedef enum VkImageTiling {
  513. VK_IMAGE_TILING_OPTIMAL = 0,
  514. VK_IMAGE_TILING_LINEAR = 1,
  515. VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
  516. VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
  517. VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
  518. VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
  519. } VkImageTiling;
  520. typedef enum VkPhysicalDeviceType {
  521. VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
  522. VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
  523. VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
  524. VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
  525. VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
  526. VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
  527. VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
  528. VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
  529. VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
  530. } VkPhysicalDeviceType;
  531. typedef enum VkQueryType {
  532. VK_QUERY_TYPE_OCCLUSION = 0,
  533. VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
  534. VK_QUERY_TYPE_TIMESTAMP = 2,
  535. VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
  536. VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
  537. VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
  538. VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
  539. } VkQueryType;
  540. typedef enum VkSharingMode {
  541. VK_SHARING_MODE_EXCLUSIVE = 0,
  542. VK_SHARING_MODE_CONCURRENT = 1,
  543. VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
  544. VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
  545. VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
  546. VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
  547. } VkSharingMode;
  548. typedef enum VkImageLayout {
  549. VK_IMAGE_LAYOUT_UNDEFINED = 0,
  550. VK_IMAGE_LAYOUT_GENERAL = 1,
  551. VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
  552. VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
  553. VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
  554. VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
  555. VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
  556. VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
  557. VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
  558. VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
  559. VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
  560. VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
  561. VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
  562. VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
  563. } VkImageLayout;
  564. typedef enum VkImageViewType {
  565. VK_IMAGE_VIEW_TYPE_1D = 0,
  566. VK_IMAGE_VIEW_TYPE_2D = 1,
  567. VK_IMAGE_VIEW_TYPE_3D = 2,
  568. VK_IMAGE_VIEW_TYPE_CUBE = 3,
  569. VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
  570. VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
  571. VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
  572. VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
  573. VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
  574. VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
  575. VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
  576. } VkImageViewType;
  577. typedef enum VkComponentSwizzle {
  578. VK_COMPONENT_SWIZZLE_IDENTITY = 0,
  579. VK_COMPONENT_SWIZZLE_ZERO = 1,
  580. VK_COMPONENT_SWIZZLE_ONE = 2,
  581. VK_COMPONENT_SWIZZLE_R = 3,
  582. VK_COMPONENT_SWIZZLE_G = 4,
  583. VK_COMPONENT_SWIZZLE_B = 5,
  584. VK_COMPONENT_SWIZZLE_A = 6,
  585. VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
  586. VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
  587. VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
  588. VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
  589. } VkComponentSwizzle;
  590. typedef enum VkVertexInputRate {
  591. VK_VERTEX_INPUT_RATE_VERTEX = 0,
  592. VK_VERTEX_INPUT_RATE_INSTANCE = 1,
  593. VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
  594. VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
  595. VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
  596. VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
  597. } VkVertexInputRate;
  598. typedef enum VkPrimitiveTopology {
  599. VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
  600. VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
  601. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
  602. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
  603. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
  604. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
  605. VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
  606. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
  607. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
  608. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
  609. VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
  610. VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
  611. VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
  612. VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
  613. VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
  614. } VkPrimitiveTopology;
  615. typedef enum VkPolygonMode {
  616. VK_POLYGON_MODE_FILL = 0,
  617. VK_POLYGON_MODE_LINE = 1,
  618. VK_POLYGON_MODE_POINT = 2,
  619. VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
  620. VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
  621. VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
  622. VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
  623. } VkPolygonMode;
  624. typedef enum VkFrontFace {
  625. VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
  626. VK_FRONT_FACE_CLOCKWISE = 1,
  627. VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
  628. VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
  629. VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
  630. VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
  631. } VkFrontFace;
  632. typedef enum VkCompareOp {
  633. VK_COMPARE_OP_NEVER = 0,
  634. VK_COMPARE_OP_LESS = 1,
  635. VK_COMPARE_OP_EQUAL = 2,
  636. VK_COMPARE_OP_LESS_OR_EQUAL = 3,
  637. VK_COMPARE_OP_GREATER = 4,
  638. VK_COMPARE_OP_NOT_EQUAL = 5,
  639. VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
  640. VK_COMPARE_OP_ALWAYS = 7,
  641. VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
  642. VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
  643. VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
  644. VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
  645. } VkCompareOp;
  646. typedef enum VkStencilOp {
  647. VK_STENCIL_OP_KEEP = 0,
  648. VK_STENCIL_OP_ZERO = 1,
  649. VK_STENCIL_OP_REPLACE = 2,
  650. VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
  651. VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
  652. VK_STENCIL_OP_INVERT = 5,
  653. VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
  654. VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
  655. VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
  656. VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
  657. VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
  658. VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
  659. } VkStencilOp;
  660. typedef enum VkLogicOp {
  661. VK_LOGIC_OP_CLEAR = 0,
  662. VK_LOGIC_OP_AND = 1,
  663. VK_LOGIC_OP_AND_REVERSE = 2,
  664. VK_LOGIC_OP_COPY = 3,
  665. VK_LOGIC_OP_AND_INVERTED = 4,
  666. VK_LOGIC_OP_NO_OP = 5,
  667. VK_LOGIC_OP_XOR = 6,
  668. VK_LOGIC_OP_OR = 7,
  669. VK_LOGIC_OP_NOR = 8,
  670. VK_LOGIC_OP_EQUIVALENT = 9,
  671. VK_LOGIC_OP_INVERT = 10,
  672. VK_LOGIC_OP_OR_REVERSE = 11,
  673. VK_LOGIC_OP_COPY_INVERTED = 12,
  674. VK_LOGIC_OP_OR_INVERTED = 13,
  675. VK_LOGIC_OP_NAND = 14,
  676. VK_LOGIC_OP_SET = 15,
  677. VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
  678. VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
  679. VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
  680. VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
  681. } VkLogicOp;
  682. typedef enum VkBlendFactor {
  683. VK_BLEND_FACTOR_ZERO = 0,
  684. VK_BLEND_FACTOR_ONE = 1,
  685. VK_BLEND_FACTOR_SRC_COLOR = 2,
  686. VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
  687. VK_BLEND_FACTOR_DST_COLOR = 4,
  688. VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
  689. VK_BLEND_FACTOR_SRC_ALPHA = 6,
  690. VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
  691. VK_BLEND_FACTOR_DST_ALPHA = 8,
  692. VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
  693. VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
  694. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
  695. VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
  696. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
  697. VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
  698. VK_BLEND_FACTOR_SRC1_COLOR = 15,
  699. VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
  700. VK_BLEND_FACTOR_SRC1_ALPHA = 17,
  701. VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
  702. VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
  703. VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
  704. VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
  705. VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
  706. } VkBlendFactor;
  707. typedef enum VkBlendOp {
  708. VK_BLEND_OP_ADD = 0,
  709. VK_BLEND_OP_SUBTRACT = 1,
  710. VK_BLEND_OP_REVERSE_SUBTRACT = 2,
  711. VK_BLEND_OP_MIN = 3,
  712. VK_BLEND_OP_MAX = 4,
  713. VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
  714. VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
  715. VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
  716. VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
  717. } VkBlendOp;
  718. typedef enum VkDynamicState {
  719. VK_DYNAMIC_STATE_VIEWPORT = 0,
  720. VK_DYNAMIC_STATE_SCISSOR = 1,
  721. VK_DYNAMIC_STATE_LINE_WIDTH = 2,
  722. VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
  723. VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
  724. VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
  725. VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
  726. VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
  727. VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
  728. VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
  729. VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
  730. VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
  731. VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
  732. VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
  733. VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
  734. } VkDynamicState;
  735. typedef enum VkFilter {
  736. VK_FILTER_NEAREST = 0,
  737. VK_FILTER_LINEAR = 1,
  738. VK_FILTER_CUBIC_IMG = 1000015000,
  739. VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
  740. VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
  741. VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
  742. VK_FILTER_MAX_ENUM = 0x7FFFFFFF
  743. } VkFilter;
  744. typedef enum VkSamplerMipmapMode {
  745. VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
  746. VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
  747. VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
  748. VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
  749. VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
  750. VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
  751. } VkSamplerMipmapMode;
  752. typedef enum VkSamplerAddressMode {
  753. VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
  754. VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
  755. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
  756. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
  757. VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
  758. VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
  759. VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
  760. VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
  761. VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
  762. } VkSamplerAddressMode;
  763. typedef enum VkBorderColor {
  764. VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
  765. VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
  766. VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
  767. VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
  768. VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
  769. VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
  770. VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
  771. VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
  772. VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
  773. VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
  774. } VkBorderColor;
  775. typedef enum VkDescriptorType {
  776. VK_DESCRIPTOR_TYPE_SAMPLER = 0,
  777. VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
  778. VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
  779. VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
  780. VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
  781. VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
  782. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
  783. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
  784. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
  785. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
  786. VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
  787. VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
  788. VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
  789. VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
  790. VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
  791. } VkDescriptorType;
  792. typedef enum VkAttachmentLoadOp {
  793. VK_ATTACHMENT_LOAD_OP_LOAD = 0,
  794. VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
  795. VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
  796. VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
  797. VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
  798. VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
  799. VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
  800. } VkAttachmentLoadOp;
  801. typedef enum VkAttachmentStoreOp {
  802. VK_ATTACHMENT_STORE_OP_STORE = 0,
  803. VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
  804. VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
  805. VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
  806. VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
  807. VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
  808. } VkAttachmentStoreOp;
  809. typedef enum VkPipelineBindPoint {
  810. VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
  811. VK_PIPELINE_BIND_POINT_COMPUTE = 1,
  812. VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
  813. VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
  814. VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
  815. VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
  816. } VkPipelineBindPoint;
  817. typedef enum VkCommandBufferLevel {
  818. VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
  819. VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
  820. VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
  821. VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
  822. VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
  823. VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
  824. } VkCommandBufferLevel;
  825. typedef enum VkIndexType {
  826. VK_INDEX_TYPE_UINT16 = 0,
  827. VK_INDEX_TYPE_UINT32 = 1,
  828. VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
  829. VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
  830. VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
  831. VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
  832. } VkIndexType;
  833. typedef enum VkSubpassContents {
  834. VK_SUBPASS_CONTENTS_INLINE = 0,
  835. VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
  836. VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
  837. VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
  838. VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
  839. VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
  840. } VkSubpassContents;
  841. typedef VkFlags VkInstanceCreateFlags;
  842. typedef enum VkFormatFeatureFlagBits {
  843. VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
  844. VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
  845. VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
  846. VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
  847. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
  848. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
  849. VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
  850. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
  851. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
  852. VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
  853. VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
  854. VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
  855. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
  856. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
  857. VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
  858. VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
  859. VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  860. } VkFormatFeatureFlagBits;
  861. typedef VkFlags VkFormatFeatureFlags;
  862. typedef enum VkImageUsageFlagBits {
  863. VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
  864. VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
  865. VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
  866. VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
  867. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
  868. VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
  869. VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
  870. VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
  871. VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  872. } VkImageUsageFlagBits;
  873. typedef VkFlags VkImageUsageFlags;
  874. typedef enum VkImageCreateFlagBits {
  875. VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
  876. VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
  877. VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
  878. VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
  879. VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
  880. VK_IMAGE_CREATE_BIND_SFR_BIT_KHX = 0x00000040,
  881. VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
  882. VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  883. } VkImageCreateFlagBits;
  884. typedef VkFlags VkImageCreateFlags;
  885. typedef enum VkSampleCountFlagBits {
  886. VK_SAMPLE_COUNT_1_BIT = 0x00000001,
  887. VK_SAMPLE_COUNT_2_BIT = 0x00000002,
  888. VK_SAMPLE_COUNT_4_BIT = 0x00000004,
  889. VK_SAMPLE_COUNT_8_BIT = 0x00000008,
  890. VK_SAMPLE_COUNT_16_BIT = 0x00000010,
  891. VK_SAMPLE_COUNT_32_BIT = 0x00000020,
  892. VK_SAMPLE_COUNT_64_BIT = 0x00000040,
  893. VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  894. } VkSampleCountFlagBits;
  895. typedef VkFlags VkSampleCountFlags;
  896. typedef enum VkQueueFlagBits {
  897. VK_QUEUE_GRAPHICS_BIT = 0x00000001,
  898. VK_QUEUE_COMPUTE_BIT = 0x00000002,
  899. VK_QUEUE_TRANSFER_BIT = 0x00000004,
  900. VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
  901. VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  902. } VkQueueFlagBits;
  903. typedef VkFlags VkQueueFlags;
  904. typedef enum VkMemoryPropertyFlagBits {
  905. VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
  906. VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
  907. VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
  908. VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
  909. VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
  910. VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  911. } VkMemoryPropertyFlagBits;
  912. typedef VkFlags VkMemoryPropertyFlags;
  913. typedef enum VkMemoryHeapFlagBits {
  914. VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
  915. VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = 0x00000002,
  916. VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  917. } VkMemoryHeapFlagBits;
  918. typedef VkFlags VkMemoryHeapFlags;
  919. typedef VkFlags VkDeviceCreateFlags;
  920. typedef VkFlags VkDeviceQueueCreateFlags;
  921. typedef enum VkPipelineStageFlagBits {
  922. VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
  923. VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
  924. VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
  925. VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
  926. VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
  927. VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
  928. VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
  929. VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
  930. VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
  931. VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
  932. VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
  933. VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
  934. VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
  935. VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
  936. VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
  937. VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
  938. VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
  939. VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
  940. VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  941. } VkPipelineStageFlagBits;
  942. typedef VkFlags VkPipelineStageFlags;
  943. typedef VkFlags VkMemoryMapFlags;
  944. typedef enum VkImageAspectFlagBits {
  945. VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
  946. VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
  947. VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
  948. VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
  949. VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  950. } VkImageAspectFlagBits;
  951. typedef VkFlags VkImageAspectFlags;
  952. typedef enum VkSparseImageFormatFlagBits {
  953. VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
  954. VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
  955. VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
  956. VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  957. } VkSparseImageFormatFlagBits;
  958. typedef VkFlags VkSparseImageFormatFlags;
  959. typedef enum VkSparseMemoryBindFlagBits {
  960. VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
  961. VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  962. } VkSparseMemoryBindFlagBits;
  963. typedef VkFlags VkSparseMemoryBindFlags;
  964. typedef enum VkFenceCreateFlagBits {
  965. VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
  966. VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  967. } VkFenceCreateFlagBits;
  968. typedef VkFlags VkFenceCreateFlags;
  969. typedef VkFlags VkSemaphoreCreateFlags;
  970. typedef VkFlags VkEventCreateFlags;
  971. typedef VkFlags VkQueryPoolCreateFlags;
  972. typedef enum VkQueryPipelineStatisticFlagBits {
  973. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
  974. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
  975. VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
  976. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
  977. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
  978. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
  979. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
  980. VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
  981. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
  982. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
  983. VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
  984. VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  985. } VkQueryPipelineStatisticFlagBits;
  986. typedef VkFlags VkQueryPipelineStatisticFlags;
  987. typedef enum VkQueryResultFlagBits {
  988. VK_QUERY_RESULT_64_BIT = 0x00000001,
  989. VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
  990. VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
  991. VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
  992. VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  993. } VkQueryResultFlagBits;
  994. typedef VkFlags VkQueryResultFlags;
  995. typedef enum VkBufferCreateFlagBits {
  996. VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
  997. VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
  998. VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
  999. VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1000. } VkBufferCreateFlagBits;
  1001. typedef VkFlags VkBufferCreateFlags;
  1002. typedef enum VkBufferUsageFlagBits {
  1003. VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
  1004. VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
  1005. VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
  1006. VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
  1007. VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
  1008. VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
  1009. VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
  1010. VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
  1011. VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
  1012. VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1013. } VkBufferUsageFlagBits;
  1014. typedef VkFlags VkBufferUsageFlags;
  1015. typedef VkFlags VkBufferViewCreateFlags;
  1016. typedef VkFlags VkImageViewCreateFlags;
  1017. typedef VkFlags VkShaderModuleCreateFlags;
  1018. typedef VkFlags VkPipelineCacheCreateFlags;
  1019. typedef enum VkPipelineCreateFlagBits {
  1020. VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
  1021. VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
  1022. VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
  1023. VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008,
  1024. VK_PIPELINE_CREATE_DISPATCH_BASE_KHX = 0x00000010,
  1025. VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1026. } VkPipelineCreateFlagBits;
  1027. typedef VkFlags VkPipelineCreateFlags;
  1028. typedef VkFlags VkPipelineShaderStageCreateFlags;
  1029. typedef enum VkShaderStageFlagBits {
  1030. VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
  1031. VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
  1032. VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
  1033. VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
  1034. VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
  1035. VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
  1036. VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
  1037. VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
  1038. VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1039. } VkShaderStageFlagBits;
  1040. typedef VkFlags VkPipelineVertexInputStateCreateFlags;
  1041. typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
  1042. typedef VkFlags VkPipelineTessellationStateCreateFlags;
  1043. typedef VkFlags VkPipelineViewportStateCreateFlags;
  1044. typedef VkFlags VkPipelineRasterizationStateCreateFlags;
  1045. typedef enum VkCullModeFlagBits {
  1046. VK_CULL_MODE_NONE = 0,
  1047. VK_CULL_MODE_FRONT_BIT = 0x00000001,
  1048. VK_CULL_MODE_BACK_BIT = 0x00000002,
  1049. VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
  1050. VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1051. } VkCullModeFlagBits;
  1052. typedef VkFlags VkCullModeFlags;
  1053. typedef VkFlags VkPipelineMultisampleStateCreateFlags;
  1054. typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
  1055. typedef VkFlags VkPipelineColorBlendStateCreateFlags;
  1056. typedef enum VkColorComponentFlagBits {
  1057. VK_COLOR_COMPONENT_R_BIT = 0x00000001,
  1058. VK_COLOR_COMPONENT_G_BIT = 0x00000002,
  1059. VK_COLOR_COMPONENT_B_BIT = 0x00000004,
  1060. VK_COLOR_COMPONENT_A_BIT = 0x00000008,
  1061. VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1062. } VkColorComponentFlagBits;
  1063. typedef VkFlags VkColorComponentFlags;
  1064. typedef VkFlags VkPipelineDynamicStateCreateFlags;
  1065. typedef VkFlags VkPipelineLayoutCreateFlags;
  1066. typedef VkFlags VkShaderStageFlags;
  1067. typedef VkFlags VkSamplerCreateFlags;
  1068. typedef enum VkDescriptorSetLayoutCreateFlagBits {
  1069. VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
  1070. VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1071. } VkDescriptorSetLayoutCreateFlagBits;
  1072. typedef VkFlags VkDescriptorSetLayoutCreateFlags;
  1073. typedef enum VkDescriptorPoolCreateFlagBits {
  1074. VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
  1075. VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1076. } VkDescriptorPoolCreateFlagBits;
  1077. typedef VkFlags VkDescriptorPoolCreateFlags;
  1078. typedef VkFlags VkDescriptorPoolResetFlags;
  1079. typedef VkFlags VkFramebufferCreateFlags;
  1080. typedef VkFlags VkRenderPassCreateFlags;
  1081. typedef enum VkAttachmentDescriptionFlagBits {
  1082. VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
  1083. VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1084. } VkAttachmentDescriptionFlagBits;
  1085. typedef VkFlags VkAttachmentDescriptionFlags;
  1086. typedef enum VkSubpassDescriptionFlagBits {
  1087. VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
  1088. VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
  1089. VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1090. } VkSubpassDescriptionFlagBits;
  1091. typedef VkFlags VkSubpassDescriptionFlags;
  1092. typedef enum VkAccessFlagBits {
  1093. VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
  1094. VK_ACCESS_INDEX_READ_BIT = 0x00000002,
  1095. VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
  1096. VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
  1097. VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
  1098. VK_ACCESS_SHADER_READ_BIT = 0x00000020,
  1099. VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
  1100. VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
  1101. VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
  1102. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
  1103. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
  1104. VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
  1105. VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
  1106. VK_ACCESS_HOST_READ_BIT = 0x00002000,
  1107. VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
  1108. VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
  1109. VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
  1110. VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
  1111. VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
  1112. VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1113. } VkAccessFlagBits;
  1114. typedef VkFlags VkAccessFlags;
  1115. typedef enum VkDependencyFlagBits {
  1116. VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
  1117. VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX = 0x00000002,
  1118. VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = 0x00000004,
  1119. VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1120. } VkDependencyFlagBits;
  1121. typedef VkFlags VkDependencyFlags;
  1122. typedef enum VkCommandPoolCreateFlagBits {
  1123. VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
  1124. VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
  1125. VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1126. } VkCommandPoolCreateFlagBits;
  1127. typedef VkFlags VkCommandPoolCreateFlags;
  1128. typedef enum VkCommandPoolResetFlagBits {
  1129. VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
  1130. VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1131. } VkCommandPoolResetFlagBits;
  1132. typedef VkFlags VkCommandPoolResetFlags;
  1133. typedef enum VkCommandBufferUsageFlagBits {
  1134. VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
  1135. VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
  1136. VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
  1137. VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1138. } VkCommandBufferUsageFlagBits;
  1139. typedef VkFlags VkCommandBufferUsageFlags;
  1140. typedef enum VkQueryControlFlagBits {
  1141. VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
  1142. VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1143. } VkQueryControlFlagBits;
  1144. typedef VkFlags VkQueryControlFlags;
  1145. typedef enum VkCommandBufferResetFlagBits {
  1146. VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
  1147. VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1148. } VkCommandBufferResetFlagBits;
  1149. typedef VkFlags VkCommandBufferResetFlags;
  1150. typedef enum VkStencilFaceFlagBits {
  1151. VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
  1152. VK_STENCIL_FACE_BACK_BIT = 0x00000002,
  1153. VK_STENCIL_FRONT_AND_BACK = 0x00000003,
  1154. VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1155. } VkStencilFaceFlagBits;
  1156. typedef VkFlags VkStencilFaceFlags;
  1157. typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
  1158. void* pUserData,
  1159. size_t size,
  1160. size_t alignment,
  1161. VkSystemAllocationScope allocationScope);
  1162. typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
  1163. void* pUserData,
  1164. void* pOriginal,
  1165. size_t size,
  1166. size_t alignment,
  1167. VkSystemAllocationScope allocationScope);
  1168. typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
  1169. void* pUserData,
  1170. void* pMemory);
  1171. typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
  1172. void* pUserData,
  1173. size_t size,
  1174. VkInternalAllocationType allocationType,
  1175. VkSystemAllocationScope allocationScope);
  1176. typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
  1177. void* pUserData,
  1178. size_t size,
  1179. VkInternalAllocationType allocationType,
  1180. VkSystemAllocationScope allocationScope);
  1181. typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
  1182. typedef struct VkApplicationInfo {
  1183. VkStructureType sType;
  1184. const void* pNext;
  1185. const char* pApplicationName;
  1186. uint32_t applicationVersion;
  1187. const char* pEngineName;
  1188. uint32_t engineVersion;
  1189. uint32_t apiVersion;
  1190. } VkApplicationInfo;
  1191. typedef struct VkInstanceCreateInfo {
  1192. VkStructureType sType;
  1193. const void* pNext;
  1194. VkInstanceCreateFlags flags;
  1195. const VkApplicationInfo* pApplicationInfo;
  1196. uint32_t enabledLayerCount;
  1197. const char* const* ppEnabledLayerNames;
  1198. uint32_t enabledExtensionCount;
  1199. const char* const* ppEnabledExtensionNames;
  1200. } VkInstanceCreateInfo;
  1201. typedef struct VkAllocationCallbacks {
  1202. void* pUserData;
  1203. PFN_vkAllocationFunction pfnAllocation;
  1204. PFN_vkReallocationFunction pfnReallocation;
  1205. PFN_vkFreeFunction pfnFree;
  1206. PFN_vkInternalAllocationNotification pfnInternalAllocation;
  1207. PFN_vkInternalFreeNotification pfnInternalFree;
  1208. } VkAllocationCallbacks;
  1209. typedef struct VkPhysicalDeviceFeatures {
  1210. VkBool32 robustBufferAccess;
  1211. VkBool32 fullDrawIndexUint32;
  1212. VkBool32 imageCubeArray;
  1213. VkBool32 independentBlend;
  1214. VkBool32 geometryShader;
  1215. VkBool32 tessellationShader;
  1216. VkBool32 sampleRateShading;
  1217. VkBool32 dualSrcBlend;
  1218. VkBool32 logicOp;
  1219. VkBool32 multiDrawIndirect;
  1220. VkBool32 drawIndirectFirstInstance;
  1221. VkBool32 depthClamp;
  1222. VkBool32 depthBiasClamp;
  1223. VkBool32 fillModeNonSolid;
  1224. VkBool32 depthBounds;
  1225. VkBool32 wideLines;
  1226. VkBool32 largePoints;
  1227. VkBool32 alphaToOne;
  1228. VkBool32 multiViewport;
  1229. VkBool32 samplerAnisotropy;
  1230. VkBool32 textureCompressionETC2;
  1231. VkBool32 textureCompressionASTC_LDR;
  1232. VkBool32 textureCompressionBC;
  1233. VkBool32 occlusionQueryPrecise;
  1234. VkBool32 pipelineStatisticsQuery;
  1235. VkBool32 vertexPipelineStoresAndAtomics;
  1236. VkBool32 fragmentStoresAndAtomics;
  1237. VkBool32 shaderTessellationAndGeometryPointSize;
  1238. VkBool32 shaderImageGatherExtended;
  1239. VkBool32 shaderStorageImageExtendedFormats;
  1240. VkBool32 shaderStorageImageMultisample;
  1241. VkBool32 shaderStorageImageReadWithoutFormat;
  1242. VkBool32 shaderStorageImageWriteWithoutFormat;
  1243. VkBool32 shaderUniformBufferArrayDynamicIndexing;
  1244. VkBool32 shaderSampledImageArrayDynamicIndexing;
  1245. VkBool32 shaderStorageBufferArrayDynamicIndexing;
  1246. VkBool32 shaderStorageImageArrayDynamicIndexing;
  1247. VkBool32 shaderClipDistance;
  1248. VkBool32 shaderCullDistance;
  1249. VkBool32 shaderFloat64;
  1250. VkBool32 shaderInt64;
  1251. VkBool32 shaderInt16;
  1252. VkBool32 shaderResourceResidency;
  1253. VkBool32 shaderResourceMinLod;
  1254. VkBool32 sparseBinding;
  1255. VkBool32 sparseResidencyBuffer;
  1256. VkBool32 sparseResidencyImage2D;
  1257. VkBool32 sparseResidencyImage3D;
  1258. VkBool32 sparseResidency2Samples;
  1259. VkBool32 sparseResidency4Samples;
  1260. VkBool32 sparseResidency8Samples;
  1261. VkBool32 sparseResidency16Samples;
  1262. VkBool32 sparseResidencyAliased;
  1263. VkBool32 variableMultisampleRate;
  1264. VkBool32 inheritedQueries;
  1265. } VkPhysicalDeviceFeatures;
  1266. typedef struct VkFormatProperties {
  1267. VkFormatFeatureFlags linearTilingFeatures;
  1268. VkFormatFeatureFlags optimalTilingFeatures;
  1269. VkFormatFeatureFlags bufferFeatures;
  1270. } VkFormatProperties;
  1271. typedef struct VkExtent3D {
  1272. uint32_t width;
  1273. uint32_t height;
  1274. uint32_t depth;
  1275. } VkExtent3D;
  1276. typedef struct VkImageFormatProperties {
  1277. VkExtent3D maxExtent;
  1278. uint32_t maxMipLevels;
  1279. uint32_t maxArrayLayers;
  1280. VkSampleCountFlags sampleCounts;
  1281. VkDeviceSize maxResourceSize;
  1282. } VkImageFormatProperties;
  1283. typedef struct VkPhysicalDeviceLimits {
  1284. uint32_t maxImageDimension1D;
  1285. uint32_t maxImageDimension2D;
  1286. uint32_t maxImageDimension3D;
  1287. uint32_t maxImageDimensionCube;
  1288. uint32_t maxImageArrayLayers;
  1289. uint32_t maxTexelBufferElements;
  1290. uint32_t maxUniformBufferRange;
  1291. uint32_t maxStorageBufferRange;
  1292. uint32_t maxPushConstantsSize;
  1293. uint32_t maxMemoryAllocationCount;
  1294. uint32_t maxSamplerAllocationCount;
  1295. VkDeviceSize bufferImageGranularity;
  1296. VkDeviceSize sparseAddressSpaceSize;
  1297. uint32_t maxBoundDescriptorSets;
  1298. uint32_t maxPerStageDescriptorSamplers;
  1299. uint32_t maxPerStageDescriptorUniformBuffers;
  1300. uint32_t maxPerStageDescriptorStorageBuffers;
  1301. uint32_t maxPerStageDescriptorSampledImages;
  1302. uint32_t maxPerStageDescriptorStorageImages;
  1303. uint32_t maxPerStageDescriptorInputAttachments;
  1304. uint32_t maxPerStageResources;
  1305. uint32_t maxDescriptorSetSamplers;
  1306. uint32_t maxDescriptorSetUniformBuffers;
  1307. uint32_t maxDescriptorSetUniformBuffersDynamic;
  1308. uint32_t maxDescriptorSetStorageBuffers;
  1309. uint32_t maxDescriptorSetStorageBuffersDynamic;
  1310. uint32_t maxDescriptorSetSampledImages;
  1311. uint32_t maxDescriptorSetStorageImages;
  1312. uint32_t maxDescriptorSetInputAttachments;
  1313. uint32_t maxVertexInputAttributes;
  1314. uint32_t maxVertexInputBindings;
  1315. uint32_t maxVertexInputAttributeOffset;
  1316. uint32_t maxVertexInputBindingStride;
  1317. uint32_t maxVertexOutputComponents;
  1318. uint32_t maxTessellationGenerationLevel;
  1319. uint32_t maxTessellationPatchSize;
  1320. uint32_t maxTessellationControlPerVertexInputComponents;
  1321. uint32_t maxTessellationControlPerVertexOutputComponents;
  1322. uint32_t maxTessellationControlPerPatchOutputComponents;
  1323. uint32_t maxTessellationControlTotalOutputComponents;
  1324. uint32_t maxTessellationEvaluationInputComponents;
  1325. uint32_t maxTessellationEvaluationOutputComponents;
  1326. uint32_t maxGeometryShaderInvocations;
  1327. uint32_t maxGeometryInputComponents;
  1328. uint32_t maxGeometryOutputComponents;
  1329. uint32_t maxGeometryOutputVertices;
  1330. uint32_t maxGeometryTotalOutputComponents;
  1331. uint32_t maxFragmentInputComponents;
  1332. uint32_t maxFragmentOutputAttachments;
  1333. uint32_t maxFragmentDualSrcAttachments;
  1334. uint32_t maxFragmentCombinedOutputResources;
  1335. uint32_t maxComputeSharedMemorySize;
  1336. uint32_t maxComputeWorkGroupCount[3];
  1337. uint32_t maxComputeWorkGroupInvocations;
  1338. uint32_t maxComputeWorkGroupSize[3];
  1339. uint32_t subPixelPrecisionBits;
  1340. uint32_t subTexelPrecisionBits;
  1341. uint32_t mipmapPrecisionBits;
  1342. uint32_t maxDrawIndexedIndexValue;
  1343. uint32_t maxDrawIndirectCount;
  1344. float maxSamplerLodBias;
  1345. float maxSamplerAnisotropy;
  1346. uint32_t maxViewports;
  1347. uint32_t maxViewportDimensions[2];
  1348. float viewportBoundsRange[2];
  1349. uint32_t viewportSubPixelBits;
  1350. size_t minMemoryMapAlignment;
  1351. VkDeviceSize minTexelBufferOffsetAlignment;
  1352. VkDeviceSize minUniformBufferOffsetAlignment;
  1353. VkDeviceSize minStorageBufferOffsetAlignment;
  1354. int32_t minTexelOffset;
  1355. uint32_t maxTexelOffset;
  1356. int32_t minTexelGatherOffset;
  1357. uint32_t maxTexelGatherOffset;
  1358. float minInterpolationOffset;
  1359. float maxInterpolationOffset;
  1360. uint32_t subPixelInterpolationOffsetBits;
  1361. uint32_t maxFramebufferWidth;
  1362. uint32_t maxFramebufferHeight;
  1363. uint32_t maxFramebufferLayers;
  1364. VkSampleCountFlags framebufferColorSampleCounts;
  1365. VkSampleCountFlags framebufferDepthSampleCounts;
  1366. VkSampleCountFlags framebufferStencilSampleCounts;
  1367. VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
  1368. uint32_t maxColorAttachments;
  1369. VkSampleCountFlags sampledImageColorSampleCounts;
  1370. VkSampleCountFlags sampledImageIntegerSampleCounts;
  1371. VkSampleCountFlags sampledImageDepthSampleCounts;
  1372. VkSampleCountFlags sampledImageStencilSampleCounts;
  1373. VkSampleCountFlags storageImageSampleCounts;
  1374. uint32_t maxSampleMaskWords;
  1375. VkBool32 timestampComputeAndGraphics;
  1376. float timestampPeriod;
  1377. uint32_t maxClipDistances;
  1378. uint32_t maxCullDistances;
  1379. uint32_t maxCombinedClipAndCullDistances;
  1380. uint32_t discreteQueuePriorities;
  1381. float pointSizeRange[2];
  1382. float lineWidthRange[2];
  1383. float pointSizeGranularity;
  1384. float lineWidthGranularity;
  1385. VkBool32 strictLines;
  1386. VkBool32 standardSampleLocations;
  1387. VkDeviceSize optimalBufferCopyOffsetAlignment;
  1388. VkDeviceSize optimalBufferCopyRowPitchAlignment;
  1389. VkDeviceSize nonCoherentAtomSize;
  1390. } VkPhysicalDeviceLimits;
  1391. typedef struct VkPhysicalDeviceSparseProperties {
  1392. VkBool32 residencyStandard2DBlockShape;
  1393. VkBool32 residencyStandard2DMultisampleBlockShape;
  1394. VkBool32 residencyStandard3DBlockShape;
  1395. VkBool32 residencyAlignedMipSize;
  1396. VkBool32 residencyNonResidentStrict;
  1397. } VkPhysicalDeviceSparseProperties;
  1398. typedef struct VkPhysicalDeviceProperties {
  1399. uint32_t apiVersion;
  1400. uint32_t driverVersion;
  1401. uint32_t vendorID;
  1402. uint32_t deviceID;
  1403. VkPhysicalDeviceType deviceType;
  1404. char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
  1405. uint8_t pipelineCacheUUID[VK_UUID_SIZE];
  1406. VkPhysicalDeviceLimits limits;
  1407. VkPhysicalDeviceSparseProperties sparseProperties;
  1408. } VkPhysicalDeviceProperties;
  1409. typedef struct VkQueueFamilyProperties {
  1410. VkQueueFlags queueFlags;
  1411. uint32_t queueCount;
  1412. uint32_t timestampValidBits;
  1413. VkExtent3D minImageTransferGranularity;
  1414. } VkQueueFamilyProperties;
  1415. typedef struct VkMemoryType {
  1416. VkMemoryPropertyFlags propertyFlags;
  1417. uint32_t heapIndex;
  1418. } VkMemoryType;
  1419. typedef struct VkMemoryHeap {
  1420. VkDeviceSize size;
  1421. VkMemoryHeapFlags flags;
  1422. } VkMemoryHeap;
  1423. typedef struct VkPhysicalDeviceMemoryProperties {
  1424. uint32_t memoryTypeCount;
  1425. VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
  1426. uint32_t memoryHeapCount;
  1427. VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
  1428. } VkPhysicalDeviceMemoryProperties;
  1429. typedef struct VkDeviceQueueCreateInfo {
  1430. VkStructureType sType;
  1431. const void* pNext;
  1432. VkDeviceQueueCreateFlags flags;
  1433. uint32_t queueFamilyIndex;
  1434. uint32_t queueCount;
  1435. const float* pQueuePriorities;
  1436. } VkDeviceQueueCreateInfo;
  1437. typedef struct VkDeviceCreateInfo {
  1438. VkStructureType sType;
  1439. const void* pNext;
  1440. VkDeviceCreateFlags flags;
  1441. uint32_t queueCreateInfoCount;
  1442. const VkDeviceQueueCreateInfo* pQueueCreateInfos;
  1443. uint32_t enabledLayerCount;
  1444. const char* const* ppEnabledLayerNames;
  1445. uint32_t enabledExtensionCount;
  1446. const char* const* ppEnabledExtensionNames;
  1447. const VkPhysicalDeviceFeatures* pEnabledFeatures;
  1448. } VkDeviceCreateInfo;
  1449. typedef struct VkExtensionProperties {
  1450. char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
  1451. uint32_t specVersion;
  1452. } VkExtensionProperties;
  1453. typedef struct VkLayerProperties {
  1454. char layerName[VK_MAX_EXTENSION_NAME_SIZE];
  1455. uint32_t specVersion;
  1456. uint32_t implementationVersion;
  1457. char description[VK_MAX_DESCRIPTION_SIZE];
  1458. } VkLayerProperties;
  1459. typedef struct VkSubmitInfo {
  1460. VkStructureType sType;
  1461. const void* pNext;
  1462. uint32_t waitSemaphoreCount;
  1463. const VkSemaphore* pWaitSemaphores;
  1464. const VkPipelineStageFlags* pWaitDstStageMask;
  1465. uint32_t commandBufferCount;
  1466. const VkCommandBuffer* pCommandBuffers;
  1467. uint32_t signalSemaphoreCount;
  1468. const VkSemaphore* pSignalSemaphores;
  1469. } VkSubmitInfo;
  1470. typedef struct VkMemoryAllocateInfo {
  1471. VkStructureType sType;
  1472. const void* pNext;
  1473. VkDeviceSize allocationSize;
  1474. uint32_t memoryTypeIndex;
  1475. } VkMemoryAllocateInfo;
  1476. typedef struct VkMappedMemoryRange {
  1477. VkStructureType sType;
  1478. const void* pNext;
  1479. VkDeviceMemory memory;
  1480. VkDeviceSize offset;
  1481. VkDeviceSize size;
  1482. } VkMappedMemoryRange;
  1483. typedef struct VkMemoryRequirements {
  1484. VkDeviceSize size;
  1485. VkDeviceSize alignment;
  1486. uint32_t memoryTypeBits;
  1487. } VkMemoryRequirements;
  1488. typedef struct VkSparseImageFormatProperties {
  1489. VkImageAspectFlags aspectMask;
  1490. VkExtent3D imageGranularity;
  1491. VkSparseImageFormatFlags flags;
  1492. } VkSparseImageFormatProperties;
  1493. typedef struct VkSparseImageMemoryRequirements {
  1494. VkSparseImageFormatProperties formatProperties;
  1495. uint32_t imageMipTailFirstLod;
  1496. VkDeviceSize imageMipTailSize;
  1497. VkDeviceSize imageMipTailOffset;
  1498. VkDeviceSize imageMipTailStride;
  1499. } VkSparseImageMemoryRequirements;
  1500. typedef struct VkSparseMemoryBind {
  1501. VkDeviceSize resourceOffset;
  1502. VkDeviceSize size;
  1503. VkDeviceMemory memory;
  1504. VkDeviceSize memoryOffset;
  1505. VkSparseMemoryBindFlags flags;
  1506. } VkSparseMemoryBind;
  1507. typedef struct VkSparseBufferMemoryBindInfo {
  1508. VkBuffer buffer;
  1509. uint32_t bindCount;
  1510. const VkSparseMemoryBind* pBinds;
  1511. } VkSparseBufferMemoryBindInfo;
  1512. typedef struct VkSparseImageOpaqueMemoryBindInfo {
  1513. VkImage image;
  1514. uint32_t bindCount;
  1515. const VkSparseMemoryBind* pBinds;
  1516. } VkSparseImageOpaqueMemoryBindInfo;
  1517. typedef struct VkImageSubresource {
  1518. VkImageAspectFlags aspectMask;
  1519. uint32_t mipLevel;
  1520. uint32_t arrayLayer;
  1521. } VkImageSubresource;
  1522. typedef struct VkOffset3D {
  1523. int32_t x;
  1524. int32_t y;
  1525. int32_t z;
  1526. } VkOffset3D;
  1527. typedef struct VkSparseImageMemoryBind {
  1528. VkImageSubresource subresource;
  1529. VkOffset3D offset;
  1530. VkExtent3D extent;
  1531. VkDeviceMemory memory;
  1532. VkDeviceSize memoryOffset;
  1533. VkSparseMemoryBindFlags flags;
  1534. } VkSparseImageMemoryBind;
  1535. typedef struct VkSparseImageMemoryBindInfo {
  1536. VkImage image;
  1537. uint32_t bindCount;
  1538. const VkSparseImageMemoryBind* pBinds;
  1539. } VkSparseImageMemoryBindInfo;
  1540. typedef struct VkBindSparseInfo {
  1541. VkStructureType sType;
  1542. const void* pNext;
  1543. uint32_t waitSemaphoreCount;
  1544. const VkSemaphore* pWaitSemaphores;
  1545. uint32_t bufferBindCount;
  1546. const VkSparseBufferMemoryBindInfo* pBufferBinds;
  1547. uint32_t imageOpaqueBindCount;
  1548. const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
  1549. uint32_t imageBindCount;
  1550. const VkSparseImageMemoryBindInfo* pImageBinds;
  1551. uint32_t signalSemaphoreCount;
  1552. const VkSemaphore* pSignalSemaphores;
  1553. } VkBindSparseInfo;
  1554. typedef struct VkFenceCreateInfo {
  1555. VkStructureType sType;
  1556. const void* pNext;
  1557. VkFenceCreateFlags flags;
  1558. } VkFenceCreateInfo;
  1559. typedef struct VkSemaphoreCreateInfo {
  1560. VkStructureType sType;
  1561. const void* pNext;
  1562. VkSemaphoreCreateFlags flags;
  1563. } VkSemaphoreCreateInfo;
  1564. typedef struct VkEventCreateInfo {
  1565. VkStructureType sType;
  1566. const void* pNext;
  1567. VkEventCreateFlags flags;
  1568. } VkEventCreateInfo;
  1569. typedef struct VkQueryPoolCreateInfo {
  1570. VkStructureType sType;
  1571. const void* pNext;
  1572. VkQueryPoolCreateFlags flags;
  1573. VkQueryType queryType;
  1574. uint32_t queryCount;
  1575. VkQueryPipelineStatisticFlags pipelineStatistics;
  1576. } VkQueryPoolCreateInfo;
  1577. typedef struct VkBufferCreateInfo {
  1578. VkStructureType sType;
  1579. const void* pNext;
  1580. VkBufferCreateFlags flags;
  1581. VkDeviceSize size;
  1582. VkBufferUsageFlags usage;
  1583. VkSharingMode sharingMode;
  1584. uint32_t queueFamilyIndexCount;
  1585. const uint32_t* pQueueFamilyIndices;
  1586. } VkBufferCreateInfo;
  1587. typedef struct VkBufferViewCreateInfo {
  1588. VkStructureType sType;
  1589. const void* pNext;
  1590. VkBufferViewCreateFlags flags;
  1591. VkBuffer buffer;
  1592. VkFormat format;
  1593. VkDeviceSize offset;
  1594. VkDeviceSize range;
  1595. } VkBufferViewCreateInfo;
  1596. typedef struct VkImageCreateInfo {
  1597. VkStructureType sType;
  1598. const void* pNext;
  1599. VkImageCreateFlags flags;
  1600. VkImageType imageType;
  1601. VkFormat format;
  1602. VkExtent3D extent;
  1603. uint32_t mipLevels;
  1604. uint32_t arrayLayers;
  1605. VkSampleCountFlagBits samples;
  1606. VkImageTiling tiling;
  1607. VkImageUsageFlags usage;
  1608. VkSharingMode sharingMode;
  1609. uint32_t queueFamilyIndexCount;
  1610. const uint32_t* pQueueFamilyIndices;
  1611. VkImageLayout initialLayout;
  1612. } VkImageCreateInfo;
  1613. typedef struct VkSubresourceLayout {
  1614. VkDeviceSize offset;
  1615. VkDeviceSize size;
  1616. VkDeviceSize rowPitch;
  1617. VkDeviceSize arrayPitch;
  1618. VkDeviceSize depthPitch;
  1619. } VkSubresourceLayout;
  1620. typedef struct VkComponentMapping {
  1621. VkComponentSwizzle r;
  1622. VkComponentSwizzle g;
  1623. VkComponentSwizzle b;
  1624. VkComponentSwizzle a;
  1625. } VkComponentMapping;
  1626. typedef struct VkImageSubresourceRange {
  1627. VkImageAspectFlags aspectMask;
  1628. uint32_t baseMipLevel;
  1629. uint32_t levelCount;
  1630. uint32_t baseArrayLayer;
  1631. uint32_t layerCount;
  1632. } VkImageSubresourceRange;
  1633. typedef struct VkImageViewCreateInfo {
  1634. VkStructureType sType;
  1635. const void* pNext;
  1636. VkImageViewCreateFlags flags;
  1637. VkImage image;
  1638. VkImageViewType viewType;
  1639. VkFormat format;
  1640. VkComponentMapping components;
  1641. VkImageSubresourceRange subresourceRange;
  1642. } VkImageViewCreateInfo;
  1643. typedef struct VkShaderModuleCreateInfo {
  1644. VkStructureType sType;
  1645. const void* pNext;
  1646. VkShaderModuleCreateFlags flags;
  1647. size_t codeSize;
  1648. const uint32_t* pCode;
  1649. } VkShaderModuleCreateInfo;
  1650. typedef struct VkPipelineCacheCreateInfo {
  1651. VkStructureType sType;
  1652. const void* pNext;
  1653. VkPipelineCacheCreateFlags flags;
  1654. size_t initialDataSize;
  1655. const void* pInitialData;
  1656. } VkPipelineCacheCreateInfo;
  1657. typedef struct VkSpecializationMapEntry {
  1658. uint32_t constantID;
  1659. uint32_t offset;
  1660. size_t size;
  1661. } VkSpecializationMapEntry;
  1662. typedef struct VkSpecializationInfo {
  1663. uint32_t mapEntryCount;
  1664. const VkSpecializationMapEntry* pMapEntries;
  1665. size_t dataSize;
  1666. const void* pData;
  1667. } VkSpecializationInfo;
  1668. typedef struct VkPipelineShaderStageCreateInfo {
  1669. VkStructureType sType;
  1670. const void* pNext;
  1671. VkPipelineShaderStageCreateFlags flags;
  1672. VkShaderStageFlagBits stage;
  1673. VkShaderModule module;
  1674. const char* pName;
  1675. const VkSpecializationInfo* pSpecializationInfo;
  1676. } VkPipelineShaderStageCreateInfo;
  1677. typedef struct VkVertexInputBindingDescription {
  1678. uint32_t binding;
  1679. uint32_t stride;
  1680. VkVertexInputRate inputRate;
  1681. } VkVertexInputBindingDescription;
  1682. typedef struct VkVertexInputAttributeDescription {
  1683. uint32_t location;
  1684. uint32_t binding;
  1685. VkFormat format;
  1686. uint32_t offset;
  1687. } VkVertexInputAttributeDescription;
  1688. typedef struct VkPipelineVertexInputStateCreateInfo {
  1689. VkStructureType sType;
  1690. const void* pNext;
  1691. VkPipelineVertexInputStateCreateFlags flags;
  1692. uint32_t vertexBindingDescriptionCount;
  1693. const VkVertexInputBindingDescription* pVertexBindingDescriptions;
  1694. uint32_t vertexAttributeDescriptionCount;
  1695. const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
  1696. } VkPipelineVertexInputStateCreateInfo;
  1697. typedef struct VkPipelineInputAssemblyStateCreateInfo {
  1698. VkStructureType sType;
  1699. const void* pNext;
  1700. VkPipelineInputAssemblyStateCreateFlags flags;
  1701. VkPrimitiveTopology topology;
  1702. VkBool32 primitiveRestartEnable;
  1703. } VkPipelineInputAssemblyStateCreateInfo;
  1704. typedef struct VkPipelineTessellationStateCreateInfo {
  1705. VkStructureType sType;
  1706. const void* pNext;
  1707. VkPipelineTessellationStateCreateFlags flags;
  1708. uint32_t patchControlPoints;
  1709. } VkPipelineTessellationStateCreateInfo;
  1710. typedef struct VkViewport {
  1711. float x;
  1712. float y;
  1713. float width;
  1714. float height;
  1715. float minDepth;
  1716. float maxDepth;
  1717. } VkViewport;
  1718. typedef struct VkOffset2D {
  1719. int32_t x;
  1720. int32_t y;
  1721. } VkOffset2D;
  1722. typedef struct VkExtent2D {
  1723. uint32_t width;
  1724. uint32_t height;
  1725. } VkExtent2D;
  1726. typedef struct VkRect2D {
  1727. VkOffset2D offset;
  1728. VkExtent2D extent;
  1729. } VkRect2D;
  1730. typedef struct VkPipelineViewportStateCreateInfo {
  1731. VkStructureType sType;
  1732. const void* pNext;
  1733. VkPipelineViewportStateCreateFlags flags;
  1734. uint32_t viewportCount;
  1735. const VkViewport* pViewports;
  1736. uint32_t scissorCount;
  1737. const VkRect2D* pScissors;
  1738. } VkPipelineViewportStateCreateInfo;
  1739. typedef struct VkPipelineRasterizationStateCreateInfo {
  1740. VkStructureType sType;
  1741. const void* pNext;
  1742. VkPipelineRasterizationStateCreateFlags flags;
  1743. VkBool32 depthClampEnable;
  1744. VkBool32 rasterizerDiscardEnable;
  1745. VkPolygonMode polygonMode;
  1746. VkCullModeFlags cullMode;
  1747. VkFrontFace frontFace;
  1748. VkBool32 depthBiasEnable;
  1749. float depthBiasConstantFactor;
  1750. float depthBiasClamp;
  1751. float depthBiasSlopeFactor;
  1752. float lineWidth;
  1753. } VkPipelineRasterizationStateCreateInfo;
  1754. typedef struct VkPipelineMultisampleStateCreateInfo {
  1755. VkStructureType sType;
  1756. const void* pNext;
  1757. VkPipelineMultisampleStateCreateFlags flags;
  1758. VkSampleCountFlagBits rasterizationSamples;
  1759. VkBool32 sampleShadingEnable;
  1760. float minSampleShading;
  1761. const VkSampleMask* pSampleMask;
  1762. VkBool32 alphaToCoverageEnable;
  1763. VkBool32 alphaToOneEnable;
  1764. } VkPipelineMultisampleStateCreateInfo;
  1765. typedef struct VkStencilOpState {
  1766. VkStencilOp failOp;
  1767. VkStencilOp passOp;
  1768. VkStencilOp depthFailOp;
  1769. VkCompareOp compareOp;
  1770. uint32_t compareMask;
  1771. uint32_t writeMask;
  1772. uint32_t reference;
  1773. } VkStencilOpState;
  1774. typedef struct VkPipelineDepthStencilStateCreateInfo {
  1775. VkStructureType sType;
  1776. const void* pNext;
  1777. VkPipelineDepthStencilStateCreateFlags flags;
  1778. VkBool32 depthTestEnable;
  1779. VkBool32 depthWriteEnable;
  1780. VkCompareOp depthCompareOp;
  1781. VkBool32 depthBoundsTestEnable;
  1782. VkBool32 stencilTestEnable;
  1783. VkStencilOpState front;
  1784. VkStencilOpState back;
  1785. float minDepthBounds;
  1786. float maxDepthBounds;
  1787. } VkPipelineDepthStencilStateCreateInfo;
  1788. typedef struct VkPipelineColorBlendAttachmentState {
  1789. VkBool32 blendEnable;
  1790. VkBlendFactor srcColorBlendFactor;
  1791. VkBlendFactor dstColorBlendFactor;
  1792. VkBlendOp colorBlendOp;
  1793. VkBlendFactor srcAlphaBlendFactor;
  1794. VkBlendFactor dstAlphaBlendFactor;
  1795. VkBlendOp alphaBlendOp;
  1796. VkColorComponentFlags colorWriteMask;
  1797. } VkPipelineColorBlendAttachmentState;
  1798. typedef struct VkPipelineColorBlendStateCreateInfo {
  1799. VkStructureType sType;
  1800. const void* pNext;
  1801. VkPipelineColorBlendStateCreateFlags flags;
  1802. VkBool32 logicOpEnable;
  1803. VkLogicOp logicOp;
  1804. uint32_t attachmentCount;
  1805. const VkPipelineColorBlendAttachmentState* pAttachments;
  1806. float blendConstants[4];
  1807. } VkPipelineColorBlendStateCreateInfo;
  1808. typedef struct VkPipelineDynamicStateCreateInfo {
  1809. VkStructureType sType;
  1810. const void* pNext;
  1811. VkPipelineDynamicStateCreateFlags flags;
  1812. uint32_t dynamicStateCount;
  1813. const VkDynamicState* pDynamicStates;
  1814. } VkPipelineDynamicStateCreateInfo;
  1815. typedef struct VkGraphicsPipelineCreateInfo {
  1816. VkStructureType sType;
  1817. const void* pNext;
  1818. VkPipelineCreateFlags flags;
  1819. uint32_t stageCount;
  1820. const VkPipelineShaderStageCreateInfo* pStages;
  1821. const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
  1822. const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
  1823. const VkPipelineTessellationStateCreateInfo* pTessellationState;
  1824. const VkPipelineViewportStateCreateInfo* pViewportState;
  1825. const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
  1826. const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
  1827. const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
  1828. const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
  1829. const VkPipelineDynamicStateCreateInfo* pDynamicState;
  1830. VkPipelineLayout layout;
  1831. VkRenderPass renderPass;
  1832. uint32_t subpass;
  1833. VkPipeline basePipelineHandle;
  1834. int32_t basePipelineIndex;
  1835. } VkGraphicsPipelineCreateInfo;
  1836. typedef struct VkComputePipelineCreateInfo {
  1837. VkStructureType sType;
  1838. const void* pNext;
  1839. VkPipelineCreateFlags flags;
  1840. VkPipelineShaderStageCreateInfo stage;
  1841. VkPipelineLayout layout;
  1842. VkPipeline basePipelineHandle;
  1843. int32_t basePipelineIndex;
  1844. } VkComputePipelineCreateInfo;
  1845. typedef struct VkPushConstantRange {
  1846. VkShaderStageFlags stageFlags;
  1847. uint32_t offset;
  1848. uint32_t size;
  1849. } VkPushConstantRange;
  1850. typedef struct VkPipelineLayoutCreateInfo {
  1851. VkStructureType sType;
  1852. const void* pNext;
  1853. VkPipelineLayoutCreateFlags flags;
  1854. uint32_t setLayoutCount;
  1855. const VkDescriptorSetLayout* pSetLayouts;
  1856. uint32_t pushConstantRangeCount;
  1857. const VkPushConstantRange* pPushConstantRanges;
  1858. } VkPipelineLayoutCreateInfo;
  1859. typedef struct VkSamplerCreateInfo {
  1860. VkStructureType sType;
  1861. const void* pNext;
  1862. VkSamplerCreateFlags flags;
  1863. VkFilter magFilter;
  1864. VkFilter minFilter;
  1865. VkSamplerMipmapMode mipmapMode;
  1866. VkSamplerAddressMode addressModeU;
  1867. VkSamplerAddressMode addressModeV;
  1868. VkSamplerAddressMode addressModeW;
  1869. float mipLodBias;
  1870. VkBool32 anisotropyEnable;
  1871. float maxAnisotropy;
  1872. VkBool32 compareEnable;
  1873. VkCompareOp compareOp;
  1874. float minLod;
  1875. float maxLod;
  1876. VkBorderColor borderColor;
  1877. VkBool32 unnormalizedCoordinates;
  1878. } VkSamplerCreateInfo;
  1879. typedef struct VkDescriptorSetLayoutBinding {
  1880. uint32_t binding;
  1881. VkDescriptorType descriptorType;
  1882. uint32_t descriptorCount;
  1883. VkShaderStageFlags stageFlags;
  1884. const VkSampler* pImmutableSamplers;
  1885. } VkDescriptorSetLayoutBinding;
  1886. typedef struct VkDescriptorSetLayoutCreateInfo {
  1887. VkStructureType sType;
  1888. const void* pNext;
  1889. VkDescriptorSetLayoutCreateFlags flags;
  1890. uint32_t bindingCount;
  1891. const VkDescriptorSetLayoutBinding* pBindings;
  1892. } VkDescriptorSetLayoutCreateInfo;
  1893. typedef struct VkDescriptorPoolSize {
  1894. VkDescriptorType type;
  1895. uint32_t descriptorCount;
  1896. } VkDescriptorPoolSize;
  1897. typedef struct VkDescriptorPoolCreateInfo {
  1898. VkStructureType sType;
  1899. const void* pNext;
  1900. VkDescriptorPoolCreateFlags flags;
  1901. uint32_t maxSets;
  1902. uint32_t poolSizeCount;
  1903. const VkDescriptorPoolSize* pPoolSizes;
  1904. } VkDescriptorPoolCreateInfo;
  1905. typedef struct VkDescriptorSetAllocateInfo {
  1906. VkStructureType sType;
  1907. const void* pNext;
  1908. VkDescriptorPool descriptorPool;
  1909. uint32_t descriptorSetCount;
  1910. const VkDescriptorSetLayout* pSetLayouts;
  1911. } VkDescriptorSetAllocateInfo;
  1912. typedef struct VkDescriptorImageInfo {
  1913. VkSampler sampler;
  1914. VkImageView imageView;
  1915. VkImageLayout imageLayout;
  1916. } VkDescriptorImageInfo;
  1917. typedef struct VkDescriptorBufferInfo {
  1918. VkBuffer buffer;
  1919. VkDeviceSize offset;
  1920. VkDeviceSize range;
  1921. } VkDescriptorBufferInfo;
  1922. typedef struct VkWriteDescriptorSet {
  1923. VkStructureType sType;
  1924. const void* pNext;
  1925. VkDescriptorSet dstSet;
  1926. uint32_t dstBinding;
  1927. uint32_t dstArrayElement;
  1928. uint32_t descriptorCount;
  1929. VkDescriptorType descriptorType;
  1930. const VkDescriptorImageInfo* pImageInfo;
  1931. const VkDescriptorBufferInfo* pBufferInfo;
  1932. const VkBufferView* pTexelBufferView;
  1933. } VkWriteDescriptorSet;
  1934. typedef struct VkCopyDescriptorSet {
  1935. VkStructureType sType;
  1936. const void* pNext;
  1937. VkDescriptorSet srcSet;
  1938. uint32_t srcBinding;
  1939. uint32_t srcArrayElement;
  1940. VkDescriptorSet dstSet;
  1941. uint32_t dstBinding;
  1942. uint32_t dstArrayElement;
  1943. uint32_t descriptorCount;
  1944. } VkCopyDescriptorSet;
  1945. typedef struct VkFramebufferCreateInfo {
  1946. VkStructureType sType;
  1947. const void* pNext;
  1948. VkFramebufferCreateFlags flags;
  1949. VkRenderPass renderPass;
  1950. uint32_t attachmentCount;
  1951. const VkImageView* pAttachments;
  1952. uint32_t width;
  1953. uint32_t height;
  1954. uint32_t layers;
  1955. } VkFramebufferCreateInfo;
  1956. typedef struct VkAttachmentDescription {
  1957. VkAttachmentDescriptionFlags flags;
  1958. VkFormat format;
  1959. VkSampleCountFlagBits samples;
  1960. VkAttachmentLoadOp loadOp;
  1961. VkAttachmentStoreOp storeOp;
  1962. VkAttachmentLoadOp stencilLoadOp;
  1963. VkAttachmentStoreOp stencilStoreOp;
  1964. VkImageLayout initialLayout;
  1965. VkImageLayout finalLayout;
  1966. } VkAttachmentDescription;
  1967. typedef struct VkAttachmentReference {
  1968. uint32_t attachment;
  1969. VkImageLayout layout;
  1970. } VkAttachmentReference;
  1971. typedef struct VkSubpassDescription {
  1972. VkSubpassDescriptionFlags flags;
  1973. VkPipelineBindPoint pipelineBindPoint;
  1974. uint32_t inputAttachmentCount;
  1975. const VkAttachmentReference* pInputAttachments;
  1976. uint32_t colorAttachmentCount;
  1977. const VkAttachmentReference* pColorAttachments;
  1978. const VkAttachmentReference* pResolveAttachments;
  1979. const VkAttachmentReference* pDepthStencilAttachment;
  1980. uint32_t preserveAttachmentCount;
  1981. const uint32_t* pPreserveAttachments;
  1982. } VkSubpassDescription;
  1983. typedef struct VkSubpassDependency {
  1984. uint32_t srcSubpass;
  1985. uint32_t dstSubpass;
  1986. VkPipelineStageFlags srcStageMask;
  1987. VkPipelineStageFlags dstStageMask;
  1988. VkAccessFlags srcAccessMask;
  1989. VkAccessFlags dstAccessMask;
  1990. VkDependencyFlags dependencyFlags;
  1991. } VkSubpassDependency;
  1992. typedef struct VkRenderPassCreateInfo {
  1993. VkStructureType sType;
  1994. const void* pNext;
  1995. VkRenderPassCreateFlags flags;
  1996. uint32_t attachmentCount;
  1997. const VkAttachmentDescription* pAttachments;
  1998. uint32_t subpassCount;
  1999. const VkSubpassDescription* pSubpasses;
  2000. uint32_t dependencyCount;
  2001. const VkSubpassDependency* pDependencies;
  2002. } VkRenderPassCreateInfo;
  2003. typedef struct VkCommandPoolCreateInfo {
  2004. VkStructureType sType;
  2005. const void* pNext;
  2006. VkCommandPoolCreateFlags flags;
  2007. uint32_t queueFamilyIndex;
  2008. } VkCommandPoolCreateInfo;
  2009. typedef struct VkCommandBufferAllocateInfo {
  2010. VkStructureType sType;
  2011. const void* pNext;
  2012. VkCommandPool commandPool;
  2013. VkCommandBufferLevel level;
  2014. uint32_t commandBufferCount;
  2015. } VkCommandBufferAllocateInfo;
  2016. typedef struct VkCommandBufferInheritanceInfo {
  2017. VkStructureType sType;
  2018. const void* pNext;
  2019. VkRenderPass renderPass;
  2020. uint32_t subpass;
  2021. VkFramebuffer framebuffer;
  2022. VkBool32 occlusionQueryEnable;
  2023. VkQueryControlFlags queryFlags;
  2024. VkQueryPipelineStatisticFlags pipelineStatistics;
  2025. } VkCommandBufferInheritanceInfo;
  2026. typedef struct VkCommandBufferBeginInfo {
  2027. VkStructureType sType;
  2028. const void* pNext;
  2029. VkCommandBufferUsageFlags flags;
  2030. const VkCommandBufferInheritanceInfo* pInheritanceInfo;
  2031. } VkCommandBufferBeginInfo;
  2032. typedef struct VkBufferCopy {
  2033. VkDeviceSize srcOffset;
  2034. VkDeviceSize dstOffset;
  2035. VkDeviceSize size;
  2036. } VkBufferCopy;
  2037. typedef struct VkImageSubresourceLayers {
  2038. VkImageAspectFlags aspectMask;
  2039. uint32_t mipLevel;
  2040. uint32_t baseArrayLayer;
  2041. uint32_t layerCount;
  2042. } VkImageSubresourceLayers;
  2043. typedef struct VkImageCopy {
  2044. VkImageSubresourceLayers srcSubresource;
  2045. VkOffset3D srcOffset;
  2046. VkImageSubresourceLayers dstSubresource;
  2047. VkOffset3D dstOffset;
  2048. VkExtent3D extent;
  2049. } VkImageCopy;
  2050. typedef struct VkImageBlit {
  2051. VkImageSubresourceLayers srcSubresource;
  2052. VkOffset3D srcOffsets[2];
  2053. VkImageSubresourceLayers dstSubresource;
  2054. VkOffset3D dstOffsets[2];
  2055. } VkImageBlit;
  2056. typedef struct VkBufferImageCopy {
  2057. VkDeviceSize bufferOffset;
  2058. uint32_t bufferRowLength;
  2059. uint32_t bufferImageHeight;
  2060. VkImageSubresourceLayers imageSubresource;
  2061. VkOffset3D imageOffset;
  2062. VkExtent3D imageExtent;
  2063. } VkBufferImageCopy;
  2064. typedef union VkClearColorValue {
  2065. float float32[4];
  2066. int32_t int32[4];
  2067. uint32_t uint32[4];
  2068. } VkClearColorValue;
  2069. typedef struct VkClearDepthStencilValue {
  2070. float depth;
  2071. uint32_t stencil;
  2072. } VkClearDepthStencilValue;
  2073. typedef union VkClearValue {
  2074. VkClearColorValue color;
  2075. VkClearDepthStencilValue depthStencil;
  2076. } VkClearValue;
  2077. typedef struct VkClearAttachment {
  2078. VkImageAspectFlags aspectMask;
  2079. uint32_t colorAttachment;
  2080. VkClearValue clearValue;
  2081. } VkClearAttachment;
  2082. typedef struct VkClearRect {
  2083. VkRect2D rect;
  2084. uint32_t baseArrayLayer;
  2085. uint32_t layerCount;
  2086. } VkClearRect;
  2087. typedef struct VkImageResolve {
  2088. VkImageSubresourceLayers srcSubresource;
  2089. VkOffset3D srcOffset;
  2090. VkImageSubresourceLayers dstSubresource;
  2091. VkOffset3D dstOffset;
  2092. VkExtent3D extent;
  2093. } VkImageResolve;
  2094. typedef struct VkMemoryBarrier {
  2095. VkStructureType sType;
  2096. const void* pNext;
  2097. VkAccessFlags srcAccessMask;
  2098. VkAccessFlags dstAccessMask;
  2099. } VkMemoryBarrier;
  2100. typedef struct VkBufferMemoryBarrier {
  2101. VkStructureType sType;
  2102. const void* pNext;
  2103. VkAccessFlags srcAccessMask;
  2104. VkAccessFlags dstAccessMask;
  2105. uint32_t srcQueueFamilyIndex;
  2106. uint32_t dstQueueFamilyIndex;
  2107. VkBuffer buffer;
  2108. VkDeviceSize offset;
  2109. VkDeviceSize size;
  2110. } VkBufferMemoryBarrier;
  2111. typedef struct VkImageMemoryBarrier {
  2112. VkStructureType sType;
  2113. const void* pNext;
  2114. VkAccessFlags srcAccessMask;
  2115. VkAccessFlags dstAccessMask;
  2116. VkImageLayout oldLayout;
  2117. VkImageLayout newLayout;
  2118. uint32_t srcQueueFamilyIndex;
  2119. uint32_t dstQueueFamilyIndex;
  2120. VkImage image;
  2121. VkImageSubresourceRange subresourceRange;
  2122. } VkImageMemoryBarrier;
  2123. typedef struct VkRenderPassBeginInfo {
  2124. VkStructureType sType;
  2125. const void* pNext;
  2126. VkRenderPass renderPass;
  2127. VkFramebuffer framebuffer;
  2128. VkRect2D renderArea;
  2129. uint32_t clearValueCount;
  2130. const VkClearValue* pClearValues;
  2131. } VkRenderPassBeginInfo;
  2132. typedef struct VkDispatchIndirectCommand {
  2133. uint32_t x;
  2134. uint32_t y;
  2135. uint32_t z;
  2136. } VkDispatchIndirectCommand;
  2137. typedef struct VkDrawIndexedIndirectCommand {
  2138. uint32_t indexCount;
  2139. uint32_t instanceCount;
  2140. uint32_t firstIndex;
  2141. int32_t vertexOffset;
  2142. uint32_t firstInstance;
  2143. } VkDrawIndexedIndirectCommand;
  2144. typedef struct VkDrawIndirectCommand {
  2145. uint32_t vertexCount;
  2146. uint32_t instanceCount;
  2147. uint32_t firstVertex;
  2148. uint32_t firstInstance;
  2149. } VkDrawIndirectCommand;
  2150. typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
  2151. typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
  2152. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
  2153. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
  2154. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
  2155. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
  2156. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
  2157. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
  2158. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
  2159. typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
  2160. typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
  2161. typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
  2162. typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
  2163. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
  2164. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
  2165. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
  2166. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
  2167. typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
  2168. typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
  2169. typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
  2170. typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
  2171. typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
  2172. typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
  2173. typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
  2174. typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
  2175. typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
  2176. typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
  2177. typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
  2178. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  2179. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  2180. typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
  2181. typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
  2182. typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
  2183. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
  2184. typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
  2185. typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  2186. typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
  2187. typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
  2188. typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
  2189. typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
  2190. typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
  2191. typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
  2192. typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
  2193. typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
  2194. typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
  2195. typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
  2196. typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
  2197. typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
  2198. typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
  2199. typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
  2200. typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
  2201. typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
  2202. typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
  2203. typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
  2204. typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
  2205. typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
  2206. typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
  2207. typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
  2208. typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
  2209. typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
  2210. typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
  2211. typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
  2212. typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
  2213. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
  2214. typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
  2215. typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  2216. typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  2217. typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
  2218. typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
  2219. typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
  2220. typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
  2221. typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
  2222. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
  2223. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
  2224. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
  2225. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
  2226. typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
  2227. typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
  2228. typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
  2229. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
  2230. typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
  2231. typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
  2232. typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
  2233. typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
  2234. typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
  2235. typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
  2236. typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
  2237. typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
  2238. typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
  2239. typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
  2240. typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
  2241. typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
  2242. typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
  2243. typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
  2244. typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
  2245. typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
  2246. typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
  2247. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
  2248. typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
  2249. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
  2250. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
  2251. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
  2252. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
  2253. typedef void (VKAPI_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);
  2254. typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
  2255. typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
  2256. typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
  2257. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
  2258. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  2259. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  2260. typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  2261. typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
  2262. typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
  2263. typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
  2264. typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
  2265. typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
  2266. typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
  2267. typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
  2268. typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
  2269. typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
  2270. typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
  2271. typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
  2272. typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
  2273. typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  2274. typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  2275. typedef void (VKAPI_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);
  2276. typedef void (VKAPI_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);
  2277. typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
  2278. typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
  2279. typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  2280. typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
  2281. typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
  2282. typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
  2283. typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
  2284. typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
  2285. typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
  2286. typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
  2287. #ifndef VK_NO_PROTOTYPES
  2288. VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
  2289. const VkInstanceCreateInfo* pCreateInfo,
  2290. const VkAllocationCallbacks* pAllocator,
  2291. VkInstance* pInstance);
  2292. VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
  2293. VkInstance instance,
  2294. const VkAllocationCallbacks* pAllocator);
  2295. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
  2296. VkInstance instance,
  2297. uint32_t* pPhysicalDeviceCount,
  2298. VkPhysicalDevice* pPhysicalDevices);
  2299. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
  2300. VkPhysicalDevice physicalDevice,
  2301. VkPhysicalDeviceFeatures* pFeatures);
  2302. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
  2303. VkPhysicalDevice physicalDevice,
  2304. VkFormat format,
  2305. VkFormatProperties* pFormatProperties);
  2306. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
  2307. VkPhysicalDevice physicalDevice,
  2308. VkFormat format,
  2309. VkImageType type,
  2310. VkImageTiling tiling,
  2311. VkImageUsageFlags usage,
  2312. VkImageCreateFlags flags,
  2313. VkImageFormatProperties* pImageFormatProperties);
  2314. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
  2315. VkPhysicalDevice physicalDevice,
  2316. VkPhysicalDeviceProperties* pProperties);
  2317. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
  2318. VkPhysicalDevice physicalDevice,
  2319. uint32_t* pQueueFamilyPropertyCount,
  2320. VkQueueFamilyProperties* pQueueFamilyProperties);
  2321. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
  2322. VkPhysicalDevice physicalDevice,
  2323. VkPhysicalDeviceMemoryProperties* pMemoryProperties);
  2324. VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
  2325. VkInstance instance,
  2326. const char* pName);
  2327. VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
  2328. VkDevice device,
  2329. const char* pName);
  2330. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
  2331. VkPhysicalDevice physicalDevice,
  2332. const VkDeviceCreateInfo* pCreateInfo,
  2333. const VkAllocationCallbacks* pAllocator,
  2334. VkDevice* pDevice);
  2335. VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
  2336. VkDevice device,
  2337. const VkAllocationCallbacks* pAllocator);
  2338. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
  2339. const char* pLayerName,
  2340. uint32_t* pPropertyCount,
  2341. VkExtensionProperties* pProperties);
  2342. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
  2343. VkPhysicalDevice physicalDevice,
  2344. const char* pLayerName,
  2345. uint32_t* pPropertyCount,
  2346. VkExtensionProperties* pProperties);
  2347. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
  2348. uint32_t* pPropertyCount,
  2349. VkLayerProperties* pProperties);
  2350. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
  2351. VkPhysicalDevice physicalDevice,
  2352. uint32_t* pPropertyCount,
  2353. VkLayerProperties* pProperties);
  2354. VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
  2355. VkDevice device,
  2356. uint32_t queueFamilyIndex,
  2357. uint32_t queueIndex,
  2358. VkQueue* pQueue);
  2359. VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
  2360. VkQueue queue,
  2361. uint32_t submitCount,
  2362. const VkSubmitInfo* pSubmits,
  2363. VkFence fence);
  2364. VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
  2365. VkQueue queue);
  2366. VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
  2367. VkDevice device);
  2368. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
  2369. VkDevice device,
  2370. const VkMemoryAllocateInfo* pAllocateInfo,
  2371. const VkAllocationCallbacks* pAllocator,
  2372. VkDeviceMemory* pMemory);
  2373. VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
  2374. VkDevice device,
  2375. VkDeviceMemory memory,
  2376. const VkAllocationCallbacks* pAllocator);
  2377. VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
  2378. VkDevice device,
  2379. VkDeviceMemory memory,
  2380. VkDeviceSize offset,
  2381. VkDeviceSize size,
  2382. VkMemoryMapFlags flags,
  2383. void** ppData);
  2384. VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
  2385. VkDevice device,
  2386. VkDeviceMemory memory);
  2387. VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
  2388. VkDevice device,
  2389. uint32_t memoryRangeCount,
  2390. const VkMappedMemoryRange* pMemoryRanges);
  2391. VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
  2392. VkDevice device,
  2393. uint32_t memoryRangeCount,
  2394. const VkMappedMemoryRange* pMemoryRanges);
  2395. VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
  2396. VkDevice device,
  2397. VkDeviceMemory memory,
  2398. VkDeviceSize* pCommittedMemoryInBytes);
  2399. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
  2400. VkDevice device,
  2401. VkBuffer buffer,
  2402. VkDeviceMemory memory,
  2403. VkDeviceSize memoryOffset);
  2404. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
  2405. VkDevice device,
  2406. VkImage image,
  2407. VkDeviceMemory memory,
  2408. VkDeviceSize memoryOffset);
  2409. VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
  2410. VkDevice device,
  2411. VkBuffer buffer,
  2412. VkMemoryRequirements* pMemoryRequirements);
  2413. VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
  2414. VkDevice device,
  2415. VkImage image,
  2416. VkMemoryRequirements* pMemoryRequirements);
  2417. VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
  2418. VkDevice device,
  2419. VkImage image,
  2420. uint32_t* pSparseMemoryRequirementCount,
  2421. VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
  2422. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
  2423. VkPhysicalDevice physicalDevice,
  2424. VkFormat format,
  2425. VkImageType type,
  2426. VkSampleCountFlagBits samples,
  2427. VkImageUsageFlags usage,
  2428. VkImageTiling tiling,
  2429. uint32_t* pPropertyCount,
  2430. VkSparseImageFormatProperties* pProperties);
  2431. VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
  2432. VkQueue queue,
  2433. uint32_t bindInfoCount,
  2434. const VkBindSparseInfo* pBindInfo,
  2435. VkFence fence);
  2436. VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
  2437. VkDevice device,
  2438. const VkFenceCreateInfo* pCreateInfo,
  2439. const VkAllocationCallbacks* pAllocator,
  2440. VkFence* pFence);
  2441. VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
  2442. VkDevice device,
  2443. VkFence fence,
  2444. const VkAllocationCallbacks* pAllocator);
  2445. VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
  2446. VkDevice device,
  2447. uint32_t fenceCount,
  2448. const VkFence* pFences);
  2449. VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
  2450. VkDevice device,
  2451. VkFence fence);
  2452. VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
  2453. VkDevice device,
  2454. uint32_t fenceCount,
  2455. const VkFence* pFences,
  2456. VkBool32 waitAll,
  2457. uint64_t timeout);
  2458. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
  2459. VkDevice device,
  2460. const VkSemaphoreCreateInfo* pCreateInfo,
  2461. const VkAllocationCallbacks* pAllocator,
  2462. VkSemaphore* pSemaphore);
  2463. VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
  2464. VkDevice device,
  2465. VkSemaphore semaphore,
  2466. const VkAllocationCallbacks* pAllocator);
  2467. VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
  2468. VkDevice device,
  2469. const VkEventCreateInfo* pCreateInfo,
  2470. const VkAllocationCallbacks* pAllocator,
  2471. VkEvent* pEvent);
  2472. VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
  2473. VkDevice device,
  2474. VkEvent event,
  2475. const VkAllocationCallbacks* pAllocator);
  2476. VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
  2477. VkDevice device,
  2478. VkEvent event);
  2479. VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
  2480. VkDevice device,
  2481. VkEvent event);
  2482. VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
  2483. VkDevice device,
  2484. VkEvent event);
  2485. VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
  2486. VkDevice device,
  2487. const VkQueryPoolCreateInfo* pCreateInfo,
  2488. const VkAllocationCallbacks* pAllocator,
  2489. VkQueryPool* pQueryPool);
  2490. VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
  2491. VkDevice device,
  2492. VkQueryPool queryPool,
  2493. const VkAllocationCallbacks* pAllocator);
  2494. VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
  2495. VkDevice device,
  2496. VkQueryPool queryPool,
  2497. uint32_t firstQuery,
  2498. uint32_t queryCount,
  2499. size_t dataSize,
  2500. void* pData,
  2501. VkDeviceSize stride,
  2502. VkQueryResultFlags flags);
  2503. VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
  2504. VkDevice device,
  2505. const VkBufferCreateInfo* pCreateInfo,
  2506. const VkAllocationCallbacks* pAllocator,
  2507. VkBuffer* pBuffer);
  2508. VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
  2509. VkDevice device,
  2510. VkBuffer buffer,
  2511. const VkAllocationCallbacks* pAllocator);
  2512. VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
  2513. VkDevice device,
  2514. const VkBufferViewCreateInfo* pCreateInfo,
  2515. const VkAllocationCallbacks* pAllocator,
  2516. VkBufferView* pView);
  2517. VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
  2518. VkDevice device,
  2519. VkBufferView bufferView,
  2520. const VkAllocationCallbacks* pAllocator);
  2521. VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
  2522. VkDevice device,
  2523. const VkImageCreateInfo* pCreateInfo,
  2524. const VkAllocationCallbacks* pAllocator,
  2525. VkImage* pImage);
  2526. VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
  2527. VkDevice device,
  2528. VkImage image,
  2529. const VkAllocationCallbacks* pAllocator);
  2530. VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
  2531. VkDevice device,
  2532. VkImage image,
  2533. const VkImageSubresource* pSubresource,
  2534. VkSubresourceLayout* pLayout);
  2535. VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
  2536. VkDevice device,
  2537. const VkImageViewCreateInfo* pCreateInfo,
  2538. const VkAllocationCallbacks* pAllocator,
  2539. VkImageView* pView);
  2540. VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
  2541. VkDevice device,
  2542. VkImageView imageView,
  2543. const VkAllocationCallbacks* pAllocator);
  2544. VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
  2545. VkDevice device,
  2546. const VkShaderModuleCreateInfo* pCreateInfo,
  2547. const VkAllocationCallbacks* pAllocator,
  2548. VkShaderModule* pShaderModule);
  2549. VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
  2550. VkDevice device,
  2551. VkShaderModule shaderModule,
  2552. const VkAllocationCallbacks* pAllocator);
  2553. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
  2554. VkDevice device,
  2555. const VkPipelineCacheCreateInfo* pCreateInfo,
  2556. const VkAllocationCallbacks* pAllocator,
  2557. VkPipelineCache* pPipelineCache);
  2558. VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
  2559. VkDevice device,
  2560. VkPipelineCache pipelineCache,
  2561. const VkAllocationCallbacks* pAllocator);
  2562. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
  2563. VkDevice device,
  2564. VkPipelineCache pipelineCache,
  2565. size_t* pDataSize,
  2566. void* pData);
  2567. VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
  2568. VkDevice device,
  2569. VkPipelineCache dstCache,
  2570. uint32_t srcCacheCount,
  2571. const VkPipelineCache* pSrcCaches);
  2572. VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
  2573. VkDevice device,
  2574. VkPipelineCache pipelineCache,
  2575. uint32_t createInfoCount,
  2576. const VkGraphicsPipelineCreateInfo* pCreateInfos,
  2577. const VkAllocationCallbacks* pAllocator,
  2578. VkPipeline* pPipelines);
  2579. VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
  2580. VkDevice device,
  2581. VkPipelineCache pipelineCache,
  2582. uint32_t createInfoCount,
  2583. const VkComputePipelineCreateInfo* pCreateInfos,
  2584. const VkAllocationCallbacks* pAllocator,
  2585. VkPipeline* pPipelines);
  2586. VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
  2587. VkDevice device,
  2588. VkPipeline pipeline,
  2589. const VkAllocationCallbacks* pAllocator);
  2590. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
  2591. VkDevice device,
  2592. const VkPipelineLayoutCreateInfo* pCreateInfo,
  2593. const VkAllocationCallbacks* pAllocator,
  2594. VkPipelineLayout* pPipelineLayout);
  2595. VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
  2596. VkDevice device,
  2597. VkPipelineLayout pipelineLayout,
  2598. const VkAllocationCallbacks* pAllocator);
  2599. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
  2600. VkDevice device,
  2601. const VkSamplerCreateInfo* pCreateInfo,
  2602. const VkAllocationCallbacks* pAllocator,
  2603. VkSampler* pSampler);
  2604. VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
  2605. VkDevice device,
  2606. VkSampler sampler,
  2607. const VkAllocationCallbacks* pAllocator);
  2608. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
  2609. VkDevice device,
  2610. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  2611. const VkAllocationCallbacks* pAllocator,
  2612. VkDescriptorSetLayout* pSetLayout);
  2613. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
  2614. VkDevice device,
  2615. VkDescriptorSetLayout descriptorSetLayout,
  2616. const VkAllocationCallbacks* pAllocator);
  2617. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
  2618. VkDevice device,
  2619. const VkDescriptorPoolCreateInfo* pCreateInfo,
  2620. const VkAllocationCallbacks* pAllocator,
  2621. VkDescriptorPool* pDescriptorPool);
  2622. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
  2623. VkDevice device,
  2624. VkDescriptorPool descriptorPool,
  2625. const VkAllocationCallbacks* pAllocator);
  2626. VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
  2627. VkDevice device,
  2628. VkDescriptorPool descriptorPool,
  2629. VkDescriptorPoolResetFlags flags);
  2630. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
  2631. VkDevice device,
  2632. const VkDescriptorSetAllocateInfo* pAllocateInfo,
  2633. VkDescriptorSet* pDescriptorSets);
  2634. VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
  2635. VkDevice device,
  2636. VkDescriptorPool descriptorPool,
  2637. uint32_t descriptorSetCount,
  2638. const VkDescriptorSet* pDescriptorSets);
  2639. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
  2640. VkDevice device,
  2641. uint32_t descriptorWriteCount,
  2642. const VkWriteDescriptorSet* pDescriptorWrites,
  2643. uint32_t descriptorCopyCount,
  2644. const VkCopyDescriptorSet* pDescriptorCopies);
  2645. VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
  2646. VkDevice device,
  2647. const VkFramebufferCreateInfo* pCreateInfo,
  2648. const VkAllocationCallbacks* pAllocator,
  2649. VkFramebuffer* pFramebuffer);
  2650. VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
  2651. VkDevice device,
  2652. VkFramebuffer framebuffer,
  2653. const VkAllocationCallbacks* pAllocator);
  2654. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
  2655. VkDevice device,
  2656. const VkRenderPassCreateInfo* pCreateInfo,
  2657. const VkAllocationCallbacks* pAllocator,
  2658. VkRenderPass* pRenderPass);
  2659. VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
  2660. VkDevice device,
  2661. VkRenderPass renderPass,
  2662. const VkAllocationCallbacks* pAllocator);
  2663. VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
  2664. VkDevice device,
  2665. VkRenderPass renderPass,
  2666. VkExtent2D* pGranularity);
  2667. VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
  2668. VkDevice device,
  2669. const VkCommandPoolCreateInfo* pCreateInfo,
  2670. const VkAllocationCallbacks* pAllocator,
  2671. VkCommandPool* pCommandPool);
  2672. VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
  2673. VkDevice device,
  2674. VkCommandPool commandPool,
  2675. const VkAllocationCallbacks* pAllocator);
  2676. VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
  2677. VkDevice device,
  2678. VkCommandPool commandPool,
  2679. VkCommandPoolResetFlags flags);
  2680. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
  2681. VkDevice device,
  2682. const VkCommandBufferAllocateInfo* pAllocateInfo,
  2683. VkCommandBuffer* pCommandBuffers);
  2684. VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
  2685. VkDevice device,
  2686. VkCommandPool commandPool,
  2687. uint32_t commandBufferCount,
  2688. const VkCommandBuffer* pCommandBuffers);
  2689. VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
  2690. VkCommandBuffer commandBuffer,
  2691. const VkCommandBufferBeginInfo* pBeginInfo);
  2692. VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
  2693. VkCommandBuffer commandBuffer);
  2694. VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
  2695. VkCommandBuffer commandBuffer,
  2696. VkCommandBufferResetFlags flags);
  2697. VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
  2698. VkCommandBuffer commandBuffer,
  2699. VkPipelineBindPoint pipelineBindPoint,
  2700. VkPipeline pipeline);
  2701. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
  2702. VkCommandBuffer commandBuffer,
  2703. uint32_t firstViewport,
  2704. uint32_t viewportCount,
  2705. const VkViewport* pViewports);
  2706. VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
  2707. VkCommandBuffer commandBuffer,
  2708. uint32_t firstScissor,
  2709. uint32_t scissorCount,
  2710. const VkRect2D* pScissors);
  2711. VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
  2712. VkCommandBuffer commandBuffer,
  2713. float lineWidth);
  2714. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
  2715. VkCommandBuffer commandBuffer,
  2716. float depthBiasConstantFactor,
  2717. float depthBiasClamp,
  2718. float depthBiasSlopeFactor);
  2719. VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
  2720. VkCommandBuffer commandBuffer,
  2721. const float blendConstants[4]);
  2722. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
  2723. VkCommandBuffer commandBuffer,
  2724. float minDepthBounds,
  2725. float maxDepthBounds);
  2726. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
  2727. VkCommandBuffer commandBuffer,
  2728. VkStencilFaceFlags faceMask,
  2729. uint32_t compareMask);
  2730. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
  2731. VkCommandBuffer commandBuffer,
  2732. VkStencilFaceFlags faceMask,
  2733. uint32_t writeMask);
  2734. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
  2735. VkCommandBuffer commandBuffer,
  2736. VkStencilFaceFlags faceMask,
  2737. uint32_t reference);
  2738. VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
  2739. VkCommandBuffer commandBuffer,
  2740. VkPipelineBindPoint pipelineBindPoint,
  2741. VkPipelineLayout layout,
  2742. uint32_t firstSet,
  2743. uint32_t descriptorSetCount,
  2744. const VkDescriptorSet* pDescriptorSets,
  2745. uint32_t dynamicOffsetCount,
  2746. const uint32_t* pDynamicOffsets);
  2747. VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
  2748. VkCommandBuffer commandBuffer,
  2749. VkBuffer buffer,
  2750. VkDeviceSize offset,
  2751. VkIndexType indexType);
  2752. VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
  2753. VkCommandBuffer commandBuffer,
  2754. uint32_t firstBinding,
  2755. uint32_t bindingCount,
  2756. const VkBuffer* pBuffers,
  2757. const VkDeviceSize* pOffsets);
  2758. VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
  2759. VkCommandBuffer commandBuffer,
  2760. uint32_t vertexCount,
  2761. uint32_t instanceCount,
  2762. uint32_t firstVertex,
  2763. uint32_t firstInstance);
  2764. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
  2765. VkCommandBuffer commandBuffer,
  2766. uint32_t indexCount,
  2767. uint32_t instanceCount,
  2768. uint32_t firstIndex,
  2769. int32_t vertexOffset,
  2770. uint32_t firstInstance);
  2771. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
  2772. VkCommandBuffer commandBuffer,
  2773. VkBuffer buffer,
  2774. VkDeviceSize offset,
  2775. uint32_t drawCount,
  2776. uint32_t stride);
  2777. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
  2778. VkCommandBuffer commandBuffer,
  2779. VkBuffer buffer,
  2780. VkDeviceSize offset,
  2781. uint32_t drawCount,
  2782. uint32_t stride);
  2783. VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
  2784. VkCommandBuffer commandBuffer,
  2785. uint32_t groupCountX,
  2786. uint32_t groupCountY,
  2787. uint32_t groupCountZ);
  2788. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
  2789. VkCommandBuffer commandBuffer,
  2790. VkBuffer buffer,
  2791. VkDeviceSize offset);
  2792. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
  2793. VkCommandBuffer commandBuffer,
  2794. VkBuffer srcBuffer,
  2795. VkBuffer dstBuffer,
  2796. uint32_t regionCount,
  2797. const VkBufferCopy* pRegions);
  2798. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
  2799. VkCommandBuffer commandBuffer,
  2800. VkImage srcImage,
  2801. VkImageLayout srcImageLayout,
  2802. VkImage dstImage,
  2803. VkImageLayout dstImageLayout,
  2804. uint32_t regionCount,
  2805. const VkImageCopy* pRegions);
  2806. VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
  2807. VkCommandBuffer commandBuffer,
  2808. VkImage srcImage,
  2809. VkImageLayout srcImageLayout,
  2810. VkImage dstImage,
  2811. VkImageLayout dstImageLayout,
  2812. uint32_t regionCount,
  2813. const VkImageBlit* pRegions,
  2814. VkFilter filter);
  2815. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
  2816. VkCommandBuffer commandBuffer,
  2817. VkBuffer srcBuffer,
  2818. VkImage dstImage,
  2819. VkImageLayout dstImageLayout,
  2820. uint32_t regionCount,
  2821. const VkBufferImageCopy* pRegions);
  2822. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
  2823. VkCommandBuffer commandBuffer,
  2824. VkImage srcImage,
  2825. VkImageLayout srcImageLayout,
  2826. VkBuffer dstBuffer,
  2827. uint32_t regionCount,
  2828. const VkBufferImageCopy* pRegions);
  2829. VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
  2830. VkCommandBuffer commandBuffer,
  2831. VkBuffer dstBuffer,
  2832. VkDeviceSize dstOffset,
  2833. VkDeviceSize dataSize,
  2834. const void* pData);
  2835. VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
  2836. VkCommandBuffer commandBuffer,
  2837. VkBuffer dstBuffer,
  2838. VkDeviceSize dstOffset,
  2839. VkDeviceSize size,
  2840. uint32_t data);
  2841. VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
  2842. VkCommandBuffer commandBuffer,
  2843. VkImage image,
  2844. VkImageLayout imageLayout,
  2845. const VkClearColorValue* pColor,
  2846. uint32_t rangeCount,
  2847. const VkImageSubresourceRange* pRanges);
  2848. VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
  2849. VkCommandBuffer commandBuffer,
  2850. VkImage image,
  2851. VkImageLayout imageLayout,
  2852. const VkClearDepthStencilValue* pDepthStencil,
  2853. uint32_t rangeCount,
  2854. const VkImageSubresourceRange* pRanges);
  2855. VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
  2856. VkCommandBuffer commandBuffer,
  2857. uint32_t attachmentCount,
  2858. const VkClearAttachment* pAttachments,
  2859. uint32_t rectCount,
  2860. const VkClearRect* pRects);
  2861. VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
  2862. VkCommandBuffer commandBuffer,
  2863. VkImage srcImage,
  2864. VkImageLayout srcImageLayout,
  2865. VkImage dstImage,
  2866. VkImageLayout dstImageLayout,
  2867. uint32_t regionCount,
  2868. const VkImageResolve* pRegions);
  2869. VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
  2870. VkCommandBuffer commandBuffer,
  2871. VkEvent event,
  2872. VkPipelineStageFlags stageMask);
  2873. VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
  2874. VkCommandBuffer commandBuffer,
  2875. VkEvent event,
  2876. VkPipelineStageFlags stageMask);
  2877. VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
  2878. VkCommandBuffer commandBuffer,
  2879. uint32_t eventCount,
  2880. const VkEvent* pEvents,
  2881. VkPipelineStageFlags srcStageMask,
  2882. VkPipelineStageFlags dstStageMask,
  2883. uint32_t memoryBarrierCount,
  2884. const VkMemoryBarrier* pMemoryBarriers,
  2885. uint32_t bufferMemoryBarrierCount,
  2886. const VkBufferMemoryBarrier* pBufferMemoryBarriers,
  2887. uint32_t imageMemoryBarrierCount,
  2888. const VkImageMemoryBarrier* pImageMemoryBarriers);
  2889. VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
  2890. VkCommandBuffer commandBuffer,
  2891. VkPipelineStageFlags srcStageMask,
  2892. VkPipelineStageFlags dstStageMask,
  2893. VkDependencyFlags dependencyFlags,
  2894. uint32_t memoryBarrierCount,
  2895. const VkMemoryBarrier* pMemoryBarriers,
  2896. uint32_t bufferMemoryBarrierCount,
  2897. const VkBufferMemoryBarrier* pBufferMemoryBarriers,
  2898. uint32_t imageMemoryBarrierCount,
  2899. const VkImageMemoryBarrier* pImageMemoryBarriers);
  2900. VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
  2901. VkCommandBuffer commandBuffer,
  2902. VkQueryPool queryPool,
  2903. uint32_t query,
  2904. VkQueryControlFlags flags);
  2905. VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
  2906. VkCommandBuffer commandBuffer,
  2907. VkQueryPool queryPool,
  2908. uint32_t query);
  2909. VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
  2910. VkCommandBuffer commandBuffer,
  2911. VkQueryPool queryPool,
  2912. uint32_t firstQuery,
  2913. uint32_t queryCount);
  2914. VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
  2915. VkCommandBuffer commandBuffer,
  2916. VkPipelineStageFlagBits pipelineStage,
  2917. VkQueryPool queryPool,
  2918. uint32_t query);
  2919. VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
  2920. VkCommandBuffer commandBuffer,
  2921. VkQueryPool queryPool,
  2922. uint32_t firstQuery,
  2923. uint32_t queryCount,
  2924. VkBuffer dstBuffer,
  2925. VkDeviceSize dstOffset,
  2926. VkDeviceSize stride,
  2927. VkQueryResultFlags flags);
  2928. VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
  2929. VkCommandBuffer commandBuffer,
  2930. VkPipelineLayout layout,
  2931. VkShaderStageFlags stageFlags,
  2932. uint32_t offset,
  2933. uint32_t size,
  2934. const void* pValues);
  2935. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
  2936. VkCommandBuffer commandBuffer,
  2937. const VkRenderPassBeginInfo* pRenderPassBegin,
  2938. VkSubpassContents contents);
  2939. VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
  2940. VkCommandBuffer commandBuffer,
  2941. VkSubpassContents contents);
  2942. VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
  2943. VkCommandBuffer commandBuffer);
  2944. VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
  2945. VkCommandBuffer commandBuffer,
  2946. uint32_t commandBufferCount,
  2947. const VkCommandBuffer* pCommandBuffers);
  2948. #endif
  2949. #define VK_KHR_surface 1
  2950. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
  2951. #define VK_KHR_SURFACE_SPEC_VERSION 25
  2952. #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
  2953. #define VK_COLORSPACE_SRGB_NONLINEAR_KHR VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
  2954. typedef enum VkColorSpaceKHR {
  2955. VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
  2956. VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
  2957. VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
  2958. VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
  2959. VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
  2960. VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
  2961. VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
  2962. VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
  2963. VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
  2964. VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
  2965. VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
  2966. VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
  2967. VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
  2968. VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
  2969. VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
  2970. VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
  2971. VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
  2972. VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
  2973. } VkColorSpaceKHR;
  2974. typedef enum VkPresentModeKHR {
  2975. VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
  2976. VK_PRESENT_MODE_MAILBOX_KHR = 1,
  2977. VK_PRESENT_MODE_FIFO_KHR = 2,
  2978. VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
  2979. VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
  2980. VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
  2981. VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
  2982. VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  2983. } VkPresentModeKHR;
  2984. typedef enum VkSurfaceTransformFlagBitsKHR {
  2985. VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
  2986. VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
  2987. VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
  2988. VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
  2989. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
  2990. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
  2991. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
  2992. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
  2993. VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
  2994. VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  2995. } VkSurfaceTransformFlagBitsKHR;
  2996. typedef VkFlags VkSurfaceTransformFlagsKHR;
  2997. typedef enum VkCompositeAlphaFlagBitsKHR {
  2998. VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
  2999. VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
  3000. VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
  3001. VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
  3002. VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  3003. } VkCompositeAlphaFlagBitsKHR;
  3004. typedef VkFlags VkCompositeAlphaFlagsKHR;
  3005. typedef struct VkSurfaceCapabilitiesKHR {
  3006. uint32_t minImageCount;
  3007. uint32_t maxImageCount;
  3008. VkExtent2D currentExtent;
  3009. VkExtent2D minImageExtent;
  3010. VkExtent2D maxImageExtent;
  3011. uint32_t maxImageArrayLayers;
  3012. VkSurfaceTransformFlagsKHR supportedTransforms;
  3013. VkSurfaceTransformFlagBitsKHR currentTransform;
  3014. VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
  3015. VkImageUsageFlags supportedUsageFlags;
  3016. } VkSurfaceCapabilitiesKHR;
  3017. typedef struct VkSurfaceFormatKHR {
  3018. VkFormat format;
  3019. VkColorSpaceKHR colorSpace;
  3020. } VkSurfaceFormatKHR;
  3021. typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
  3022. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
  3023. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
  3024. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
  3025. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
  3026. #ifndef VK_NO_PROTOTYPES
  3027. VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
  3028. VkInstance instance,
  3029. VkSurfaceKHR surface,
  3030. const VkAllocationCallbacks* pAllocator);
  3031. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
  3032. VkPhysicalDevice physicalDevice,
  3033. uint32_t queueFamilyIndex,
  3034. VkSurfaceKHR surface,
  3035. VkBool32* pSupported);
  3036. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
  3037. VkPhysicalDevice physicalDevice,
  3038. VkSurfaceKHR surface,
  3039. VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
  3040. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
  3041. VkPhysicalDevice physicalDevice,
  3042. VkSurfaceKHR surface,
  3043. uint32_t* pSurfaceFormatCount,
  3044. VkSurfaceFormatKHR* pSurfaceFormats);
  3045. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
  3046. VkPhysicalDevice physicalDevice,
  3047. VkSurfaceKHR surface,
  3048. uint32_t* pPresentModeCount,
  3049. VkPresentModeKHR* pPresentModes);
  3050. #endif
  3051. #define VK_KHR_swapchain 1
  3052. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
  3053. #define VK_KHR_SWAPCHAIN_SPEC_VERSION 68
  3054. #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
  3055. typedef enum VkSwapchainCreateFlagBitsKHR {
  3056. VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = 0x00000001,
  3057. VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  3058. } VkSwapchainCreateFlagBitsKHR;
  3059. typedef VkFlags VkSwapchainCreateFlagsKHR;
  3060. typedef struct VkSwapchainCreateInfoKHR {
  3061. VkStructureType sType;
  3062. const void* pNext;
  3063. VkSwapchainCreateFlagsKHR flags;
  3064. VkSurfaceKHR surface;
  3065. uint32_t minImageCount;
  3066. VkFormat imageFormat;
  3067. VkColorSpaceKHR imageColorSpace;
  3068. VkExtent2D imageExtent;
  3069. uint32_t imageArrayLayers;
  3070. VkImageUsageFlags imageUsage;
  3071. VkSharingMode imageSharingMode;
  3072. uint32_t queueFamilyIndexCount;
  3073. const uint32_t* pQueueFamilyIndices;
  3074. VkSurfaceTransformFlagBitsKHR preTransform;
  3075. VkCompositeAlphaFlagBitsKHR compositeAlpha;
  3076. VkPresentModeKHR presentMode;
  3077. VkBool32 clipped;
  3078. VkSwapchainKHR oldSwapchain;
  3079. } VkSwapchainCreateInfoKHR;
  3080. typedef struct VkPresentInfoKHR {
  3081. VkStructureType sType;
  3082. const void* pNext;
  3083. uint32_t waitSemaphoreCount;
  3084. const VkSemaphore* pWaitSemaphores;
  3085. uint32_t swapchainCount;
  3086. const VkSwapchainKHR* pSwapchains;
  3087. const uint32_t* pImageIndices;
  3088. VkResult* pResults;
  3089. } VkPresentInfoKHR;
  3090. typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
  3091. typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
  3092. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
  3093. typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
  3094. typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
  3095. #ifndef VK_NO_PROTOTYPES
  3096. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
  3097. VkDevice device,
  3098. const VkSwapchainCreateInfoKHR* pCreateInfo,
  3099. const VkAllocationCallbacks* pAllocator,
  3100. VkSwapchainKHR* pSwapchain);
  3101. VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
  3102. VkDevice device,
  3103. VkSwapchainKHR swapchain,
  3104. const VkAllocationCallbacks* pAllocator);
  3105. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
  3106. VkDevice device,
  3107. VkSwapchainKHR swapchain,
  3108. uint32_t* pSwapchainImageCount,
  3109. VkImage* pSwapchainImages);
  3110. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
  3111. VkDevice device,
  3112. VkSwapchainKHR swapchain,
  3113. uint64_t timeout,
  3114. VkSemaphore semaphore,
  3115. VkFence fence,
  3116. uint32_t* pImageIndex);
  3117. VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
  3118. VkQueue queue,
  3119. const VkPresentInfoKHR* pPresentInfo);
  3120. #endif
  3121. #define VK_KHR_display 1
  3122. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
  3123. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
  3124. #define VK_KHR_DISPLAY_SPEC_VERSION 21
  3125. #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
  3126. typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
  3127. VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
  3128. VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
  3129. VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
  3130. VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
  3131. VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  3132. } VkDisplayPlaneAlphaFlagBitsKHR;
  3133. typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
  3134. typedef VkFlags VkDisplayModeCreateFlagsKHR;
  3135. typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
  3136. typedef struct VkDisplayPropertiesKHR {
  3137. VkDisplayKHR display;
  3138. const char* displayName;
  3139. VkExtent2D physicalDimensions;
  3140. VkExtent2D physicalResolution;
  3141. VkSurfaceTransformFlagsKHR supportedTransforms;
  3142. VkBool32 planeReorderPossible;
  3143. VkBool32 persistentContent;
  3144. } VkDisplayPropertiesKHR;
  3145. typedef struct VkDisplayModeParametersKHR {
  3146. VkExtent2D visibleRegion;
  3147. uint32_t refreshRate;
  3148. } VkDisplayModeParametersKHR;
  3149. typedef struct VkDisplayModePropertiesKHR {
  3150. VkDisplayModeKHR displayMode;
  3151. VkDisplayModeParametersKHR parameters;
  3152. } VkDisplayModePropertiesKHR;
  3153. typedef struct VkDisplayModeCreateInfoKHR {
  3154. VkStructureType sType;
  3155. const void* pNext;
  3156. VkDisplayModeCreateFlagsKHR flags;
  3157. VkDisplayModeParametersKHR parameters;
  3158. } VkDisplayModeCreateInfoKHR;
  3159. typedef struct VkDisplayPlaneCapabilitiesKHR {
  3160. VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
  3161. VkOffset2D minSrcPosition;
  3162. VkOffset2D maxSrcPosition;
  3163. VkExtent2D minSrcExtent;
  3164. VkExtent2D maxSrcExtent;
  3165. VkOffset2D minDstPosition;
  3166. VkOffset2D maxDstPosition;
  3167. VkExtent2D minDstExtent;
  3168. VkExtent2D maxDstExtent;
  3169. } VkDisplayPlaneCapabilitiesKHR;
  3170. typedef struct VkDisplayPlanePropertiesKHR {
  3171. VkDisplayKHR currentDisplay;
  3172. uint32_t currentStackIndex;
  3173. } VkDisplayPlanePropertiesKHR;
  3174. typedef struct VkDisplaySurfaceCreateInfoKHR {
  3175. VkStructureType sType;
  3176. const void* pNext;
  3177. VkDisplaySurfaceCreateFlagsKHR flags;
  3178. VkDisplayModeKHR displayMode;
  3179. uint32_t planeIndex;
  3180. uint32_t planeStackIndex;
  3181. VkSurfaceTransformFlagBitsKHR transform;
  3182. float globalAlpha;
  3183. VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
  3184. VkExtent2D imageExtent;
  3185. } VkDisplaySurfaceCreateInfoKHR;
  3186. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
  3187. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
  3188. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
  3189. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
  3190. typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
  3191. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
  3192. typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  3193. #ifndef VK_NO_PROTOTYPES
  3194. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
  3195. VkPhysicalDevice physicalDevice,
  3196. uint32_t* pPropertyCount,
  3197. VkDisplayPropertiesKHR* pProperties);
  3198. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
  3199. VkPhysicalDevice physicalDevice,
  3200. uint32_t* pPropertyCount,
  3201. VkDisplayPlanePropertiesKHR* pProperties);
  3202. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
  3203. VkPhysicalDevice physicalDevice,
  3204. uint32_t planeIndex,
  3205. uint32_t* pDisplayCount,
  3206. VkDisplayKHR* pDisplays);
  3207. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
  3208. VkPhysicalDevice physicalDevice,
  3209. VkDisplayKHR display,
  3210. uint32_t* pPropertyCount,
  3211. VkDisplayModePropertiesKHR* pProperties);
  3212. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
  3213. VkPhysicalDevice physicalDevice,
  3214. VkDisplayKHR display,
  3215. const VkDisplayModeCreateInfoKHR* pCreateInfo,
  3216. const VkAllocationCallbacks* pAllocator,
  3217. VkDisplayModeKHR* pMode);
  3218. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
  3219. VkPhysicalDevice physicalDevice,
  3220. VkDisplayModeKHR mode,
  3221. uint32_t planeIndex,
  3222. VkDisplayPlaneCapabilitiesKHR* pCapabilities);
  3223. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
  3224. VkInstance instance,
  3225. const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
  3226. const VkAllocationCallbacks* pAllocator,
  3227. VkSurfaceKHR* pSurface);
  3228. #endif
  3229. #define VK_KHR_display_swapchain 1
  3230. #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
  3231. #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
  3232. typedef struct VkDisplayPresentInfoKHR {
  3233. VkStructureType sType;
  3234. const void* pNext;
  3235. VkRect2D srcRect;
  3236. VkRect2D dstRect;
  3237. VkBool32 persistent;
  3238. } VkDisplayPresentInfoKHR;
  3239. typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
  3240. #ifndef VK_NO_PROTOTYPES
  3241. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
  3242. VkDevice device,
  3243. uint32_t swapchainCount,
  3244. const VkSwapchainCreateInfoKHR* pCreateInfos,
  3245. const VkAllocationCallbacks* pAllocator,
  3246. VkSwapchainKHR* pSwapchains);
  3247. #endif
  3248. #ifdef VK_USE_PLATFORM_XLIB_KHR
  3249. #define VK_KHR_xlib_surface 1
  3250. #include <X11/Xlib.h>
  3251. #define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
  3252. #define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
  3253. typedef VkFlags VkXlibSurfaceCreateFlagsKHR;
  3254. typedef struct VkXlibSurfaceCreateInfoKHR {
  3255. VkStructureType sType;
  3256. const void* pNext;
  3257. VkXlibSurfaceCreateFlagsKHR flags;
  3258. Display* dpy;
  3259. Window window;
  3260. } VkXlibSurfaceCreateInfoKHR;
  3261. typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  3262. typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
  3263. #ifndef VK_NO_PROTOTYPES
  3264. VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
  3265. VkInstance instance,
  3266. const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
  3267. const VkAllocationCallbacks* pAllocator,
  3268. VkSurfaceKHR* pSurface);
  3269. VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
  3270. VkPhysicalDevice physicalDevice,
  3271. uint32_t queueFamilyIndex,
  3272. Display* dpy,
  3273. VisualID visualID);
  3274. #endif
  3275. #endif /* VK_USE_PLATFORM_XLIB_KHR */
  3276. #ifdef VK_USE_PLATFORM_XCB_KHR
  3277. #define VK_KHR_xcb_surface 1
  3278. #include <xcb/xcb.h>
  3279. #define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
  3280. #define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
  3281. typedef VkFlags VkXcbSurfaceCreateFlagsKHR;
  3282. typedef struct VkXcbSurfaceCreateInfoKHR {
  3283. VkStructureType sType;
  3284. const void* pNext;
  3285. VkXcbSurfaceCreateFlagsKHR flags;
  3286. xcb_connection_t* connection;
  3287. xcb_window_t window;
  3288. } VkXcbSurfaceCreateInfoKHR;
  3289. typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  3290. typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
  3291. #ifndef VK_NO_PROTOTYPES
  3292. VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
  3293. VkInstance instance,
  3294. const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
  3295. const VkAllocationCallbacks* pAllocator,
  3296. VkSurfaceKHR* pSurface);
  3297. VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
  3298. VkPhysicalDevice physicalDevice,
  3299. uint32_t queueFamilyIndex,
  3300. xcb_connection_t* connection,
  3301. xcb_visualid_t visual_id);
  3302. #endif
  3303. #endif /* VK_USE_PLATFORM_XCB_KHR */
  3304. #ifdef VK_USE_PLATFORM_WAYLAND_KHR
  3305. #define VK_KHR_wayland_surface 1
  3306. #include <wayland-client.h>
  3307. #define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
  3308. #define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
  3309. typedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
  3310. typedef struct VkWaylandSurfaceCreateInfoKHR {
  3311. VkStructureType sType;
  3312. const void* pNext;
  3313. VkWaylandSurfaceCreateFlagsKHR flags;
  3314. struct wl_display* display;
  3315. struct wl_surface* surface;
  3316. } VkWaylandSurfaceCreateInfoKHR;
  3317. typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  3318. typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
  3319. #ifndef VK_NO_PROTOTYPES
  3320. VKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
  3321. VkInstance instance,
  3322. const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
  3323. const VkAllocationCallbacks* pAllocator,
  3324. VkSurfaceKHR* pSurface);
  3325. VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
  3326. VkPhysicalDevice physicalDevice,
  3327. uint32_t queueFamilyIndex,
  3328. struct wl_display* display);
  3329. #endif
  3330. #endif /* VK_USE_PLATFORM_WAYLAND_KHR */
  3331. #ifdef VK_USE_PLATFORM_MIR_KHR
  3332. #define VK_KHR_mir_surface 1
  3333. #include <mir_toolkit/client_types.h>
  3334. #define VK_KHR_MIR_SURFACE_SPEC_VERSION 4
  3335. #define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
  3336. typedef VkFlags VkMirSurfaceCreateFlagsKHR;
  3337. typedef struct VkMirSurfaceCreateInfoKHR {
  3338. VkStructureType sType;
  3339. const void* pNext;
  3340. VkMirSurfaceCreateFlagsKHR flags;
  3341. MirConnection* connection;
  3342. MirSurface* mirSurface;
  3343. } VkMirSurfaceCreateInfoKHR;
  3344. typedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  3345. typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
  3346. #ifndef VK_NO_PROTOTYPES
  3347. VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
  3348. VkInstance instance,
  3349. const VkMirSurfaceCreateInfoKHR* pCreateInfo,
  3350. const VkAllocationCallbacks* pAllocator,
  3351. VkSurfaceKHR* pSurface);
  3352. VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
  3353. VkPhysicalDevice physicalDevice,
  3354. uint32_t queueFamilyIndex,
  3355. MirConnection* connection);
  3356. #endif
  3357. #endif /* VK_USE_PLATFORM_MIR_KHR */
  3358. #ifdef VK_USE_PLATFORM_ANDROID_KHR
  3359. #define VK_KHR_android_surface 1
  3360. #include <android/native_window.h>
  3361. #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
  3362. #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
  3363. typedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
  3364. typedef struct VkAndroidSurfaceCreateInfoKHR {
  3365. VkStructureType sType;
  3366. const void* pNext;
  3367. VkAndroidSurfaceCreateFlagsKHR flags;
  3368. ANativeWindow* window;
  3369. } VkAndroidSurfaceCreateInfoKHR;
  3370. typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  3371. #ifndef VK_NO_PROTOTYPES
  3372. VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
  3373. VkInstance instance,
  3374. const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
  3375. const VkAllocationCallbacks* pAllocator,
  3376. VkSurfaceKHR* pSurface);
  3377. #endif
  3378. #endif /* VK_USE_PLATFORM_ANDROID_KHR */
  3379. #ifdef VK_USE_PLATFORM_WIN32_KHR
  3380. #define VK_KHR_win32_surface 1
  3381. #include <windows.h>
  3382. #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 5
  3383. #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
  3384. typedef VkFlags VkWin32SurfaceCreateFlagsKHR;
  3385. typedef struct VkWin32SurfaceCreateInfoKHR {
  3386. VkStructureType sType;
  3387. const void* pNext;
  3388. VkWin32SurfaceCreateFlagsKHR flags;
  3389. HINSTANCE hinstance;
  3390. HWND hwnd;
  3391. } VkWin32SurfaceCreateInfoKHR;
  3392. typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  3393. typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
  3394. #ifndef VK_NO_PROTOTYPES
  3395. VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
  3396. VkInstance instance,
  3397. const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
  3398. const VkAllocationCallbacks* pAllocator,
  3399. VkSurfaceKHR* pSurface);
  3400. VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
  3401. VkPhysicalDevice physicalDevice,
  3402. uint32_t queueFamilyIndex);
  3403. #endif
  3404. #endif /* VK_USE_PLATFORM_WIN32_KHR */
  3405. #define VK_KHR_sampler_mirror_clamp_to_edge 1
  3406. #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
  3407. #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
  3408. #define VK_KHR_get_physical_device_properties2 1
  3409. #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
  3410. #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
  3411. typedef struct VkPhysicalDeviceFeatures2KHR {
  3412. VkStructureType sType;
  3413. void* pNext;
  3414. VkPhysicalDeviceFeatures features;
  3415. } VkPhysicalDeviceFeatures2KHR;
  3416. typedef struct VkPhysicalDeviceProperties2KHR {
  3417. VkStructureType sType;
  3418. void* pNext;
  3419. VkPhysicalDeviceProperties properties;
  3420. } VkPhysicalDeviceProperties2KHR;
  3421. typedef struct VkFormatProperties2KHR {
  3422. VkStructureType sType;
  3423. void* pNext;
  3424. VkFormatProperties formatProperties;
  3425. } VkFormatProperties2KHR;
  3426. typedef struct VkImageFormatProperties2KHR {
  3427. VkStructureType sType;
  3428. void* pNext;
  3429. VkImageFormatProperties imageFormatProperties;
  3430. } VkImageFormatProperties2KHR;
  3431. typedef struct VkPhysicalDeviceImageFormatInfo2KHR {
  3432. VkStructureType sType;
  3433. const void* pNext;
  3434. VkFormat format;
  3435. VkImageType type;
  3436. VkImageTiling tiling;
  3437. VkImageUsageFlags usage;
  3438. VkImageCreateFlags flags;
  3439. } VkPhysicalDeviceImageFormatInfo2KHR;
  3440. typedef struct VkQueueFamilyProperties2KHR {
  3441. VkStructureType sType;
  3442. void* pNext;
  3443. VkQueueFamilyProperties queueFamilyProperties;
  3444. } VkQueueFamilyProperties2KHR;
  3445. typedef struct VkPhysicalDeviceMemoryProperties2KHR {
  3446. VkStructureType sType;
  3447. void* pNext;
  3448. VkPhysicalDeviceMemoryProperties memoryProperties;
  3449. } VkPhysicalDeviceMemoryProperties2KHR;
  3450. typedef struct VkSparseImageFormatProperties2KHR {
  3451. VkStructureType sType;
  3452. void* pNext;
  3453. VkSparseImageFormatProperties properties;
  3454. } VkSparseImageFormatProperties2KHR;
  3455. typedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR {
  3456. VkStructureType sType;
  3457. const void* pNext;
  3458. VkFormat format;
  3459. VkImageType type;
  3460. VkSampleCountFlagBits samples;
  3461. VkImageUsageFlags usage;
  3462. VkImageTiling tiling;
  3463. } VkPhysicalDeviceSparseImageFormatInfo2KHR;
  3464. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures);
  3465. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties);
  3466. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties);
  3467. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties);
  3468. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
  3469. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
  3470. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties);
  3471. #ifndef VK_NO_PROTOTYPES
  3472. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
  3473. VkPhysicalDevice physicalDevice,
  3474. VkPhysicalDeviceFeatures2KHR* pFeatures);
  3475. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
  3476. VkPhysicalDevice physicalDevice,
  3477. VkPhysicalDeviceProperties2KHR* pProperties);
  3478. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
  3479. VkPhysicalDevice physicalDevice,
  3480. VkFormat format,
  3481. VkFormatProperties2KHR* pFormatProperties);
  3482. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
  3483. VkPhysicalDevice physicalDevice,
  3484. const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
  3485. VkImageFormatProperties2KHR* pImageFormatProperties);
  3486. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
  3487. VkPhysicalDevice physicalDevice,
  3488. uint32_t* pQueueFamilyPropertyCount,
  3489. VkQueueFamilyProperties2KHR* pQueueFamilyProperties);
  3490. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
  3491. VkPhysicalDevice physicalDevice,
  3492. VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties);
  3493. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
  3494. VkPhysicalDevice physicalDevice,
  3495. const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
  3496. uint32_t* pPropertyCount,
  3497. VkSparseImageFormatProperties2KHR* pProperties);
  3498. #endif
  3499. #define VK_KHR_shader_draw_parameters 1
  3500. #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
  3501. #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
  3502. #define VK_KHR_maintenance1 1
  3503. #define VK_KHR_MAINTENANCE1_SPEC_VERSION 1
  3504. #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
  3505. typedef VkFlags VkCommandPoolTrimFlagsKHR;
  3506. typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags);
  3507. #ifndef VK_NO_PROTOTYPES
  3508. VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
  3509. VkDevice device,
  3510. VkCommandPool commandPool,
  3511. VkCommandPoolTrimFlagsKHR flags);
  3512. #endif
  3513. #define VK_KHR_push_descriptor 1
  3514. #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 1
  3515. #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
  3516. typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
  3517. VkStructureType sType;
  3518. void* pNext;
  3519. uint32_t maxPushDescriptors;
  3520. } VkPhysicalDevicePushDescriptorPropertiesKHR;
  3521. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
  3522. #ifndef VK_NO_PROTOTYPES
  3523. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
  3524. VkCommandBuffer commandBuffer,
  3525. VkPipelineBindPoint pipelineBindPoint,
  3526. VkPipelineLayout layout,
  3527. uint32_t set,
  3528. uint32_t descriptorWriteCount,
  3529. const VkWriteDescriptorSet* pDescriptorWrites);
  3530. #endif
  3531. #define VK_KHR_incremental_present 1
  3532. #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
  3533. #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
  3534. typedef struct VkRectLayerKHR {
  3535. VkOffset2D offset;
  3536. VkExtent2D extent;
  3537. uint32_t layer;
  3538. } VkRectLayerKHR;
  3539. typedef struct VkPresentRegionKHR {
  3540. uint32_t rectangleCount;
  3541. const VkRectLayerKHR* pRectangles;
  3542. } VkPresentRegionKHR;
  3543. typedef struct VkPresentRegionsKHR {
  3544. VkStructureType sType;
  3545. const void* pNext;
  3546. uint32_t swapchainCount;
  3547. const VkPresentRegionKHR* pRegions;
  3548. } VkPresentRegionsKHR;
  3549. #define VK_KHR_descriptor_update_template 1
  3550. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR)
  3551. #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
  3552. #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
  3553. typedef enum VkDescriptorUpdateTemplateTypeKHR {
  3554. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
  3555. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
  3556. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR,
  3557. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR,
  3558. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE_KHR = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR + 1),
  3559. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  3560. } VkDescriptorUpdateTemplateTypeKHR;
  3561. typedef VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
  3562. typedef struct VkDescriptorUpdateTemplateEntryKHR {
  3563. uint32_t dstBinding;
  3564. uint32_t dstArrayElement;
  3565. uint32_t descriptorCount;
  3566. VkDescriptorType descriptorType;
  3567. size_t offset;
  3568. size_t stride;
  3569. } VkDescriptorUpdateTemplateEntryKHR;
  3570. typedef struct VkDescriptorUpdateTemplateCreateInfoKHR {
  3571. VkStructureType sType;
  3572. void* pNext;
  3573. VkDescriptorUpdateTemplateCreateFlagsKHR flags;
  3574. uint32_t descriptorUpdateEntryCount;
  3575. const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries;
  3576. VkDescriptorUpdateTemplateTypeKHR templateType;
  3577. VkDescriptorSetLayout descriptorSetLayout;
  3578. VkPipelineBindPoint pipelineBindPoint;
  3579. VkPipelineLayout pipelineLayout;
  3580. uint32_t set;
  3581. } VkDescriptorUpdateTemplateCreateInfoKHR;
  3582. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate);
  3583. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
  3584. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const void* pData);
  3585. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
  3586. #ifndef VK_NO_PROTOTYPES
  3587. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
  3588. VkDevice device,
  3589. const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
  3590. const VkAllocationCallbacks* pAllocator,
  3591. VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate);
  3592. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
  3593. VkDevice device,
  3594. VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
  3595. const VkAllocationCallbacks* pAllocator);
  3596. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
  3597. VkDevice device,
  3598. VkDescriptorSet descriptorSet,
  3599. VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
  3600. const void* pData);
  3601. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
  3602. VkCommandBuffer commandBuffer,
  3603. VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
  3604. VkPipelineLayout layout,
  3605. uint32_t set,
  3606. const void* pData);
  3607. #endif
  3608. #define VK_EXT_debug_report 1
  3609. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
  3610. #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 6
  3611. #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
  3612. #define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
  3613. typedef enum VkDebugReportObjectTypeEXT {
  3614. VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
  3615. VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
  3616. VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
  3617. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
  3618. VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
  3619. VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
  3620. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
  3621. VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
  3622. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
  3623. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
  3624. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
  3625. VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
  3626. VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
  3627. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
  3628. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
  3629. VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
  3630. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
  3631. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
  3632. VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
  3633. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
  3634. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
  3635. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
  3636. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
  3637. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
  3638. VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
  3639. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
  3640. VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
  3641. VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
  3642. VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = 28,
  3643. VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
  3644. VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
  3645. VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
  3646. VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
  3647. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
  3648. VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
  3649. VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT,
  3650. VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
  3651. VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  3652. } VkDebugReportObjectTypeEXT;
  3653. typedef enum VkDebugReportErrorEXT {
  3654. VK_DEBUG_REPORT_ERROR_NONE_EXT = 0,
  3655. VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT = 1,
  3656. VK_DEBUG_REPORT_ERROR_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_ERROR_NONE_EXT,
  3657. VK_DEBUG_REPORT_ERROR_END_RANGE_EXT = VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT,
  3658. VK_DEBUG_REPORT_ERROR_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT - VK_DEBUG_REPORT_ERROR_NONE_EXT + 1),
  3659. VK_DEBUG_REPORT_ERROR_MAX_ENUM_EXT = 0x7FFFFFFF
  3660. } VkDebugReportErrorEXT;
  3661. typedef enum VkDebugReportFlagBitsEXT {
  3662. VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
  3663. VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
  3664. VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
  3665. VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
  3666. VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
  3667. VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  3668. } VkDebugReportFlagBitsEXT;
  3669. typedef VkFlags VkDebugReportFlagsEXT;
  3670. typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
  3671. VkDebugReportFlagsEXT flags,
  3672. VkDebugReportObjectTypeEXT objectType,
  3673. uint64_t object,
  3674. size_t location,
  3675. int32_t messageCode,
  3676. const char* pLayerPrefix,
  3677. const char* pMessage,
  3678. void* pUserData);
  3679. typedef struct VkDebugReportCallbackCreateInfoEXT {
  3680. VkStructureType sType;
  3681. const void* pNext;
  3682. VkDebugReportFlagsEXT flags;
  3683. PFN_vkDebugReportCallbackEXT pfnCallback;
  3684. void* pUserData;
  3685. } VkDebugReportCallbackCreateInfoEXT;
  3686. typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
  3687. typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
  3688. typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage);
  3689. #ifndef VK_NO_PROTOTYPES
  3690. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
  3691. VkInstance instance,
  3692. const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
  3693. const VkAllocationCallbacks* pAllocator,
  3694. VkDebugReportCallbackEXT* pCallback);
  3695. VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
  3696. VkInstance instance,
  3697. VkDebugReportCallbackEXT callback,
  3698. const VkAllocationCallbacks* pAllocator);
  3699. VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
  3700. VkInstance instance,
  3701. VkDebugReportFlagsEXT flags,
  3702. VkDebugReportObjectTypeEXT objectType,
  3703. uint64_t object,
  3704. size_t location,
  3705. int32_t messageCode,
  3706. const char* pLayerPrefix,
  3707. const char* pMessage);
  3708. #endif
  3709. #define VK_NV_glsl_shader 1
  3710. #define VK_NV_GLSL_SHADER_SPEC_VERSION 1
  3711. #define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
  3712. #define VK_IMG_filter_cubic 1
  3713. #define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
  3714. #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
  3715. #define VK_AMD_rasterization_order 1
  3716. #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
  3717. #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
  3718. typedef enum VkRasterizationOrderAMD {
  3719. VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
  3720. VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
  3721. VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
  3722. VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
  3723. VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
  3724. VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
  3725. } VkRasterizationOrderAMD;
  3726. typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
  3727. VkStructureType sType;
  3728. const void* pNext;
  3729. VkRasterizationOrderAMD rasterizationOrder;
  3730. } VkPipelineRasterizationStateRasterizationOrderAMD;
  3731. #define VK_AMD_shader_trinary_minmax 1
  3732. #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
  3733. #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
  3734. #define VK_AMD_shader_explicit_vertex_parameter 1
  3735. #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
  3736. #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
  3737. #define VK_EXT_debug_marker 1
  3738. #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
  3739. #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
  3740. typedef struct VkDebugMarkerObjectNameInfoEXT {
  3741. VkStructureType sType;
  3742. const void* pNext;
  3743. VkDebugReportObjectTypeEXT objectType;
  3744. uint64_t object;
  3745. const char* pObjectName;
  3746. } VkDebugMarkerObjectNameInfoEXT;
  3747. typedef struct VkDebugMarkerObjectTagInfoEXT {
  3748. VkStructureType sType;
  3749. const void* pNext;
  3750. VkDebugReportObjectTypeEXT objectType;
  3751. uint64_t object;
  3752. uint64_t tagName;
  3753. size_t tagSize;
  3754. const void* pTag;
  3755. } VkDebugMarkerObjectTagInfoEXT;
  3756. typedef struct VkDebugMarkerMarkerInfoEXT {
  3757. VkStructureType sType;
  3758. const void* pNext;
  3759. const char* pMarkerName;
  3760. float color[4];
  3761. } VkDebugMarkerMarkerInfoEXT;
  3762. typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, VkDebugMarkerObjectTagInfoEXT* pTagInfo);
  3763. typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, VkDebugMarkerObjectNameInfoEXT* pNameInfo);
  3764. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  3765. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
  3766. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  3767. #ifndef VK_NO_PROTOTYPES
  3768. VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
  3769. VkDevice device,
  3770. VkDebugMarkerObjectTagInfoEXT* pTagInfo);
  3771. VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
  3772. VkDevice device,
  3773. VkDebugMarkerObjectNameInfoEXT* pNameInfo);
  3774. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
  3775. VkCommandBuffer commandBuffer,
  3776. VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  3777. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
  3778. VkCommandBuffer commandBuffer);
  3779. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
  3780. VkCommandBuffer commandBuffer,
  3781. VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  3782. #endif
  3783. #define VK_AMD_gcn_shader 1
  3784. #define VK_AMD_GCN_SHADER_SPEC_VERSION 1
  3785. #define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
  3786. #define VK_NV_dedicated_allocation 1
  3787. #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
  3788. #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
  3789. typedef struct VkDedicatedAllocationImageCreateInfoNV {
  3790. VkStructureType sType;
  3791. const void* pNext;
  3792. VkBool32 dedicatedAllocation;
  3793. } VkDedicatedAllocationImageCreateInfoNV;
  3794. typedef struct VkDedicatedAllocationBufferCreateInfoNV {
  3795. VkStructureType sType;
  3796. const void* pNext;
  3797. VkBool32 dedicatedAllocation;
  3798. } VkDedicatedAllocationBufferCreateInfoNV;
  3799. typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
  3800. VkStructureType sType;
  3801. const void* pNext;
  3802. VkImage image;
  3803. VkBuffer buffer;
  3804. } VkDedicatedAllocationMemoryAllocateInfoNV;
  3805. #define VK_AMD_draw_indirect_count 1
  3806. #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
  3807. #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
  3808. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  3809. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  3810. #ifndef VK_NO_PROTOTYPES
  3811. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
  3812. VkCommandBuffer commandBuffer,
  3813. VkBuffer buffer,
  3814. VkDeviceSize offset,
  3815. VkBuffer countBuffer,
  3816. VkDeviceSize countBufferOffset,
  3817. uint32_t maxDrawCount,
  3818. uint32_t stride);
  3819. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
  3820. VkCommandBuffer commandBuffer,
  3821. VkBuffer buffer,
  3822. VkDeviceSize offset,
  3823. VkBuffer countBuffer,
  3824. VkDeviceSize countBufferOffset,
  3825. uint32_t maxDrawCount,
  3826. uint32_t stride);
  3827. #endif
  3828. #define VK_AMD_negative_viewport_height 1
  3829. #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
  3830. #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
  3831. #define VK_AMD_gpu_shader_half_float 1
  3832. #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
  3833. #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
  3834. #define VK_AMD_shader_ballot 1
  3835. #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
  3836. #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
  3837. #define VK_KHX_multiview 1
  3838. #define VK_KHX_MULTIVIEW_SPEC_VERSION 1
  3839. #define VK_KHX_MULTIVIEW_EXTENSION_NAME "VK_KHX_multiview"
  3840. typedef struct VkRenderPassMultiviewCreateInfoKHX {
  3841. VkStructureType sType;
  3842. const void* pNext;
  3843. uint32_t subpassCount;
  3844. const uint32_t* pViewMasks;
  3845. uint32_t dependencyCount;
  3846. const int32_t* pViewOffsets;
  3847. uint32_t correlationMaskCount;
  3848. const uint32_t* pCorrelationMasks;
  3849. } VkRenderPassMultiviewCreateInfoKHX;
  3850. typedef struct VkPhysicalDeviceMultiviewFeaturesKHX {
  3851. VkStructureType sType;
  3852. void* pNext;
  3853. VkBool32 multiview;
  3854. VkBool32 multiviewGeometryShader;
  3855. VkBool32 multiviewTessellationShader;
  3856. } VkPhysicalDeviceMultiviewFeaturesKHX;
  3857. typedef struct VkPhysicalDeviceMultiviewPropertiesKHX {
  3858. VkStructureType sType;
  3859. void* pNext;
  3860. uint32_t maxMultiviewViewCount;
  3861. uint32_t maxMultiviewInstanceIndex;
  3862. } VkPhysicalDeviceMultiviewPropertiesKHX;
  3863. #define VK_IMG_format_pvrtc 1
  3864. #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
  3865. #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
  3866. #define VK_NV_external_memory_capabilities 1
  3867. #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
  3868. #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
  3869. typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
  3870. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
  3871. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
  3872. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
  3873. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
  3874. VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  3875. } VkExternalMemoryHandleTypeFlagBitsNV;
  3876. typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
  3877. typedef enum VkExternalMemoryFeatureFlagBitsNV {
  3878. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
  3879. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
  3880. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
  3881. VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  3882. } VkExternalMemoryFeatureFlagBitsNV;
  3883. typedef VkFlags VkExternalMemoryFeatureFlagsNV;
  3884. typedef struct VkExternalImageFormatPropertiesNV {
  3885. VkImageFormatProperties imageFormatProperties;
  3886. VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
  3887. VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
  3888. VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
  3889. } VkExternalImageFormatPropertiesNV;
  3890. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
  3891. #ifndef VK_NO_PROTOTYPES
  3892. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
  3893. VkPhysicalDevice physicalDevice,
  3894. VkFormat format,
  3895. VkImageType type,
  3896. VkImageTiling tiling,
  3897. VkImageUsageFlags usage,
  3898. VkImageCreateFlags flags,
  3899. VkExternalMemoryHandleTypeFlagsNV externalHandleType,
  3900. VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
  3901. #endif
  3902. #define VK_NV_external_memory 1
  3903. #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
  3904. #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
  3905. typedef struct VkExternalMemoryImageCreateInfoNV {
  3906. VkStructureType sType;
  3907. const void* pNext;
  3908. VkExternalMemoryHandleTypeFlagsNV handleTypes;
  3909. } VkExternalMemoryImageCreateInfoNV;
  3910. typedef struct VkExportMemoryAllocateInfoNV {
  3911. VkStructureType sType;
  3912. const void* pNext;
  3913. VkExternalMemoryHandleTypeFlagsNV handleTypes;
  3914. } VkExportMemoryAllocateInfoNV;
  3915. #ifdef VK_USE_PLATFORM_WIN32_KHR
  3916. #define VK_NV_external_memory_win32 1
  3917. #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
  3918. #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
  3919. typedef struct VkImportMemoryWin32HandleInfoNV {
  3920. VkStructureType sType;
  3921. const void* pNext;
  3922. VkExternalMemoryHandleTypeFlagsNV handleType;
  3923. HANDLE handle;
  3924. } VkImportMemoryWin32HandleInfoNV;
  3925. typedef struct VkExportMemoryWin32HandleInfoNV {
  3926. VkStructureType sType;
  3927. const void* pNext;
  3928. const SECURITY_ATTRIBUTES* pAttributes;
  3929. DWORD dwAccess;
  3930. } VkExportMemoryWin32HandleInfoNV;
  3931. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
  3932. #ifndef VK_NO_PROTOTYPES
  3933. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
  3934. VkDevice device,
  3935. VkDeviceMemory memory,
  3936. VkExternalMemoryHandleTypeFlagsNV handleType,
  3937. HANDLE* pHandle);
  3938. #endif
  3939. #endif /* VK_USE_PLATFORM_WIN32_KHR */
  3940. #ifdef VK_USE_PLATFORM_WIN32_KHR
  3941. #define VK_NV_win32_keyed_mutex 1
  3942. #define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
  3943. #define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
  3944. typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
  3945. VkStructureType sType;
  3946. const void* pNext;
  3947. uint32_t acquireCount;
  3948. const VkDeviceMemory* pAcquireSyncs;
  3949. const uint64_t* pAcquireKeys;
  3950. const uint32_t* pAcquireTimeoutMilliseconds;
  3951. uint32_t releaseCount;
  3952. const VkDeviceMemory* pReleaseSyncs;
  3953. const uint64_t* pReleaseKeys;
  3954. } VkWin32KeyedMutexAcquireReleaseInfoNV;
  3955. #endif /* VK_USE_PLATFORM_WIN32_KHR */
  3956. #define VK_KHX_device_group 1
  3957. #define VK_MAX_DEVICE_GROUP_SIZE_KHX 32
  3958. #define VK_KHX_DEVICE_GROUP_SPEC_VERSION 1
  3959. #define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group"
  3960. typedef enum VkPeerMemoryFeatureFlagBitsKHX {
  3961. VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX = 0x00000001,
  3962. VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX = 0x00000002,
  3963. VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX = 0x00000004,
  3964. VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX = 0x00000008,
  3965. VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
  3966. } VkPeerMemoryFeatureFlagBitsKHX;
  3967. typedef VkFlags VkPeerMemoryFeatureFlagsKHX;
  3968. typedef enum VkMemoryAllocateFlagBitsKHX {
  3969. VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX = 0x00000001,
  3970. VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
  3971. } VkMemoryAllocateFlagBitsKHX;
  3972. typedef VkFlags VkMemoryAllocateFlagsKHX;
  3973. typedef enum VkDeviceGroupPresentModeFlagBitsKHX {
  3974. VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX = 0x00000001,
  3975. VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX = 0x00000002,
  3976. VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX = 0x00000004,
  3977. VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX = 0x00000008,
  3978. VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
  3979. } VkDeviceGroupPresentModeFlagBitsKHX;
  3980. typedef VkFlags VkDeviceGroupPresentModeFlagsKHX;
  3981. typedef struct VkMemoryAllocateFlagsInfoKHX {
  3982. VkStructureType sType;
  3983. const void* pNext;
  3984. VkMemoryAllocateFlagsKHX flags;
  3985. uint32_t deviceMask;
  3986. } VkMemoryAllocateFlagsInfoKHX;
  3987. typedef struct VkBindBufferMemoryInfoKHX {
  3988. VkStructureType sType;
  3989. const void* pNext;
  3990. VkBuffer buffer;
  3991. VkDeviceMemory memory;
  3992. VkDeviceSize memoryOffset;
  3993. uint32_t deviceIndexCount;
  3994. const uint32_t* pDeviceIndices;
  3995. } VkBindBufferMemoryInfoKHX;
  3996. typedef struct VkBindImageMemoryInfoKHX {
  3997. VkStructureType sType;
  3998. const void* pNext;
  3999. VkImage image;
  4000. VkDeviceMemory memory;
  4001. VkDeviceSize memoryOffset;
  4002. uint32_t deviceIndexCount;
  4003. const uint32_t* pDeviceIndices;
  4004. uint32_t SFRRectCount;
  4005. const VkRect2D* pSFRRects;
  4006. } VkBindImageMemoryInfoKHX;
  4007. typedef struct VkDeviceGroupRenderPassBeginInfoKHX {
  4008. VkStructureType sType;
  4009. const void* pNext;
  4010. uint32_t deviceMask;
  4011. uint32_t deviceRenderAreaCount;
  4012. const VkRect2D* pDeviceRenderAreas;
  4013. } VkDeviceGroupRenderPassBeginInfoKHX;
  4014. typedef struct VkDeviceGroupCommandBufferBeginInfoKHX {
  4015. VkStructureType sType;
  4016. const void* pNext;
  4017. uint32_t deviceMask;
  4018. } VkDeviceGroupCommandBufferBeginInfoKHX;
  4019. typedef struct VkDeviceGroupSubmitInfoKHX {
  4020. VkStructureType sType;
  4021. const void* pNext;
  4022. uint32_t waitSemaphoreCount;
  4023. const uint32_t* pWaitSemaphoreDeviceIndices;
  4024. uint32_t commandBufferCount;
  4025. const uint32_t* pCommandBufferDeviceMasks;
  4026. uint32_t signalSemaphoreCount;
  4027. const uint32_t* pSignalSemaphoreDeviceIndices;
  4028. } VkDeviceGroupSubmitInfoKHX;
  4029. typedef struct VkDeviceGroupBindSparseInfoKHX {
  4030. VkStructureType sType;
  4031. const void* pNext;
  4032. uint32_t resourceDeviceIndex;
  4033. uint32_t memoryDeviceIndex;
  4034. } VkDeviceGroupBindSparseInfoKHX;
  4035. typedef struct VkDeviceGroupPresentCapabilitiesKHX {
  4036. VkStructureType sType;
  4037. const void* pNext;
  4038. uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHX];
  4039. VkDeviceGroupPresentModeFlagsKHX modes;
  4040. } VkDeviceGroupPresentCapabilitiesKHX;
  4041. typedef struct VkImageSwapchainCreateInfoKHX {
  4042. VkStructureType sType;
  4043. const void* pNext;
  4044. VkSwapchainKHR swapchain;
  4045. } VkImageSwapchainCreateInfoKHX;
  4046. typedef struct VkBindImageMemorySwapchainInfoKHX {
  4047. VkStructureType sType;
  4048. const void* pNext;
  4049. VkSwapchainKHR swapchain;
  4050. uint32_t imageIndex;
  4051. } VkBindImageMemorySwapchainInfoKHX;
  4052. typedef struct VkAcquireNextImageInfoKHX {
  4053. VkStructureType sType;
  4054. const void* pNext;
  4055. VkSwapchainKHR swapchain;
  4056. uint64_t timeout;
  4057. VkSemaphore semaphore;
  4058. VkFence fence;
  4059. uint32_t deviceMask;
  4060. } VkAcquireNextImageInfoKHX;
  4061. typedef struct VkDeviceGroupPresentInfoKHX {
  4062. VkStructureType sType;
  4063. const void* pNext;
  4064. uint32_t swapchainCount;
  4065. const uint32_t* pDeviceMasks;
  4066. VkDeviceGroupPresentModeFlagBitsKHX mode;
  4067. } VkDeviceGroupPresentInfoKHX;
  4068. typedef struct VkDeviceGroupSwapchainCreateInfoKHX {
  4069. VkStructureType sType;
  4070. const void* pNext;
  4071. VkDeviceGroupPresentModeFlagsKHX modes;
  4072. } VkDeviceGroupSwapchainCreateInfoKHX;
  4073. typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
  4074. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHX* pBindInfos);
  4075. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHX)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHX* pBindInfos);
  4076. typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHX)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
  4077. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHX)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities);
  4078. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHX)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes);
  4079. typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHX)(VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, uint32_t* pImageIndex);
  4080. typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHX)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  4081. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHX)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
  4082. #ifndef VK_NO_PROTOTYPES
  4083. VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX(
  4084. VkDevice device,
  4085. uint32_t heapIndex,
  4086. uint32_t localDeviceIndex,
  4087. uint32_t remoteDeviceIndex,
  4088. VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures);
  4089. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHX(
  4090. VkDevice device,
  4091. uint32_t bindInfoCount,
  4092. const VkBindBufferMemoryInfoKHX* pBindInfos);
  4093. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHX(
  4094. VkDevice device,
  4095. uint32_t bindInfoCount,
  4096. const VkBindImageMemoryInfoKHX* pBindInfos);
  4097. VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHX(
  4098. VkCommandBuffer commandBuffer,
  4099. uint32_t deviceMask);
  4100. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX(
  4101. VkDevice device,
  4102. VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities);
  4103. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHX(
  4104. VkDevice device,
  4105. VkSurfaceKHR surface,
  4106. VkDeviceGroupPresentModeFlagsKHX* pModes);
  4107. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX(
  4108. VkDevice device,
  4109. const VkAcquireNextImageInfoKHX* pAcquireInfo,
  4110. uint32_t* pImageIndex);
  4111. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX(
  4112. VkCommandBuffer commandBuffer,
  4113. uint32_t baseGroupX,
  4114. uint32_t baseGroupY,
  4115. uint32_t baseGroupZ,
  4116. uint32_t groupCountX,
  4117. uint32_t groupCountY,
  4118. uint32_t groupCountZ);
  4119. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX(
  4120. VkPhysicalDevice physicalDevice,
  4121. VkSurfaceKHR surface,
  4122. uint32_t* pRectCount,
  4123. VkRect2D* pRects);
  4124. #endif
  4125. #define VK_EXT_validation_flags 1
  4126. #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
  4127. #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
  4128. typedef enum VkValidationCheckEXT {
  4129. VK_VALIDATION_CHECK_ALL_EXT = 0,
  4130. VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
  4131. VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
  4132. VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_ALL_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
  4133. VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
  4134. } VkValidationCheckEXT;
  4135. typedef struct VkValidationFlagsEXT {
  4136. VkStructureType sType;
  4137. const void* pNext;
  4138. uint32_t disabledValidationCheckCount;
  4139. VkValidationCheckEXT* pDisabledValidationChecks;
  4140. } VkValidationFlagsEXT;
  4141. #ifdef VK_USE_PLATFORM_VI_NN
  4142. #define VK_NN_vi_surface 1
  4143. #define VK_NN_VI_SURFACE_SPEC_VERSION 1
  4144. #define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
  4145. typedef VkFlags VkViSurfaceCreateFlagsNN;
  4146. typedef struct VkViSurfaceCreateInfoNN {
  4147. VkStructureType sType;
  4148. const void* pNext;
  4149. VkViSurfaceCreateFlagsNN flags;
  4150. void* window;
  4151. } VkViSurfaceCreateInfoNN;
  4152. typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  4153. #ifndef VK_NO_PROTOTYPES
  4154. VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN(
  4155. VkInstance instance,
  4156. const VkViSurfaceCreateInfoNN* pCreateInfo,
  4157. const VkAllocationCallbacks* pAllocator,
  4158. VkSurfaceKHR* pSurface);
  4159. #endif
  4160. #endif /* VK_USE_PLATFORM_VI_NN */
  4161. #define VK_EXT_shader_subgroup_ballot 1
  4162. #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
  4163. #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
  4164. #define VK_EXT_shader_subgroup_vote 1
  4165. #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
  4166. #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
  4167. #define VK_KHX_device_group_creation 1
  4168. #define VK_KHX_DEVICE_GROUP_CREATION_SPEC_VERSION 1
  4169. #define VK_KHX_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHX_device_group_creation"
  4170. typedef struct VkPhysicalDeviceGroupPropertiesKHX {
  4171. VkStructureType sType;
  4172. void* pNext;
  4173. uint32_t physicalDeviceCount;
  4174. VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX];
  4175. VkBool32 subsetAllocation;
  4176. } VkPhysicalDeviceGroupPropertiesKHX;
  4177. typedef struct VkDeviceGroupDeviceCreateInfoKHX {
  4178. VkStructureType sType;
  4179. const void* pNext;
  4180. uint32_t physicalDeviceCount;
  4181. const VkPhysicalDevice* pPhysicalDevices;
  4182. } VkDeviceGroupDeviceCreateInfoKHX;
  4183. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHX)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties);
  4184. #ifndef VK_NO_PROTOTYPES
  4185. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHX(
  4186. VkInstance instance,
  4187. uint32_t* pPhysicalDeviceGroupCount,
  4188. VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties);
  4189. #endif
  4190. #define VK_KHX_external_memory_capabilities 1
  4191. #define VK_LUID_SIZE_KHX 8
  4192. #define VK_KHX_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
  4193. #define VK_KHX_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHX_external_memory_capabilities"
  4194. typedef enum VkExternalMemoryHandleTypeFlagBitsKHX {
  4195. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHX = 0x00000001,
  4196. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHX = 0x00000002,
  4197. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHX = 0x00000004,
  4198. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHX = 0x00000008,
  4199. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHX = 0x00000010,
  4200. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHX = 0x00000020,
  4201. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHX = 0x00000040,
  4202. VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
  4203. } VkExternalMemoryHandleTypeFlagBitsKHX;
  4204. typedef VkFlags VkExternalMemoryHandleTypeFlagsKHX;
  4205. typedef enum VkExternalMemoryFeatureFlagBitsKHX {
  4206. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHX = 0x00000001,
  4207. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHX = 0x00000002,
  4208. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHX = 0x00000004,
  4209. VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
  4210. } VkExternalMemoryFeatureFlagBitsKHX;
  4211. typedef VkFlags VkExternalMemoryFeatureFlagsKHX;
  4212. typedef struct VkExternalMemoryPropertiesKHX {
  4213. VkExternalMemoryFeatureFlagsKHX externalMemoryFeatures;
  4214. VkExternalMemoryHandleTypeFlagsKHX exportFromImportedHandleTypes;
  4215. VkExternalMemoryHandleTypeFlagsKHX compatibleHandleTypes;
  4216. } VkExternalMemoryPropertiesKHX;
  4217. typedef struct VkPhysicalDeviceExternalImageFormatInfoKHX {
  4218. VkStructureType sType;
  4219. const void* pNext;
  4220. VkExternalMemoryHandleTypeFlagBitsKHX handleType;
  4221. } VkPhysicalDeviceExternalImageFormatInfoKHX;
  4222. typedef struct VkExternalImageFormatPropertiesKHX {
  4223. VkStructureType sType;
  4224. void* pNext;
  4225. VkExternalMemoryPropertiesKHX externalMemoryProperties;
  4226. } VkExternalImageFormatPropertiesKHX;
  4227. typedef struct VkPhysicalDeviceExternalBufferInfoKHX {
  4228. VkStructureType sType;
  4229. const void* pNext;
  4230. VkBufferCreateFlags flags;
  4231. VkBufferUsageFlags usage;
  4232. VkExternalMemoryHandleTypeFlagBitsKHX handleType;
  4233. } VkPhysicalDeviceExternalBufferInfoKHX;
  4234. typedef struct VkExternalBufferPropertiesKHX {
  4235. VkStructureType sType;
  4236. void* pNext;
  4237. VkExternalMemoryPropertiesKHX externalMemoryProperties;
  4238. } VkExternalBufferPropertiesKHX;
  4239. typedef struct VkPhysicalDeviceIDPropertiesKHX {
  4240. VkStructureType sType;
  4241. void* pNext;
  4242. uint8_t deviceUUID[VK_UUID_SIZE];
  4243. uint8_t driverUUID[VK_UUID_SIZE];
  4244. uint8_t deviceLUID[VK_LUID_SIZE_KHX];
  4245. VkBool32 deviceLUIDValid;
  4246. } VkPhysicalDeviceIDPropertiesKHX;
  4247. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHX)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHX* pExternalBufferInfo, VkExternalBufferPropertiesKHX* pExternalBufferProperties);
  4248. #ifndef VK_NO_PROTOTYPES
  4249. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHX(
  4250. VkPhysicalDevice physicalDevice,
  4251. const VkPhysicalDeviceExternalBufferInfoKHX* pExternalBufferInfo,
  4252. VkExternalBufferPropertiesKHX* pExternalBufferProperties);
  4253. #endif
  4254. #define VK_KHX_external_memory 1
  4255. #define VK_KHX_EXTERNAL_MEMORY_SPEC_VERSION 1
  4256. #define VK_KHX_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHX_external_memory"
  4257. #define VK_QUEUE_FAMILY_EXTERNAL_KHX (~0U-1)
  4258. typedef struct VkExternalMemoryImageCreateInfoKHX {
  4259. VkStructureType sType;
  4260. const void* pNext;
  4261. VkExternalMemoryHandleTypeFlagsKHX handleTypes;
  4262. } VkExternalMemoryImageCreateInfoKHX;
  4263. typedef struct VkExternalMemoryBufferCreateInfoKHX {
  4264. VkStructureType sType;
  4265. const void* pNext;
  4266. VkExternalMemoryHandleTypeFlagsKHX handleTypes;
  4267. } VkExternalMemoryBufferCreateInfoKHX;
  4268. typedef struct VkExportMemoryAllocateInfoKHX {
  4269. VkStructureType sType;
  4270. const void* pNext;
  4271. VkExternalMemoryHandleTypeFlagsKHX handleTypes;
  4272. } VkExportMemoryAllocateInfoKHX;
  4273. #ifdef VK_USE_PLATFORM_WIN32_KHX
  4274. #define VK_KHX_external_memory_win32 1
  4275. #define VK_KHX_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
  4276. #define VK_KHX_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHX_external_memory_win32"
  4277. typedef struct VkImportMemoryWin32HandleInfoKHX {
  4278. VkStructureType sType;
  4279. const void* pNext;
  4280. VkExternalMemoryHandleTypeFlagBitsKHX handleType;
  4281. HANDLE handle;
  4282. } VkImportMemoryWin32HandleInfoKHX;
  4283. typedef struct VkExportMemoryWin32HandleInfoKHX {
  4284. VkStructureType sType;
  4285. const void* pNext;
  4286. const SECURITY_ATTRIBUTES* pAttributes;
  4287. DWORD dwAccess;
  4288. LPCWSTR name;
  4289. } VkExportMemoryWin32HandleInfoKHX;
  4290. typedef struct VkMemoryWin32HandlePropertiesKHX {
  4291. VkStructureType sType;
  4292. void* pNext;
  4293. uint32_t memoryTypeBits;
  4294. } VkMemoryWin32HandlePropertiesKHX;
  4295. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHX)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE* pHandle);
  4296. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHX)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHX handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties);
  4297. #ifndef VK_NO_PROTOTYPES
  4298. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHX(
  4299. VkDevice device,
  4300. VkDeviceMemory memory,
  4301. VkExternalMemoryHandleTypeFlagBitsKHX handleType,
  4302. HANDLE* pHandle);
  4303. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHX(
  4304. VkDevice device,
  4305. VkExternalMemoryHandleTypeFlagBitsKHX handleType,
  4306. HANDLE handle,
  4307. VkMemoryWin32HandlePropertiesKHX* pMemoryWin32HandleProperties);
  4308. #endif
  4309. #endif /* VK_USE_PLATFORM_WIN32_KHX */
  4310. #define VK_KHX_external_memory_fd 1
  4311. #define VK_KHX_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
  4312. #define VK_KHX_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHX_external_memory_fd"
  4313. typedef struct VkImportMemoryFdInfoKHX {
  4314. VkStructureType sType;
  4315. const void* pNext;
  4316. VkExternalMemoryHandleTypeFlagBitsKHX handleType;
  4317. int fd;
  4318. } VkImportMemoryFdInfoKHX;
  4319. typedef struct VkMemoryFdPropertiesKHX {
  4320. VkStructureType sType;
  4321. void* pNext;
  4322. uint32_t memoryTypeBits;
  4323. } VkMemoryFdPropertiesKHX;
  4324. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHX)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagBitsKHX handleType, int* pFd);
  4325. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHX)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHX handleType, int fd, VkMemoryFdPropertiesKHX* pMemoryFdProperties);
  4326. #ifndef VK_NO_PROTOTYPES
  4327. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHX(
  4328. VkDevice device,
  4329. VkDeviceMemory memory,
  4330. VkExternalMemoryHandleTypeFlagBitsKHX handleType,
  4331. int* pFd);
  4332. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHX(
  4333. VkDevice device,
  4334. VkExternalMemoryHandleTypeFlagBitsKHX handleType,
  4335. int fd,
  4336. VkMemoryFdPropertiesKHX* pMemoryFdProperties);
  4337. #endif
  4338. #ifdef VK_USE_PLATFORM_WIN32_KHR
  4339. #define VK_KHX_win32_keyed_mutex 1
  4340. #define VK_KHX_WIN32_KEYED_MUTEX_SPEC_VERSION 1
  4341. #define VK_KHX_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHX_win32_keyed_mutex"
  4342. typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHX {
  4343. VkStructureType sType;
  4344. const void* pNext;
  4345. uint32_t acquireCount;
  4346. const VkDeviceMemory* pAcquireSyncs;
  4347. const uint64_t* pAcquireKeys;
  4348. const uint32_t* pAcquireTimeouts;
  4349. uint32_t releaseCount;
  4350. const VkDeviceMemory* pReleaseSyncs;
  4351. const uint64_t* pReleaseKeys;
  4352. } VkWin32KeyedMutexAcquireReleaseInfoKHX;
  4353. #endif /* VK_USE_PLATFORM_WIN32_KHR */
  4354. #define VK_KHX_external_semaphore_capabilities 1
  4355. #define VK_KHX_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
  4356. #define VK_KHX_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHX_external_semaphore_capabilities"
  4357. typedef enum VkExternalSemaphoreHandleTypeFlagBitsKHX {
  4358. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHX = 0x00000001,
  4359. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHX = 0x00000002,
  4360. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHX = 0x00000004,
  4361. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHX = 0x00000008,
  4362. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHX = 0x00000010,
  4363. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
  4364. } VkExternalSemaphoreHandleTypeFlagBitsKHX;
  4365. typedef VkFlags VkExternalSemaphoreHandleTypeFlagsKHX;
  4366. typedef enum VkExternalSemaphoreFeatureFlagBitsKHX {
  4367. VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHX = 0x00000001,
  4368. VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHX = 0x00000002,
  4369. VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF
  4370. } VkExternalSemaphoreFeatureFlagBitsKHX;
  4371. typedef VkFlags VkExternalSemaphoreFeatureFlagsKHX;
  4372. typedef struct VkPhysicalDeviceExternalSemaphoreInfoKHX {
  4373. VkStructureType sType;
  4374. const void* pNext;
  4375. VkExternalSemaphoreHandleTypeFlagBitsKHX handleType;
  4376. } VkPhysicalDeviceExternalSemaphoreInfoKHX;
  4377. typedef struct VkExternalSemaphorePropertiesKHX {
  4378. VkStructureType sType;
  4379. void* pNext;
  4380. VkExternalSemaphoreHandleTypeFlagsKHX exportFromImportedHandleTypes;
  4381. VkExternalSemaphoreHandleTypeFlagsKHX compatibleHandleTypes;
  4382. VkExternalSemaphoreFeatureFlagsKHX externalSemaphoreFeatures;
  4383. } VkExternalSemaphorePropertiesKHX;
  4384. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHX)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHX* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHX* pExternalSemaphoreProperties);
  4385. #ifndef VK_NO_PROTOTYPES
  4386. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHX(
  4387. VkPhysicalDevice physicalDevice,
  4388. const VkPhysicalDeviceExternalSemaphoreInfoKHX* pExternalSemaphoreInfo,
  4389. VkExternalSemaphorePropertiesKHX* pExternalSemaphoreProperties);
  4390. #endif
  4391. #define VK_KHX_external_semaphore 1
  4392. #define VK_KHX_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
  4393. #define VK_KHX_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHX_external_semaphore"
  4394. typedef struct VkExportSemaphoreCreateInfoKHX {
  4395. VkStructureType sType;
  4396. const void* pNext;
  4397. VkExternalSemaphoreHandleTypeFlagsKHX handleTypes;
  4398. } VkExportSemaphoreCreateInfoKHX;
  4399. #ifdef VK_USE_PLATFORM_WIN32_KHX
  4400. #define VK_KHX_external_semaphore_win32 1
  4401. #define VK_KHX_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
  4402. #define VK_KHX_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHX_external_semaphore_win32"
  4403. typedef struct VkImportSemaphoreWin32HandleInfoKHX {
  4404. VkStructureType sType;
  4405. const void* pNext;
  4406. VkSemaphore semaphore;
  4407. VkExternalSemaphoreHandleTypeFlagsKHX handleType;
  4408. HANDLE handle;
  4409. } VkImportSemaphoreWin32HandleInfoKHX;
  4410. typedef struct VkExportSemaphoreWin32HandleInfoKHX {
  4411. VkStructureType sType;
  4412. const void* pNext;
  4413. const SECURITY_ATTRIBUTES* pAttributes;
  4414. DWORD dwAccess;
  4415. LPCWSTR name;
  4416. } VkExportSemaphoreWin32HandleInfoKHX;
  4417. typedef struct VkD3D12FenceSubmitInfoKHX {
  4418. VkStructureType sType;
  4419. const void* pNext;
  4420. uint32_t waitSemaphoreValuesCount;
  4421. const uint64_t* pWaitSemaphoreValues;
  4422. uint32_t signalSemaphoreValuesCount;
  4423. const uint64_t* pSignalSemaphoreValues;
  4424. } VkD3D12FenceSubmitInfoKHX;
  4425. typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHX)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHX* pImportSemaphoreWin32HandleInfo);
  4426. typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHX)(VkDevice device, VkSemaphore semaphore, VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, HANDLE* pHandle);
  4427. #ifndef VK_NO_PROTOTYPES
  4428. VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHX(
  4429. VkDevice device,
  4430. const VkImportSemaphoreWin32HandleInfoKHX* pImportSemaphoreWin32HandleInfo);
  4431. VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHX(
  4432. VkDevice device,
  4433. VkSemaphore semaphore,
  4434. VkExternalSemaphoreHandleTypeFlagBitsKHX handleType,
  4435. HANDLE* pHandle);
  4436. #endif
  4437. #endif /* VK_USE_PLATFORM_WIN32_KHX */
  4438. #define VK_KHX_external_semaphore_fd 1
  4439. #define VK_KHX_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
  4440. #define VK_KHX_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHX_external_semaphore_fd"
  4441. typedef struct VkImportSemaphoreFdInfoKHX {
  4442. VkStructureType sType;
  4443. const void* pNext;
  4444. VkSemaphore semaphore;
  4445. VkExternalSemaphoreHandleTypeFlagBitsKHX handleType;
  4446. int fd;
  4447. } VkImportSemaphoreFdInfoKHX;
  4448. typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHX)(VkDevice device, const VkImportSemaphoreFdInfoKHX* pImportSemaphoreFdInfo);
  4449. typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHX)(VkDevice device, VkSemaphore semaphore, VkExternalSemaphoreHandleTypeFlagBitsKHX handleType, int* pFd);
  4450. #ifndef VK_NO_PROTOTYPES
  4451. VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHX(
  4452. VkDevice device,
  4453. const VkImportSemaphoreFdInfoKHX* pImportSemaphoreFdInfo);
  4454. VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHX(
  4455. VkDevice device,
  4456. VkSemaphore semaphore,
  4457. VkExternalSemaphoreHandleTypeFlagBitsKHX handleType,
  4458. int* pFd);
  4459. #endif
  4460. #define VK_NVX_device_generated_commands 1
  4461. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
  4462. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
  4463. #define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
  4464. #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
  4465. typedef enum VkIndirectCommandsTokenTypeNVX {
  4466. VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX = 0,
  4467. VK_INDIRECT_COMMANDS_TOKEN_DESCRIPTOR_SET_NVX = 1,
  4468. VK_INDIRECT_COMMANDS_TOKEN_INDEX_BUFFER_NVX = 2,
  4469. VK_INDIRECT_COMMANDS_TOKEN_VERTEX_BUFFER_NVX = 3,
  4470. VK_INDIRECT_COMMANDS_TOKEN_PUSH_CONSTANT_NVX = 4,
  4471. VK_INDIRECT_COMMANDS_TOKEN_DRAW_INDEXED_NVX = 5,
  4472. VK_INDIRECT_COMMANDS_TOKEN_DRAW_NVX = 6,
  4473. VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX = 7,
  4474. VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX,
  4475. VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX,
  4476. VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_PIPELINE_NVX + 1),
  4477. VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
  4478. } VkIndirectCommandsTokenTypeNVX;
  4479. typedef enum VkObjectEntryTypeNVX {
  4480. VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX = 0,
  4481. VK_OBJECT_ENTRY_PIPELINE_NVX = 1,
  4482. VK_OBJECT_ENTRY_INDEX_BUFFER_NVX = 2,
  4483. VK_OBJECT_ENTRY_VERTEX_BUFFER_NVX = 3,
  4484. VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX = 4,
  4485. VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX,
  4486. VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX,
  4487. VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_DESCRIPTOR_SET_NVX + 1),
  4488. VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
  4489. } VkObjectEntryTypeNVX;
  4490. typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
  4491. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
  4492. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
  4493. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
  4494. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
  4495. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
  4496. } VkIndirectCommandsLayoutUsageFlagBitsNVX;
  4497. typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
  4498. typedef enum VkObjectEntryUsageFlagBitsNVX {
  4499. VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
  4500. VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
  4501. VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
  4502. } VkObjectEntryUsageFlagBitsNVX;
  4503. typedef VkFlags VkObjectEntryUsageFlagsNVX;
  4504. typedef struct VkDeviceGeneratedCommandsFeaturesNVX {
  4505. VkStructureType sType;
  4506. const void* pNext;
  4507. VkBool32 computeBindingPointSupport;
  4508. } VkDeviceGeneratedCommandsFeaturesNVX;
  4509. typedef struct VkDeviceGeneratedCommandsLimitsNVX {
  4510. VkStructureType sType;
  4511. const void* pNext;
  4512. uint32_t maxIndirectCommandsLayoutTokenCount;
  4513. uint32_t maxObjectEntryCounts;
  4514. uint32_t minSequenceCountBufferOffsetAlignment;
  4515. uint32_t minSequenceIndexBufferOffsetAlignment;
  4516. uint32_t minCommandsTokenBufferOffsetAlignment;
  4517. } VkDeviceGeneratedCommandsLimitsNVX;
  4518. typedef struct VkIndirectCommandsTokenNVX {
  4519. VkIndirectCommandsTokenTypeNVX tokenType;
  4520. VkBuffer buffer;
  4521. VkDeviceSize offset;
  4522. } VkIndirectCommandsTokenNVX;
  4523. typedef struct VkIndirectCommandsLayoutTokenNVX {
  4524. VkIndirectCommandsTokenTypeNVX tokenType;
  4525. uint32_t bindingUnit;
  4526. uint32_t dynamicCount;
  4527. uint32_t divisor;
  4528. } VkIndirectCommandsLayoutTokenNVX;
  4529. typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
  4530. VkStructureType sType;
  4531. const void* pNext;
  4532. VkPipelineBindPoint pipelineBindPoint;
  4533. VkIndirectCommandsLayoutUsageFlagsNVX flags;
  4534. uint32_t tokenCount;
  4535. const VkIndirectCommandsLayoutTokenNVX* pTokens;
  4536. } VkIndirectCommandsLayoutCreateInfoNVX;
  4537. typedef struct VkCmdProcessCommandsInfoNVX {
  4538. VkStructureType sType;
  4539. const void* pNext;
  4540. VkObjectTableNVX objectTable;
  4541. VkIndirectCommandsLayoutNVX indirectCommandsLayout;
  4542. uint32_t indirectCommandsTokenCount;
  4543. const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens;
  4544. uint32_t maxSequencesCount;
  4545. VkCommandBuffer targetCommandBuffer;
  4546. VkBuffer sequencesCountBuffer;
  4547. VkDeviceSize sequencesCountOffset;
  4548. VkBuffer sequencesIndexBuffer;
  4549. VkDeviceSize sequencesIndexOffset;
  4550. } VkCmdProcessCommandsInfoNVX;
  4551. typedef struct VkCmdReserveSpaceForCommandsInfoNVX {
  4552. VkStructureType sType;
  4553. const void* pNext;
  4554. VkObjectTableNVX objectTable;
  4555. VkIndirectCommandsLayoutNVX indirectCommandsLayout;
  4556. uint32_t maxSequencesCount;
  4557. } VkCmdReserveSpaceForCommandsInfoNVX;
  4558. typedef struct VkObjectTableCreateInfoNVX {
  4559. VkStructureType sType;
  4560. const void* pNext;
  4561. uint32_t objectCount;
  4562. const VkObjectEntryTypeNVX* pObjectEntryTypes;
  4563. const uint32_t* pObjectEntryCounts;
  4564. const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags;
  4565. uint32_t maxUniformBuffersPerDescriptor;
  4566. uint32_t maxStorageBuffersPerDescriptor;
  4567. uint32_t maxStorageImagesPerDescriptor;
  4568. uint32_t maxSampledImagesPerDescriptor;
  4569. uint32_t maxPipelineLayouts;
  4570. } VkObjectTableCreateInfoNVX;
  4571. typedef struct VkObjectTableEntryNVX {
  4572. VkObjectEntryTypeNVX type;
  4573. VkObjectEntryUsageFlagsNVX flags;
  4574. } VkObjectTableEntryNVX;
  4575. typedef struct VkObjectTablePipelineEntryNVX {
  4576. VkObjectEntryTypeNVX type;
  4577. VkObjectEntryUsageFlagsNVX flags;
  4578. VkPipeline pipeline;
  4579. } VkObjectTablePipelineEntryNVX;
  4580. typedef struct VkObjectTableDescriptorSetEntryNVX {
  4581. VkObjectEntryTypeNVX type;
  4582. VkObjectEntryUsageFlagsNVX flags;
  4583. VkPipelineLayout pipelineLayout;
  4584. VkDescriptorSet descriptorSet;
  4585. } VkObjectTableDescriptorSetEntryNVX;
  4586. typedef struct VkObjectTableVertexBufferEntryNVX {
  4587. VkObjectEntryTypeNVX type;
  4588. VkObjectEntryUsageFlagsNVX flags;
  4589. VkBuffer buffer;
  4590. } VkObjectTableVertexBufferEntryNVX;
  4591. typedef struct VkObjectTableIndexBufferEntryNVX {
  4592. VkObjectEntryTypeNVX type;
  4593. VkObjectEntryUsageFlagsNVX flags;
  4594. VkBuffer buffer;
  4595. VkIndexType indexType;
  4596. } VkObjectTableIndexBufferEntryNVX;
  4597. typedef struct VkObjectTablePushConstantEntryNVX {
  4598. VkObjectEntryTypeNVX type;
  4599. VkObjectEntryUsageFlagsNVX flags;
  4600. VkPipelineLayout pipelineLayout;
  4601. VkShaderStageFlags stageFlags;
  4602. } VkObjectTablePushConstantEntryNVX;
  4603. typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
  4604. typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
  4605. typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
  4606. typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
  4607. typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
  4608. typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
  4609. typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices);
  4610. typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
  4611. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
  4612. #ifndef VK_NO_PROTOTYPES
  4613. VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
  4614. VkCommandBuffer commandBuffer,
  4615. const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
  4616. VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
  4617. VkCommandBuffer commandBuffer,
  4618. const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
  4619. VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
  4620. VkDevice device,
  4621. const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
  4622. const VkAllocationCallbacks* pAllocator,
  4623. VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
  4624. VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
  4625. VkDevice device,
  4626. VkIndirectCommandsLayoutNVX indirectCommandsLayout,
  4627. const VkAllocationCallbacks* pAllocator);
  4628. VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
  4629. VkDevice device,
  4630. const VkObjectTableCreateInfoNVX* pCreateInfo,
  4631. const VkAllocationCallbacks* pAllocator,
  4632. VkObjectTableNVX* pObjectTable);
  4633. VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
  4634. VkDevice device,
  4635. VkObjectTableNVX objectTable,
  4636. const VkAllocationCallbacks* pAllocator);
  4637. VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
  4638. VkDevice device,
  4639. VkObjectTableNVX objectTable,
  4640. uint32_t objectCount,
  4641. const VkObjectTableEntryNVX* const* ppObjectTableEntries,
  4642. const uint32_t* pObjectIndices);
  4643. VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
  4644. VkDevice device,
  4645. VkObjectTableNVX objectTable,
  4646. uint32_t objectCount,
  4647. const VkObjectEntryTypeNVX* pObjectEntryTypes,
  4648. const uint32_t* pObjectIndices);
  4649. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
  4650. VkPhysicalDevice physicalDevice,
  4651. VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
  4652. VkDeviceGeneratedCommandsLimitsNVX* pLimits);
  4653. #endif
  4654. #define VK_NV_clip_space_w_scaling 1
  4655. #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
  4656. #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
  4657. typedef struct VkViewportWScalingNV {
  4658. float xcoeff;
  4659. float ycoeff;
  4660. } VkViewportWScalingNV;
  4661. typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
  4662. VkStructureType sType;
  4663. const void* pNext;
  4664. VkBool32 viewportWScalingEnable;
  4665. uint32_t viewportCount;
  4666. const VkViewportWScalingNV* pViewportWScalings;
  4667. } VkPipelineViewportWScalingStateCreateInfoNV;
  4668. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
  4669. #ifndef VK_NO_PROTOTYPES
  4670. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
  4671. VkCommandBuffer commandBuffer,
  4672. uint32_t firstViewport,
  4673. uint32_t viewportCount,
  4674. const VkViewportWScalingNV* pViewportWScalings);
  4675. #endif
  4676. #define VK_EXT_direct_mode_display 1
  4677. #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
  4678. #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
  4679. typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
  4680. #ifndef VK_NO_PROTOTYPES
  4681. VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
  4682. VkPhysicalDevice physicalDevice,
  4683. VkDisplayKHR display);
  4684. #endif
  4685. #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
  4686. #define VK_EXT_acquire_xlib_display 1
  4687. #include <X11/extensions/Xrandr.h>
  4688. #define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
  4689. #define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
  4690. typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display);
  4691. typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay);
  4692. #ifndef VK_NO_PROTOTYPES
  4693. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT(
  4694. VkPhysicalDevice physicalDevice,
  4695. Display* dpy,
  4696. VkDisplayKHR display);
  4697. VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT(
  4698. VkPhysicalDevice physicalDevice,
  4699. Display* dpy,
  4700. RROutput rrOutput,
  4701. VkDisplayKHR* pDisplay);
  4702. #endif
  4703. #endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */
  4704. #define VK_EXT_display_surface_counter 1
  4705. #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
  4706. #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
  4707. typedef enum VkSurfaceCounterFlagBitsEXT {
  4708. VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
  4709. VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  4710. } VkSurfaceCounterFlagBitsEXT;
  4711. typedef VkFlags VkSurfaceCounterFlagsEXT;
  4712. typedef struct VkSurfaceCapabilities2EXT {
  4713. VkStructureType sType;
  4714. void* pNext;
  4715. uint32_t minImageCount;
  4716. uint32_t maxImageCount;
  4717. VkExtent2D currentExtent;
  4718. VkExtent2D minImageExtent;
  4719. VkExtent2D maxImageExtent;
  4720. uint32_t maxImageArrayLayers;
  4721. VkSurfaceTransformFlagsKHR supportedTransforms;
  4722. VkSurfaceTransformFlagBitsKHR currentTransform;
  4723. VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
  4724. VkImageUsageFlags supportedUsageFlags;
  4725. VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
  4726. } VkSurfaceCapabilities2EXT;
  4727. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
  4728. #ifndef VK_NO_PROTOTYPES
  4729. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
  4730. VkPhysicalDevice physicalDevice,
  4731. VkSurfaceKHR surface,
  4732. VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
  4733. #endif
  4734. #define VK_EXT_display_control 1
  4735. #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
  4736. #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
  4737. typedef enum VkDisplayPowerStateEXT {
  4738. VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
  4739. VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
  4740. VK_DISPLAY_POWER_STATE_ON_EXT = 2,
  4741. VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
  4742. VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
  4743. VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
  4744. VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
  4745. } VkDisplayPowerStateEXT;
  4746. typedef enum VkDeviceEventTypeEXT {
  4747. VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
  4748. VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
  4749. VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
  4750. VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
  4751. VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  4752. } VkDeviceEventTypeEXT;
  4753. typedef enum VkDisplayEventTypeEXT {
  4754. VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
  4755. VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
  4756. VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
  4757. VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1),
  4758. VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  4759. } VkDisplayEventTypeEXT;
  4760. typedef struct VkDisplayPowerInfoEXT {
  4761. VkStructureType sType;
  4762. const void* pNext;
  4763. VkDisplayPowerStateEXT powerState;
  4764. } VkDisplayPowerInfoEXT;
  4765. typedef struct VkDeviceEventInfoEXT {
  4766. VkStructureType sType;
  4767. const void* pNext;
  4768. VkDeviceEventTypeEXT deviceEvent;
  4769. } VkDeviceEventInfoEXT;
  4770. typedef struct VkDisplayEventInfoEXT {
  4771. VkStructureType sType;
  4772. const void* pNext;
  4773. VkDisplayEventTypeEXT displayEvent;
  4774. } VkDisplayEventInfoEXT;
  4775. typedef struct VkSwapchainCounterCreateInfoEXT {
  4776. VkStructureType sType;
  4777. const void* pNext;
  4778. VkSurfaceCounterFlagsEXT surfaceCounters;
  4779. } VkSwapchainCounterCreateInfoEXT;
  4780. typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
  4781. typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  4782. typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  4783. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
  4784. #ifndef VK_NO_PROTOTYPES
  4785. VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
  4786. VkDevice device,
  4787. VkDisplayKHR display,
  4788. const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
  4789. VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
  4790. VkDevice device,
  4791. const VkDeviceEventInfoEXT* pDeviceEventInfo,
  4792. const VkAllocationCallbacks* pAllocator,
  4793. VkFence* pFence);
  4794. VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
  4795. VkDevice device,
  4796. VkDisplayKHR display,
  4797. const VkDisplayEventInfoEXT* pDisplayEventInfo,
  4798. const VkAllocationCallbacks* pAllocator,
  4799. VkFence* pFence);
  4800. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
  4801. VkDevice device,
  4802. VkSwapchainKHR swapchain,
  4803. VkSurfaceCounterFlagBitsEXT counter,
  4804. uint64_t* pCounterValue);
  4805. #endif
  4806. #define VK_GOOGLE_display_timing 1
  4807. #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
  4808. #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
  4809. typedef struct VkRefreshCycleDurationGOOGLE {
  4810. uint64_t refreshDuration;
  4811. } VkRefreshCycleDurationGOOGLE;
  4812. typedef struct VkPastPresentationTimingGOOGLE {
  4813. uint32_t presentID;
  4814. uint64_t desiredPresentTime;
  4815. uint64_t actualPresentTime;
  4816. uint64_t earliestPresentTime;
  4817. uint64_t presentMargin;
  4818. } VkPastPresentationTimingGOOGLE;
  4819. typedef struct VkPresentTimeGOOGLE {
  4820. uint32_t presentID;
  4821. uint64_t desiredPresentTime;
  4822. } VkPresentTimeGOOGLE;
  4823. typedef struct VkPresentTimesInfoGOOGLE {
  4824. VkStructureType sType;
  4825. const void* pNext;
  4826. uint32_t swapchainCount;
  4827. const VkPresentTimeGOOGLE* pTimes;
  4828. } VkPresentTimesInfoGOOGLE;
  4829. typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
  4830. typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
  4831. #ifndef VK_NO_PROTOTYPES
  4832. VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
  4833. VkDevice device,
  4834. VkSwapchainKHR swapchain,
  4835. VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
  4836. VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
  4837. VkDevice device,
  4838. VkSwapchainKHR swapchain,
  4839. uint32_t* pPresentationTimingCount,
  4840. VkPastPresentationTimingGOOGLE* pPresentationTimings);
  4841. #endif
  4842. #define VK_NV_sample_mask_override_coverage 1
  4843. #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
  4844. #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
  4845. #define VK_NV_geometry_shader_passthrough 1
  4846. #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
  4847. #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
  4848. #define VK_NV_viewport_array2 1
  4849. #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
  4850. #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
  4851. #define VK_NVX_multiview_per_view_attributes 1
  4852. #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
  4853. #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
  4854. typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
  4855. VkStructureType sType;
  4856. void* pNext;
  4857. VkBool32 perViewPositionAllComponents;
  4858. } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  4859. #define VK_NV_viewport_swizzle 1
  4860. #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
  4861. #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
  4862. typedef enum VkViewportCoordinateSwizzleNV {
  4863. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
  4864. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
  4865. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
  4866. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
  4867. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
  4868. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
  4869. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
  4870. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
  4871. VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
  4872. VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
  4873. VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
  4874. VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
  4875. } VkViewportCoordinateSwizzleNV;
  4876. typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
  4877. typedef struct VkViewportSwizzleNV {
  4878. VkViewportCoordinateSwizzleNV x;
  4879. VkViewportCoordinateSwizzleNV y;
  4880. VkViewportCoordinateSwizzleNV z;
  4881. VkViewportCoordinateSwizzleNV w;
  4882. } VkViewportSwizzleNV;
  4883. typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
  4884. VkStructureType sType;
  4885. const void* pNext;
  4886. VkPipelineViewportSwizzleStateCreateFlagsNV flags;
  4887. uint32_t viewportCount;
  4888. const VkViewportSwizzleNV* pViewportSwizzles;
  4889. } VkPipelineViewportSwizzleStateCreateInfoNV;
  4890. #define VK_EXT_discard_rectangles 1
  4891. #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
  4892. #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
  4893. typedef enum VkDiscardRectangleModeEXT {
  4894. VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
  4895. VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
  4896. VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
  4897. VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
  4898. VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
  4899. VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  4900. } VkDiscardRectangleModeEXT;
  4901. typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
  4902. typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
  4903. VkStructureType sType;
  4904. void* pNext;
  4905. uint32_t maxDiscardRectangles;
  4906. } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
  4907. typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
  4908. VkStructureType sType;
  4909. const void* pNext;
  4910. VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
  4911. VkDiscardRectangleModeEXT discardRectangleMode;
  4912. uint32_t discardRectangleCount;
  4913. const VkRect2D* pDiscardRectangles;
  4914. } VkPipelineDiscardRectangleStateCreateInfoEXT;
  4915. typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
  4916. #ifndef VK_NO_PROTOTYPES
  4917. VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
  4918. VkCommandBuffer commandBuffer,
  4919. uint32_t firstDiscardRectangle,
  4920. uint32_t discardRectangleCount,
  4921. const VkRect2D* pDiscardRectangles);
  4922. #endif
  4923. #define VK_EXT_swapchain_colorspace 1
  4924. #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 2
  4925. #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
  4926. #define VK_EXT_hdr_metadata 1
  4927. #define VK_EXT_HDR_METADATA_SPEC_VERSION 1
  4928. #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
  4929. typedef struct VkXYColorEXT {
  4930. float x;
  4931. float y;
  4932. } VkXYColorEXT;
  4933. typedef struct VkHdrMetadataEXT {
  4934. VkStructureType sType;
  4935. const void* pNext;
  4936. VkXYColorEXT displayPrimaryRed;
  4937. VkXYColorEXT displayPrimaryGreen;
  4938. VkXYColorEXT displayPrimaryBlue;
  4939. VkXYColorEXT whitePoint;
  4940. float maxLuminance;
  4941. float minLuminance;
  4942. float maxContentLightLevel;
  4943. float maxFrameAverageLightLevel;
  4944. } VkHdrMetadataEXT;
  4945. typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
  4946. #ifndef VK_NO_PROTOTYPES
  4947. VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
  4948. VkDevice device,
  4949. uint32_t swapchainCount,
  4950. const VkSwapchainKHR* pSwapchains,
  4951. const VkHdrMetadataEXT* pMetadata);
  4952. #endif
  4953. #ifdef VK_USE_PLATFORM_IOS_MVK
  4954. #define VK_MVK_ios_surface 1
  4955. #define VK_MVK_IOS_SURFACE_SPEC_VERSION 2
  4956. #define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
  4957. typedef VkFlags VkIOSSurfaceCreateFlagsMVK;
  4958. typedef struct VkIOSSurfaceCreateInfoMVK {
  4959. VkStructureType sType;
  4960. const void* pNext;
  4961. VkIOSSurfaceCreateFlagsMVK flags;
  4962. const void* pView;
  4963. } VkIOSSurfaceCreateInfoMVK;
  4964. typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  4965. #ifndef VK_NO_PROTOTYPES
  4966. VKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK(
  4967. VkInstance instance,
  4968. const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
  4969. const VkAllocationCallbacks* pAllocator,
  4970. VkSurfaceKHR* pSurface);
  4971. #endif
  4972. #endif /* VK_USE_PLATFORM_IOS_MVK */
  4973. #ifdef VK_USE_PLATFORM_MACOS_MVK
  4974. #define VK_MVK_macos_surface 1
  4975. #define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2
  4976. #define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
  4977. typedef VkFlags VkMacOSSurfaceCreateFlagsMVK;
  4978. typedef struct VkMacOSSurfaceCreateInfoMVK {
  4979. VkStructureType sType;
  4980. const void* pNext;
  4981. VkMacOSSurfaceCreateFlagsMVK flags;
  4982. const void* pView;
  4983. } VkMacOSSurfaceCreateInfoMVK;
  4984. typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  4985. #ifndef VK_NO_PROTOTYPES
  4986. VKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK(
  4987. VkInstance instance,
  4988. const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
  4989. const VkAllocationCallbacks* pAllocator,
  4990. VkSurfaceKHR* pSurface);
  4991. #endif
  4992. #endif /* VK_USE_PLATFORM_MACOS_MVK */
  4993. #ifdef __cplusplus
  4994. }
  4995. #endif
  4996. #endif