vulkan_core.h 1.2 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833
  1. #ifndef VULKAN_CORE_H_
  2. #define VULKAN_CORE_H_ 1
  3. /*
  4. ** Copyright 2015-2025 The Khronos Group Inc.
  5. **
  6. ** SPDX-License-Identifier: Apache-2.0
  7. */
  8. /*
  9. ** This header is generated from the Khronos Vulkan XML API Registry.
  10. **
  11. */
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. // VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
  16. #define VK_VERSION_1_0 1
  17. #include "vk_platform.h"
  18. #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
  19. #ifndef VK_USE_64_BIT_PTR_DEFINES
  20. #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
  21. #define VK_USE_64_BIT_PTR_DEFINES 1
  22. #else
  23. #define VK_USE_64_BIT_PTR_DEFINES 0
  24. #endif
  25. #endif
  26. #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
  27. #if (VK_USE_64_BIT_PTR_DEFINES==1)
  28. #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
  29. #define VK_NULL_HANDLE nullptr
  30. #else
  31. #define VK_NULL_HANDLE ((void*)0)
  32. #endif
  33. #else
  34. #define VK_NULL_HANDLE 0ULL
  35. #endif
  36. #endif
  37. #ifndef VK_NULL_HANDLE
  38. #define VK_NULL_HANDLE 0
  39. #endif
  40. #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
  41. #if (VK_USE_64_BIT_PTR_DEFINES==1)
  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. #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
  48. ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
  49. //#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
  50. // Version of this file
  51. #define VK_HEADER_VERSION 337
  52. // Complete version of this file
  53. #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
  54. #define VK_MAKE_VERSION(major, minor, patch) \
  55. ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
  56. #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
  57. #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
  58. #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
  59. #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
  60. #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
  61. #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
  62. #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
  63. // Vulkan 1.0 version number
  64. #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
  65. typedef uint32_t VkBool32;
  66. typedef uint64_t VkDeviceAddress;
  67. typedef uint64_t VkDeviceSize;
  68. typedef uint32_t VkFlags;
  69. typedef uint32_t VkSampleMask;
  70. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
  71. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
  72. VK_DEFINE_HANDLE(VkInstance)
  73. VK_DEFINE_HANDLE(VkPhysicalDevice)
  74. VK_DEFINE_HANDLE(VkDevice)
  75. VK_DEFINE_HANDLE(VkQueue)
  76. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
  77. VK_DEFINE_HANDLE(VkCommandBuffer)
  78. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
  79. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
  80. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
  81. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
  82. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
  83. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
  84. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
  85. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
  86. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
  87. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
  88. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
  89. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
  90. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
  91. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
  92. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
  93. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
  94. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
  95. #define VK_FALSE 0U
  96. #define VK_LOD_CLAMP_NONE 1000.0F
  97. #define VK_QUEUE_FAMILY_IGNORED (~0U)
  98. #define VK_REMAINING_ARRAY_LAYERS (~0U)
  99. #define VK_REMAINING_MIP_LEVELS (~0U)
  100. #define VK_TRUE 1U
  101. #define VK_WHOLE_SIZE (~0ULL)
  102. #define VK_MAX_MEMORY_TYPES 32U
  103. #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U
  104. #define VK_UUID_SIZE 16U
  105. #define VK_MAX_EXTENSION_NAME_SIZE 256U
  106. #define VK_MAX_DESCRIPTION_SIZE 256U
  107. #define VK_MAX_MEMORY_HEAPS 16U
  108. #define VK_ATTACHMENT_UNUSED (~0U)
  109. #define VK_SUBPASS_EXTERNAL (~0U)
  110. typedef enum VkResult {
  111. VK_SUCCESS = 0,
  112. VK_NOT_READY = 1,
  113. VK_TIMEOUT = 2,
  114. VK_EVENT_SET = 3,
  115. VK_EVENT_RESET = 4,
  116. VK_INCOMPLETE = 5,
  117. VK_ERROR_OUT_OF_HOST_MEMORY = -1,
  118. VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
  119. VK_ERROR_INITIALIZATION_FAILED = -3,
  120. VK_ERROR_DEVICE_LOST = -4,
  121. VK_ERROR_MEMORY_MAP_FAILED = -5,
  122. VK_ERROR_LAYER_NOT_PRESENT = -6,
  123. VK_ERROR_EXTENSION_NOT_PRESENT = -7,
  124. VK_ERROR_FEATURE_NOT_PRESENT = -8,
  125. VK_ERROR_INCOMPATIBLE_DRIVER = -9,
  126. VK_ERROR_TOO_MANY_OBJECTS = -10,
  127. VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
  128. VK_ERROR_FRAGMENTED_POOL = -12,
  129. VK_ERROR_UNKNOWN = -13,
  130. VK_ERROR_VALIDATION_FAILED = -1000011001,
  131. VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
  132. VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
  133. VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
  134. VK_ERROR_FRAGMENTATION = -1000161000,
  135. VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
  136. VK_ERROR_NOT_PERMITTED = -1000174001,
  137. VK_ERROR_SURFACE_LOST_KHR = -1000000000,
  138. VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
  139. VK_SUBOPTIMAL_KHR = 1000001003,
  140. VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
  141. VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
  142. VK_ERROR_INVALID_SHADER_NV = -1000012000,
  143. VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
  144. VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
  145. VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
  146. VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
  147. VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
  148. VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
  149. VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
  150. VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT = -1000208000,
  151. VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
  152. VK_THREAD_IDLE_KHR = 1000268000,
  153. VK_THREAD_DONE_KHR = 1000268001,
  154. VK_OPERATION_DEFERRED_KHR = 1000268002,
  155. VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
  156. VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
  157. VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
  158. VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
  159. VK_PIPELINE_BINARY_MISSING_KHR = 1000483000,
  160. VK_ERROR_NOT_ENOUGH_SPACE_KHR = -1000483000,
  161. VK_ERROR_VALIDATION_FAILED_EXT = VK_ERROR_VALIDATION_FAILED,
  162. VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
  163. VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
  164. VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
  165. VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED,
  166. VK_ERROR_NOT_PERMITTED_KHR = VK_ERROR_NOT_PERMITTED,
  167. VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
  168. VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
  169. VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
  170. VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
  171. // VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT is a legacy alias
  172. VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
  173. VK_RESULT_MAX_ENUM = 0x7FFFFFFF
  174. } VkResult;
  175. typedef enum VkStructureType {
  176. VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
  177. VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
  178. VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
  179. VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
  180. VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
  181. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
  182. VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
  183. VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
  184. VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
  185. VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
  186. VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
  187. VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
  188. VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
  189. VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
  190. VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
  191. VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
  192. VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
  193. VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
  194. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
  195. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
  196. VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
  197. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
  198. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
  199. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
  200. VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
  201. VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
  202. VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
  203. VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
  204. VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
  205. VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
  206. VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
  207. VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
  208. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
  209. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
  210. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
  211. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
  212. VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
  213. VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
  214. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
  215. VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
  216. VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
  217. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
  218. VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
  219. VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
  220. VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
  221. VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
  222. VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
  223. VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
  224. VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
  225. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
  226. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
  227. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
  228. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
  229. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
  230. VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
  231. VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
  232. VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
  233. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
  234. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
  235. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
  236. VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
  237. VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
  238. VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
  239. VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
  240. VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
  241. VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
  242. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
  243. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
  244. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
  245. VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
  246. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
  247. VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
  248. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
  249. VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
  250. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
  251. VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
  252. VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
  253. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
  254. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
  255. VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
  256. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
  257. VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
  258. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
  259. VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
  260. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
  261. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
  262. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
  263. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
  264. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
  265. VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
  266. VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
  267. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
  268. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
  269. VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
  270. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
  271. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
  272. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
  273. VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
  274. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
  275. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
  276. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
  277. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
  278. VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
  279. VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
  280. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
  281. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
  282. VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
  283. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
  284. VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
  285. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
  286. VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
  287. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
  288. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
  289. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
  290. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
  291. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
  292. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
  293. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
  294. VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
  295. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
  296. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
  297. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
  298. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
  299. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
  300. VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
  301. VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
  302. VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
  303. VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
  304. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
  305. VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
  306. VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
  307. VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
  308. VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
  309. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
  310. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
  311. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
  312. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
  313. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
  314. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
  315. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
  316. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
  317. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
  318. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
  319. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
  320. VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
  321. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
  322. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
  323. VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
  324. VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
  325. VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
  326. VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
  327. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
  328. VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
  329. VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
  330. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
  331. VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
  332. VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
  333. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
  334. VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
  335. VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
  336. VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
  337. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
  338. VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
  339. VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
  340. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
  341. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
  342. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
  343. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
  344. VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
  345. VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
  346. VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
  347. VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
  348. VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
  349. VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
  350. VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
  351. VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
  352. VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
  353. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
  354. VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
  355. VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
  356. VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
  357. VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
  358. VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
  359. VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
  360. VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
  361. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
  362. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
  363. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
  364. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
  365. VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
  366. VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
  367. VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
  368. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
  369. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
  370. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
  371. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
  372. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
  373. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
  374. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
  375. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
  376. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
  377. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
  378. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
  379. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
  380. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
  381. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
  382. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
  383. VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
  384. VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
  385. VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
  386. VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
  387. VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
  388. VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
  389. VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
  390. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
  391. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
  392. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES = 55,
  393. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES = 56,
  394. VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO = 1000174000,
  395. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES = 1000388000,
  396. VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES = 1000388001,
  397. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES = 1000265000,
  398. VK_STRUCTURE_TYPE_MEMORY_MAP_INFO = 1000271000,
  399. VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO = 1000271001,
  400. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES = 1000470000,
  401. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES = 1000470001,
  402. VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO = 1000470004,
  403. VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2 = 1000338002,
  404. VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2 = 1000338003,
  405. VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO = 1000470006,
  406. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES = 1000545000,
  407. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES = 1000545001,
  408. VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS = 1000545002,
  409. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES = 1000270000,
  410. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES = 1000270001,
  411. VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY = 1000270002,
  412. VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY = 1000270003,
  413. VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO = 1000270004,
  414. VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO = 1000270005,
  415. VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO = 1000270006,
  416. VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO = 1000270007,
  417. VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE = 1000270008,
  418. VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY = 1000270009,
  419. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES = 1000416000,
  420. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES = 1000528000,
  421. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES = 1000544000,
  422. VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO = 1000470005,
  423. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES = 1000080000,
  424. VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO = 1000545003,
  425. VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO = 1000545004,
  426. VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO = 1000545005,
  427. VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO = 1000545006,
  428. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES = 1000466000,
  429. VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO = 1000068000,
  430. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES = 1000068001,
  431. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES = 1000068002,
  432. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES = 1000259000,
  433. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO = 1000259001,
  434. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES = 1000259002,
  435. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES = 1000525000,
  436. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO = 1000190001,
  437. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES = 1000190002,
  438. VK_STRUCTURE_TYPE_RENDERING_AREA_INFO = 1000470003,
  439. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES = 1000232000,
  440. VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO = 1000232001,
  441. VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO = 1000232002,
  442. VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
  443. VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
  444. VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
  445. VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
  446. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
  447. VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
  448. VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
  449. VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
  450. VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
  451. VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
  452. VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
  453. VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
  454. VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
  455. VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
  456. VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
  457. VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
  458. VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
  459. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
  460. VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
  461. VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
  462. VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
  463. VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
  464. VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
  465. VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
  466. VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
  467. VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
  468. VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
  469. VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
  470. VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
  471. VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
  472. VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
  473. VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
  474. VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
  475. VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
  476. VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
  477. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
  478. VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
  479. VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
  480. VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
  481. VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
  482. VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
  483. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
  484. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
  485. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
  486. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
  487. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
  488. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
  489. VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
  490. VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
  491. VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
  492. VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX = 1000029004,
  493. VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
  494. VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
  495. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
  496. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
  497. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
  498. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
  499. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
  500. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
  501. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
  502. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
  503. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
  504. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
  505. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
  506. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
  507. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
  508. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
  509. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
  510. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
  511. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
  512. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
  513. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
  514. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
  515. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
  516. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
  517. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
  518. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
  519. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
  520. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
  521. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
  522. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
  523. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
  524. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
  525. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
  526. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
  527. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
  528. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
  529. VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
  530. VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
  531. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
  532. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
  533. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
  534. VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
  535. VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
  536. VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
  537. VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
  538. VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
  539. VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
  540. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
  541. VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
  542. VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
  543. VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
  544. VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
  545. VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
  546. VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
  547. VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
  548. VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
  549. VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
  550. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
  551. VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
  552. VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
  553. VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
  554. VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
  555. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
  556. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
  557. VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
  558. VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
  559. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
  560. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
  561. VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
  562. VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
  563. VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
  564. VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
  565. VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
  566. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
  567. VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
  568. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
  569. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
  570. VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
  571. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
  572. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
  573. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
  574. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
  575. VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
  576. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
  577. VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
  578. VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
  579. VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
  580. VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
  581. VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
  582. VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
  583. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
  584. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
  585. VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
  586. VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
  587. VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
  588. VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
  589. VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
  590. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
  591. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
  592. VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
  593. VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
  594. VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
  595. VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
  596. VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
  597. VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
  598. VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
  599. VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
  600. VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
  601. VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
  602. VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
  603. VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
  604. VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
  605. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
  606. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
  607. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
  608. VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
  609. VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
  610. VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
  611. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
  612. #ifdef VK_ENABLE_BETA_EXTENSIONS
  613. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
  614. #endif
  615. #ifdef VK_ENABLE_BETA_EXTENSIONS
  616. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
  617. #endif
  618. #ifdef VK_ENABLE_BETA_EXTENSIONS
  619. VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
  620. #endif
  621. #ifdef VK_ENABLE_BETA_EXTENSIONS
  622. VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
  623. #endif
  624. #ifdef VK_ENABLE_BETA_EXTENSIONS
  625. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
  626. #endif
  627. VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
  628. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR = 1000141000,
  629. VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
  630. VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
  631. VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
  632. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
  633. VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
  634. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
  635. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
  636. VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
  637. VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
  638. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
  639. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
  640. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
  641. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
  642. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
  643. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
  644. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
  645. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
  646. VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
  647. VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
  648. VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
  649. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
  650. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
  651. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
  652. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
  653. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
  654. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
  655. VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
  656. VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
  657. VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
  658. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
  659. VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
  660. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
  661. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
  662. VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
  663. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
  664. VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
  665. VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
  666. VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
  667. VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
  668. VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
  669. VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
  670. #ifdef VK_ENABLE_BETA_EXTENSIONS
  671. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
  672. #endif
  673. #ifdef VK_ENABLE_BETA_EXTENSIONS
  674. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
  675. #endif
  676. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
  677. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
  678. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
  679. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
  680. VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
  681. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
  682. VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
  683. VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
  684. VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
  685. VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
  686. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
  687. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
  688. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
  689. VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
  690. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
  691. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
  692. VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
  693. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
  694. VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
  695. VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
  696. VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
  697. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
  698. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
  699. VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
  700. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
  701. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
  702. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
  703. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
  704. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
  705. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
  706. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
  707. VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
  708. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
  709. VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
  710. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
  711. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
  712. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
  713. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
  714. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
  715. VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
  716. VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
  717. VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
  718. VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
  719. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT = 1000208000,
  720. VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT = 1000208001,
  721. VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT = 1000208002,
  722. VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT = 1000208003,
  723. VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT = 1000208004,
  724. VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT = 1000208005,
  725. VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT = 1000208006,
  726. VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT = 1000208007,
  727. VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT = 1000208008,
  728. VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT = 1000208009,
  729. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
  730. VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
  731. VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
  732. VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
  733. VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
  734. VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
  735. VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
  736. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
  737. VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
  738. VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
  739. VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
  740. VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
  741. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
  742. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
  743. VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
  744. VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
  745. VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
  746. VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
  747. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
  748. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
  749. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
  750. VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
  751. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
  752. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
  753. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
  754. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
  755. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
  756. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
  757. VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
  758. VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
  759. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
  760. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
  761. VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
  762. VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
  763. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
  764. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
  765. VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
  766. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
  767. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
  768. VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
  769. VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
  770. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
  771. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
  772. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
  773. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
  774. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
  775. VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
  776. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
  777. VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
  778. VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
  779. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
  780. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
  781. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
  782. VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
  783. VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
  784. VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
  785. VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
  786. VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
  787. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
  788. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
  789. VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
  790. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
  791. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
  792. VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
  793. VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
  794. VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
  795. VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
  796. VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
  797. VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
  798. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
  799. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
  800. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
  801. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
  802. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
  803. VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
  804. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
  805. VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
  806. VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
  807. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
  808. VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
  809. VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
  810. VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
  811. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
  812. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
  813. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT = 1000288000,
  814. VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
  815. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
  816. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
  817. VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
  818. VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
  819. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
  820. VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
  821. VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
  822. VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
  823. VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
  824. VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
  825. VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
  826. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
  827. VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
  828. VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
  829. VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
  830. VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
  831. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
  832. VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
  833. #ifdef VK_ENABLE_BETA_EXTENSIONS
  834. VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
  835. #endif
  836. #ifdef VK_ENABLE_BETA_EXTENSIONS
  837. VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
  838. #endif
  839. #ifdef VK_ENABLE_BETA_EXTENSIONS
  840. VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
  841. #endif
  842. #ifdef VK_ENABLE_BETA_EXTENSIONS
  843. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
  844. #endif
  845. #ifdef VK_ENABLE_BETA_EXTENSIONS
  846. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
  847. #endif
  848. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM = 1000309000,
  849. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM = 1000309001,
  850. VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM = 1000309002,
  851. VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM = 1000309003,
  852. VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM = 1000309004,
  853. VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM = 1000309005,
  854. VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
  855. VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
  856. VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
  857. VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
  858. VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
  859. VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
  860. VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
  861. VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
  862. VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
  863. VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
  864. VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
  865. VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
  866. VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
  867. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
  868. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
  869. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
  870. VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
  871. VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
  872. VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
  873. VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
  874. VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
  875. VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
  876. VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
  877. VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
  878. VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
  879. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
  880. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
  881. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
  882. VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
  883. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
  884. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
  885. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
  886. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
  887. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
  888. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
  889. VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
  890. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
  891. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
  892. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
  893. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
  894. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
  895. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
  896. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
  897. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
  898. VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
  899. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
  900. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
  901. VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
  902. VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
  903. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
  904. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
  905. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
  906. VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
  907. VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
  908. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
  909. VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
  910. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
  911. VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
  912. VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
  913. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
  914. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
  915. VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
  916. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
  917. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
  918. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
  919. VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
  920. VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
  921. VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
  922. VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
  923. VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
  924. VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
  925. VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
  926. VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
  927. VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
  928. VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
  929. VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
  930. VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
  931. VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
  932. VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
  933. VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
  934. VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
  935. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
  936. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
  937. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
  938. VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
  939. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
  940. VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
  941. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
  942. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
  943. VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
  944. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
  945. VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
  946. VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
  947. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
  948. VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
  949. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
  950. VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
  951. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
  952. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
  953. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR = 1000387000,
  954. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE = 1000390000,
  955. VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE = 1000390001,
  956. VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE = 1000390002,
  957. VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE = 1000390003,
  958. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
  959. VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
  960. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
  961. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
  962. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
  963. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
  964. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
  965. VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
  966. VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
  967. VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
  968. VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
  969. VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
  970. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
  971. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
  972. VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
  973. VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
  974. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
  975. #ifdef VK_ENABLE_BETA_EXTENSIONS
  976. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
  977. #endif
  978. #ifdef VK_ENABLE_BETA_EXTENSIONS
  979. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
  980. #endif
  981. #ifdef VK_ENABLE_BETA_EXTENSIONS
  982. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
  983. #endif
  984. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
  985. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
  986. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
  987. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
  988. VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
  989. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
  990. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
  991. VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
  992. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
  993. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
  994. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
  995. VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
  996. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
  997. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
  998. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
  999. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
  1000. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
  1001. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
  1002. VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
  1003. VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
  1004. VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
  1005. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
  1006. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
  1007. VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
  1008. VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
  1009. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV = 1000429008,
  1010. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV = 1000429009,
  1011. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV = 1000429010,
  1012. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
  1013. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
  1014. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
  1015. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
  1016. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
  1017. VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
  1018. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
  1019. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
  1020. VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS = 1000452000,
  1021. VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS = 1000452001,
  1022. VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS = 1000452002,
  1023. VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS = 1000452003,
  1024. VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS = 1000452004,
  1025. VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS = 1000452005,
  1026. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
  1027. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
  1028. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
  1029. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
  1030. VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
  1031. VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
  1032. VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
  1033. VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
  1034. VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
  1035. VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM = 1000460000,
  1036. VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM = 1000460001,
  1037. VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM = 1000460002,
  1038. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM = 1000460003,
  1039. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM = 1000460004,
  1040. VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM = 1000460005,
  1041. VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM = 1000460006,
  1042. VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM = 1000460007,
  1043. VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM = 1000460008,
  1044. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM = 1000460009,
  1045. VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM = 1000460010,
  1046. VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM = 1000460011,
  1047. VK_STRUCTURE_TYPE_TENSOR_COPY_ARM = 1000460012,
  1048. VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM = 1000460013,
  1049. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM = 1000460014,
  1050. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM = 1000460015,
  1051. VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM = 1000460016,
  1052. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM = 1000460017,
  1053. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM = 1000460018,
  1054. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM = 1000460019,
  1055. VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM = 1000460020,
  1056. VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460021,
  1057. VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460022,
  1058. VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM = 1000460023,
  1059. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
  1060. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
  1061. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
  1062. VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
  1063. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
  1064. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
  1065. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
  1066. VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
  1067. VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
  1068. VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
  1069. VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
  1070. VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
  1071. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
  1072. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
  1073. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
  1074. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
  1075. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000,
  1076. VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001,
  1077. VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002,
  1078. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1079. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX = 1000478000,
  1080. #endif
  1081. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1082. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX = 1000478001,
  1083. #endif
  1084. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR = 1000479000,
  1085. VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR = 1000479001,
  1086. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR = 1000479002,
  1087. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR = 1000480000,
  1088. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR = 1000480001,
  1089. VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR = 1000480002,
  1090. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
  1091. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
  1092. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
  1093. VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
  1094. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
  1095. VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
  1096. VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
  1097. VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
  1098. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
  1099. VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
  1100. VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
  1101. VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
  1102. VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
  1103. VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
  1104. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
  1105. VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
  1106. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
  1107. VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
  1108. VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR = 1000274000,
  1109. VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR = 1000274001,
  1110. VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR = 1000274002,
  1111. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR = 1000275000,
  1112. VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR = 1000275001,
  1113. VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR = 1000275002,
  1114. VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR = 1000275003,
  1115. VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR = 1000275004,
  1116. VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR = 1000275005,
  1117. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
  1118. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
  1119. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
  1120. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV = 1000491000,
  1121. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491001,
  1122. VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491002,
  1123. VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV = 1000491004,
  1124. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
  1125. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
  1126. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
  1127. VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
  1128. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
  1129. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
  1130. VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
  1131. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
  1132. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
  1133. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
  1134. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
  1135. VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
  1136. VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
  1137. VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
  1138. VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
  1139. VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
  1140. VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
  1141. VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
  1142. VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
  1143. VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
  1144. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
  1145. VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
  1146. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
  1147. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM = 1000507000,
  1148. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM = 1000507001,
  1149. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM = 1000507002,
  1150. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM = 1000507003,
  1151. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM = 1000507004,
  1152. VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM = 1000507005,
  1153. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM = 1000507006,
  1154. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM = 1000507007,
  1155. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM = 1000507008,
  1156. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM = 1000507009,
  1157. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM = 1000507010,
  1158. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM = 1000507011,
  1159. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM = 1000507012,
  1160. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM = 1000507013,
  1161. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM = 1000507014,
  1162. VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM = 1000507016,
  1163. VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM = 1000507017,
  1164. VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM = 1000507018,
  1165. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM = 1000507019,
  1166. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM = 1000507015,
  1167. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
  1168. VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
  1169. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = 1000201000,
  1170. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = 1000511000,
  1171. VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
  1172. VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
  1173. VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
  1174. VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
  1175. VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
  1176. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR = 1000513000,
  1177. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000513001,
  1178. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR = 1000513002,
  1179. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR = 1000513003,
  1180. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR = 1000513004,
  1181. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR = 1000513005,
  1182. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR = 1000513006,
  1183. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR = 1000513007,
  1184. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR = 1000513008,
  1185. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR = 1000513009,
  1186. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR = 1000513010,
  1187. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR = 1000514000,
  1188. VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR = 1000514001,
  1189. VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR = 1000514002,
  1190. VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR = 1000514003,
  1191. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
  1192. VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
  1193. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
  1194. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
  1195. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
  1196. VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
  1197. VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
  1198. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
  1199. VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
  1200. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
  1201. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
  1202. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
  1203. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
  1204. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR = 1000527000,
  1205. VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT = 1000527001,
  1206. VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
  1207. VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
  1208. VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
  1209. VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
  1210. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
  1211. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
  1212. VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
  1213. VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
  1214. VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
  1215. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
  1216. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM = 1000547000,
  1217. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM = 1000547001,
  1218. VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM = 1000547002,
  1219. VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM = 1000547003,
  1220. VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM = 1000547004,
  1221. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR = 1000549000,
  1222. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR = 1000426001,
  1223. VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR = 1000549002,
  1224. VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR = 1000549003,
  1225. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT = 1000427000,
  1226. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT = 1000427001,
  1227. VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT = 1000550002,
  1228. VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = 1000551000,
  1229. VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = 1000551001,
  1230. VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR = 1000552000,
  1231. VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR = 1000552001,
  1232. VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR = 1000552002,
  1233. VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR = 1000552003,
  1234. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR = 1000552004,
  1235. VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553000,
  1236. VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553001,
  1237. VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR = 1000553002,
  1238. VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000553005,
  1239. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR = 1000553009,
  1240. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553003,
  1241. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553004,
  1242. VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553006,
  1243. VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553007,
  1244. VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553008,
  1245. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
  1246. VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV = 1000556000,
  1247. VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV = 1000556001,
  1248. VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV = 1000556002,
  1249. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV = 1000556003,
  1250. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
  1251. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = 1000559000,
  1252. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
  1253. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
  1254. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
  1255. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
  1256. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
  1257. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
  1258. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
  1259. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT = 1000567000,
  1260. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
  1261. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000,
  1262. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000569001,
  1263. VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV = 1000569002,
  1264. VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV = 1000569003,
  1265. VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV = 1000569004,
  1266. VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV = 1000569005,
  1267. VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV = 1000569006,
  1268. VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000569007,
  1269. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV = 1000570000,
  1270. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000570001,
  1271. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570002,
  1272. VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV = 1000570003,
  1273. VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV = 1000570004,
  1274. VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV = 1000570005,
  1275. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
  1276. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
  1277. VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
  1278. VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT = 1000572003,
  1279. VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT = 1000572004,
  1280. VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT = 1000572006,
  1281. VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT = 1000572007,
  1282. VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT = 1000572008,
  1283. VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT = 1000572009,
  1284. VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT = 1000572010,
  1285. VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT = 1000572011,
  1286. VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
  1287. VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
  1288. VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
  1289. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000,
  1290. VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002,
  1291. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
  1292. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
  1293. VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
  1294. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR = 1000579000,
  1295. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT = 1000581000,
  1296. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT = 1000581001,
  1297. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
  1298. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
  1299. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR = 1000584000,
  1300. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR = 1000584001,
  1301. VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR = 1000584002,
  1302. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR = 1000586000,
  1303. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001,
  1304. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002,
  1305. VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586003,
  1306. VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS = 1000685000,
  1307. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
  1308. VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
  1309. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
  1310. VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
  1311. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
  1312. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM = 1000596000,
  1313. VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT = 1000602000,
  1314. VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT = 1000602001,
  1315. VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT = 1000602002,
  1316. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR = 1000421000,
  1317. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM = 1000605000,
  1318. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM = 1000605001,
  1319. VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_ARM = 1000605002,
  1320. VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_ARM = 1000605003,
  1321. VK_STRUCTURE_TYPE_RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM = 1000605004,
  1322. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
  1323. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM = 1000609000,
  1324. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE = 1000611000,
  1325. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE = 1000611001,
  1326. VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE = 1000611002,
  1327. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR = 1000286000,
  1328. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR = 1000286001,
  1329. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1330. VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV = 1000613000,
  1331. #endif
  1332. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1333. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV = 1000613001,
  1334. #endif
  1335. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT = 1000425000,
  1336. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT = 1000425001,
  1337. VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT = 1000425002,
  1338. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT = 1000620000,
  1339. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR = 1000361000,
  1340. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT = 1000627000,
  1341. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT = 1000628000,
  1342. VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT = 1000628001,
  1343. VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT = 1000628002,
  1344. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM = 1000629000,
  1345. VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM = 1000629001,
  1346. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR = 1000630000,
  1347. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR = 1000630001,
  1348. VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR = 1000630002,
  1349. VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR = 1000619003,
  1350. VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR = 1000630004,
  1351. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT = 1000635000,
  1352. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT = 1000635001,
  1353. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC = 1000637000,
  1354. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT = 1000642000,
  1355. VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV = 1000645000,
  1356. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV = 1000645001,
  1357. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
  1358. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
  1359. // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a legacy alias
  1360. VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
  1361. VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
  1362. VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
  1363. VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
  1364. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
  1365. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
  1366. VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
  1367. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
  1368. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
  1369. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
  1370. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
  1371. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
  1372. VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
  1373. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
  1374. VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
  1375. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
  1376. VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
  1377. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
  1378. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
  1379. VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
  1380. VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
  1381. VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
  1382. VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
  1383. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
  1384. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
  1385. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
  1386. VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO,
  1387. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
  1388. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
  1389. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
  1390. VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
  1391. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
  1392. VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
  1393. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
  1394. VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
  1395. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
  1396. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
  1397. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
  1398. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
  1399. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
  1400. VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
  1401. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
  1402. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
  1403. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
  1404. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
  1405. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
  1406. VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
  1407. // VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT is a legacy alias
  1408. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
  1409. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
  1410. VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
  1411. VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
  1412. VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
  1413. VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
  1414. VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
  1415. VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
  1416. VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
  1417. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
  1418. VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
  1419. VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
  1420. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
  1421. VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
  1422. VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
  1423. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
  1424. VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
  1425. VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
  1426. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
  1427. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
  1428. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
  1429. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
  1430. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
  1431. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
  1432. VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
  1433. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
  1434. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
  1435. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
  1436. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
  1437. VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
  1438. VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
  1439. VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
  1440. VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
  1441. VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
  1442. VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
  1443. VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
  1444. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
  1445. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
  1446. VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
  1447. VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
  1448. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
  1449. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
  1450. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
  1451. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
  1452. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
  1453. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
  1454. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
  1455. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
  1456. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
  1457. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
  1458. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
  1459. VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
  1460. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
  1461. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
  1462. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
  1463. VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
  1464. VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
  1465. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
  1466. VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
  1467. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
  1468. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
  1469. VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
  1470. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
  1471. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
  1472. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
  1473. VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
  1474. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
  1475. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
  1476. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
  1477. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
  1478. VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
  1479. VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
  1480. VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
  1481. VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
  1482. // VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL is a legacy alias
  1483. VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
  1484. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
  1485. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
  1486. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
  1487. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
  1488. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
  1489. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
  1490. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
  1491. VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO,
  1492. VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
  1493. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
  1494. VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
  1495. VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
  1496. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
  1497. VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
  1498. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
  1499. VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
  1500. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
  1501. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
  1502. VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
  1503. VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
  1504. VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
  1505. VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
  1506. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
  1507. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
  1508. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
  1509. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
  1510. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
  1511. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
  1512. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
  1513. VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY,
  1514. VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY,
  1515. VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO,
  1516. VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO,
  1517. VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO,
  1518. VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO,
  1519. VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE,
  1520. VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
  1521. VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO,
  1522. VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO,
  1523. VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR,
  1524. VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR,
  1525. VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR,
  1526. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR,
  1527. VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR,
  1528. VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR,
  1529. VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR,
  1530. VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR,
  1531. VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR,
  1532. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
  1533. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
  1534. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
  1535. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
  1536. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR,
  1537. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR,
  1538. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
  1539. VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
  1540. VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
  1541. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
  1542. VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
  1543. VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
  1544. VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
  1545. VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
  1546. VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
  1547. VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
  1548. VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
  1549. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
  1550. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
  1551. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
  1552. VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
  1553. VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
  1554. VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
  1555. VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
  1556. VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
  1557. VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
  1558. VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
  1559. VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
  1560. VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
  1561. VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
  1562. VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
  1563. VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
  1564. VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
  1565. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
  1566. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
  1567. VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
  1568. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
  1569. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR,
  1570. VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
  1571. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
  1572. VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
  1573. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
  1574. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
  1575. VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
  1576. VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
  1577. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
  1578. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
  1579. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT,
  1580. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT,
  1581. VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT,
  1582. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR,
  1583. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT,
  1584. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT,
  1585. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
  1586. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
  1587. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
  1588. VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO,
  1589. VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO,
  1590. VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
  1591. VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
  1592. VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
  1593. VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
  1594. VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
  1595. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
  1596. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
  1597. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
  1598. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
  1599. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
  1600. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
  1601. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
  1602. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
  1603. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
  1604. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
  1605. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
  1606. VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS,
  1607. VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO,
  1608. VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO,
  1609. VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO,
  1610. VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
  1611. VK_STRUCTURE_TYPE_RENDERING_END_INFO_EXT = VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR,
  1612. VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
  1613. } VkStructureType;
  1614. typedef enum VkImageLayout {
  1615. VK_IMAGE_LAYOUT_UNDEFINED = 0,
  1616. VK_IMAGE_LAYOUT_GENERAL = 1,
  1617. VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
  1618. VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
  1619. VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
  1620. VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
  1621. VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
  1622. VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
  1623. VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
  1624. VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
  1625. VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
  1626. VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
  1627. VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
  1628. VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
  1629. VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
  1630. VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
  1631. VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
  1632. VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000,
  1633. VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
  1634. VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
  1635. VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
  1636. VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
  1637. VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
  1638. VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
  1639. VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
  1640. VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
  1641. VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
  1642. VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
  1643. VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
  1644. VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM = 1000460000,
  1645. VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000,
  1646. VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT = 1000620000,
  1647. VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
  1648. VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
  1649. VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
  1650. VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ,
  1651. VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
  1652. VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
  1653. VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
  1654. VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
  1655. VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
  1656. VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
  1657. VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
  1658. } VkImageLayout;
  1659. typedef enum VkObjectType {
  1660. VK_OBJECT_TYPE_UNKNOWN = 0,
  1661. VK_OBJECT_TYPE_INSTANCE = 1,
  1662. VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
  1663. VK_OBJECT_TYPE_DEVICE = 3,
  1664. VK_OBJECT_TYPE_QUEUE = 4,
  1665. VK_OBJECT_TYPE_SEMAPHORE = 5,
  1666. VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
  1667. VK_OBJECT_TYPE_FENCE = 7,
  1668. VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
  1669. VK_OBJECT_TYPE_BUFFER = 9,
  1670. VK_OBJECT_TYPE_IMAGE = 10,
  1671. VK_OBJECT_TYPE_EVENT = 11,
  1672. VK_OBJECT_TYPE_QUERY_POOL = 12,
  1673. VK_OBJECT_TYPE_BUFFER_VIEW = 13,
  1674. VK_OBJECT_TYPE_IMAGE_VIEW = 14,
  1675. VK_OBJECT_TYPE_SHADER_MODULE = 15,
  1676. VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
  1677. VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
  1678. VK_OBJECT_TYPE_RENDER_PASS = 18,
  1679. VK_OBJECT_TYPE_PIPELINE = 19,
  1680. VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
  1681. VK_OBJECT_TYPE_SAMPLER = 21,
  1682. VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
  1683. VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
  1684. VK_OBJECT_TYPE_FRAMEBUFFER = 24,
  1685. VK_OBJECT_TYPE_COMMAND_POOL = 25,
  1686. VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
  1687. VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
  1688. VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
  1689. VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
  1690. VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
  1691. VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
  1692. VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
  1693. VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
  1694. VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
  1695. VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
  1696. VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
  1697. VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
  1698. VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
  1699. VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
  1700. VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
  1701. VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
  1702. VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
  1703. VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
  1704. VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
  1705. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1706. VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
  1707. #endif
  1708. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1709. VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
  1710. #endif
  1711. VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
  1712. VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
  1713. VK_OBJECT_TYPE_TENSOR_ARM = 1000460000,
  1714. VK_OBJECT_TYPE_TENSOR_VIEW_ARM = 1000460001,
  1715. VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
  1716. VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
  1717. VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
  1718. VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM = 1000507000,
  1719. VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV = 1000556000,
  1720. VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = 1000572000,
  1721. VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = 1000572001,
  1722. VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
  1723. VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
  1724. VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
  1725. VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
  1726. } VkObjectType;
  1727. typedef enum VkVendorId {
  1728. VK_VENDOR_ID_KHRONOS = 0x10000,
  1729. VK_VENDOR_ID_VIV = 0x10001,
  1730. VK_VENDOR_ID_VSI = 0x10002,
  1731. VK_VENDOR_ID_KAZAN = 0x10003,
  1732. VK_VENDOR_ID_CODEPLAY = 0x10004,
  1733. VK_VENDOR_ID_MESA = 0x10005,
  1734. VK_VENDOR_ID_POCL = 0x10006,
  1735. VK_VENDOR_ID_MOBILEYE = 0x10007,
  1736. VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
  1737. } VkVendorId;
  1738. typedef enum VkSystemAllocationScope {
  1739. VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
  1740. VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
  1741. VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
  1742. VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
  1743. VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
  1744. VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
  1745. } VkSystemAllocationScope;
  1746. typedef enum VkInternalAllocationType {
  1747. VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
  1748. VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
  1749. } VkInternalAllocationType;
  1750. typedef enum VkFormat {
  1751. VK_FORMAT_UNDEFINED = 0,
  1752. VK_FORMAT_R4G4_UNORM_PACK8 = 1,
  1753. VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
  1754. VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
  1755. VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
  1756. VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
  1757. VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
  1758. VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
  1759. VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
  1760. VK_FORMAT_R8_UNORM = 9,
  1761. VK_FORMAT_R8_SNORM = 10,
  1762. VK_FORMAT_R8_USCALED = 11,
  1763. VK_FORMAT_R8_SSCALED = 12,
  1764. VK_FORMAT_R8_UINT = 13,
  1765. VK_FORMAT_R8_SINT = 14,
  1766. VK_FORMAT_R8_SRGB = 15,
  1767. VK_FORMAT_R8G8_UNORM = 16,
  1768. VK_FORMAT_R8G8_SNORM = 17,
  1769. VK_FORMAT_R8G8_USCALED = 18,
  1770. VK_FORMAT_R8G8_SSCALED = 19,
  1771. VK_FORMAT_R8G8_UINT = 20,
  1772. VK_FORMAT_R8G8_SINT = 21,
  1773. VK_FORMAT_R8G8_SRGB = 22,
  1774. VK_FORMAT_R8G8B8_UNORM = 23,
  1775. VK_FORMAT_R8G8B8_SNORM = 24,
  1776. VK_FORMAT_R8G8B8_USCALED = 25,
  1777. VK_FORMAT_R8G8B8_SSCALED = 26,
  1778. VK_FORMAT_R8G8B8_UINT = 27,
  1779. VK_FORMAT_R8G8B8_SINT = 28,
  1780. VK_FORMAT_R8G8B8_SRGB = 29,
  1781. VK_FORMAT_B8G8R8_UNORM = 30,
  1782. VK_FORMAT_B8G8R8_SNORM = 31,
  1783. VK_FORMAT_B8G8R8_USCALED = 32,
  1784. VK_FORMAT_B8G8R8_SSCALED = 33,
  1785. VK_FORMAT_B8G8R8_UINT = 34,
  1786. VK_FORMAT_B8G8R8_SINT = 35,
  1787. VK_FORMAT_B8G8R8_SRGB = 36,
  1788. VK_FORMAT_R8G8B8A8_UNORM = 37,
  1789. VK_FORMAT_R8G8B8A8_SNORM = 38,
  1790. VK_FORMAT_R8G8B8A8_USCALED = 39,
  1791. VK_FORMAT_R8G8B8A8_SSCALED = 40,
  1792. VK_FORMAT_R8G8B8A8_UINT = 41,
  1793. VK_FORMAT_R8G8B8A8_SINT = 42,
  1794. VK_FORMAT_R8G8B8A8_SRGB = 43,
  1795. VK_FORMAT_B8G8R8A8_UNORM = 44,
  1796. VK_FORMAT_B8G8R8A8_SNORM = 45,
  1797. VK_FORMAT_B8G8R8A8_USCALED = 46,
  1798. VK_FORMAT_B8G8R8A8_SSCALED = 47,
  1799. VK_FORMAT_B8G8R8A8_UINT = 48,
  1800. VK_FORMAT_B8G8R8A8_SINT = 49,
  1801. VK_FORMAT_B8G8R8A8_SRGB = 50,
  1802. VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
  1803. VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
  1804. VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
  1805. VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
  1806. VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
  1807. VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
  1808. VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
  1809. VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
  1810. VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
  1811. VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
  1812. VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
  1813. VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
  1814. VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
  1815. VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
  1816. VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
  1817. VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
  1818. VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
  1819. VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
  1820. VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
  1821. VK_FORMAT_R16_UNORM = 70,
  1822. VK_FORMAT_R16_SNORM = 71,
  1823. VK_FORMAT_R16_USCALED = 72,
  1824. VK_FORMAT_R16_SSCALED = 73,
  1825. VK_FORMAT_R16_UINT = 74,
  1826. VK_FORMAT_R16_SINT = 75,
  1827. VK_FORMAT_R16_SFLOAT = 76,
  1828. VK_FORMAT_R16G16_UNORM = 77,
  1829. VK_FORMAT_R16G16_SNORM = 78,
  1830. VK_FORMAT_R16G16_USCALED = 79,
  1831. VK_FORMAT_R16G16_SSCALED = 80,
  1832. VK_FORMAT_R16G16_UINT = 81,
  1833. VK_FORMAT_R16G16_SINT = 82,
  1834. VK_FORMAT_R16G16_SFLOAT = 83,
  1835. VK_FORMAT_R16G16B16_UNORM = 84,
  1836. VK_FORMAT_R16G16B16_SNORM = 85,
  1837. VK_FORMAT_R16G16B16_USCALED = 86,
  1838. VK_FORMAT_R16G16B16_SSCALED = 87,
  1839. VK_FORMAT_R16G16B16_UINT = 88,
  1840. VK_FORMAT_R16G16B16_SINT = 89,
  1841. VK_FORMAT_R16G16B16_SFLOAT = 90,
  1842. VK_FORMAT_R16G16B16A16_UNORM = 91,
  1843. VK_FORMAT_R16G16B16A16_SNORM = 92,
  1844. VK_FORMAT_R16G16B16A16_USCALED = 93,
  1845. VK_FORMAT_R16G16B16A16_SSCALED = 94,
  1846. VK_FORMAT_R16G16B16A16_UINT = 95,
  1847. VK_FORMAT_R16G16B16A16_SINT = 96,
  1848. VK_FORMAT_R16G16B16A16_SFLOAT = 97,
  1849. VK_FORMAT_R32_UINT = 98,
  1850. VK_FORMAT_R32_SINT = 99,
  1851. VK_FORMAT_R32_SFLOAT = 100,
  1852. VK_FORMAT_R32G32_UINT = 101,
  1853. VK_FORMAT_R32G32_SINT = 102,
  1854. VK_FORMAT_R32G32_SFLOAT = 103,
  1855. VK_FORMAT_R32G32B32_UINT = 104,
  1856. VK_FORMAT_R32G32B32_SINT = 105,
  1857. VK_FORMAT_R32G32B32_SFLOAT = 106,
  1858. VK_FORMAT_R32G32B32A32_UINT = 107,
  1859. VK_FORMAT_R32G32B32A32_SINT = 108,
  1860. VK_FORMAT_R32G32B32A32_SFLOAT = 109,
  1861. VK_FORMAT_R64_UINT = 110,
  1862. VK_FORMAT_R64_SINT = 111,
  1863. VK_FORMAT_R64_SFLOAT = 112,
  1864. VK_FORMAT_R64G64_UINT = 113,
  1865. VK_FORMAT_R64G64_SINT = 114,
  1866. VK_FORMAT_R64G64_SFLOAT = 115,
  1867. VK_FORMAT_R64G64B64_UINT = 116,
  1868. VK_FORMAT_R64G64B64_SINT = 117,
  1869. VK_FORMAT_R64G64B64_SFLOAT = 118,
  1870. VK_FORMAT_R64G64B64A64_UINT = 119,
  1871. VK_FORMAT_R64G64B64A64_SINT = 120,
  1872. VK_FORMAT_R64G64B64A64_SFLOAT = 121,
  1873. VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
  1874. VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
  1875. VK_FORMAT_D16_UNORM = 124,
  1876. VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
  1877. VK_FORMAT_D32_SFLOAT = 126,
  1878. VK_FORMAT_S8_UINT = 127,
  1879. VK_FORMAT_D16_UNORM_S8_UINT = 128,
  1880. VK_FORMAT_D24_UNORM_S8_UINT = 129,
  1881. VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
  1882. VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
  1883. VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
  1884. VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
  1885. VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
  1886. VK_FORMAT_BC2_UNORM_BLOCK = 135,
  1887. VK_FORMAT_BC2_SRGB_BLOCK = 136,
  1888. VK_FORMAT_BC3_UNORM_BLOCK = 137,
  1889. VK_FORMAT_BC3_SRGB_BLOCK = 138,
  1890. VK_FORMAT_BC4_UNORM_BLOCK = 139,
  1891. VK_FORMAT_BC4_SNORM_BLOCK = 140,
  1892. VK_FORMAT_BC5_UNORM_BLOCK = 141,
  1893. VK_FORMAT_BC5_SNORM_BLOCK = 142,
  1894. VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
  1895. VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
  1896. VK_FORMAT_BC7_UNORM_BLOCK = 145,
  1897. VK_FORMAT_BC7_SRGB_BLOCK = 146,
  1898. VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
  1899. VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
  1900. VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
  1901. VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
  1902. VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
  1903. VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
  1904. VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
  1905. VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
  1906. VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
  1907. VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
  1908. VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
  1909. VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
  1910. VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
  1911. VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
  1912. VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
  1913. VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
  1914. VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
  1915. VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
  1916. VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
  1917. VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
  1918. VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
  1919. VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
  1920. VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
  1921. VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
  1922. VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
  1923. VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
  1924. VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
  1925. VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
  1926. VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
  1927. VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
  1928. VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
  1929. VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
  1930. VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
  1931. VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
  1932. VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
  1933. VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
  1934. VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
  1935. VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
  1936. VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
  1937. VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
  1938. VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
  1939. VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
  1940. VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
  1941. VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
  1942. VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
  1943. VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
  1944. VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
  1945. VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
  1946. VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
  1947. VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
  1948. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
  1949. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
  1950. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
  1951. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
  1952. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
  1953. VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
  1954. VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
  1955. VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
  1956. VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
  1957. VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
  1958. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
  1959. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
  1960. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
  1961. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
  1962. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
  1963. VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
  1964. VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
  1965. VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
  1966. VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
  1967. VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
  1968. VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
  1969. VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
  1970. VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
  1971. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
  1972. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
  1973. VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
  1974. VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
  1975. VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
  1976. VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
  1977. VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
  1978. VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
  1979. VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
  1980. VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
  1981. VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
  1982. VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
  1983. VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
  1984. VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
  1985. VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
  1986. VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
  1987. VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
  1988. VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
  1989. VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
  1990. VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000,
  1991. VK_FORMAT_A8_UNORM = 1000470001,
  1992. VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
  1993. VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
  1994. VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
  1995. VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
  1996. VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
  1997. VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
  1998. VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
  1999. VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
  2000. VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT = 1000288000,
  2001. VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT = 1000288001,
  2002. VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT = 1000288002,
  2003. VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT = 1000288003,
  2004. VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT = 1000288004,
  2005. VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT = 1000288005,
  2006. VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT = 1000288006,
  2007. VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT = 1000288007,
  2008. VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT = 1000288008,
  2009. VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT = 1000288009,
  2010. VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT = 1000288010,
  2011. VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT = 1000288011,
  2012. VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT = 1000288012,
  2013. VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT = 1000288013,
  2014. VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT = 1000288014,
  2015. VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT = 1000288015,
  2016. VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT = 1000288016,
  2017. VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT = 1000288017,
  2018. VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT = 1000288018,
  2019. VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT = 1000288019,
  2020. VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT = 1000288020,
  2021. VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT = 1000288021,
  2022. VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT = 1000288022,
  2023. VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT = 1000288023,
  2024. VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT = 1000288024,
  2025. VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT = 1000288025,
  2026. VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT = 1000288026,
  2027. VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT = 1000288027,
  2028. VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT = 1000288028,
  2029. VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT = 1000288029,
  2030. VK_FORMAT_R8_BOOL_ARM = 1000460000,
  2031. VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
  2032. VK_FORMAT_R10X6_UINT_PACK16_ARM = 1000609000,
  2033. VK_FORMAT_R10X6G10X6_UINT_2PACK16_ARM = 1000609001,
  2034. VK_FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM = 1000609002,
  2035. VK_FORMAT_R12X4_UINT_PACK16_ARM = 1000609003,
  2036. VK_FORMAT_R12X4G12X4_UINT_2PACK16_ARM = 1000609004,
  2037. VK_FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM = 1000609005,
  2038. VK_FORMAT_R14X2_UINT_PACK16_ARM = 1000609006,
  2039. VK_FORMAT_R14X2G14X2_UINT_2PACK16_ARM = 1000609007,
  2040. VK_FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM = 1000609008,
  2041. VK_FORMAT_R14X2_UNORM_PACK16_ARM = 1000609009,
  2042. VK_FORMAT_R14X2G14X2_UNORM_2PACK16_ARM = 1000609010,
  2043. VK_FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM = 1000609011,
  2044. VK_FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM = 1000609012,
  2045. VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM = 1000609013,
  2046. VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
  2047. VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
  2048. VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
  2049. VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
  2050. VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
  2051. VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
  2052. VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
  2053. VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
  2054. VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
  2055. VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
  2056. VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
  2057. VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
  2058. VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
  2059. VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
  2060. VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
  2061. VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
  2062. VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
  2063. VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
  2064. VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
  2065. VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
  2066. VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
  2067. VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
  2068. VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
  2069. VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
  2070. VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
  2071. VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
  2072. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
  2073. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
  2074. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
  2075. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
  2076. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
  2077. VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
  2078. VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
  2079. VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
  2080. VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
  2081. VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
  2082. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
  2083. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
  2084. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
  2085. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
  2086. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
  2087. VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
  2088. VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
  2089. VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
  2090. VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
  2091. VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
  2092. VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
  2093. VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
  2094. VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
  2095. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
  2096. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
  2097. VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
  2098. VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
  2099. VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
  2100. // VK_FORMAT_R16G16_S10_5_NV is a legacy alias
  2101. VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
  2102. VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16,
  2103. VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM,
  2104. VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
  2105. } VkFormat;
  2106. typedef enum VkImageTiling {
  2107. VK_IMAGE_TILING_OPTIMAL = 0,
  2108. VK_IMAGE_TILING_LINEAR = 1,
  2109. VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
  2110. VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
  2111. } VkImageTiling;
  2112. typedef enum VkImageType {
  2113. VK_IMAGE_TYPE_1D = 0,
  2114. VK_IMAGE_TYPE_2D = 1,
  2115. VK_IMAGE_TYPE_3D = 2,
  2116. VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
  2117. } VkImageType;
  2118. typedef enum VkPhysicalDeviceType {
  2119. VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
  2120. VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
  2121. VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
  2122. VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
  2123. VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
  2124. VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
  2125. } VkPhysicalDeviceType;
  2126. typedef enum VkQueryType {
  2127. VK_QUERY_TYPE_OCCLUSION = 0,
  2128. VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
  2129. VK_QUERY_TYPE_TIMESTAMP = 2,
  2130. VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
  2131. VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
  2132. VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
  2133. VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
  2134. VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
  2135. VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
  2136. VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
  2137. VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
  2138. VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
  2139. VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
  2140. VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
  2141. VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
  2142. VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
  2143. VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
  2144. VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
  2145. } VkQueryType;
  2146. typedef enum VkSharingMode {
  2147. VK_SHARING_MODE_EXCLUSIVE = 0,
  2148. VK_SHARING_MODE_CONCURRENT = 1,
  2149. VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
  2150. } VkSharingMode;
  2151. typedef enum VkComponentSwizzle {
  2152. VK_COMPONENT_SWIZZLE_IDENTITY = 0,
  2153. VK_COMPONENT_SWIZZLE_ZERO = 1,
  2154. VK_COMPONENT_SWIZZLE_ONE = 2,
  2155. VK_COMPONENT_SWIZZLE_R = 3,
  2156. VK_COMPONENT_SWIZZLE_G = 4,
  2157. VK_COMPONENT_SWIZZLE_B = 5,
  2158. VK_COMPONENT_SWIZZLE_A = 6,
  2159. VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
  2160. } VkComponentSwizzle;
  2161. typedef enum VkImageViewType {
  2162. VK_IMAGE_VIEW_TYPE_1D = 0,
  2163. VK_IMAGE_VIEW_TYPE_2D = 1,
  2164. VK_IMAGE_VIEW_TYPE_3D = 2,
  2165. VK_IMAGE_VIEW_TYPE_CUBE = 3,
  2166. VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
  2167. VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
  2168. VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
  2169. VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
  2170. } VkImageViewType;
  2171. typedef enum VkCommandBufferLevel {
  2172. VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
  2173. VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
  2174. VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
  2175. } VkCommandBufferLevel;
  2176. typedef enum VkIndexType {
  2177. VK_INDEX_TYPE_UINT16 = 0,
  2178. VK_INDEX_TYPE_UINT32 = 1,
  2179. VK_INDEX_TYPE_UINT8 = 1000265000,
  2180. VK_INDEX_TYPE_NONE_KHR = 1000165000,
  2181. VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
  2182. VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8,
  2183. VK_INDEX_TYPE_UINT8_KHR = VK_INDEX_TYPE_UINT8,
  2184. VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
  2185. } VkIndexType;
  2186. typedef enum VkPipelineCacheHeaderVersion {
  2187. VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
  2188. VK_PIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOM = 1000629000,
  2189. VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
  2190. } VkPipelineCacheHeaderVersion;
  2191. typedef enum VkBorderColor {
  2192. VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
  2193. VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
  2194. VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
  2195. VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
  2196. VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
  2197. VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
  2198. VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
  2199. VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
  2200. VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
  2201. } VkBorderColor;
  2202. typedef enum VkFilter {
  2203. VK_FILTER_NEAREST = 0,
  2204. VK_FILTER_LINEAR = 1,
  2205. VK_FILTER_CUBIC_EXT = 1000015000,
  2206. VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
  2207. VK_FILTER_MAX_ENUM = 0x7FFFFFFF
  2208. } VkFilter;
  2209. typedef enum VkSamplerAddressMode {
  2210. VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
  2211. VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
  2212. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
  2213. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
  2214. VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
  2215. // VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR is a legacy alias
  2216. VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
  2217. VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
  2218. } VkSamplerAddressMode;
  2219. typedef enum VkSamplerMipmapMode {
  2220. VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
  2221. VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
  2222. VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
  2223. } VkSamplerMipmapMode;
  2224. typedef enum VkCompareOp {
  2225. VK_COMPARE_OP_NEVER = 0,
  2226. VK_COMPARE_OP_LESS = 1,
  2227. VK_COMPARE_OP_EQUAL = 2,
  2228. VK_COMPARE_OP_LESS_OR_EQUAL = 3,
  2229. VK_COMPARE_OP_GREATER = 4,
  2230. VK_COMPARE_OP_NOT_EQUAL = 5,
  2231. VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
  2232. VK_COMPARE_OP_ALWAYS = 7,
  2233. VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
  2234. } VkCompareOp;
  2235. typedef enum VkDescriptorType {
  2236. VK_DESCRIPTOR_TYPE_SAMPLER = 0,
  2237. VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
  2238. VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
  2239. VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
  2240. VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
  2241. VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
  2242. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
  2243. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
  2244. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
  2245. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
  2246. VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
  2247. VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
  2248. VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
  2249. VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
  2250. VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
  2251. VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
  2252. VK_DESCRIPTOR_TYPE_TENSOR_ARM = 1000460000,
  2253. VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
  2254. VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000,
  2255. VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
  2256. VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
  2257. VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
  2258. } VkDescriptorType;
  2259. typedef enum VkPipelineBindPoint {
  2260. VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
  2261. VK_PIPELINE_BIND_POINT_COMPUTE = 1,
  2262. #ifdef VK_ENABLE_BETA_EXTENSIONS
  2263. VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
  2264. #endif
  2265. VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
  2266. VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
  2267. VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM = 1000507000,
  2268. VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
  2269. VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
  2270. } VkPipelineBindPoint;
  2271. typedef enum VkBlendFactor {
  2272. VK_BLEND_FACTOR_ZERO = 0,
  2273. VK_BLEND_FACTOR_ONE = 1,
  2274. VK_BLEND_FACTOR_SRC_COLOR = 2,
  2275. VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
  2276. VK_BLEND_FACTOR_DST_COLOR = 4,
  2277. VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
  2278. VK_BLEND_FACTOR_SRC_ALPHA = 6,
  2279. VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
  2280. VK_BLEND_FACTOR_DST_ALPHA = 8,
  2281. VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
  2282. VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
  2283. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
  2284. VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
  2285. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
  2286. VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
  2287. VK_BLEND_FACTOR_SRC1_COLOR = 15,
  2288. VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
  2289. VK_BLEND_FACTOR_SRC1_ALPHA = 17,
  2290. VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
  2291. VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
  2292. } VkBlendFactor;
  2293. typedef enum VkBlendOp {
  2294. VK_BLEND_OP_ADD = 0,
  2295. VK_BLEND_OP_SUBTRACT = 1,
  2296. VK_BLEND_OP_REVERSE_SUBTRACT = 2,
  2297. VK_BLEND_OP_MIN = 3,
  2298. VK_BLEND_OP_MAX = 4,
  2299. VK_BLEND_OP_ZERO_EXT = 1000148000,
  2300. VK_BLEND_OP_SRC_EXT = 1000148001,
  2301. VK_BLEND_OP_DST_EXT = 1000148002,
  2302. VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
  2303. VK_BLEND_OP_DST_OVER_EXT = 1000148004,
  2304. VK_BLEND_OP_SRC_IN_EXT = 1000148005,
  2305. VK_BLEND_OP_DST_IN_EXT = 1000148006,
  2306. VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
  2307. VK_BLEND_OP_DST_OUT_EXT = 1000148008,
  2308. VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
  2309. VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
  2310. VK_BLEND_OP_XOR_EXT = 1000148011,
  2311. VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
  2312. VK_BLEND_OP_SCREEN_EXT = 1000148013,
  2313. VK_BLEND_OP_OVERLAY_EXT = 1000148014,
  2314. VK_BLEND_OP_DARKEN_EXT = 1000148015,
  2315. VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
  2316. VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
  2317. VK_BLEND_OP_COLORBURN_EXT = 1000148018,
  2318. VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
  2319. VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
  2320. VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
  2321. VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
  2322. VK_BLEND_OP_INVERT_EXT = 1000148023,
  2323. VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
  2324. VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
  2325. VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
  2326. VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
  2327. VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
  2328. VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
  2329. VK_BLEND_OP_HARDMIX_EXT = 1000148030,
  2330. VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
  2331. VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
  2332. VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
  2333. VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
  2334. VK_BLEND_OP_PLUS_EXT = 1000148035,
  2335. VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
  2336. VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
  2337. VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
  2338. VK_BLEND_OP_MINUS_EXT = 1000148039,
  2339. VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
  2340. VK_BLEND_OP_CONTRAST_EXT = 1000148041,
  2341. VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
  2342. VK_BLEND_OP_RED_EXT = 1000148043,
  2343. VK_BLEND_OP_GREEN_EXT = 1000148044,
  2344. VK_BLEND_OP_BLUE_EXT = 1000148045,
  2345. VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
  2346. } VkBlendOp;
  2347. typedef enum VkDynamicState {
  2348. VK_DYNAMIC_STATE_VIEWPORT = 0,
  2349. VK_DYNAMIC_STATE_SCISSOR = 1,
  2350. VK_DYNAMIC_STATE_LINE_WIDTH = 2,
  2351. VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
  2352. VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
  2353. VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
  2354. VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
  2355. VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
  2356. VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
  2357. VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
  2358. VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
  2359. VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
  2360. VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
  2361. VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
  2362. VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
  2363. VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
  2364. VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
  2365. VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
  2366. VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
  2367. VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
  2368. VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
  2369. VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
  2370. VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
  2371. VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
  2372. VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000,
  2373. VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
  2374. VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
  2375. VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
  2376. VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
  2377. VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
  2378. VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
  2379. VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
  2380. VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
  2381. VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
  2382. VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
  2383. VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
  2384. VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
  2385. VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
  2386. VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
  2387. VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
  2388. VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
  2389. VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
  2390. VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
  2391. VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
  2392. VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
  2393. VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
  2394. VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
  2395. VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
  2396. VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
  2397. VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
  2398. VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
  2399. VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
  2400. VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
  2401. VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
  2402. VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
  2403. VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
  2404. VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
  2405. VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
  2406. VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
  2407. VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
  2408. VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
  2409. VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
  2410. VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
  2411. VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
  2412. VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
  2413. VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
  2414. VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
  2415. VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
  2416. VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
  2417. VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
  2418. VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
  2419. VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
  2420. VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000,
  2421. VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE,
  2422. VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
  2423. VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
  2424. VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
  2425. VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
  2426. VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
  2427. VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
  2428. VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
  2429. VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
  2430. VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
  2431. VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
  2432. VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
  2433. VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
  2434. VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
  2435. VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
  2436. VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
  2437. VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = VK_DYNAMIC_STATE_LINE_STIPPLE,
  2438. VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
  2439. } VkDynamicState;
  2440. typedef enum VkFrontFace {
  2441. VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
  2442. VK_FRONT_FACE_CLOCKWISE = 1,
  2443. VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
  2444. } VkFrontFace;
  2445. typedef enum VkVertexInputRate {
  2446. VK_VERTEX_INPUT_RATE_VERTEX = 0,
  2447. VK_VERTEX_INPUT_RATE_INSTANCE = 1,
  2448. VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
  2449. } VkVertexInputRate;
  2450. typedef enum VkPrimitiveTopology {
  2451. VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
  2452. VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
  2453. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
  2454. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
  2455. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
  2456. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
  2457. VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
  2458. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
  2459. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
  2460. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
  2461. VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
  2462. VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
  2463. } VkPrimitiveTopology;
  2464. typedef enum VkPolygonMode {
  2465. VK_POLYGON_MODE_FILL = 0,
  2466. VK_POLYGON_MODE_LINE = 1,
  2467. VK_POLYGON_MODE_POINT = 2,
  2468. VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
  2469. VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
  2470. } VkPolygonMode;
  2471. typedef enum VkStencilOp {
  2472. VK_STENCIL_OP_KEEP = 0,
  2473. VK_STENCIL_OP_ZERO = 1,
  2474. VK_STENCIL_OP_REPLACE = 2,
  2475. VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
  2476. VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
  2477. VK_STENCIL_OP_INVERT = 5,
  2478. VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
  2479. VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
  2480. VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
  2481. } VkStencilOp;
  2482. typedef enum VkLogicOp {
  2483. VK_LOGIC_OP_CLEAR = 0,
  2484. VK_LOGIC_OP_AND = 1,
  2485. VK_LOGIC_OP_AND_REVERSE = 2,
  2486. VK_LOGIC_OP_COPY = 3,
  2487. VK_LOGIC_OP_AND_INVERTED = 4,
  2488. VK_LOGIC_OP_NO_OP = 5,
  2489. VK_LOGIC_OP_XOR = 6,
  2490. VK_LOGIC_OP_OR = 7,
  2491. VK_LOGIC_OP_NOR = 8,
  2492. VK_LOGIC_OP_EQUIVALENT = 9,
  2493. VK_LOGIC_OP_INVERT = 10,
  2494. VK_LOGIC_OP_OR_REVERSE = 11,
  2495. VK_LOGIC_OP_COPY_INVERTED = 12,
  2496. VK_LOGIC_OP_OR_INVERTED = 13,
  2497. VK_LOGIC_OP_NAND = 14,
  2498. VK_LOGIC_OP_SET = 15,
  2499. VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
  2500. } VkLogicOp;
  2501. typedef enum VkAttachmentLoadOp {
  2502. VK_ATTACHMENT_LOAD_OP_LOAD = 0,
  2503. VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
  2504. VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
  2505. VK_ATTACHMENT_LOAD_OP_NONE = 1000400000,
  2506. VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE,
  2507. VK_ATTACHMENT_LOAD_OP_NONE_KHR = VK_ATTACHMENT_LOAD_OP_NONE,
  2508. VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
  2509. } VkAttachmentLoadOp;
  2510. typedef enum VkAttachmentStoreOp {
  2511. VK_ATTACHMENT_STORE_OP_STORE = 0,
  2512. VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
  2513. VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
  2514. VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
  2515. VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
  2516. VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
  2517. VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
  2518. } VkAttachmentStoreOp;
  2519. typedef enum VkSubpassContents {
  2520. VK_SUBPASS_CONTENTS_INLINE = 0,
  2521. VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
  2522. VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
  2523. VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
  2524. VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
  2525. } VkSubpassContents;
  2526. typedef enum VkAccessFlagBits {
  2527. VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
  2528. VK_ACCESS_INDEX_READ_BIT = 0x00000002,
  2529. VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
  2530. VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
  2531. VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
  2532. VK_ACCESS_SHADER_READ_BIT = 0x00000020,
  2533. VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
  2534. VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
  2535. VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
  2536. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
  2537. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
  2538. VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
  2539. VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
  2540. VK_ACCESS_HOST_READ_BIT = 0x00002000,
  2541. VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
  2542. VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
  2543. VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
  2544. VK_ACCESS_NONE = 0,
  2545. VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
  2546. VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
  2547. VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
  2548. VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
  2549. VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
  2550. VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
  2551. VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
  2552. VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
  2553. VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
  2554. VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000,
  2555. VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000,
  2556. VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
  2557. VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
  2558. VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
  2559. VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT,
  2560. VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT,
  2561. VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
  2562. VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2563. } VkAccessFlagBits;
  2564. typedef VkFlags VkAccessFlags;
  2565. typedef enum VkImageAspectFlagBits {
  2566. VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
  2567. VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
  2568. VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
  2569. VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
  2570. VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
  2571. VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
  2572. VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
  2573. VK_IMAGE_ASPECT_NONE = 0,
  2574. VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
  2575. VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
  2576. VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
  2577. VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
  2578. VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
  2579. VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
  2580. VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
  2581. VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
  2582. VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2583. } VkImageAspectFlagBits;
  2584. typedef VkFlags VkImageAspectFlags;
  2585. typedef enum VkFormatFeatureFlagBits {
  2586. VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
  2587. VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
  2588. VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
  2589. VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
  2590. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
  2591. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
  2592. VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
  2593. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
  2594. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
  2595. VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
  2596. VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
  2597. VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
  2598. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
  2599. VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
  2600. VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
  2601. VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
  2602. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
  2603. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
  2604. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
  2605. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
  2606. VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
  2607. VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
  2608. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
  2609. VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
  2610. VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
  2611. VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
  2612. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
  2613. VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
  2614. VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
  2615. VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
  2616. VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
  2617. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
  2618. VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
  2619. VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
  2620. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
  2621. VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
  2622. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
  2623. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
  2624. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
  2625. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
  2626. VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
  2627. VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
  2628. VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2629. } VkFormatFeatureFlagBits;
  2630. typedef VkFlags VkFormatFeatureFlags;
  2631. typedef enum VkImageCreateFlagBits {
  2632. VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
  2633. VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
  2634. VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
  2635. VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
  2636. VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
  2637. VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
  2638. VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
  2639. VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
  2640. VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
  2641. VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
  2642. VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
  2643. VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
  2644. VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
  2645. VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
  2646. VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
  2647. VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
  2648. VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
  2649. VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
  2650. VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
  2651. VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT = 0x00008000,
  2652. VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
  2653. VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
  2654. VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
  2655. VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
  2656. VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
  2657. VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
  2658. VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
  2659. VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2660. } VkImageCreateFlagBits;
  2661. typedef VkFlags VkImageCreateFlags;
  2662. typedef enum VkSampleCountFlagBits {
  2663. VK_SAMPLE_COUNT_1_BIT = 0x00000001,
  2664. VK_SAMPLE_COUNT_2_BIT = 0x00000002,
  2665. VK_SAMPLE_COUNT_4_BIT = 0x00000004,
  2666. VK_SAMPLE_COUNT_8_BIT = 0x00000008,
  2667. VK_SAMPLE_COUNT_16_BIT = 0x00000010,
  2668. VK_SAMPLE_COUNT_32_BIT = 0x00000020,
  2669. VK_SAMPLE_COUNT_64_BIT = 0x00000040,
  2670. VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2671. } VkSampleCountFlagBits;
  2672. typedef VkFlags VkSampleCountFlags;
  2673. typedef enum VkImageUsageFlagBits {
  2674. VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
  2675. VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
  2676. VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
  2677. VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
  2678. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
  2679. VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
  2680. VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
  2681. VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
  2682. VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000,
  2683. VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
  2684. VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
  2685. VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
  2686. VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
  2687. VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
  2688. VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
  2689. VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
  2690. VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
  2691. VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
  2692. VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
  2693. VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
  2694. VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
  2695. VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM = 0x00800000,
  2696. VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
  2697. VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000,
  2698. VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000,
  2699. VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
  2700. VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT,
  2701. VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2702. } VkImageUsageFlagBits;
  2703. typedef VkFlags VkImageUsageFlags;
  2704. typedef enum VkInstanceCreateFlagBits {
  2705. VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
  2706. VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2707. } VkInstanceCreateFlagBits;
  2708. typedef VkFlags VkInstanceCreateFlags;
  2709. typedef enum VkMemoryHeapFlagBits {
  2710. VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
  2711. VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
  2712. VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM = 0x00000008,
  2713. VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
  2714. VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2715. } VkMemoryHeapFlagBits;
  2716. typedef VkFlags VkMemoryHeapFlags;
  2717. typedef enum VkMemoryPropertyFlagBits {
  2718. VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
  2719. VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
  2720. VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
  2721. VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
  2722. VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
  2723. VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
  2724. VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
  2725. VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
  2726. VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
  2727. VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2728. } VkMemoryPropertyFlagBits;
  2729. typedef VkFlags VkMemoryPropertyFlags;
  2730. typedef enum VkQueueFlagBits {
  2731. VK_QUEUE_GRAPHICS_BIT = 0x00000001,
  2732. VK_QUEUE_COMPUTE_BIT = 0x00000002,
  2733. VK_QUEUE_TRANSFER_BIT = 0x00000004,
  2734. VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
  2735. VK_QUEUE_PROTECTED_BIT = 0x00000010,
  2736. VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
  2737. VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
  2738. VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
  2739. VK_QUEUE_DATA_GRAPH_BIT_ARM = 0x00000400,
  2740. VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2741. } VkQueueFlagBits;
  2742. typedef VkFlags VkQueueFlags;
  2743. typedef VkFlags VkDeviceCreateFlags;
  2744. typedef enum VkDeviceQueueCreateFlagBits {
  2745. VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
  2746. VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2747. } VkDeviceQueueCreateFlagBits;
  2748. typedef VkFlags VkDeviceQueueCreateFlags;
  2749. typedef enum VkPipelineStageFlagBits {
  2750. VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
  2751. VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
  2752. VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
  2753. VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
  2754. VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
  2755. VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
  2756. VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
  2757. VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
  2758. VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
  2759. VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
  2760. VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
  2761. VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
  2762. VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
  2763. VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
  2764. VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
  2765. VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
  2766. VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
  2767. VK_PIPELINE_STAGE_NONE = 0,
  2768. VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
  2769. VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
  2770. VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
  2771. VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
  2772. VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
  2773. VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
  2774. VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
  2775. VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
  2776. VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = 0x00020000,
  2777. VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
  2778. VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
  2779. VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
  2780. VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
  2781. VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
  2782. VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT,
  2783. VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
  2784. VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2785. } VkPipelineStageFlagBits;
  2786. typedef VkFlags VkPipelineStageFlags;
  2787. typedef enum VkMemoryMapFlagBits {
  2788. VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
  2789. VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2790. } VkMemoryMapFlagBits;
  2791. typedef VkFlags VkMemoryMapFlags;
  2792. typedef enum VkSparseMemoryBindFlagBits {
  2793. VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
  2794. VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2795. } VkSparseMemoryBindFlagBits;
  2796. typedef VkFlags VkSparseMemoryBindFlags;
  2797. typedef enum VkSparseImageFormatFlagBits {
  2798. VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
  2799. VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
  2800. VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
  2801. VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2802. } VkSparseImageFormatFlagBits;
  2803. typedef VkFlags VkSparseImageFormatFlags;
  2804. typedef enum VkFenceCreateFlagBits {
  2805. VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
  2806. VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2807. } VkFenceCreateFlagBits;
  2808. typedef VkFlags VkFenceCreateFlags;
  2809. typedef VkFlags VkSemaphoreCreateFlags;
  2810. typedef enum VkQueryPoolCreateFlagBits {
  2811. VK_QUERY_POOL_CREATE_RESET_BIT_KHR = 0x00000001,
  2812. VK_QUERY_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2813. } VkQueryPoolCreateFlagBits;
  2814. typedef VkFlags VkQueryPoolCreateFlags;
  2815. typedef enum VkQueryPipelineStatisticFlagBits {
  2816. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
  2817. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
  2818. VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
  2819. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
  2820. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
  2821. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
  2822. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
  2823. VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
  2824. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
  2825. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
  2826. VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
  2827. VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
  2828. VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
  2829. VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
  2830. VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2831. } VkQueryPipelineStatisticFlagBits;
  2832. typedef VkFlags VkQueryPipelineStatisticFlags;
  2833. typedef enum VkQueryResultFlagBits {
  2834. VK_QUERY_RESULT_64_BIT = 0x00000001,
  2835. VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
  2836. VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
  2837. VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
  2838. VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
  2839. VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2840. } VkQueryResultFlagBits;
  2841. typedef VkFlags VkQueryResultFlags;
  2842. typedef enum VkBufferCreateFlagBits {
  2843. VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
  2844. VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
  2845. VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
  2846. VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
  2847. VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
  2848. VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
  2849. VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
  2850. VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
  2851. VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
  2852. VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2853. } VkBufferCreateFlagBits;
  2854. typedef VkFlags VkBufferCreateFlags;
  2855. typedef enum VkBufferUsageFlagBits {
  2856. VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
  2857. VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
  2858. VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
  2859. VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
  2860. VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
  2861. VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
  2862. VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
  2863. VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
  2864. VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
  2865. VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
  2866. VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
  2867. VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
  2868. VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
  2869. VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
  2870. VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
  2871. #ifdef VK_ENABLE_BETA_EXTENSIONS
  2872. VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
  2873. #endif
  2874. VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
  2875. VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
  2876. VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
  2877. VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
  2878. VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
  2879. VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
  2880. VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
  2881. VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
  2882. VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
  2883. VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
  2884. VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
  2885. VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
  2886. VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
  2887. VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
  2888. VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2889. } VkBufferUsageFlagBits;
  2890. typedef VkFlags VkBufferUsageFlags;
  2891. typedef enum VkImageViewCreateFlagBits {
  2892. VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
  2893. VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
  2894. VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
  2895. VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2896. } VkImageViewCreateFlagBits;
  2897. typedef VkFlags VkImageViewCreateFlags;
  2898. typedef enum VkDependencyFlagBits {
  2899. VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
  2900. VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
  2901. VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
  2902. VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
  2903. VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020,
  2904. VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR = 0x00000040,
  2905. VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
  2906. VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
  2907. VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2908. } VkDependencyFlagBits;
  2909. typedef VkFlags VkDependencyFlags;
  2910. typedef enum VkCommandPoolCreateFlagBits {
  2911. VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
  2912. VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
  2913. VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
  2914. VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2915. } VkCommandPoolCreateFlagBits;
  2916. typedef VkFlags VkCommandPoolCreateFlags;
  2917. typedef enum VkCommandPoolResetFlagBits {
  2918. VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
  2919. VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2920. } VkCommandPoolResetFlagBits;
  2921. typedef VkFlags VkCommandPoolResetFlags;
  2922. typedef enum VkCommandBufferUsageFlagBits {
  2923. VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
  2924. VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
  2925. VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
  2926. VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2927. } VkCommandBufferUsageFlagBits;
  2928. typedef VkFlags VkCommandBufferUsageFlags;
  2929. typedef enum VkQueryControlFlagBits {
  2930. VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
  2931. VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2932. } VkQueryControlFlagBits;
  2933. typedef VkFlags VkQueryControlFlags;
  2934. typedef enum VkCommandBufferResetFlagBits {
  2935. VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
  2936. VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2937. } VkCommandBufferResetFlagBits;
  2938. typedef VkFlags VkCommandBufferResetFlags;
  2939. typedef enum VkEventCreateFlagBits {
  2940. VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
  2941. VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
  2942. VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2943. } VkEventCreateFlagBits;
  2944. typedef VkFlags VkEventCreateFlags;
  2945. typedef VkFlags VkBufferViewCreateFlags;
  2946. typedef VkFlags VkShaderModuleCreateFlags;
  2947. typedef enum VkPipelineCacheCreateFlagBits {
  2948. VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
  2949. VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR = 0x00000008,
  2950. VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
  2951. VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2952. } VkPipelineCacheCreateFlagBits;
  2953. typedef VkFlags VkPipelineCacheCreateFlags;
  2954. typedef enum VkPipelineCreateFlagBits {
  2955. VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
  2956. VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
  2957. VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
  2958. VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
  2959. VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
  2960. VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
  2961. VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
  2962. VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000,
  2963. VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000,
  2964. VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
  2965. VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
  2966. VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
  2967. VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
  2968. VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
  2969. VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
  2970. VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
  2971. VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
  2972. VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
  2973. VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
  2974. VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
  2975. VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
  2976. VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
  2977. VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
  2978. VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
  2979. VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
  2980. VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
  2981. VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
  2982. VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
  2983. VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
  2984. VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
  2985. #ifdef VK_ENABLE_BETA_EXTENSIONS
  2986. VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
  2987. #endif
  2988. // VK_PIPELINE_CREATE_DISPATCH_BASE is a legacy alias
  2989. VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
  2990. VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
  2991. VK_PIPELINE_CREATE_DISPATCH_BASE_BIT_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
  2992. // VK_PIPELINE_CREATE_DISPATCH_BASE_KHR is a legacy alias
  2993. VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
  2994. // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a legacy alias
  2995. VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
  2996. // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a legacy alias
  2997. VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
  2998. VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
  2999. VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
  3000. VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,
  3001. VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,
  3002. VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3003. } VkPipelineCreateFlagBits;
  3004. typedef VkFlags VkPipelineCreateFlags;
  3005. typedef enum VkPipelineShaderStageCreateFlagBits {
  3006. VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
  3007. VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
  3008. VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
  3009. VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
  3010. VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3011. } VkPipelineShaderStageCreateFlagBits;
  3012. typedef VkFlags VkPipelineShaderStageCreateFlags;
  3013. typedef enum VkShaderStageFlagBits {
  3014. VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
  3015. VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
  3016. VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
  3017. VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
  3018. VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
  3019. VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
  3020. VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
  3021. VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
  3022. VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
  3023. VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
  3024. VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
  3025. VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
  3026. VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
  3027. VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
  3028. VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
  3029. VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
  3030. VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
  3031. VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
  3032. VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
  3033. VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
  3034. VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
  3035. VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
  3036. VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
  3037. VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
  3038. VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
  3039. VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
  3040. VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3041. } VkShaderStageFlagBits;
  3042. typedef enum VkPipelineLayoutCreateFlagBits {
  3043. VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
  3044. VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3045. } VkPipelineLayoutCreateFlagBits;
  3046. typedef VkFlags VkPipelineLayoutCreateFlags;
  3047. typedef VkFlags VkShaderStageFlags;
  3048. typedef enum VkSamplerCreateFlagBits {
  3049. VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
  3050. VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
  3051. VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
  3052. VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
  3053. VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
  3054. VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3055. } VkSamplerCreateFlagBits;
  3056. typedef VkFlags VkSamplerCreateFlags;
  3057. typedef enum VkDescriptorPoolCreateFlagBits {
  3058. VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
  3059. VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
  3060. VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
  3061. VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
  3062. VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
  3063. VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
  3064. VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
  3065. VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3066. } VkDescriptorPoolCreateFlagBits;
  3067. typedef VkFlags VkDescriptorPoolCreateFlags;
  3068. typedef VkFlags VkDescriptorPoolResetFlags;
  3069. typedef enum VkDescriptorSetLayoutCreateFlagBits {
  3070. VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
  3071. VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT = 0x00000001,
  3072. VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
  3073. VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
  3074. VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
  3075. VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
  3076. VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
  3077. VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,
  3078. VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
  3079. VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
  3080. VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3081. } VkDescriptorSetLayoutCreateFlagBits;
  3082. typedef VkFlags VkDescriptorSetLayoutCreateFlags;
  3083. typedef enum VkColorComponentFlagBits {
  3084. VK_COLOR_COMPONENT_R_BIT = 0x00000001,
  3085. VK_COLOR_COMPONENT_G_BIT = 0x00000002,
  3086. VK_COLOR_COMPONENT_B_BIT = 0x00000004,
  3087. VK_COLOR_COMPONENT_A_BIT = 0x00000008,
  3088. VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3089. } VkColorComponentFlagBits;
  3090. typedef VkFlags VkColorComponentFlags;
  3091. typedef enum VkCullModeFlagBits {
  3092. VK_CULL_MODE_NONE = 0,
  3093. VK_CULL_MODE_FRONT_BIT = 0x00000001,
  3094. VK_CULL_MODE_BACK_BIT = 0x00000002,
  3095. VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
  3096. VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3097. } VkCullModeFlagBits;
  3098. typedef VkFlags VkCullModeFlags;
  3099. typedef VkFlags VkPipelineVertexInputStateCreateFlags;
  3100. typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
  3101. typedef VkFlags VkPipelineTessellationStateCreateFlags;
  3102. typedef VkFlags VkPipelineViewportStateCreateFlags;
  3103. typedef VkFlags VkPipelineRasterizationStateCreateFlags;
  3104. typedef VkFlags VkPipelineMultisampleStateCreateFlags;
  3105. typedef enum VkPipelineDepthStencilStateCreateFlagBits {
  3106. VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
  3107. VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
  3108. VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
  3109. VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
  3110. VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3111. } VkPipelineDepthStencilStateCreateFlagBits;
  3112. typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
  3113. typedef enum VkPipelineColorBlendStateCreateFlagBits {
  3114. VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
  3115. VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
  3116. VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3117. } VkPipelineColorBlendStateCreateFlagBits;
  3118. typedef VkFlags VkPipelineColorBlendStateCreateFlags;
  3119. typedef VkFlags VkPipelineDynamicStateCreateFlags;
  3120. typedef enum VkAttachmentDescriptionFlagBits {
  3121. VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
  3122. VK_ATTACHMENT_DESCRIPTION_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
  3123. VK_ATTACHMENT_DESCRIPTION_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000004,
  3124. VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3125. } VkAttachmentDescriptionFlagBits;
  3126. typedef VkFlags VkAttachmentDescriptionFlags;
  3127. typedef enum VkFramebufferCreateFlagBits {
  3128. VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
  3129. VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
  3130. VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3131. } VkFramebufferCreateFlagBits;
  3132. typedef VkFlags VkFramebufferCreateFlags;
  3133. typedef enum VkRenderPassCreateFlagBits {
  3134. VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
  3135. VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000004,
  3136. VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3137. } VkRenderPassCreateFlagBits;
  3138. typedef VkFlags VkRenderPassCreateFlags;
  3139. typedef enum VkSubpassDescriptionFlagBits {
  3140. VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
  3141. VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
  3142. VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM = 0x00000100,
  3143. VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
  3144. VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
  3145. VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
  3146. VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
  3147. VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT = 0x00000004,
  3148. VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT = 0x00000008,
  3149. VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT,
  3150. VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT,
  3151. VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
  3152. VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
  3153. VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
  3154. VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3155. } VkSubpassDescriptionFlagBits;
  3156. typedef VkFlags VkSubpassDescriptionFlags;
  3157. typedef enum VkStencilFaceFlagBits {
  3158. VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
  3159. VK_STENCIL_FACE_BACK_BIT = 0x00000002,
  3160. VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
  3161. // VK_STENCIL_FRONT_AND_BACK is a legacy alias
  3162. VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
  3163. VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3164. } VkStencilFaceFlagBits;
  3165. typedef VkFlags VkStencilFaceFlags;
  3166. typedef struct VkExtent2D {
  3167. uint32_t width;
  3168. uint32_t height;
  3169. } VkExtent2D;
  3170. typedef struct VkExtent3D {
  3171. uint32_t width;
  3172. uint32_t height;
  3173. uint32_t depth;
  3174. } VkExtent3D;
  3175. typedef struct VkOffset2D {
  3176. int32_t x;
  3177. int32_t y;
  3178. } VkOffset2D;
  3179. typedef struct VkOffset3D {
  3180. int32_t x;
  3181. int32_t y;
  3182. int32_t z;
  3183. } VkOffset3D;
  3184. typedef struct VkRect2D {
  3185. VkOffset2D offset;
  3186. VkExtent2D extent;
  3187. } VkRect2D;
  3188. typedef struct VkBaseInStructure {
  3189. VkStructureType sType;
  3190. const struct VkBaseInStructure* pNext;
  3191. } VkBaseInStructure;
  3192. typedef struct VkBaseOutStructure {
  3193. VkStructureType sType;
  3194. struct VkBaseOutStructure* pNext;
  3195. } VkBaseOutStructure;
  3196. typedef struct VkBufferMemoryBarrier {
  3197. VkStructureType sType;
  3198. const void* pNext;
  3199. VkAccessFlags srcAccessMask;
  3200. VkAccessFlags dstAccessMask;
  3201. uint32_t srcQueueFamilyIndex;
  3202. uint32_t dstQueueFamilyIndex;
  3203. VkBuffer buffer;
  3204. VkDeviceSize offset;
  3205. VkDeviceSize size;
  3206. } VkBufferMemoryBarrier;
  3207. typedef struct VkImageSubresourceRange {
  3208. VkImageAspectFlags aspectMask;
  3209. uint32_t baseMipLevel;
  3210. uint32_t levelCount;
  3211. uint32_t baseArrayLayer;
  3212. uint32_t layerCount;
  3213. } VkImageSubresourceRange;
  3214. typedef struct VkImageMemoryBarrier {
  3215. VkStructureType sType;
  3216. const void* pNext;
  3217. VkAccessFlags srcAccessMask;
  3218. VkAccessFlags dstAccessMask;
  3219. VkImageLayout oldLayout;
  3220. VkImageLayout newLayout;
  3221. uint32_t srcQueueFamilyIndex;
  3222. uint32_t dstQueueFamilyIndex;
  3223. VkImage image;
  3224. VkImageSubresourceRange subresourceRange;
  3225. } VkImageMemoryBarrier;
  3226. typedef struct VkMemoryBarrier {
  3227. VkStructureType sType;
  3228. const void* pNext;
  3229. VkAccessFlags srcAccessMask;
  3230. VkAccessFlags dstAccessMask;
  3231. } VkMemoryBarrier;
  3232. typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
  3233. void* pUserData,
  3234. size_t size,
  3235. size_t alignment,
  3236. VkSystemAllocationScope allocationScope);
  3237. typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
  3238. void* pUserData,
  3239. void* pMemory);
  3240. typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
  3241. void* pUserData,
  3242. size_t size,
  3243. VkInternalAllocationType allocationType,
  3244. VkSystemAllocationScope allocationScope);
  3245. typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
  3246. void* pUserData,
  3247. size_t size,
  3248. VkInternalAllocationType allocationType,
  3249. VkSystemAllocationScope allocationScope);
  3250. typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
  3251. void* pUserData,
  3252. void* pOriginal,
  3253. size_t size,
  3254. size_t alignment,
  3255. VkSystemAllocationScope allocationScope);
  3256. typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
  3257. typedef struct VkAllocationCallbacks {
  3258. void* pUserData;
  3259. PFN_vkAllocationFunction pfnAllocation;
  3260. PFN_vkReallocationFunction pfnReallocation;
  3261. PFN_vkFreeFunction pfnFree;
  3262. PFN_vkInternalAllocationNotification pfnInternalAllocation;
  3263. PFN_vkInternalFreeNotification pfnInternalFree;
  3264. } VkAllocationCallbacks;
  3265. typedef struct VkApplicationInfo {
  3266. VkStructureType sType;
  3267. const void* pNext;
  3268. const char* pApplicationName;
  3269. uint32_t applicationVersion;
  3270. const char* pEngineName;
  3271. uint32_t engineVersion;
  3272. uint32_t apiVersion;
  3273. } VkApplicationInfo;
  3274. typedef struct VkFormatProperties {
  3275. VkFormatFeatureFlags linearTilingFeatures;
  3276. VkFormatFeatureFlags optimalTilingFeatures;
  3277. VkFormatFeatureFlags bufferFeatures;
  3278. } VkFormatProperties;
  3279. typedef struct VkImageFormatProperties {
  3280. VkExtent3D maxExtent;
  3281. uint32_t maxMipLevels;
  3282. uint32_t maxArrayLayers;
  3283. VkSampleCountFlags sampleCounts;
  3284. VkDeviceSize maxResourceSize;
  3285. } VkImageFormatProperties;
  3286. typedef struct VkInstanceCreateInfo {
  3287. VkStructureType sType;
  3288. const void* pNext;
  3289. VkInstanceCreateFlags flags;
  3290. const VkApplicationInfo* pApplicationInfo;
  3291. uint32_t enabledLayerCount;
  3292. const char* const* ppEnabledLayerNames;
  3293. uint32_t enabledExtensionCount;
  3294. const char* const* ppEnabledExtensionNames;
  3295. } VkInstanceCreateInfo;
  3296. typedef struct VkMemoryHeap {
  3297. VkDeviceSize size;
  3298. VkMemoryHeapFlags flags;
  3299. } VkMemoryHeap;
  3300. typedef struct VkMemoryType {
  3301. VkMemoryPropertyFlags propertyFlags;
  3302. uint32_t heapIndex;
  3303. } VkMemoryType;
  3304. typedef struct VkPhysicalDeviceFeatures {
  3305. VkBool32 robustBufferAccess;
  3306. VkBool32 fullDrawIndexUint32;
  3307. VkBool32 imageCubeArray;
  3308. VkBool32 independentBlend;
  3309. VkBool32 geometryShader;
  3310. VkBool32 tessellationShader;
  3311. VkBool32 sampleRateShading;
  3312. VkBool32 dualSrcBlend;
  3313. VkBool32 logicOp;
  3314. VkBool32 multiDrawIndirect;
  3315. VkBool32 drawIndirectFirstInstance;
  3316. VkBool32 depthClamp;
  3317. VkBool32 depthBiasClamp;
  3318. VkBool32 fillModeNonSolid;
  3319. VkBool32 depthBounds;
  3320. VkBool32 wideLines;
  3321. VkBool32 largePoints;
  3322. VkBool32 alphaToOne;
  3323. VkBool32 multiViewport;
  3324. VkBool32 samplerAnisotropy;
  3325. VkBool32 textureCompressionETC2;
  3326. VkBool32 textureCompressionASTC_LDR;
  3327. VkBool32 textureCompressionBC;
  3328. VkBool32 occlusionQueryPrecise;
  3329. VkBool32 pipelineStatisticsQuery;
  3330. VkBool32 vertexPipelineStoresAndAtomics;
  3331. VkBool32 fragmentStoresAndAtomics;
  3332. VkBool32 shaderTessellationAndGeometryPointSize;
  3333. VkBool32 shaderImageGatherExtended;
  3334. VkBool32 shaderStorageImageExtendedFormats;
  3335. VkBool32 shaderStorageImageMultisample;
  3336. VkBool32 shaderStorageImageReadWithoutFormat;
  3337. VkBool32 shaderStorageImageWriteWithoutFormat;
  3338. VkBool32 shaderUniformBufferArrayDynamicIndexing;
  3339. VkBool32 shaderSampledImageArrayDynamicIndexing;
  3340. VkBool32 shaderStorageBufferArrayDynamicIndexing;
  3341. VkBool32 shaderStorageImageArrayDynamicIndexing;
  3342. VkBool32 shaderClipDistance;
  3343. VkBool32 shaderCullDistance;
  3344. VkBool32 shaderFloat64;
  3345. VkBool32 shaderInt64;
  3346. VkBool32 shaderInt16;
  3347. VkBool32 shaderResourceResidency;
  3348. VkBool32 shaderResourceMinLod;
  3349. VkBool32 sparseBinding;
  3350. VkBool32 sparseResidencyBuffer;
  3351. VkBool32 sparseResidencyImage2D;
  3352. VkBool32 sparseResidencyImage3D;
  3353. VkBool32 sparseResidency2Samples;
  3354. VkBool32 sparseResidency4Samples;
  3355. VkBool32 sparseResidency8Samples;
  3356. VkBool32 sparseResidency16Samples;
  3357. VkBool32 sparseResidencyAliased;
  3358. VkBool32 variableMultisampleRate;
  3359. VkBool32 inheritedQueries;
  3360. } VkPhysicalDeviceFeatures;
  3361. typedef struct VkPhysicalDeviceLimits {
  3362. uint32_t maxImageDimension1D;
  3363. uint32_t maxImageDimension2D;
  3364. uint32_t maxImageDimension3D;
  3365. uint32_t maxImageDimensionCube;
  3366. uint32_t maxImageArrayLayers;
  3367. uint32_t maxTexelBufferElements;
  3368. uint32_t maxUniformBufferRange;
  3369. uint32_t maxStorageBufferRange;
  3370. uint32_t maxPushConstantsSize;
  3371. uint32_t maxMemoryAllocationCount;
  3372. uint32_t maxSamplerAllocationCount;
  3373. VkDeviceSize bufferImageGranularity;
  3374. VkDeviceSize sparseAddressSpaceSize;
  3375. uint32_t maxBoundDescriptorSets;
  3376. uint32_t maxPerStageDescriptorSamplers;
  3377. uint32_t maxPerStageDescriptorUniformBuffers;
  3378. uint32_t maxPerStageDescriptorStorageBuffers;
  3379. uint32_t maxPerStageDescriptorSampledImages;
  3380. uint32_t maxPerStageDescriptorStorageImages;
  3381. uint32_t maxPerStageDescriptorInputAttachments;
  3382. uint32_t maxPerStageResources;
  3383. uint32_t maxDescriptorSetSamplers;
  3384. uint32_t maxDescriptorSetUniformBuffers;
  3385. uint32_t maxDescriptorSetUniformBuffersDynamic;
  3386. uint32_t maxDescriptorSetStorageBuffers;
  3387. uint32_t maxDescriptorSetStorageBuffersDynamic;
  3388. uint32_t maxDescriptorSetSampledImages;
  3389. uint32_t maxDescriptorSetStorageImages;
  3390. uint32_t maxDescriptorSetInputAttachments;
  3391. uint32_t maxVertexInputAttributes;
  3392. uint32_t maxVertexInputBindings;
  3393. uint32_t maxVertexInputAttributeOffset;
  3394. uint32_t maxVertexInputBindingStride;
  3395. uint32_t maxVertexOutputComponents;
  3396. uint32_t maxTessellationGenerationLevel;
  3397. uint32_t maxTessellationPatchSize;
  3398. uint32_t maxTessellationControlPerVertexInputComponents;
  3399. uint32_t maxTessellationControlPerVertexOutputComponents;
  3400. uint32_t maxTessellationControlPerPatchOutputComponents;
  3401. uint32_t maxTessellationControlTotalOutputComponents;
  3402. uint32_t maxTessellationEvaluationInputComponents;
  3403. uint32_t maxTessellationEvaluationOutputComponents;
  3404. uint32_t maxGeometryShaderInvocations;
  3405. uint32_t maxGeometryInputComponents;
  3406. uint32_t maxGeometryOutputComponents;
  3407. uint32_t maxGeometryOutputVertices;
  3408. uint32_t maxGeometryTotalOutputComponents;
  3409. uint32_t maxFragmentInputComponents;
  3410. uint32_t maxFragmentOutputAttachments;
  3411. uint32_t maxFragmentDualSrcAttachments;
  3412. uint32_t maxFragmentCombinedOutputResources;
  3413. uint32_t maxComputeSharedMemorySize;
  3414. uint32_t maxComputeWorkGroupCount[3];
  3415. uint32_t maxComputeWorkGroupInvocations;
  3416. uint32_t maxComputeWorkGroupSize[3];
  3417. uint32_t subPixelPrecisionBits;
  3418. uint32_t subTexelPrecisionBits;
  3419. uint32_t mipmapPrecisionBits;
  3420. uint32_t maxDrawIndexedIndexValue;
  3421. uint32_t maxDrawIndirectCount;
  3422. float maxSamplerLodBias;
  3423. float maxSamplerAnisotropy;
  3424. uint32_t maxViewports;
  3425. uint32_t maxViewportDimensions[2];
  3426. float viewportBoundsRange[2];
  3427. uint32_t viewportSubPixelBits;
  3428. size_t minMemoryMapAlignment;
  3429. VkDeviceSize minTexelBufferOffsetAlignment;
  3430. VkDeviceSize minUniformBufferOffsetAlignment;
  3431. VkDeviceSize minStorageBufferOffsetAlignment;
  3432. int32_t minTexelOffset;
  3433. uint32_t maxTexelOffset;
  3434. int32_t minTexelGatherOffset;
  3435. uint32_t maxTexelGatherOffset;
  3436. float minInterpolationOffset;
  3437. float maxInterpolationOffset;
  3438. uint32_t subPixelInterpolationOffsetBits;
  3439. uint32_t maxFramebufferWidth;
  3440. uint32_t maxFramebufferHeight;
  3441. uint32_t maxFramebufferLayers;
  3442. VkSampleCountFlags framebufferColorSampleCounts;
  3443. VkSampleCountFlags framebufferDepthSampleCounts;
  3444. VkSampleCountFlags framebufferStencilSampleCounts;
  3445. VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
  3446. uint32_t maxColorAttachments;
  3447. VkSampleCountFlags sampledImageColorSampleCounts;
  3448. VkSampleCountFlags sampledImageIntegerSampleCounts;
  3449. VkSampleCountFlags sampledImageDepthSampleCounts;
  3450. VkSampleCountFlags sampledImageStencilSampleCounts;
  3451. VkSampleCountFlags storageImageSampleCounts;
  3452. uint32_t maxSampleMaskWords;
  3453. VkBool32 timestampComputeAndGraphics;
  3454. float timestampPeriod;
  3455. uint32_t maxClipDistances;
  3456. uint32_t maxCullDistances;
  3457. uint32_t maxCombinedClipAndCullDistances;
  3458. uint32_t discreteQueuePriorities;
  3459. float pointSizeRange[2];
  3460. float lineWidthRange[2];
  3461. float pointSizeGranularity;
  3462. float lineWidthGranularity;
  3463. VkBool32 strictLines;
  3464. VkBool32 standardSampleLocations;
  3465. VkDeviceSize optimalBufferCopyOffsetAlignment;
  3466. VkDeviceSize optimalBufferCopyRowPitchAlignment;
  3467. VkDeviceSize nonCoherentAtomSize;
  3468. } VkPhysicalDeviceLimits;
  3469. typedef struct VkPhysicalDeviceMemoryProperties {
  3470. uint32_t memoryTypeCount;
  3471. VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
  3472. uint32_t memoryHeapCount;
  3473. VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
  3474. } VkPhysicalDeviceMemoryProperties;
  3475. typedef struct VkPhysicalDeviceSparseProperties {
  3476. VkBool32 residencyStandard2DBlockShape;
  3477. VkBool32 residencyStandard2DMultisampleBlockShape;
  3478. VkBool32 residencyStandard3DBlockShape;
  3479. VkBool32 residencyAlignedMipSize;
  3480. VkBool32 residencyNonResidentStrict;
  3481. } VkPhysicalDeviceSparseProperties;
  3482. typedef struct VkPhysicalDeviceProperties {
  3483. uint32_t apiVersion;
  3484. uint32_t driverVersion;
  3485. uint32_t vendorID;
  3486. uint32_t deviceID;
  3487. VkPhysicalDeviceType deviceType;
  3488. char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
  3489. uint8_t pipelineCacheUUID[VK_UUID_SIZE];
  3490. VkPhysicalDeviceLimits limits;
  3491. VkPhysicalDeviceSparseProperties sparseProperties;
  3492. } VkPhysicalDeviceProperties;
  3493. typedef struct VkQueueFamilyProperties {
  3494. VkQueueFlags queueFlags;
  3495. uint32_t queueCount;
  3496. uint32_t timestampValidBits;
  3497. VkExtent3D minImageTransferGranularity;
  3498. } VkQueueFamilyProperties;
  3499. typedef struct VkDeviceQueueCreateInfo {
  3500. VkStructureType sType;
  3501. const void* pNext;
  3502. VkDeviceQueueCreateFlags flags;
  3503. uint32_t queueFamilyIndex;
  3504. uint32_t queueCount;
  3505. const float* pQueuePriorities;
  3506. } VkDeviceQueueCreateInfo;
  3507. typedef struct VkDeviceCreateInfo {
  3508. VkStructureType sType;
  3509. const void* pNext;
  3510. VkDeviceCreateFlags flags;
  3511. uint32_t queueCreateInfoCount;
  3512. const VkDeviceQueueCreateInfo* pQueueCreateInfos;
  3513. // enabledLayerCount is legacy and should not be used
  3514. uint32_t enabledLayerCount;
  3515. // ppEnabledLayerNames is legacy and should not be used
  3516. const char* const* ppEnabledLayerNames;
  3517. uint32_t enabledExtensionCount;
  3518. const char* const* ppEnabledExtensionNames;
  3519. const VkPhysicalDeviceFeatures* pEnabledFeatures;
  3520. } VkDeviceCreateInfo;
  3521. typedef struct VkExtensionProperties {
  3522. char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
  3523. uint32_t specVersion;
  3524. } VkExtensionProperties;
  3525. typedef struct VkLayerProperties {
  3526. char layerName[VK_MAX_EXTENSION_NAME_SIZE];
  3527. uint32_t specVersion;
  3528. uint32_t implementationVersion;
  3529. char description[VK_MAX_DESCRIPTION_SIZE];
  3530. } VkLayerProperties;
  3531. typedef struct VkSubmitInfo {
  3532. VkStructureType sType;
  3533. const void* pNext;
  3534. uint32_t waitSemaphoreCount;
  3535. const VkSemaphore* pWaitSemaphores;
  3536. const VkPipelineStageFlags* pWaitDstStageMask;
  3537. uint32_t commandBufferCount;
  3538. const VkCommandBuffer* pCommandBuffers;
  3539. uint32_t signalSemaphoreCount;
  3540. const VkSemaphore* pSignalSemaphores;
  3541. } VkSubmitInfo;
  3542. typedef struct VkMappedMemoryRange {
  3543. VkStructureType sType;
  3544. const void* pNext;
  3545. VkDeviceMemory memory;
  3546. VkDeviceSize offset;
  3547. VkDeviceSize size;
  3548. } VkMappedMemoryRange;
  3549. typedef struct VkMemoryAllocateInfo {
  3550. VkStructureType sType;
  3551. const void* pNext;
  3552. VkDeviceSize allocationSize;
  3553. uint32_t memoryTypeIndex;
  3554. } VkMemoryAllocateInfo;
  3555. typedef struct VkMemoryRequirements {
  3556. VkDeviceSize size;
  3557. VkDeviceSize alignment;
  3558. uint32_t memoryTypeBits;
  3559. } VkMemoryRequirements;
  3560. typedef struct VkSparseMemoryBind {
  3561. VkDeviceSize resourceOffset;
  3562. VkDeviceSize size;
  3563. VkDeviceMemory memory;
  3564. VkDeviceSize memoryOffset;
  3565. VkSparseMemoryBindFlags flags;
  3566. } VkSparseMemoryBind;
  3567. typedef struct VkSparseBufferMemoryBindInfo {
  3568. VkBuffer buffer;
  3569. uint32_t bindCount;
  3570. const VkSparseMemoryBind* pBinds;
  3571. } VkSparseBufferMemoryBindInfo;
  3572. typedef struct VkSparseImageOpaqueMemoryBindInfo {
  3573. VkImage image;
  3574. uint32_t bindCount;
  3575. const VkSparseMemoryBind* pBinds;
  3576. } VkSparseImageOpaqueMemoryBindInfo;
  3577. typedef struct VkImageSubresource {
  3578. VkImageAspectFlags aspectMask;
  3579. uint32_t mipLevel;
  3580. uint32_t arrayLayer;
  3581. } VkImageSubresource;
  3582. typedef struct VkSparseImageMemoryBind {
  3583. VkImageSubresource subresource;
  3584. VkOffset3D offset;
  3585. VkExtent3D extent;
  3586. VkDeviceMemory memory;
  3587. VkDeviceSize memoryOffset;
  3588. VkSparseMemoryBindFlags flags;
  3589. } VkSparseImageMemoryBind;
  3590. typedef struct VkSparseImageMemoryBindInfo {
  3591. VkImage image;
  3592. uint32_t bindCount;
  3593. const VkSparseImageMemoryBind* pBinds;
  3594. } VkSparseImageMemoryBindInfo;
  3595. typedef struct VkBindSparseInfo {
  3596. VkStructureType sType;
  3597. const void* pNext;
  3598. uint32_t waitSemaphoreCount;
  3599. const VkSemaphore* pWaitSemaphores;
  3600. uint32_t bufferBindCount;
  3601. const VkSparseBufferMemoryBindInfo* pBufferBinds;
  3602. uint32_t imageOpaqueBindCount;
  3603. const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
  3604. uint32_t imageBindCount;
  3605. const VkSparseImageMemoryBindInfo* pImageBinds;
  3606. uint32_t signalSemaphoreCount;
  3607. const VkSemaphore* pSignalSemaphores;
  3608. } VkBindSparseInfo;
  3609. typedef struct VkSparseImageFormatProperties {
  3610. VkImageAspectFlags aspectMask;
  3611. VkExtent3D imageGranularity;
  3612. VkSparseImageFormatFlags flags;
  3613. } VkSparseImageFormatProperties;
  3614. typedef struct VkSparseImageMemoryRequirements {
  3615. VkSparseImageFormatProperties formatProperties;
  3616. uint32_t imageMipTailFirstLod;
  3617. VkDeviceSize imageMipTailSize;
  3618. VkDeviceSize imageMipTailOffset;
  3619. VkDeviceSize imageMipTailStride;
  3620. } VkSparseImageMemoryRequirements;
  3621. typedef struct VkFenceCreateInfo {
  3622. VkStructureType sType;
  3623. const void* pNext;
  3624. VkFenceCreateFlags flags;
  3625. } VkFenceCreateInfo;
  3626. typedef struct VkSemaphoreCreateInfo {
  3627. VkStructureType sType;
  3628. const void* pNext;
  3629. VkSemaphoreCreateFlags flags;
  3630. } VkSemaphoreCreateInfo;
  3631. typedef struct VkQueryPoolCreateInfo {
  3632. VkStructureType sType;
  3633. const void* pNext;
  3634. VkQueryPoolCreateFlags flags;
  3635. VkQueryType queryType;
  3636. uint32_t queryCount;
  3637. VkQueryPipelineStatisticFlags pipelineStatistics;
  3638. } VkQueryPoolCreateInfo;
  3639. typedef struct VkBufferCreateInfo {
  3640. VkStructureType sType;
  3641. const void* pNext;
  3642. VkBufferCreateFlags flags;
  3643. VkDeviceSize size;
  3644. VkBufferUsageFlags usage;
  3645. VkSharingMode sharingMode;
  3646. uint32_t queueFamilyIndexCount;
  3647. const uint32_t* pQueueFamilyIndices;
  3648. } VkBufferCreateInfo;
  3649. typedef struct VkImageCreateInfo {
  3650. VkStructureType sType;
  3651. const void* pNext;
  3652. VkImageCreateFlags flags;
  3653. VkImageType imageType;
  3654. VkFormat format;
  3655. VkExtent3D extent;
  3656. uint32_t mipLevels;
  3657. uint32_t arrayLayers;
  3658. VkSampleCountFlagBits samples;
  3659. VkImageTiling tiling;
  3660. VkImageUsageFlags usage;
  3661. VkSharingMode sharingMode;
  3662. uint32_t queueFamilyIndexCount;
  3663. const uint32_t* pQueueFamilyIndices;
  3664. VkImageLayout initialLayout;
  3665. } VkImageCreateInfo;
  3666. typedef struct VkSubresourceLayout {
  3667. VkDeviceSize offset;
  3668. VkDeviceSize size;
  3669. VkDeviceSize rowPitch;
  3670. VkDeviceSize arrayPitch;
  3671. VkDeviceSize depthPitch;
  3672. } VkSubresourceLayout;
  3673. typedef struct VkComponentMapping {
  3674. VkComponentSwizzle r;
  3675. VkComponentSwizzle g;
  3676. VkComponentSwizzle b;
  3677. VkComponentSwizzle a;
  3678. } VkComponentMapping;
  3679. typedef struct VkImageViewCreateInfo {
  3680. VkStructureType sType;
  3681. const void* pNext;
  3682. VkImageViewCreateFlags flags;
  3683. VkImage image;
  3684. VkImageViewType viewType;
  3685. VkFormat format;
  3686. VkComponentMapping components;
  3687. VkImageSubresourceRange subresourceRange;
  3688. } VkImageViewCreateInfo;
  3689. typedef struct VkCommandPoolCreateInfo {
  3690. VkStructureType sType;
  3691. const void* pNext;
  3692. VkCommandPoolCreateFlags flags;
  3693. uint32_t queueFamilyIndex;
  3694. } VkCommandPoolCreateInfo;
  3695. typedef struct VkCommandBufferAllocateInfo {
  3696. VkStructureType sType;
  3697. const void* pNext;
  3698. VkCommandPool commandPool;
  3699. VkCommandBufferLevel level;
  3700. uint32_t commandBufferCount;
  3701. } VkCommandBufferAllocateInfo;
  3702. typedef struct VkCommandBufferInheritanceInfo {
  3703. VkStructureType sType;
  3704. const void* pNext;
  3705. VkRenderPass renderPass;
  3706. uint32_t subpass;
  3707. VkFramebuffer framebuffer;
  3708. VkBool32 occlusionQueryEnable;
  3709. VkQueryControlFlags queryFlags;
  3710. VkQueryPipelineStatisticFlags pipelineStatistics;
  3711. } VkCommandBufferInheritanceInfo;
  3712. typedef struct VkCommandBufferBeginInfo {
  3713. VkStructureType sType;
  3714. const void* pNext;
  3715. VkCommandBufferUsageFlags flags;
  3716. const VkCommandBufferInheritanceInfo* pInheritanceInfo;
  3717. } VkCommandBufferBeginInfo;
  3718. typedef struct VkBufferCopy {
  3719. VkDeviceSize srcOffset;
  3720. VkDeviceSize dstOffset;
  3721. VkDeviceSize size;
  3722. } VkBufferCopy;
  3723. typedef struct VkImageSubresourceLayers {
  3724. VkImageAspectFlags aspectMask;
  3725. uint32_t mipLevel;
  3726. uint32_t baseArrayLayer;
  3727. uint32_t layerCount;
  3728. } VkImageSubresourceLayers;
  3729. typedef struct VkBufferImageCopy {
  3730. VkDeviceSize bufferOffset;
  3731. uint32_t bufferRowLength;
  3732. uint32_t bufferImageHeight;
  3733. VkImageSubresourceLayers imageSubresource;
  3734. VkOffset3D imageOffset;
  3735. VkExtent3D imageExtent;
  3736. } VkBufferImageCopy;
  3737. typedef struct VkImageCopy {
  3738. VkImageSubresourceLayers srcSubresource;
  3739. VkOffset3D srcOffset;
  3740. VkImageSubresourceLayers dstSubresource;
  3741. VkOffset3D dstOffset;
  3742. VkExtent3D extent;
  3743. } VkImageCopy;
  3744. typedef struct VkDispatchIndirectCommand {
  3745. uint32_t x;
  3746. uint32_t y;
  3747. uint32_t z;
  3748. } VkDispatchIndirectCommand;
  3749. typedef struct VkPipelineCacheHeaderVersionOne {
  3750. uint32_t headerSize;
  3751. VkPipelineCacheHeaderVersion headerVersion;
  3752. uint32_t vendorID;
  3753. uint32_t deviceID;
  3754. uint8_t pipelineCacheUUID[VK_UUID_SIZE];
  3755. } VkPipelineCacheHeaderVersionOne;
  3756. typedef struct VkEventCreateInfo {
  3757. VkStructureType sType;
  3758. const void* pNext;
  3759. VkEventCreateFlags flags;
  3760. } VkEventCreateInfo;
  3761. typedef struct VkBufferViewCreateInfo {
  3762. VkStructureType sType;
  3763. const void* pNext;
  3764. VkBufferViewCreateFlags flags;
  3765. VkBuffer buffer;
  3766. VkFormat format;
  3767. VkDeviceSize offset;
  3768. VkDeviceSize range;
  3769. } VkBufferViewCreateInfo;
  3770. typedef struct VkShaderModuleCreateInfo {
  3771. VkStructureType sType;
  3772. const void* pNext;
  3773. VkShaderModuleCreateFlags flags;
  3774. size_t codeSize;
  3775. const uint32_t* pCode;
  3776. } VkShaderModuleCreateInfo;
  3777. typedef struct VkPipelineCacheCreateInfo {
  3778. VkStructureType sType;
  3779. const void* pNext;
  3780. VkPipelineCacheCreateFlags flags;
  3781. size_t initialDataSize;
  3782. const void* pInitialData;
  3783. } VkPipelineCacheCreateInfo;
  3784. typedef struct VkSpecializationMapEntry {
  3785. uint32_t constantID;
  3786. uint32_t offset;
  3787. size_t size;
  3788. } VkSpecializationMapEntry;
  3789. typedef struct VkSpecializationInfo {
  3790. uint32_t mapEntryCount;
  3791. const VkSpecializationMapEntry* pMapEntries;
  3792. size_t dataSize;
  3793. const void* pData;
  3794. } VkSpecializationInfo;
  3795. typedef struct VkPipelineShaderStageCreateInfo {
  3796. VkStructureType sType;
  3797. const void* pNext;
  3798. VkPipelineShaderStageCreateFlags flags;
  3799. VkShaderStageFlagBits stage;
  3800. VkShaderModule module;
  3801. const char* pName;
  3802. const VkSpecializationInfo* pSpecializationInfo;
  3803. } VkPipelineShaderStageCreateInfo;
  3804. typedef struct VkComputePipelineCreateInfo {
  3805. VkStructureType sType;
  3806. const void* pNext;
  3807. VkPipelineCreateFlags flags;
  3808. VkPipelineShaderStageCreateInfo stage;
  3809. VkPipelineLayout layout;
  3810. VkPipeline basePipelineHandle;
  3811. int32_t basePipelineIndex;
  3812. } VkComputePipelineCreateInfo;
  3813. typedef struct VkPushConstantRange {
  3814. VkShaderStageFlags stageFlags;
  3815. uint32_t offset;
  3816. uint32_t size;
  3817. } VkPushConstantRange;
  3818. typedef struct VkPipelineLayoutCreateInfo {
  3819. VkStructureType sType;
  3820. const void* pNext;
  3821. VkPipelineLayoutCreateFlags flags;
  3822. uint32_t setLayoutCount;
  3823. const VkDescriptorSetLayout* pSetLayouts;
  3824. uint32_t pushConstantRangeCount;
  3825. const VkPushConstantRange* pPushConstantRanges;
  3826. } VkPipelineLayoutCreateInfo;
  3827. typedef struct VkSamplerCreateInfo {
  3828. VkStructureType sType;
  3829. const void* pNext;
  3830. VkSamplerCreateFlags flags;
  3831. VkFilter magFilter;
  3832. VkFilter minFilter;
  3833. VkSamplerMipmapMode mipmapMode;
  3834. VkSamplerAddressMode addressModeU;
  3835. VkSamplerAddressMode addressModeV;
  3836. VkSamplerAddressMode addressModeW;
  3837. float mipLodBias;
  3838. VkBool32 anisotropyEnable;
  3839. float maxAnisotropy;
  3840. VkBool32 compareEnable;
  3841. VkCompareOp compareOp;
  3842. float minLod;
  3843. float maxLod;
  3844. VkBorderColor borderColor;
  3845. VkBool32 unnormalizedCoordinates;
  3846. } VkSamplerCreateInfo;
  3847. typedef struct VkCopyDescriptorSet {
  3848. VkStructureType sType;
  3849. const void* pNext;
  3850. VkDescriptorSet srcSet;
  3851. uint32_t srcBinding;
  3852. uint32_t srcArrayElement;
  3853. VkDescriptorSet dstSet;
  3854. uint32_t dstBinding;
  3855. uint32_t dstArrayElement;
  3856. uint32_t descriptorCount;
  3857. } VkCopyDescriptorSet;
  3858. typedef struct VkDescriptorBufferInfo {
  3859. VkBuffer buffer;
  3860. VkDeviceSize offset;
  3861. VkDeviceSize range;
  3862. } VkDescriptorBufferInfo;
  3863. typedef struct VkDescriptorImageInfo {
  3864. VkSampler sampler;
  3865. VkImageView imageView;
  3866. VkImageLayout imageLayout;
  3867. } VkDescriptorImageInfo;
  3868. typedef struct VkDescriptorPoolSize {
  3869. VkDescriptorType type;
  3870. uint32_t descriptorCount;
  3871. } VkDescriptorPoolSize;
  3872. typedef struct VkDescriptorPoolCreateInfo {
  3873. VkStructureType sType;
  3874. const void* pNext;
  3875. VkDescriptorPoolCreateFlags flags;
  3876. uint32_t maxSets;
  3877. uint32_t poolSizeCount;
  3878. const VkDescriptorPoolSize* pPoolSizes;
  3879. } VkDescriptorPoolCreateInfo;
  3880. typedef struct VkDescriptorSetAllocateInfo {
  3881. VkStructureType sType;
  3882. const void* pNext;
  3883. VkDescriptorPool descriptorPool;
  3884. uint32_t descriptorSetCount;
  3885. const VkDescriptorSetLayout* pSetLayouts;
  3886. } VkDescriptorSetAllocateInfo;
  3887. typedef struct VkDescriptorSetLayoutBinding {
  3888. uint32_t binding;
  3889. VkDescriptorType descriptorType;
  3890. uint32_t descriptorCount;
  3891. VkShaderStageFlags stageFlags;
  3892. const VkSampler* pImmutableSamplers;
  3893. } VkDescriptorSetLayoutBinding;
  3894. typedef struct VkDescriptorSetLayoutCreateInfo {
  3895. VkStructureType sType;
  3896. const void* pNext;
  3897. VkDescriptorSetLayoutCreateFlags flags;
  3898. uint32_t bindingCount;
  3899. const VkDescriptorSetLayoutBinding* pBindings;
  3900. } VkDescriptorSetLayoutCreateInfo;
  3901. typedef struct VkWriteDescriptorSet {
  3902. VkStructureType sType;
  3903. const void* pNext;
  3904. VkDescriptorSet dstSet;
  3905. uint32_t dstBinding;
  3906. uint32_t dstArrayElement;
  3907. uint32_t descriptorCount;
  3908. VkDescriptorType descriptorType;
  3909. const VkDescriptorImageInfo* pImageInfo;
  3910. const VkDescriptorBufferInfo* pBufferInfo;
  3911. const VkBufferView* pTexelBufferView;
  3912. } VkWriteDescriptorSet;
  3913. typedef union VkClearColorValue {
  3914. float float32[4];
  3915. int32_t int32[4];
  3916. uint32_t uint32[4];
  3917. } VkClearColorValue;
  3918. typedef struct VkDrawIndexedIndirectCommand {
  3919. uint32_t indexCount;
  3920. uint32_t instanceCount;
  3921. uint32_t firstIndex;
  3922. int32_t vertexOffset;
  3923. uint32_t firstInstance;
  3924. } VkDrawIndexedIndirectCommand;
  3925. typedef struct VkDrawIndirectCommand {
  3926. uint32_t vertexCount;
  3927. uint32_t instanceCount;
  3928. uint32_t firstVertex;
  3929. uint32_t firstInstance;
  3930. } VkDrawIndirectCommand;
  3931. typedef struct VkVertexInputBindingDescription {
  3932. uint32_t binding;
  3933. uint32_t stride;
  3934. VkVertexInputRate inputRate;
  3935. } VkVertexInputBindingDescription;
  3936. typedef struct VkVertexInputAttributeDescription {
  3937. uint32_t location;
  3938. uint32_t binding;
  3939. VkFormat format;
  3940. uint32_t offset;
  3941. } VkVertexInputAttributeDescription;
  3942. typedef struct VkPipelineVertexInputStateCreateInfo {
  3943. VkStructureType sType;
  3944. const void* pNext;
  3945. VkPipelineVertexInputStateCreateFlags flags;
  3946. uint32_t vertexBindingDescriptionCount;
  3947. const VkVertexInputBindingDescription* pVertexBindingDescriptions;
  3948. uint32_t vertexAttributeDescriptionCount;
  3949. const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
  3950. } VkPipelineVertexInputStateCreateInfo;
  3951. typedef struct VkPipelineInputAssemblyStateCreateInfo {
  3952. VkStructureType sType;
  3953. const void* pNext;
  3954. VkPipelineInputAssemblyStateCreateFlags flags;
  3955. VkPrimitiveTopology topology;
  3956. VkBool32 primitiveRestartEnable;
  3957. } VkPipelineInputAssemblyStateCreateInfo;
  3958. typedef struct VkPipelineTessellationStateCreateInfo {
  3959. VkStructureType sType;
  3960. const void* pNext;
  3961. VkPipelineTessellationStateCreateFlags flags;
  3962. uint32_t patchControlPoints;
  3963. } VkPipelineTessellationStateCreateInfo;
  3964. typedef struct VkViewport {
  3965. float x;
  3966. float y;
  3967. float width;
  3968. float height;
  3969. float minDepth;
  3970. float maxDepth;
  3971. } VkViewport;
  3972. typedef struct VkPipelineViewportStateCreateInfo {
  3973. VkStructureType sType;
  3974. const void* pNext;
  3975. VkPipelineViewportStateCreateFlags flags;
  3976. uint32_t viewportCount;
  3977. const VkViewport* pViewports;
  3978. uint32_t scissorCount;
  3979. const VkRect2D* pScissors;
  3980. } VkPipelineViewportStateCreateInfo;
  3981. typedef struct VkPipelineRasterizationStateCreateInfo {
  3982. VkStructureType sType;
  3983. const void* pNext;
  3984. VkPipelineRasterizationStateCreateFlags flags;
  3985. VkBool32 depthClampEnable;
  3986. VkBool32 rasterizerDiscardEnable;
  3987. VkPolygonMode polygonMode;
  3988. VkCullModeFlags cullMode;
  3989. VkFrontFace frontFace;
  3990. VkBool32 depthBiasEnable;
  3991. float depthBiasConstantFactor;
  3992. float depthBiasClamp;
  3993. float depthBiasSlopeFactor;
  3994. float lineWidth;
  3995. } VkPipelineRasterizationStateCreateInfo;
  3996. typedef struct VkPipelineMultisampleStateCreateInfo {
  3997. VkStructureType sType;
  3998. const void* pNext;
  3999. VkPipelineMultisampleStateCreateFlags flags;
  4000. VkSampleCountFlagBits rasterizationSamples;
  4001. VkBool32 sampleShadingEnable;
  4002. float minSampleShading;
  4003. const VkSampleMask* pSampleMask;
  4004. VkBool32 alphaToCoverageEnable;
  4005. VkBool32 alphaToOneEnable;
  4006. } VkPipelineMultisampleStateCreateInfo;
  4007. typedef struct VkStencilOpState {
  4008. VkStencilOp failOp;
  4009. VkStencilOp passOp;
  4010. VkStencilOp depthFailOp;
  4011. VkCompareOp compareOp;
  4012. uint32_t compareMask;
  4013. uint32_t writeMask;
  4014. uint32_t reference;
  4015. } VkStencilOpState;
  4016. typedef struct VkPipelineDepthStencilStateCreateInfo {
  4017. VkStructureType sType;
  4018. const void* pNext;
  4019. VkPipelineDepthStencilStateCreateFlags flags;
  4020. VkBool32 depthTestEnable;
  4021. VkBool32 depthWriteEnable;
  4022. VkCompareOp depthCompareOp;
  4023. VkBool32 depthBoundsTestEnable;
  4024. VkBool32 stencilTestEnable;
  4025. VkStencilOpState front;
  4026. VkStencilOpState back;
  4027. float minDepthBounds;
  4028. float maxDepthBounds;
  4029. } VkPipelineDepthStencilStateCreateInfo;
  4030. typedef struct VkPipelineColorBlendAttachmentState {
  4031. VkBool32 blendEnable;
  4032. VkBlendFactor srcColorBlendFactor;
  4033. VkBlendFactor dstColorBlendFactor;
  4034. VkBlendOp colorBlendOp;
  4035. VkBlendFactor srcAlphaBlendFactor;
  4036. VkBlendFactor dstAlphaBlendFactor;
  4037. VkBlendOp alphaBlendOp;
  4038. VkColorComponentFlags colorWriteMask;
  4039. } VkPipelineColorBlendAttachmentState;
  4040. typedef struct VkPipelineColorBlendStateCreateInfo {
  4041. VkStructureType sType;
  4042. const void* pNext;
  4043. VkPipelineColorBlendStateCreateFlags flags;
  4044. VkBool32 logicOpEnable;
  4045. VkLogicOp logicOp;
  4046. uint32_t attachmentCount;
  4047. const VkPipelineColorBlendAttachmentState* pAttachments;
  4048. float blendConstants[4];
  4049. } VkPipelineColorBlendStateCreateInfo;
  4050. typedef struct VkPipelineDynamicStateCreateInfo {
  4051. VkStructureType sType;
  4052. const void* pNext;
  4053. VkPipelineDynamicStateCreateFlags flags;
  4054. uint32_t dynamicStateCount;
  4055. const VkDynamicState* pDynamicStates;
  4056. } VkPipelineDynamicStateCreateInfo;
  4057. typedef struct VkGraphicsPipelineCreateInfo {
  4058. VkStructureType sType;
  4059. const void* pNext;
  4060. VkPipelineCreateFlags flags;
  4061. uint32_t stageCount;
  4062. const VkPipelineShaderStageCreateInfo* pStages;
  4063. const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
  4064. const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
  4065. const VkPipelineTessellationStateCreateInfo* pTessellationState;
  4066. const VkPipelineViewportStateCreateInfo* pViewportState;
  4067. const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
  4068. const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
  4069. const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
  4070. const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
  4071. const VkPipelineDynamicStateCreateInfo* pDynamicState;
  4072. VkPipelineLayout layout;
  4073. VkRenderPass renderPass;
  4074. uint32_t subpass;
  4075. VkPipeline basePipelineHandle;
  4076. int32_t basePipelineIndex;
  4077. } VkGraphicsPipelineCreateInfo;
  4078. typedef struct VkAttachmentDescription {
  4079. VkAttachmentDescriptionFlags flags;
  4080. VkFormat format;
  4081. VkSampleCountFlagBits samples;
  4082. VkAttachmentLoadOp loadOp;
  4083. VkAttachmentStoreOp storeOp;
  4084. VkAttachmentLoadOp stencilLoadOp;
  4085. VkAttachmentStoreOp stencilStoreOp;
  4086. VkImageLayout initialLayout;
  4087. VkImageLayout finalLayout;
  4088. } VkAttachmentDescription;
  4089. typedef struct VkAttachmentReference {
  4090. uint32_t attachment;
  4091. VkImageLayout layout;
  4092. } VkAttachmentReference;
  4093. typedef struct VkFramebufferCreateInfo {
  4094. VkStructureType sType;
  4095. const void* pNext;
  4096. VkFramebufferCreateFlags flags;
  4097. VkRenderPass renderPass;
  4098. uint32_t attachmentCount;
  4099. const VkImageView* pAttachments;
  4100. uint32_t width;
  4101. uint32_t height;
  4102. uint32_t layers;
  4103. } VkFramebufferCreateInfo;
  4104. typedef struct VkSubpassDescription {
  4105. VkSubpassDescriptionFlags flags;
  4106. VkPipelineBindPoint pipelineBindPoint;
  4107. uint32_t inputAttachmentCount;
  4108. const VkAttachmentReference* pInputAttachments;
  4109. uint32_t colorAttachmentCount;
  4110. const VkAttachmentReference* pColorAttachments;
  4111. const VkAttachmentReference* pResolveAttachments;
  4112. const VkAttachmentReference* pDepthStencilAttachment;
  4113. uint32_t preserveAttachmentCount;
  4114. const uint32_t* pPreserveAttachments;
  4115. } VkSubpassDescription;
  4116. typedef struct VkSubpassDependency {
  4117. uint32_t srcSubpass;
  4118. uint32_t dstSubpass;
  4119. VkPipelineStageFlags srcStageMask;
  4120. VkPipelineStageFlags dstStageMask;
  4121. VkAccessFlags srcAccessMask;
  4122. VkAccessFlags dstAccessMask;
  4123. VkDependencyFlags dependencyFlags;
  4124. } VkSubpassDependency;
  4125. typedef struct VkRenderPassCreateInfo {
  4126. VkStructureType sType;
  4127. const void* pNext;
  4128. VkRenderPassCreateFlags flags;
  4129. uint32_t attachmentCount;
  4130. const VkAttachmentDescription* pAttachments;
  4131. uint32_t subpassCount;
  4132. const VkSubpassDescription* pSubpasses;
  4133. uint32_t dependencyCount;
  4134. const VkSubpassDependency* pDependencies;
  4135. } VkRenderPassCreateInfo;
  4136. typedef struct VkClearDepthStencilValue {
  4137. float depth;
  4138. uint32_t stencil;
  4139. } VkClearDepthStencilValue;
  4140. typedef union VkClearValue {
  4141. VkClearColorValue color;
  4142. VkClearDepthStencilValue depthStencil;
  4143. } VkClearValue;
  4144. typedef struct VkClearAttachment {
  4145. VkImageAspectFlags aspectMask;
  4146. uint32_t colorAttachment;
  4147. VkClearValue clearValue;
  4148. } VkClearAttachment;
  4149. typedef struct VkClearRect {
  4150. VkRect2D rect;
  4151. uint32_t baseArrayLayer;
  4152. uint32_t layerCount;
  4153. } VkClearRect;
  4154. typedef struct VkImageBlit {
  4155. VkImageSubresourceLayers srcSubresource;
  4156. VkOffset3D srcOffsets[2];
  4157. VkImageSubresourceLayers dstSubresource;
  4158. VkOffset3D dstOffsets[2];
  4159. } VkImageBlit;
  4160. typedef struct VkImageResolve {
  4161. VkImageSubresourceLayers srcSubresource;
  4162. VkOffset3D srcOffset;
  4163. VkImageSubresourceLayers dstSubresource;
  4164. VkOffset3D dstOffset;
  4165. VkExtent3D extent;
  4166. } VkImageResolve;
  4167. typedef struct VkRenderPassBeginInfo {
  4168. VkStructureType sType;
  4169. const void* pNext;
  4170. VkRenderPass renderPass;
  4171. VkFramebuffer framebuffer;
  4172. VkRect2D renderArea;
  4173. uint32_t clearValueCount;
  4174. const VkClearValue* pClearValues;
  4175. } VkRenderPassBeginInfo;
  4176. typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
  4177. typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
  4178. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
  4179. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
  4180. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
  4181. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
  4182. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
  4183. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
  4184. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
  4185. typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
  4186. typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
  4187. typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
  4188. typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
  4189. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
  4190. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
  4191. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
  4192. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
  4193. typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
  4194. typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
  4195. typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
  4196. typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
  4197. typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
  4198. typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
  4199. typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
  4200. typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
  4201. typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
  4202. typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
  4203. typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
  4204. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  4205. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  4206. typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
  4207. typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
  4208. typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
  4209. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
  4210. typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
  4211. typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  4212. typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
  4213. typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
  4214. typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
  4215. typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
  4216. typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
  4217. typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
  4218. typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
  4219. typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
  4220. 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);
  4221. typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
  4222. typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
  4223. typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
  4224. typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
  4225. typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
  4226. typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
  4227. typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
  4228. typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
  4229. typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
  4230. typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
  4231. typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
  4232. typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
  4233. typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
  4234. typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
  4235. typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
  4236. typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
  4237. typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
  4238. typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
  4239. typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
  4240. typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
  4241. typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
  4242. 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);
  4243. typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
  4244. typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
  4245. typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  4246. typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
  4247. typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
  4248. typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
  4249. typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
  4250. typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
  4251. typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
  4252. typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
  4253. typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
  4254. typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
  4255. typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
  4256. typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
  4257. typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
  4258. typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
  4259. typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
  4260. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
  4261. typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
  4262. typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  4263. typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
  4264. typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
  4265. typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
  4266. typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
  4267. typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
  4268. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
  4269. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
  4270. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
  4271. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
  4272. typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
  4273. typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
  4274. typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
  4275. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
  4276. typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
  4277. 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);
  4278. typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
  4279. typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  4280. typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
  4281. typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  4282. typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  4283. 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);
  4284. typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
  4285. typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  4286. typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
  4287. typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
  4288. typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
  4289. typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
  4290. typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
  4291. typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
  4292. typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
  4293. typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
  4294. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
  4295. typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
  4296. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
  4297. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
  4298. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
  4299. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
  4300. typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
  4301. typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
  4302. typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
  4303. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
  4304. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  4305. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  4306. typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
  4307. typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
  4308. typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
  4309. typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
  4310. typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
  4311. typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
  4312. typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
  4313. #ifndef VK_NO_PROTOTYPES
  4314. VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
  4315. const VkInstanceCreateInfo* pCreateInfo,
  4316. const VkAllocationCallbacks* pAllocator,
  4317. VkInstance* pInstance);
  4318. VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
  4319. VkInstance instance,
  4320. const VkAllocationCallbacks* pAllocator);
  4321. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
  4322. VkInstance instance,
  4323. uint32_t* pPhysicalDeviceCount,
  4324. VkPhysicalDevice* pPhysicalDevices);
  4325. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
  4326. VkPhysicalDevice physicalDevice,
  4327. VkPhysicalDeviceFeatures* pFeatures);
  4328. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
  4329. VkPhysicalDevice physicalDevice,
  4330. VkFormat format,
  4331. VkFormatProperties* pFormatProperties);
  4332. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
  4333. VkPhysicalDevice physicalDevice,
  4334. VkFormat format,
  4335. VkImageType type,
  4336. VkImageTiling tiling,
  4337. VkImageUsageFlags usage,
  4338. VkImageCreateFlags flags,
  4339. VkImageFormatProperties* pImageFormatProperties);
  4340. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
  4341. VkPhysicalDevice physicalDevice,
  4342. VkPhysicalDeviceProperties* pProperties);
  4343. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
  4344. VkPhysicalDevice physicalDevice,
  4345. uint32_t* pQueueFamilyPropertyCount,
  4346. VkQueueFamilyProperties* pQueueFamilyProperties);
  4347. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
  4348. VkPhysicalDevice physicalDevice,
  4349. VkPhysicalDeviceMemoryProperties* pMemoryProperties);
  4350. VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
  4351. VkInstance instance,
  4352. const char* pName);
  4353. VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
  4354. VkDevice device,
  4355. const char* pName);
  4356. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
  4357. VkPhysicalDevice physicalDevice,
  4358. const VkDeviceCreateInfo* pCreateInfo,
  4359. const VkAllocationCallbacks* pAllocator,
  4360. VkDevice* pDevice);
  4361. VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
  4362. VkDevice device,
  4363. const VkAllocationCallbacks* pAllocator);
  4364. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
  4365. const char* pLayerName,
  4366. uint32_t* pPropertyCount,
  4367. VkExtensionProperties* pProperties);
  4368. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
  4369. VkPhysicalDevice physicalDevice,
  4370. const char* pLayerName,
  4371. uint32_t* pPropertyCount,
  4372. VkExtensionProperties* pProperties);
  4373. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
  4374. uint32_t* pPropertyCount,
  4375. VkLayerProperties* pProperties);
  4376. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
  4377. VkPhysicalDevice physicalDevice,
  4378. uint32_t* pPropertyCount,
  4379. VkLayerProperties* pProperties);
  4380. VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
  4381. VkDevice device,
  4382. uint32_t queueFamilyIndex,
  4383. uint32_t queueIndex,
  4384. VkQueue* pQueue);
  4385. VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
  4386. VkQueue queue,
  4387. uint32_t submitCount,
  4388. const VkSubmitInfo* pSubmits,
  4389. VkFence fence);
  4390. VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
  4391. VkQueue queue);
  4392. VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
  4393. VkDevice device);
  4394. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
  4395. VkDevice device,
  4396. const VkMemoryAllocateInfo* pAllocateInfo,
  4397. const VkAllocationCallbacks* pAllocator,
  4398. VkDeviceMemory* pMemory);
  4399. VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
  4400. VkDevice device,
  4401. VkDeviceMemory memory,
  4402. const VkAllocationCallbacks* pAllocator);
  4403. VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
  4404. VkDevice device,
  4405. VkDeviceMemory memory,
  4406. VkDeviceSize offset,
  4407. VkDeviceSize size,
  4408. VkMemoryMapFlags flags,
  4409. void** ppData);
  4410. VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
  4411. VkDevice device,
  4412. VkDeviceMemory memory);
  4413. VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
  4414. VkDevice device,
  4415. uint32_t memoryRangeCount,
  4416. const VkMappedMemoryRange* pMemoryRanges);
  4417. VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
  4418. VkDevice device,
  4419. uint32_t memoryRangeCount,
  4420. const VkMappedMemoryRange* pMemoryRanges);
  4421. VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
  4422. VkDevice device,
  4423. VkDeviceMemory memory,
  4424. VkDeviceSize* pCommittedMemoryInBytes);
  4425. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
  4426. VkDevice device,
  4427. VkBuffer buffer,
  4428. VkDeviceMemory memory,
  4429. VkDeviceSize memoryOffset);
  4430. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
  4431. VkDevice device,
  4432. VkImage image,
  4433. VkDeviceMemory memory,
  4434. VkDeviceSize memoryOffset);
  4435. VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
  4436. VkDevice device,
  4437. VkBuffer buffer,
  4438. VkMemoryRequirements* pMemoryRequirements);
  4439. VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
  4440. VkDevice device,
  4441. VkImage image,
  4442. VkMemoryRequirements* pMemoryRequirements);
  4443. VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
  4444. VkDevice device,
  4445. VkImage image,
  4446. uint32_t* pSparseMemoryRequirementCount,
  4447. VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
  4448. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
  4449. VkPhysicalDevice physicalDevice,
  4450. VkFormat format,
  4451. VkImageType type,
  4452. VkSampleCountFlagBits samples,
  4453. VkImageUsageFlags usage,
  4454. VkImageTiling tiling,
  4455. uint32_t* pPropertyCount,
  4456. VkSparseImageFormatProperties* pProperties);
  4457. VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
  4458. VkQueue queue,
  4459. uint32_t bindInfoCount,
  4460. const VkBindSparseInfo* pBindInfo,
  4461. VkFence fence);
  4462. VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
  4463. VkDevice device,
  4464. const VkFenceCreateInfo* pCreateInfo,
  4465. const VkAllocationCallbacks* pAllocator,
  4466. VkFence* pFence);
  4467. VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
  4468. VkDevice device,
  4469. VkFence fence,
  4470. const VkAllocationCallbacks* pAllocator);
  4471. VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
  4472. VkDevice device,
  4473. uint32_t fenceCount,
  4474. const VkFence* pFences);
  4475. VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
  4476. VkDevice device,
  4477. VkFence fence);
  4478. VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
  4479. VkDevice device,
  4480. uint32_t fenceCount,
  4481. const VkFence* pFences,
  4482. VkBool32 waitAll,
  4483. uint64_t timeout);
  4484. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
  4485. VkDevice device,
  4486. const VkSemaphoreCreateInfo* pCreateInfo,
  4487. const VkAllocationCallbacks* pAllocator,
  4488. VkSemaphore* pSemaphore);
  4489. VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
  4490. VkDevice device,
  4491. VkSemaphore semaphore,
  4492. const VkAllocationCallbacks* pAllocator);
  4493. VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
  4494. VkDevice device,
  4495. const VkQueryPoolCreateInfo* pCreateInfo,
  4496. const VkAllocationCallbacks* pAllocator,
  4497. VkQueryPool* pQueryPool);
  4498. VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
  4499. VkDevice device,
  4500. VkQueryPool queryPool,
  4501. const VkAllocationCallbacks* pAllocator);
  4502. VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
  4503. VkDevice device,
  4504. VkQueryPool queryPool,
  4505. uint32_t firstQuery,
  4506. uint32_t queryCount,
  4507. size_t dataSize,
  4508. void* pData,
  4509. VkDeviceSize stride,
  4510. VkQueryResultFlags flags);
  4511. VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
  4512. VkDevice device,
  4513. const VkBufferCreateInfo* pCreateInfo,
  4514. const VkAllocationCallbacks* pAllocator,
  4515. VkBuffer* pBuffer);
  4516. VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
  4517. VkDevice device,
  4518. VkBuffer buffer,
  4519. const VkAllocationCallbacks* pAllocator);
  4520. VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
  4521. VkDevice device,
  4522. const VkImageCreateInfo* pCreateInfo,
  4523. const VkAllocationCallbacks* pAllocator,
  4524. VkImage* pImage);
  4525. VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
  4526. VkDevice device,
  4527. VkImage image,
  4528. const VkAllocationCallbacks* pAllocator);
  4529. VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
  4530. VkDevice device,
  4531. VkImage image,
  4532. const VkImageSubresource* pSubresource,
  4533. VkSubresourceLayout* pLayout);
  4534. VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
  4535. VkDevice device,
  4536. const VkImageViewCreateInfo* pCreateInfo,
  4537. const VkAllocationCallbacks* pAllocator,
  4538. VkImageView* pView);
  4539. VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
  4540. VkDevice device,
  4541. VkImageView imageView,
  4542. const VkAllocationCallbacks* pAllocator);
  4543. VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
  4544. VkDevice device,
  4545. const VkCommandPoolCreateInfo* pCreateInfo,
  4546. const VkAllocationCallbacks* pAllocator,
  4547. VkCommandPool* pCommandPool);
  4548. VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
  4549. VkDevice device,
  4550. VkCommandPool commandPool,
  4551. const VkAllocationCallbacks* pAllocator);
  4552. VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
  4553. VkDevice device,
  4554. VkCommandPool commandPool,
  4555. VkCommandPoolResetFlags flags);
  4556. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
  4557. VkDevice device,
  4558. const VkCommandBufferAllocateInfo* pAllocateInfo,
  4559. VkCommandBuffer* pCommandBuffers);
  4560. VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
  4561. VkDevice device,
  4562. VkCommandPool commandPool,
  4563. uint32_t commandBufferCount,
  4564. const VkCommandBuffer* pCommandBuffers);
  4565. VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
  4566. VkCommandBuffer commandBuffer,
  4567. const VkCommandBufferBeginInfo* pBeginInfo);
  4568. VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
  4569. VkCommandBuffer commandBuffer);
  4570. VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
  4571. VkCommandBuffer commandBuffer,
  4572. VkCommandBufferResetFlags flags);
  4573. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
  4574. VkCommandBuffer commandBuffer,
  4575. VkBuffer srcBuffer,
  4576. VkBuffer dstBuffer,
  4577. uint32_t regionCount,
  4578. const VkBufferCopy* pRegions);
  4579. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
  4580. VkCommandBuffer commandBuffer,
  4581. VkImage srcImage,
  4582. VkImageLayout srcImageLayout,
  4583. VkImage dstImage,
  4584. VkImageLayout dstImageLayout,
  4585. uint32_t regionCount,
  4586. const VkImageCopy* pRegions);
  4587. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
  4588. VkCommandBuffer commandBuffer,
  4589. VkBuffer srcBuffer,
  4590. VkImage dstImage,
  4591. VkImageLayout dstImageLayout,
  4592. uint32_t regionCount,
  4593. const VkBufferImageCopy* pRegions);
  4594. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
  4595. VkCommandBuffer commandBuffer,
  4596. VkImage srcImage,
  4597. VkImageLayout srcImageLayout,
  4598. VkBuffer dstBuffer,
  4599. uint32_t regionCount,
  4600. const VkBufferImageCopy* pRegions);
  4601. VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
  4602. VkCommandBuffer commandBuffer,
  4603. VkBuffer dstBuffer,
  4604. VkDeviceSize dstOffset,
  4605. VkDeviceSize dataSize,
  4606. const void* pData);
  4607. VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
  4608. VkCommandBuffer commandBuffer,
  4609. VkBuffer dstBuffer,
  4610. VkDeviceSize dstOffset,
  4611. VkDeviceSize size,
  4612. uint32_t data);
  4613. VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
  4614. VkCommandBuffer commandBuffer,
  4615. VkPipelineStageFlags srcStageMask,
  4616. VkPipelineStageFlags dstStageMask,
  4617. VkDependencyFlags dependencyFlags,
  4618. uint32_t memoryBarrierCount,
  4619. const VkMemoryBarrier* pMemoryBarriers,
  4620. uint32_t bufferMemoryBarrierCount,
  4621. const VkBufferMemoryBarrier* pBufferMemoryBarriers,
  4622. uint32_t imageMemoryBarrierCount,
  4623. const VkImageMemoryBarrier* pImageMemoryBarriers);
  4624. VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
  4625. VkCommandBuffer commandBuffer,
  4626. VkQueryPool queryPool,
  4627. uint32_t query,
  4628. VkQueryControlFlags flags);
  4629. VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
  4630. VkCommandBuffer commandBuffer,
  4631. VkQueryPool queryPool,
  4632. uint32_t query);
  4633. VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
  4634. VkCommandBuffer commandBuffer,
  4635. VkQueryPool queryPool,
  4636. uint32_t firstQuery,
  4637. uint32_t queryCount);
  4638. VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
  4639. VkCommandBuffer commandBuffer,
  4640. VkPipelineStageFlagBits pipelineStage,
  4641. VkQueryPool queryPool,
  4642. uint32_t query);
  4643. VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
  4644. VkCommandBuffer commandBuffer,
  4645. VkQueryPool queryPool,
  4646. uint32_t firstQuery,
  4647. uint32_t queryCount,
  4648. VkBuffer dstBuffer,
  4649. VkDeviceSize dstOffset,
  4650. VkDeviceSize stride,
  4651. VkQueryResultFlags flags);
  4652. VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
  4653. VkCommandBuffer commandBuffer,
  4654. uint32_t commandBufferCount,
  4655. const VkCommandBuffer* pCommandBuffers);
  4656. VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
  4657. VkDevice device,
  4658. const VkEventCreateInfo* pCreateInfo,
  4659. const VkAllocationCallbacks* pAllocator,
  4660. VkEvent* pEvent);
  4661. VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
  4662. VkDevice device,
  4663. VkEvent event,
  4664. const VkAllocationCallbacks* pAllocator);
  4665. VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
  4666. VkDevice device,
  4667. VkEvent event);
  4668. VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
  4669. VkDevice device,
  4670. VkEvent event);
  4671. VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
  4672. VkDevice device,
  4673. VkEvent event);
  4674. VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
  4675. VkDevice device,
  4676. const VkBufferViewCreateInfo* pCreateInfo,
  4677. const VkAllocationCallbacks* pAllocator,
  4678. VkBufferView* pView);
  4679. VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
  4680. VkDevice device,
  4681. VkBufferView bufferView,
  4682. const VkAllocationCallbacks* pAllocator);
  4683. VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
  4684. VkDevice device,
  4685. const VkShaderModuleCreateInfo* pCreateInfo,
  4686. const VkAllocationCallbacks* pAllocator,
  4687. VkShaderModule* pShaderModule);
  4688. VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
  4689. VkDevice device,
  4690. VkShaderModule shaderModule,
  4691. const VkAllocationCallbacks* pAllocator);
  4692. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
  4693. VkDevice device,
  4694. const VkPipelineCacheCreateInfo* pCreateInfo,
  4695. const VkAllocationCallbacks* pAllocator,
  4696. VkPipelineCache* pPipelineCache);
  4697. VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
  4698. VkDevice device,
  4699. VkPipelineCache pipelineCache,
  4700. const VkAllocationCallbacks* pAllocator);
  4701. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
  4702. VkDevice device,
  4703. VkPipelineCache pipelineCache,
  4704. size_t* pDataSize,
  4705. void* pData);
  4706. VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
  4707. VkDevice device,
  4708. VkPipelineCache dstCache,
  4709. uint32_t srcCacheCount,
  4710. const VkPipelineCache* pSrcCaches);
  4711. VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
  4712. VkDevice device,
  4713. VkPipelineCache pipelineCache,
  4714. uint32_t createInfoCount,
  4715. const VkComputePipelineCreateInfo* pCreateInfos,
  4716. const VkAllocationCallbacks* pAllocator,
  4717. VkPipeline* pPipelines);
  4718. VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
  4719. VkDevice device,
  4720. VkPipeline pipeline,
  4721. const VkAllocationCallbacks* pAllocator);
  4722. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
  4723. VkDevice device,
  4724. const VkPipelineLayoutCreateInfo* pCreateInfo,
  4725. const VkAllocationCallbacks* pAllocator,
  4726. VkPipelineLayout* pPipelineLayout);
  4727. VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
  4728. VkDevice device,
  4729. VkPipelineLayout pipelineLayout,
  4730. const VkAllocationCallbacks* pAllocator);
  4731. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
  4732. VkDevice device,
  4733. const VkSamplerCreateInfo* pCreateInfo,
  4734. const VkAllocationCallbacks* pAllocator,
  4735. VkSampler* pSampler);
  4736. VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
  4737. VkDevice device,
  4738. VkSampler sampler,
  4739. const VkAllocationCallbacks* pAllocator);
  4740. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
  4741. VkDevice device,
  4742. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  4743. const VkAllocationCallbacks* pAllocator,
  4744. VkDescriptorSetLayout* pSetLayout);
  4745. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
  4746. VkDevice device,
  4747. VkDescriptorSetLayout descriptorSetLayout,
  4748. const VkAllocationCallbacks* pAllocator);
  4749. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
  4750. VkDevice device,
  4751. const VkDescriptorPoolCreateInfo* pCreateInfo,
  4752. const VkAllocationCallbacks* pAllocator,
  4753. VkDescriptorPool* pDescriptorPool);
  4754. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
  4755. VkDevice device,
  4756. VkDescriptorPool descriptorPool,
  4757. const VkAllocationCallbacks* pAllocator);
  4758. VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
  4759. VkDevice device,
  4760. VkDescriptorPool descriptorPool,
  4761. VkDescriptorPoolResetFlags flags);
  4762. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
  4763. VkDevice device,
  4764. const VkDescriptorSetAllocateInfo* pAllocateInfo,
  4765. VkDescriptorSet* pDescriptorSets);
  4766. VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
  4767. VkDevice device,
  4768. VkDescriptorPool descriptorPool,
  4769. uint32_t descriptorSetCount,
  4770. const VkDescriptorSet* pDescriptorSets);
  4771. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
  4772. VkDevice device,
  4773. uint32_t descriptorWriteCount,
  4774. const VkWriteDescriptorSet* pDescriptorWrites,
  4775. uint32_t descriptorCopyCount,
  4776. const VkCopyDescriptorSet* pDescriptorCopies);
  4777. VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
  4778. VkCommandBuffer commandBuffer,
  4779. VkPipelineBindPoint pipelineBindPoint,
  4780. VkPipeline pipeline);
  4781. VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
  4782. VkCommandBuffer commandBuffer,
  4783. VkPipelineBindPoint pipelineBindPoint,
  4784. VkPipelineLayout layout,
  4785. uint32_t firstSet,
  4786. uint32_t descriptorSetCount,
  4787. const VkDescriptorSet* pDescriptorSets,
  4788. uint32_t dynamicOffsetCount,
  4789. const uint32_t* pDynamicOffsets);
  4790. VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
  4791. VkCommandBuffer commandBuffer,
  4792. VkImage image,
  4793. VkImageLayout imageLayout,
  4794. const VkClearColorValue* pColor,
  4795. uint32_t rangeCount,
  4796. const VkImageSubresourceRange* pRanges);
  4797. VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
  4798. VkCommandBuffer commandBuffer,
  4799. uint32_t groupCountX,
  4800. uint32_t groupCountY,
  4801. uint32_t groupCountZ);
  4802. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
  4803. VkCommandBuffer commandBuffer,
  4804. VkBuffer buffer,
  4805. VkDeviceSize offset);
  4806. VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
  4807. VkCommandBuffer commandBuffer,
  4808. VkEvent event,
  4809. VkPipelineStageFlags stageMask);
  4810. VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
  4811. VkCommandBuffer commandBuffer,
  4812. VkEvent event,
  4813. VkPipelineStageFlags stageMask);
  4814. VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
  4815. VkCommandBuffer commandBuffer,
  4816. uint32_t eventCount,
  4817. const VkEvent* pEvents,
  4818. VkPipelineStageFlags srcStageMask,
  4819. VkPipelineStageFlags dstStageMask,
  4820. uint32_t memoryBarrierCount,
  4821. const VkMemoryBarrier* pMemoryBarriers,
  4822. uint32_t bufferMemoryBarrierCount,
  4823. const VkBufferMemoryBarrier* pBufferMemoryBarriers,
  4824. uint32_t imageMemoryBarrierCount,
  4825. const VkImageMemoryBarrier* pImageMemoryBarriers);
  4826. VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
  4827. VkCommandBuffer commandBuffer,
  4828. VkPipelineLayout layout,
  4829. VkShaderStageFlags stageFlags,
  4830. uint32_t offset,
  4831. uint32_t size,
  4832. const void* pValues);
  4833. VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
  4834. VkDevice device,
  4835. VkPipelineCache pipelineCache,
  4836. uint32_t createInfoCount,
  4837. const VkGraphicsPipelineCreateInfo* pCreateInfos,
  4838. const VkAllocationCallbacks* pAllocator,
  4839. VkPipeline* pPipelines);
  4840. VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
  4841. VkDevice device,
  4842. const VkFramebufferCreateInfo* pCreateInfo,
  4843. const VkAllocationCallbacks* pAllocator,
  4844. VkFramebuffer* pFramebuffer);
  4845. VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
  4846. VkDevice device,
  4847. VkFramebuffer framebuffer,
  4848. const VkAllocationCallbacks* pAllocator);
  4849. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
  4850. VkDevice device,
  4851. const VkRenderPassCreateInfo* pCreateInfo,
  4852. const VkAllocationCallbacks* pAllocator,
  4853. VkRenderPass* pRenderPass);
  4854. VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
  4855. VkDevice device,
  4856. VkRenderPass renderPass,
  4857. const VkAllocationCallbacks* pAllocator);
  4858. VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
  4859. VkDevice device,
  4860. VkRenderPass renderPass,
  4861. VkExtent2D* pGranularity);
  4862. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
  4863. VkCommandBuffer commandBuffer,
  4864. uint32_t firstViewport,
  4865. uint32_t viewportCount,
  4866. const VkViewport* pViewports);
  4867. VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
  4868. VkCommandBuffer commandBuffer,
  4869. uint32_t firstScissor,
  4870. uint32_t scissorCount,
  4871. const VkRect2D* pScissors);
  4872. VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
  4873. VkCommandBuffer commandBuffer,
  4874. float lineWidth);
  4875. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
  4876. VkCommandBuffer commandBuffer,
  4877. float depthBiasConstantFactor,
  4878. float depthBiasClamp,
  4879. float depthBiasSlopeFactor);
  4880. VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
  4881. VkCommandBuffer commandBuffer,
  4882. const float blendConstants[4]);
  4883. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
  4884. VkCommandBuffer commandBuffer,
  4885. float minDepthBounds,
  4886. float maxDepthBounds);
  4887. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
  4888. VkCommandBuffer commandBuffer,
  4889. VkStencilFaceFlags faceMask,
  4890. uint32_t compareMask);
  4891. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
  4892. VkCommandBuffer commandBuffer,
  4893. VkStencilFaceFlags faceMask,
  4894. uint32_t writeMask);
  4895. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
  4896. VkCommandBuffer commandBuffer,
  4897. VkStencilFaceFlags faceMask,
  4898. uint32_t reference);
  4899. VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
  4900. VkCommandBuffer commandBuffer,
  4901. VkBuffer buffer,
  4902. VkDeviceSize offset,
  4903. VkIndexType indexType);
  4904. VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
  4905. VkCommandBuffer commandBuffer,
  4906. uint32_t firstBinding,
  4907. uint32_t bindingCount,
  4908. const VkBuffer* pBuffers,
  4909. const VkDeviceSize* pOffsets);
  4910. VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
  4911. VkCommandBuffer commandBuffer,
  4912. uint32_t vertexCount,
  4913. uint32_t instanceCount,
  4914. uint32_t firstVertex,
  4915. uint32_t firstInstance);
  4916. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
  4917. VkCommandBuffer commandBuffer,
  4918. uint32_t indexCount,
  4919. uint32_t instanceCount,
  4920. uint32_t firstIndex,
  4921. int32_t vertexOffset,
  4922. uint32_t firstInstance);
  4923. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
  4924. VkCommandBuffer commandBuffer,
  4925. VkBuffer buffer,
  4926. VkDeviceSize offset,
  4927. uint32_t drawCount,
  4928. uint32_t stride);
  4929. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
  4930. VkCommandBuffer commandBuffer,
  4931. VkBuffer buffer,
  4932. VkDeviceSize offset,
  4933. uint32_t drawCount,
  4934. uint32_t stride);
  4935. VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
  4936. VkCommandBuffer commandBuffer,
  4937. VkImage srcImage,
  4938. VkImageLayout srcImageLayout,
  4939. VkImage dstImage,
  4940. VkImageLayout dstImageLayout,
  4941. uint32_t regionCount,
  4942. const VkImageBlit* pRegions,
  4943. VkFilter filter);
  4944. VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
  4945. VkCommandBuffer commandBuffer,
  4946. VkImage image,
  4947. VkImageLayout imageLayout,
  4948. const VkClearDepthStencilValue* pDepthStencil,
  4949. uint32_t rangeCount,
  4950. const VkImageSubresourceRange* pRanges);
  4951. VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
  4952. VkCommandBuffer commandBuffer,
  4953. uint32_t attachmentCount,
  4954. const VkClearAttachment* pAttachments,
  4955. uint32_t rectCount,
  4956. const VkClearRect* pRects);
  4957. VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
  4958. VkCommandBuffer commandBuffer,
  4959. VkImage srcImage,
  4960. VkImageLayout srcImageLayout,
  4961. VkImage dstImage,
  4962. VkImageLayout dstImageLayout,
  4963. uint32_t regionCount,
  4964. const VkImageResolve* pRegions);
  4965. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
  4966. VkCommandBuffer commandBuffer,
  4967. const VkRenderPassBeginInfo* pRenderPassBegin,
  4968. VkSubpassContents contents);
  4969. VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
  4970. VkCommandBuffer commandBuffer,
  4971. VkSubpassContents contents);
  4972. VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
  4973. VkCommandBuffer commandBuffer);
  4974. #endif
  4975. // VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
  4976. #define VK_VERSION_1_1 1
  4977. // Vulkan 1.1 version number
  4978. #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
  4979. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
  4980. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
  4981. #define VK_MAX_DEVICE_GROUP_SIZE 32U
  4982. #define VK_LUID_SIZE 8U
  4983. #define VK_QUEUE_FAMILY_EXTERNAL (~1U)
  4984. typedef enum VkDescriptorUpdateTemplateType {
  4985. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
  4986. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS = 1,
  4987. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
  4988. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
  4989. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
  4990. } VkDescriptorUpdateTemplateType;
  4991. typedef enum VkSamplerYcbcrModelConversion {
  4992. VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
  4993. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
  4994. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
  4995. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
  4996. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
  4997. VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
  4998. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
  4999. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
  5000. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
  5001. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
  5002. VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
  5003. } VkSamplerYcbcrModelConversion;
  5004. typedef enum VkSamplerYcbcrRange {
  5005. VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
  5006. VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
  5007. VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
  5008. VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
  5009. VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
  5010. } VkSamplerYcbcrRange;
  5011. typedef enum VkChromaLocation {
  5012. VK_CHROMA_LOCATION_COSITED_EVEN = 0,
  5013. VK_CHROMA_LOCATION_MIDPOINT = 1,
  5014. VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
  5015. VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
  5016. VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
  5017. } VkChromaLocation;
  5018. typedef enum VkPointClippingBehavior {
  5019. VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
  5020. VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
  5021. VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
  5022. VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
  5023. VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
  5024. } VkPointClippingBehavior;
  5025. typedef enum VkTessellationDomainOrigin {
  5026. VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
  5027. VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
  5028. VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
  5029. VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
  5030. VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
  5031. } VkTessellationDomainOrigin;
  5032. typedef enum VkPeerMemoryFeatureFlagBits {
  5033. VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
  5034. VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
  5035. VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
  5036. VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
  5037. VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
  5038. VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
  5039. VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
  5040. VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
  5041. VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5042. } VkPeerMemoryFeatureFlagBits;
  5043. typedef VkFlags VkPeerMemoryFeatureFlags;
  5044. typedef enum VkMemoryAllocateFlagBits {
  5045. VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
  5046. VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
  5047. VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
  5048. VK_MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT = 0x00000008,
  5049. VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
  5050. VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
  5051. VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
  5052. VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5053. } VkMemoryAllocateFlagBits;
  5054. typedef VkFlags VkMemoryAllocateFlags;
  5055. typedef VkFlags VkCommandPoolTrimFlags;
  5056. typedef enum VkExternalMemoryHandleTypeFlagBits {
  5057. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
  5058. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
  5059. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
  5060. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
  5061. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
  5062. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
  5063. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
  5064. VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
  5065. VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
  5066. VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
  5067. VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
  5068. VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
  5069. VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
  5070. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OH_NATIVE_BUFFER_BIT_OHOS = 0x00008000,
  5071. VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
  5072. VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT = 0x00010000,
  5073. VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT = 0x00020000,
  5074. VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT = 0x00040000,
  5075. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
  5076. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  5077. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  5078. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
  5079. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
  5080. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
  5081. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
  5082. VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5083. } VkExternalMemoryHandleTypeFlagBits;
  5084. typedef VkFlags VkExternalMemoryHandleTypeFlags;
  5085. typedef enum VkExternalMemoryFeatureFlagBits {
  5086. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
  5087. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
  5088. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
  5089. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
  5090. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
  5091. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
  5092. VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5093. } VkExternalMemoryFeatureFlagBits;
  5094. typedef VkFlags VkExternalMemoryFeatureFlags;
  5095. typedef enum VkExternalFenceHandleTypeFlagBits {
  5096. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
  5097. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
  5098. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
  5099. VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
  5100. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
  5101. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  5102. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  5103. VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
  5104. VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5105. } VkExternalFenceHandleTypeFlagBits;
  5106. typedef VkFlags VkExternalFenceHandleTypeFlags;
  5107. typedef enum VkExternalFenceFeatureFlagBits {
  5108. VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
  5109. VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
  5110. VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
  5111. VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
  5112. VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5113. } VkExternalFenceFeatureFlagBits;
  5114. typedef VkFlags VkExternalFenceFeatureFlags;
  5115. typedef enum VkFenceImportFlagBits {
  5116. VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
  5117. VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
  5118. VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5119. } VkFenceImportFlagBits;
  5120. typedef VkFlags VkFenceImportFlags;
  5121. typedef enum VkSemaphoreImportFlagBits {
  5122. VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
  5123. VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
  5124. VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5125. } VkSemaphoreImportFlagBits;
  5126. typedef VkFlags VkSemaphoreImportFlags;
  5127. typedef enum VkExternalSemaphoreHandleTypeFlagBits {
  5128. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
  5129. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
  5130. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
  5131. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
  5132. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
  5133. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
  5134. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
  5135. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
  5136. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  5137. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  5138. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
  5139. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
  5140. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5141. } VkExternalSemaphoreHandleTypeFlagBits;
  5142. typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
  5143. typedef enum VkExternalSemaphoreFeatureFlagBits {
  5144. VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
  5145. VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
  5146. VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
  5147. VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
  5148. VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5149. } VkExternalSemaphoreFeatureFlagBits;
  5150. typedef VkFlags VkExternalSemaphoreFeatureFlags;
  5151. typedef enum VkSubgroupFeatureFlagBits {
  5152. VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
  5153. VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
  5154. VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
  5155. VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
  5156. VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
  5157. VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
  5158. VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
  5159. VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
  5160. VK_SUBGROUP_FEATURE_ROTATE_BIT = 0x00000200,
  5161. VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT = 0x00000400,
  5162. VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
  5163. VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_BIT,
  5164. VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,
  5165. VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5166. } VkSubgroupFeatureFlagBits;
  5167. typedef VkFlags VkSubgroupFeatureFlags;
  5168. typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
  5169. typedef struct VkBindBufferMemoryInfo {
  5170. VkStructureType sType;
  5171. const void* pNext;
  5172. VkBuffer buffer;
  5173. VkDeviceMemory memory;
  5174. VkDeviceSize memoryOffset;
  5175. } VkBindBufferMemoryInfo;
  5176. typedef struct VkBindImageMemoryInfo {
  5177. VkStructureType sType;
  5178. const void* pNext;
  5179. VkImage image;
  5180. VkDeviceMemory memory;
  5181. VkDeviceSize memoryOffset;
  5182. } VkBindImageMemoryInfo;
  5183. typedef struct VkMemoryDedicatedRequirements {
  5184. VkStructureType sType;
  5185. void* pNext;
  5186. VkBool32 prefersDedicatedAllocation;
  5187. VkBool32 requiresDedicatedAllocation;
  5188. } VkMemoryDedicatedRequirements;
  5189. typedef struct VkMemoryDedicatedAllocateInfo {
  5190. VkStructureType sType;
  5191. const void* pNext;
  5192. VkImage image;
  5193. VkBuffer buffer;
  5194. } VkMemoryDedicatedAllocateInfo;
  5195. typedef struct VkMemoryAllocateFlagsInfo {
  5196. VkStructureType sType;
  5197. const void* pNext;
  5198. VkMemoryAllocateFlags flags;
  5199. uint32_t deviceMask;
  5200. } VkMemoryAllocateFlagsInfo;
  5201. typedef struct VkDeviceGroupCommandBufferBeginInfo {
  5202. VkStructureType sType;
  5203. const void* pNext;
  5204. uint32_t deviceMask;
  5205. } VkDeviceGroupCommandBufferBeginInfo;
  5206. typedef struct VkDeviceGroupSubmitInfo {
  5207. VkStructureType sType;
  5208. const void* pNext;
  5209. uint32_t waitSemaphoreCount;
  5210. const uint32_t* pWaitSemaphoreDeviceIndices;
  5211. uint32_t commandBufferCount;
  5212. const uint32_t* pCommandBufferDeviceMasks;
  5213. uint32_t signalSemaphoreCount;
  5214. const uint32_t* pSignalSemaphoreDeviceIndices;
  5215. } VkDeviceGroupSubmitInfo;
  5216. typedef struct VkDeviceGroupBindSparseInfo {
  5217. VkStructureType sType;
  5218. const void* pNext;
  5219. uint32_t resourceDeviceIndex;
  5220. uint32_t memoryDeviceIndex;
  5221. } VkDeviceGroupBindSparseInfo;
  5222. typedef struct VkBindBufferMemoryDeviceGroupInfo {
  5223. VkStructureType sType;
  5224. const void* pNext;
  5225. uint32_t deviceIndexCount;
  5226. const uint32_t* pDeviceIndices;
  5227. } VkBindBufferMemoryDeviceGroupInfo;
  5228. typedef struct VkBindImageMemoryDeviceGroupInfo {
  5229. VkStructureType sType;
  5230. const void* pNext;
  5231. uint32_t deviceIndexCount;
  5232. const uint32_t* pDeviceIndices;
  5233. uint32_t splitInstanceBindRegionCount;
  5234. const VkRect2D* pSplitInstanceBindRegions;
  5235. } VkBindImageMemoryDeviceGroupInfo;
  5236. typedef struct VkPhysicalDeviceGroupProperties {
  5237. VkStructureType sType;
  5238. void* pNext;
  5239. uint32_t physicalDeviceCount;
  5240. VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
  5241. VkBool32 subsetAllocation;
  5242. } VkPhysicalDeviceGroupProperties;
  5243. typedef struct VkDeviceGroupDeviceCreateInfo {
  5244. VkStructureType sType;
  5245. const void* pNext;
  5246. uint32_t physicalDeviceCount;
  5247. const VkPhysicalDevice* pPhysicalDevices;
  5248. } VkDeviceGroupDeviceCreateInfo;
  5249. typedef struct VkBufferMemoryRequirementsInfo2 {
  5250. VkStructureType sType;
  5251. const void* pNext;
  5252. VkBuffer buffer;
  5253. } VkBufferMemoryRequirementsInfo2;
  5254. typedef struct VkImageMemoryRequirementsInfo2 {
  5255. VkStructureType sType;
  5256. const void* pNext;
  5257. VkImage image;
  5258. } VkImageMemoryRequirementsInfo2;
  5259. typedef struct VkImageSparseMemoryRequirementsInfo2 {
  5260. VkStructureType sType;
  5261. const void* pNext;
  5262. VkImage image;
  5263. } VkImageSparseMemoryRequirementsInfo2;
  5264. typedef struct VkMemoryRequirements2 {
  5265. VkStructureType sType;
  5266. void* pNext;
  5267. VkMemoryRequirements memoryRequirements;
  5268. } VkMemoryRequirements2;
  5269. typedef struct VkSparseImageMemoryRequirements2 {
  5270. VkStructureType sType;
  5271. void* pNext;
  5272. VkSparseImageMemoryRequirements memoryRequirements;
  5273. } VkSparseImageMemoryRequirements2;
  5274. typedef struct VkPhysicalDeviceFeatures2 {
  5275. VkStructureType sType;
  5276. void* pNext;
  5277. VkPhysicalDeviceFeatures features;
  5278. } VkPhysicalDeviceFeatures2;
  5279. typedef struct VkPhysicalDeviceProperties2 {
  5280. VkStructureType sType;
  5281. void* pNext;
  5282. VkPhysicalDeviceProperties properties;
  5283. } VkPhysicalDeviceProperties2;
  5284. typedef struct VkFormatProperties2 {
  5285. VkStructureType sType;
  5286. void* pNext;
  5287. VkFormatProperties formatProperties;
  5288. } VkFormatProperties2;
  5289. typedef struct VkImageFormatProperties2 {
  5290. VkStructureType sType;
  5291. void* pNext;
  5292. VkImageFormatProperties imageFormatProperties;
  5293. } VkImageFormatProperties2;
  5294. typedef struct VkPhysicalDeviceImageFormatInfo2 {
  5295. VkStructureType sType;
  5296. const void* pNext;
  5297. VkFormat format;
  5298. VkImageType type;
  5299. VkImageTiling tiling;
  5300. VkImageUsageFlags usage;
  5301. VkImageCreateFlags flags;
  5302. } VkPhysicalDeviceImageFormatInfo2;
  5303. typedef struct VkQueueFamilyProperties2 {
  5304. VkStructureType sType;
  5305. void* pNext;
  5306. VkQueueFamilyProperties queueFamilyProperties;
  5307. } VkQueueFamilyProperties2;
  5308. typedef struct VkPhysicalDeviceMemoryProperties2 {
  5309. VkStructureType sType;
  5310. void* pNext;
  5311. VkPhysicalDeviceMemoryProperties memoryProperties;
  5312. } VkPhysicalDeviceMemoryProperties2;
  5313. typedef struct VkSparseImageFormatProperties2 {
  5314. VkStructureType sType;
  5315. void* pNext;
  5316. VkSparseImageFormatProperties properties;
  5317. } VkSparseImageFormatProperties2;
  5318. typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
  5319. VkStructureType sType;
  5320. const void* pNext;
  5321. VkFormat format;
  5322. VkImageType type;
  5323. VkSampleCountFlagBits samples;
  5324. VkImageUsageFlags usage;
  5325. VkImageTiling tiling;
  5326. } VkPhysicalDeviceSparseImageFormatInfo2;
  5327. typedef struct VkImageViewUsageCreateInfo {
  5328. VkStructureType sType;
  5329. const void* pNext;
  5330. VkImageUsageFlags usage;
  5331. } VkImageViewUsageCreateInfo;
  5332. typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
  5333. VkStructureType sType;
  5334. void* pNext;
  5335. VkBool32 protectedMemory;
  5336. } VkPhysicalDeviceProtectedMemoryFeatures;
  5337. typedef struct VkPhysicalDeviceProtectedMemoryProperties {
  5338. VkStructureType sType;
  5339. void* pNext;
  5340. VkBool32 protectedNoFault;
  5341. } VkPhysicalDeviceProtectedMemoryProperties;
  5342. typedef struct VkDeviceQueueInfo2 {
  5343. VkStructureType sType;
  5344. const void* pNext;
  5345. VkDeviceQueueCreateFlags flags;
  5346. uint32_t queueFamilyIndex;
  5347. uint32_t queueIndex;
  5348. } VkDeviceQueueInfo2;
  5349. typedef struct VkProtectedSubmitInfo {
  5350. VkStructureType sType;
  5351. const void* pNext;
  5352. VkBool32 protectedSubmit;
  5353. } VkProtectedSubmitInfo;
  5354. typedef struct VkBindImagePlaneMemoryInfo {
  5355. VkStructureType sType;
  5356. const void* pNext;
  5357. VkImageAspectFlagBits planeAspect;
  5358. } VkBindImagePlaneMemoryInfo;
  5359. typedef struct VkImagePlaneMemoryRequirementsInfo {
  5360. VkStructureType sType;
  5361. const void* pNext;
  5362. VkImageAspectFlagBits planeAspect;
  5363. } VkImagePlaneMemoryRequirementsInfo;
  5364. typedef struct VkExternalMemoryProperties {
  5365. VkExternalMemoryFeatureFlags externalMemoryFeatures;
  5366. VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
  5367. VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
  5368. } VkExternalMemoryProperties;
  5369. typedef struct VkPhysicalDeviceExternalImageFormatInfo {
  5370. VkStructureType sType;
  5371. const void* pNext;
  5372. VkExternalMemoryHandleTypeFlagBits handleType;
  5373. } VkPhysicalDeviceExternalImageFormatInfo;
  5374. typedef struct VkExternalImageFormatProperties {
  5375. VkStructureType sType;
  5376. void* pNext;
  5377. VkExternalMemoryProperties externalMemoryProperties;
  5378. } VkExternalImageFormatProperties;
  5379. typedef struct VkPhysicalDeviceExternalBufferInfo {
  5380. VkStructureType sType;
  5381. const void* pNext;
  5382. VkBufferCreateFlags flags;
  5383. VkBufferUsageFlags usage;
  5384. VkExternalMemoryHandleTypeFlagBits handleType;
  5385. } VkPhysicalDeviceExternalBufferInfo;
  5386. typedef struct VkExternalBufferProperties {
  5387. VkStructureType sType;
  5388. void* pNext;
  5389. VkExternalMemoryProperties externalMemoryProperties;
  5390. } VkExternalBufferProperties;
  5391. typedef struct VkPhysicalDeviceIDProperties {
  5392. VkStructureType sType;
  5393. void* pNext;
  5394. uint8_t deviceUUID[VK_UUID_SIZE];
  5395. uint8_t driverUUID[VK_UUID_SIZE];
  5396. uint8_t deviceLUID[VK_LUID_SIZE];
  5397. uint32_t deviceNodeMask;
  5398. VkBool32 deviceLUIDValid;
  5399. } VkPhysicalDeviceIDProperties;
  5400. typedef struct VkExternalMemoryImageCreateInfo {
  5401. VkStructureType sType;
  5402. const void* pNext;
  5403. VkExternalMemoryHandleTypeFlags handleTypes;
  5404. } VkExternalMemoryImageCreateInfo;
  5405. typedef struct VkExternalMemoryBufferCreateInfo {
  5406. VkStructureType sType;
  5407. const void* pNext;
  5408. VkExternalMemoryHandleTypeFlags handleTypes;
  5409. } VkExternalMemoryBufferCreateInfo;
  5410. typedef struct VkExportMemoryAllocateInfo {
  5411. VkStructureType sType;
  5412. const void* pNext;
  5413. VkExternalMemoryHandleTypeFlags handleTypes;
  5414. } VkExportMemoryAllocateInfo;
  5415. typedef struct VkPhysicalDeviceExternalFenceInfo {
  5416. VkStructureType sType;
  5417. const void* pNext;
  5418. VkExternalFenceHandleTypeFlagBits handleType;
  5419. } VkPhysicalDeviceExternalFenceInfo;
  5420. typedef struct VkExternalFenceProperties {
  5421. VkStructureType sType;
  5422. void* pNext;
  5423. VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
  5424. VkExternalFenceHandleTypeFlags compatibleHandleTypes;
  5425. VkExternalFenceFeatureFlags externalFenceFeatures;
  5426. } VkExternalFenceProperties;
  5427. typedef struct VkExportFenceCreateInfo {
  5428. VkStructureType sType;
  5429. const void* pNext;
  5430. VkExternalFenceHandleTypeFlags handleTypes;
  5431. } VkExportFenceCreateInfo;
  5432. typedef struct VkExportSemaphoreCreateInfo {
  5433. VkStructureType sType;
  5434. const void* pNext;
  5435. VkExternalSemaphoreHandleTypeFlags handleTypes;
  5436. } VkExportSemaphoreCreateInfo;
  5437. typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
  5438. VkStructureType sType;
  5439. const void* pNext;
  5440. VkExternalSemaphoreHandleTypeFlagBits handleType;
  5441. } VkPhysicalDeviceExternalSemaphoreInfo;
  5442. typedef struct VkExternalSemaphoreProperties {
  5443. VkStructureType sType;
  5444. void* pNext;
  5445. VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
  5446. VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
  5447. VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
  5448. } VkExternalSemaphoreProperties;
  5449. typedef struct VkPhysicalDeviceSubgroupProperties {
  5450. VkStructureType sType;
  5451. void* pNext;
  5452. uint32_t subgroupSize;
  5453. VkShaderStageFlags supportedStages;
  5454. VkSubgroupFeatureFlags supportedOperations;
  5455. VkBool32 quadOperationsInAllStages;
  5456. } VkPhysicalDeviceSubgroupProperties;
  5457. typedef struct VkPhysicalDevice16BitStorageFeatures {
  5458. VkStructureType sType;
  5459. void* pNext;
  5460. VkBool32 storageBuffer16BitAccess;
  5461. VkBool32 uniformAndStorageBuffer16BitAccess;
  5462. VkBool32 storagePushConstant16;
  5463. VkBool32 storageInputOutput16;
  5464. } VkPhysicalDevice16BitStorageFeatures;
  5465. typedef struct VkPhysicalDeviceVariablePointersFeatures {
  5466. VkStructureType sType;
  5467. void* pNext;
  5468. VkBool32 variablePointersStorageBuffer;
  5469. VkBool32 variablePointers;
  5470. } VkPhysicalDeviceVariablePointersFeatures;
  5471. typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
  5472. typedef struct VkDescriptorUpdateTemplateEntry {
  5473. uint32_t dstBinding;
  5474. uint32_t dstArrayElement;
  5475. uint32_t descriptorCount;
  5476. VkDescriptorType descriptorType;
  5477. size_t offset;
  5478. size_t stride;
  5479. } VkDescriptorUpdateTemplateEntry;
  5480. typedef struct VkDescriptorUpdateTemplateCreateInfo {
  5481. VkStructureType sType;
  5482. const void* pNext;
  5483. VkDescriptorUpdateTemplateCreateFlags flags;
  5484. uint32_t descriptorUpdateEntryCount;
  5485. const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
  5486. VkDescriptorUpdateTemplateType templateType;
  5487. VkDescriptorSetLayout descriptorSetLayout;
  5488. VkPipelineBindPoint pipelineBindPoint;
  5489. VkPipelineLayout pipelineLayout;
  5490. uint32_t set;
  5491. } VkDescriptorUpdateTemplateCreateInfo;
  5492. typedef struct VkPhysicalDeviceMaintenance3Properties {
  5493. VkStructureType sType;
  5494. void* pNext;
  5495. uint32_t maxPerSetDescriptors;
  5496. VkDeviceSize maxMemoryAllocationSize;
  5497. } VkPhysicalDeviceMaintenance3Properties;
  5498. typedef struct VkDescriptorSetLayoutSupport {
  5499. VkStructureType sType;
  5500. void* pNext;
  5501. VkBool32 supported;
  5502. } VkDescriptorSetLayoutSupport;
  5503. typedef struct VkSamplerYcbcrConversionCreateInfo {
  5504. VkStructureType sType;
  5505. const void* pNext;
  5506. VkFormat format;
  5507. VkSamplerYcbcrModelConversion ycbcrModel;
  5508. VkSamplerYcbcrRange ycbcrRange;
  5509. VkComponentMapping components;
  5510. VkChromaLocation xChromaOffset;
  5511. VkChromaLocation yChromaOffset;
  5512. VkFilter chromaFilter;
  5513. VkBool32 forceExplicitReconstruction;
  5514. } VkSamplerYcbcrConversionCreateInfo;
  5515. typedef struct VkSamplerYcbcrConversionInfo {
  5516. VkStructureType sType;
  5517. const void* pNext;
  5518. VkSamplerYcbcrConversion conversion;
  5519. } VkSamplerYcbcrConversionInfo;
  5520. typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
  5521. VkStructureType sType;
  5522. void* pNext;
  5523. VkBool32 samplerYcbcrConversion;
  5524. } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
  5525. typedef struct VkSamplerYcbcrConversionImageFormatProperties {
  5526. VkStructureType sType;
  5527. void* pNext;
  5528. uint32_t combinedImageSamplerDescriptorCount;
  5529. } VkSamplerYcbcrConversionImageFormatProperties;
  5530. typedef struct VkDeviceGroupRenderPassBeginInfo {
  5531. VkStructureType sType;
  5532. const void* pNext;
  5533. uint32_t deviceMask;
  5534. uint32_t deviceRenderAreaCount;
  5535. const VkRect2D* pDeviceRenderAreas;
  5536. } VkDeviceGroupRenderPassBeginInfo;
  5537. typedef struct VkPhysicalDevicePointClippingProperties {
  5538. VkStructureType sType;
  5539. void* pNext;
  5540. VkPointClippingBehavior pointClippingBehavior;
  5541. } VkPhysicalDevicePointClippingProperties;
  5542. typedef struct VkInputAttachmentAspectReference {
  5543. uint32_t subpass;
  5544. uint32_t inputAttachmentIndex;
  5545. VkImageAspectFlags aspectMask;
  5546. } VkInputAttachmentAspectReference;
  5547. typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
  5548. VkStructureType sType;
  5549. const void* pNext;
  5550. uint32_t aspectReferenceCount;
  5551. const VkInputAttachmentAspectReference* pAspectReferences;
  5552. } VkRenderPassInputAttachmentAspectCreateInfo;
  5553. typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
  5554. VkStructureType sType;
  5555. const void* pNext;
  5556. VkTessellationDomainOrigin domainOrigin;
  5557. } VkPipelineTessellationDomainOriginStateCreateInfo;
  5558. typedef struct VkRenderPassMultiviewCreateInfo {
  5559. VkStructureType sType;
  5560. const void* pNext;
  5561. uint32_t subpassCount;
  5562. const uint32_t* pViewMasks;
  5563. uint32_t dependencyCount;
  5564. const int32_t* pViewOffsets;
  5565. uint32_t correlationMaskCount;
  5566. const uint32_t* pCorrelationMasks;
  5567. } VkRenderPassMultiviewCreateInfo;
  5568. typedef struct VkPhysicalDeviceMultiviewFeatures {
  5569. VkStructureType sType;
  5570. void* pNext;
  5571. VkBool32 multiview;
  5572. VkBool32 multiviewGeometryShader;
  5573. VkBool32 multiviewTessellationShader;
  5574. } VkPhysicalDeviceMultiviewFeatures;
  5575. typedef struct VkPhysicalDeviceMultiviewProperties {
  5576. VkStructureType sType;
  5577. void* pNext;
  5578. uint32_t maxMultiviewViewCount;
  5579. uint32_t maxMultiviewInstanceIndex;
  5580. } VkPhysicalDeviceMultiviewProperties;
  5581. typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
  5582. VkStructureType sType;
  5583. void* pNext;
  5584. VkBool32 shaderDrawParameters;
  5585. } VkPhysicalDeviceShaderDrawParametersFeatures;
  5586. typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
  5587. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
  5588. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
  5589. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
  5590. typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  5591. typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
  5592. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  5593. typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  5594. typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  5595. typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  5596. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
  5597. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
  5598. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
  5599. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
  5600. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
  5601. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  5602. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
  5603. typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
  5604. typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
  5605. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
  5606. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
  5607. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  5608. typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  5609. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  5610. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
  5611. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
  5612. typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
  5613. typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
  5614. typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
  5615. #ifndef VK_NO_PROTOTYPES
  5616. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
  5617. uint32_t* pApiVersion);
  5618. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
  5619. VkDevice device,
  5620. uint32_t bindInfoCount,
  5621. const VkBindBufferMemoryInfo* pBindInfos);
  5622. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
  5623. VkDevice device,
  5624. uint32_t bindInfoCount,
  5625. const VkBindImageMemoryInfo* pBindInfos);
  5626. VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
  5627. VkDevice device,
  5628. uint32_t heapIndex,
  5629. uint32_t localDeviceIndex,
  5630. uint32_t remoteDeviceIndex,
  5631. VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  5632. VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
  5633. VkCommandBuffer commandBuffer,
  5634. uint32_t deviceMask);
  5635. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
  5636. VkInstance instance,
  5637. uint32_t* pPhysicalDeviceGroupCount,
  5638. VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  5639. VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
  5640. VkDevice device,
  5641. const VkImageMemoryRequirementsInfo2* pInfo,
  5642. VkMemoryRequirements2* pMemoryRequirements);
  5643. VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
  5644. VkDevice device,
  5645. const VkBufferMemoryRequirementsInfo2* pInfo,
  5646. VkMemoryRequirements2* pMemoryRequirements);
  5647. VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
  5648. VkDevice device,
  5649. const VkImageSparseMemoryRequirementsInfo2* pInfo,
  5650. uint32_t* pSparseMemoryRequirementCount,
  5651. VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  5652. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
  5653. VkPhysicalDevice physicalDevice,
  5654. VkPhysicalDeviceFeatures2* pFeatures);
  5655. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
  5656. VkPhysicalDevice physicalDevice,
  5657. VkPhysicalDeviceProperties2* pProperties);
  5658. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
  5659. VkPhysicalDevice physicalDevice,
  5660. VkFormat format,
  5661. VkFormatProperties2* pFormatProperties);
  5662. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
  5663. VkPhysicalDevice physicalDevice,
  5664. const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
  5665. VkImageFormatProperties2* pImageFormatProperties);
  5666. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
  5667. VkPhysicalDevice physicalDevice,
  5668. uint32_t* pQueueFamilyPropertyCount,
  5669. VkQueueFamilyProperties2* pQueueFamilyProperties);
  5670. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
  5671. VkPhysicalDevice physicalDevice,
  5672. VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  5673. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
  5674. VkPhysicalDevice physicalDevice,
  5675. const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
  5676. uint32_t* pPropertyCount,
  5677. VkSparseImageFormatProperties2* pProperties);
  5678. VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
  5679. VkDevice device,
  5680. VkCommandPool commandPool,
  5681. VkCommandPoolTrimFlags flags);
  5682. VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
  5683. VkDevice device,
  5684. const VkDeviceQueueInfo2* pQueueInfo,
  5685. VkQueue* pQueue);
  5686. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
  5687. VkPhysicalDevice physicalDevice,
  5688. const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
  5689. VkExternalBufferProperties* pExternalBufferProperties);
  5690. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
  5691. VkPhysicalDevice physicalDevice,
  5692. const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
  5693. VkExternalFenceProperties* pExternalFenceProperties);
  5694. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
  5695. VkPhysicalDevice physicalDevice,
  5696. const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
  5697. VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  5698. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
  5699. VkCommandBuffer commandBuffer,
  5700. uint32_t baseGroupX,
  5701. uint32_t baseGroupY,
  5702. uint32_t baseGroupZ,
  5703. uint32_t groupCountX,
  5704. uint32_t groupCountY,
  5705. uint32_t groupCountZ);
  5706. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
  5707. VkDevice device,
  5708. const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
  5709. const VkAllocationCallbacks* pAllocator,
  5710. VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  5711. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
  5712. VkDevice device,
  5713. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  5714. const VkAllocationCallbacks* pAllocator);
  5715. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
  5716. VkDevice device,
  5717. VkDescriptorSet descriptorSet,
  5718. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  5719. const void* pData);
  5720. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
  5721. VkDevice device,
  5722. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  5723. VkDescriptorSetLayoutSupport* pSupport);
  5724. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
  5725. VkDevice device,
  5726. const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
  5727. const VkAllocationCallbacks* pAllocator,
  5728. VkSamplerYcbcrConversion* pYcbcrConversion);
  5729. VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
  5730. VkDevice device,
  5731. VkSamplerYcbcrConversion ycbcrConversion,
  5732. const VkAllocationCallbacks* pAllocator);
  5733. #endif
  5734. // VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
  5735. #define VK_VERSION_1_2 1
  5736. // Vulkan 1.2 version number
  5737. #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
  5738. #define VK_MAX_DRIVER_NAME_SIZE 256U
  5739. #define VK_MAX_DRIVER_INFO_SIZE 256U
  5740. typedef enum VkDriverId {
  5741. VK_DRIVER_ID_AMD_PROPRIETARY = 1,
  5742. VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
  5743. VK_DRIVER_ID_MESA_RADV = 3,
  5744. VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
  5745. VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
  5746. VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
  5747. VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
  5748. VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
  5749. VK_DRIVER_ID_ARM_PROPRIETARY = 9,
  5750. VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
  5751. VK_DRIVER_ID_GGP_PROPRIETARY = 11,
  5752. VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
  5753. VK_DRIVER_ID_MESA_LLVMPIPE = 13,
  5754. VK_DRIVER_ID_MOLTENVK = 14,
  5755. VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
  5756. VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
  5757. VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
  5758. VK_DRIVER_ID_MESA_TURNIP = 18,
  5759. VK_DRIVER_ID_MESA_V3DV = 19,
  5760. VK_DRIVER_ID_MESA_PANVK = 20,
  5761. VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
  5762. VK_DRIVER_ID_MESA_VENUS = 22,
  5763. VK_DRIVER_ID_MESA_DOZEN = 23,
  5764. VK_DRIVER_ID_MESA_NVK = 24,
  5765. VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
  5766. VK_DRIVER_ID_MESA_HONEYKRISP = 26,
  5767. VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN = 27,
  5768. VK_DRIVER_ID_MESA_KOSMICKRISP = 28,
  5769. VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
  5770. VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
  5771. VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
  5772. VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
  5773. VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
  5774. VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
  5775. VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
  5776. VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
  5777. VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
  5778. VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
  5779. VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
  5780. VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
  5781. VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
  5782. } VkDriverId;
  5783. typedef enum VkShaderFloatControlsIndependence {
  5784. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
  5785. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
  5786. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
  5787. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
  5788. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
  5789. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
  5790. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
  5791. } VkShaderFloatControlsIndependence;
  5792. typedef enum VkSemaphoreType {
  5793. VK_SEMAPHORE_TYPE_BINARY = 0,
  5794. VK_SEMAPHORE_TYPE_TIMELINE = 1,
  5795. VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
  5796. VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
  5797. VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
  5798. } VkSemaphoreType;
  5799. typedef enum VkSamplerReductionMode {
  5800. VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
  5801. VK_SAMPLER_REDUCTION_MODE_MIN = 1,
  5802. VK_SAMPLER_REDUCTION_MODE_MAX = 2,
  5803. VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
  5804. VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
  5805. VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
  5806. VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
  5807. VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
  5808. } VkSamplerReductionMode;
  5809. typedef enum VkResolveModeFlagBits {
  5810. VK_RESOLVE_MODE_NONE = 0,
  5811. VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
  5812. VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
  5813. VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
  5814. VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
  5815. VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID = 0x00000010,
  5816. VK_RESOLVE_MODE_CUSTOM_BIT_EXT = 0x00000020,
  5817. VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
  5818. VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
  5819. VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
  5820. VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
  5821. VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
  5822. // VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID is a legacy alias
  5823. VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID,
  5824. VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5825. } VkResolveModeFlagBits;
  5826. typedef VkFlags VkResolveModeFlags;
  5827. typedef enum VkSemaphoreWaitFlagBits {
  5828. VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
  5829. VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
  5830. VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5831. } VkSemaphoreWaitFlagBits;
  5832. typedef VkFlags VkSemaphoreWaitFlags;
  5833. typedef enum VkDescriptorBindingFlagBits {
  5834. VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
  5835. VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
  5836. VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
  5837. VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
  5838. VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
  5839. VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
  5840. VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
  5841. VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
  5842. VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  5843. } VkDescriptorBindingFlagBits;
  5844. typedef VkFlags VkDescriptorBindingFlags;
  5845. typedef struct VkPhysicalDeviceVulkan11Features {
  5846. VkStructureType sType;
  5847. void* pNext;
  5848. VkBool32 storageBuffer16BitAccess;
  5849. VkBool32 uniformAndStorageBuffer16BitAccess;
  5850. VkBool32 storagePushConstant16;
  5851. VkBool32 storageInputOutput16;
  5852. VkBool32 multiview;
  5853. VkBool32 multiviewGeometryShader;
  5854. VkBool32 multiviewTessellationShader;
  5855. VkBool32 variablePointersStorageBuffer;
  5856. VkBool32 variablePointers;
  5857. VkBool32 protectedMemory;
  5858. VkBool32 samplerYcbcrConversion;
  5859. VkBool32 shaderDrawParameters;
  5860. } VkPhysicalDeviceVulkan11Features;
  5861. typedef struct VkPhysicalDeviceVulkan11Properties {
  5862. VkStructureType sType;
  5863. void* pNext;
  5864. uint8_t deviceUUID[VK_UUID_SIZE];
  5865. uint8_t driverUUID[VK_UUID_SIZE];
  5866. uint8_t deviceLUID[VK_LUID_SIZE];
  5867. uint32_t deviceNodeMask;
  5868. VkBool32 deviceLUIDValid;
  5869. uint32_t subgroupSize;
  5870. VkShaderStageFlags subgroupSupportedStages;
  5871. VkSubgroupFeatureFlags subgroupSupportedOperations;
  5872. VkBool32 subgroupQuadOperationsInAllStages;
  5873. VkPointClippingBehavior pointClippingBehavior;
  5874. uint32_t maxMultiviewViewCount;
  5875. uint32_t maxMultiviewInstanceIndex;
  5876. VkBool32 protectedNoFault;
  5877. uint32_t maxPerSetDescriptors;
  5878. VkDeviceSize maxMemoryAllocationSize;
  5879. } VkPhysicalDeviceVulkan11Properties;
  5880. typedef struct VkPhysicalDeviceVulkan12Features {
  5881. VkStructureType sType;
  5882. void* pNext;
  5883. VkBool32 samplerMirrorClampToEdge;
  5884. VkBool32 drawIndirectCount;
  5885. VkBool32 storageBuffer8BitAccess;
  5886. VkBool32 uniformAndStorageBuffer8BitAccess;
  5887. VkBool32 storagePushConstant8;
  5888. VkBool32 shaderBufferInt64Atomics;
  5889. VkBool32 shaderSharedInt64Atomics;
  5890. VkBool32 shaderFloat16;
  5891. VkBool32 shaderInt8;
  5892. VkBool32 descriptorIndexing;
  5893. VkBool32 shaderInputAttachmentArrayDynamicIndexing;
  5894. VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
  5895. VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
  5896. VkBool32 shaderUniformBufferArrayNonUniformIndexing;
  5897. VkBool32 shaderSampledImageArrayNonUniformIndexing;
  5898. VkBool32 shaderStorageBufferArrayNonUniformIndexing;
  5899. VkBool32 shaderStorageImageArrayNonUniformIndexing;
  5900. VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
  5901. VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
  5902. VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
  5903. VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
  5904. VkBool32 descriptorBindingSampledImageUpdateAfterBind;
  5905. VkBool32 descriptorBindingStorageImageUpdateAfterBind;
  5906. VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
  5907. VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
  5908. VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
  5909. VkBool32 descriptorBindingUpdateUnusedWhilePending;
  5910. VkBool32 descriptorBindingPartiallyBound;
  5911. VkBool32 descriptorBindingVariableDescriptorCount;
  5912. VkBool32 runtimeDescriptorArray;
  5913. VkBool32 samplerFilterMinmax;
  5914. VkBool32 scalarBlockLayout;
  5915. VkBool32 imagelessFramebuffer;
  5916. VkBool32 uniformBufferStandardLayout;
  5917. VkBool32 shaderSubgroupExtendedTypes;
  5918. VkBool32 separateDepthStencilLayouts;
  5919. VkBool32 hostQueryReset;
  5920. VkBool32 timelineSemaphore;
  5921. VkBool32 bufferDeviceAddress;
  5922. VkBool32 bufferDeviceAddressCaptureReplay;
  5923. VkBool32 bufferDeviceAddressMultiDevice;
  5924. VkBool32 vulkanMemoryModel;
  5925. VkBool32 vulkanMemoryModelDeviceScope;
  5926. VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
  5927. VkBool32 shaderOutputViewportIndex;
  5928. VkBool32 shaderOutputLayer;
  5929. VkBool32 subgroupBroadcastDynamicId;
  5930. } VkPhysicalDeviceVulkan12Features;
  5931. typedef struct VkConformanceVersion {
  5932. uint8_t major;
  5933. uint8_t minor;
  5934. uint8_t subminor;
  5935. uint8_t patch;
  5936. } VkConformanceVersion;
  5937. typedef struct VkPhysicalDeviceVulkan12Properties {
  5938. VkStructureType sType;
  5939. void* pNext;
  5940. VkDriverId driverID;
  5941. char driverName[VK_MAX_DRIVER_NAME_SIZE];
  5942. char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
  5943. VkConformanceVersion conformanceVersion;
  5944. VkShaderFloatControlsIndependence denormBehaviorIndependence;
  5945. VkShaderFloatControlsIndependence roundingModeIndependence;
  5946. VkBool32 shaderSignedZeroInfNanPreserveFloat16;
  5947. VkBool32 shaderSignedZeroInfNanPreserveFloat32;
  5948. VkBool32 shaderSignedZeroInfNanPreserveFloat64;
  5949. VkBool32 shaderDenormPreserveFloat16;
  5950. VkBool32 shaderDenormPreserveFloat32;
  5951. VkBool32 shaderDenormPreserveFloat64;
  5952. VkBool32 shaderDenormFlushToZeroFloat16;
  5953. VkBool32 shaderDenormFlushToZeroFloat32;
  5954. VkBool32 shaderDenormFlushToZeroFloat64;
  5955. VkBool32 shaderRoundingModeRTEFloat16;
  5956. VkBool32 shaderRoundingModeRTEFloat32;
  5957. VkBool32 shaderRoundingModeRTEFloat64;
  5958. VkBool32 shaderRoundingModeRTZFloat16;
  5959. VkBool32 shaderRoundingModeRTZFloat32;
  5960. VkBool32 shaderRoundingModeRTZFloat64;
  5961. uint32_t maxUpdateAfterBindDescriptorsInAllPools;
  5962. VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
  5963. VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
  5964. VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
  5965. VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
  5966. VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
  5967. VkBool32 robustBufferAccessUpdateAfterBind;
  5968. VkBool32 quadDivergentImplicitLod;
  5969. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
  5970. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
  5971. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
  5972. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
  5973. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
  5974. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
  5975. uint32_t maxPerStageUpdateAfterBindResources;
  5976. uint32_t maxDescriptorSetUpdateAfterBindSamplers;
  5977. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
  5978. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
  5979. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
  5980. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
  5981. uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
  5982. uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
  5983. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
  5984. VkResolveModeFlags supportedDepthResolveModes;
  5985. VkResolveModeFlags supportedStencilResolveModes;
  5986. VkBool32 independentResolveNone;
  5987. VkBool32 independentResolve;
  5988. VkBool32 filterMinmaxSingleComponentFormats;
  5989. VkBool32 filterMinmaxImageComponentMapping;
  5990. uint64_t maxTimelineSemaphoreValueDifference;
  5991. VkSampleCountFlags framebufferIntegerColorSampleCounts;
  5992. } VkPhysicalDeviceVulkan12Properties;
  5993. typedef struct VkImageFormatListCreateInfo {
  5994. VkStructureType sType;
  5995. const void* pNext;
  5996. uint32_t viewFormatCount;
  5997. const VkFormat* pViewFormats;
  5998. } VkImageFormatListCreateInfo;
  5999. typedef struct VkPhysicalDeviceDriverProperties {
  6000. VkStructureType sType;
  6001. void* pNext;
  6002. VkDriverId driverID;
  6003. char driverName[VK_MAX_DRIVER_NAME_SIZE];
  6004. char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
  6005. VkConformanceVersion conformanceVersion;
  6006. } VkPhysicalDeviceDriverProperties;
  6007. typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
  6008. VkStructureType sType;
  6009. void* pNext;
  6010. VkBool32 vulkanMemoryModel;
  6011. VkBool32 vulkanMemoryModelDeviceScope;
  6012. VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
  6013. } VkPhysicalDeviceVulkanMemoryModelFeatures;
  6014. typedef struct VkPhysicalDeviceHostQueryResetFeatures {
  6015. VkStructureType sType;
  6016. void* pNext;
  6017. VkBool32 hostQueryReset;
  6018. } VkPhysicalDeviceHostQueryResetFeatures;
  6019. typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
  6020. VkStructureType sType;
  6021. void* pNext;
  6022. VkBool32 timelineSemaphore;
  6023. } VkPhysicalDeviceTimelineSemaphoreFeatures;
  6024. typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
  6025. VkStructureType sType;
  6026. void* pNext;
  6027. uint64_t maxTimelineSemaphoreValueDifference;
  6028. } VkPhysicalDeviceTimelineSemaphoreProperties;
  6029. typedef struct VkSemaphoreTypeCreateInfo {
  6030. VkStructureType sType;
  6031. const void* pNext;
  6032. VkSemaphoreType semaphoreType;
  6033. uint64_t initialValue;
  6034. } VkSemaphoreTypeCreateInfo;
  6035. typedef struct VkTimelineSemaphoreSubmitInfo {
  6036. VkStructureType sType;
  6037. const void* pNext;
  6038. uint32_t waitSemaphoreValueCount;
  6039. const uint64_t* pWaitSemaphoreValues;
  6040. uint32_t signalSemaphoreValueCount;
  6041. const uint64_t* pSignalSemaphoreValues;
  6042. } VkTimelineSemaphoreSubmitInfo;
  6043. typedef struct VkSemaphoreWaitInfo {
  6044. VkStructureType sType;
  6045. const void* pNext;
  6046. VkSemaphoreWaitFlags flags;
  6047. uint32_t semaphoreCount;
  6048. const VkSemaphore* pSemaphores;
  6049. const uint64_t* pValues;
  6050. } VkSemaphoreWaitInfo;
  6051. typedef struct VkSemaphoreSignalInfo {
  6052. VkStructureType sType;
  6053. const void* pNext;
  6054. VkSemaphore semaphore;
  6055. uint64_t value;
  6056. } VkSemaphoreSignalInfo;
  6057. typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
  6058. VkStructureType sType;
  6059. void* pNext;
  6060. VkBool32 bufferDeviceAddress;
  6061. VkBool32 bufferDeviceAddressCaptureReplay;
  6062. VkBool32 bufferDeviceAddressMultiDevice;
  6063. } VkPhysicalDeviceBufferDeviceAddressFeatures;
  6064. typedef struct VkBufferDeviceAddressInfo {
  6065. VkStructureType sType;
  6066. const void* pNext;
  6067. VkBuffer buffer;
  6068. } VkBufferDeviceAddressInfo;
  6069. typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
  6070. VkStructureType sType;
  6071. const void* pNext;
  6072. uint64_t opaqueCaptureAddress;
  6073. } VkBufferOpaqueCaptureAddressCreateInfo;
  6074. typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
  6075. VkStructureType sType;
  6076. const void* pNext;
  6077. uint64_t opaqueCaptureAddress;
  6078. } VkMemoryOpaqueCaptureAddressAllocateInfo;
  6079. typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
  6080. VkStructureType sType;
  6081. const void* pNext;
  6082. VkDeviceMemory memory;
  6083. } VkDeviceMemoryOpaqueCaptureAddressInfo;
  6084. typedef struct VkPhysicalDevice8BitStorageFeatures {
  6085. VkStructureType sType;
  6086. void* pNext;
  6087. VkBool32 storageBuffer8BitAccess;
  6088. VkBool32 uniformAndStorageBuffer8BitAccess;
  6089. VkBool32 storagePushConstant8;
  6090. } VkPhysicalDevice8BitStorageFeatures;
  6091. typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
  6092. VkStructureType sType;
  6093. void* pNext;
  6094. VkBool32 shaderBufferInt64Atomics;
  6095. VkBool32 shaderSharedInt64Atomics;
  6096. } VkPhysicalDeviceShaderAtomicInt64Features;
  6097. typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
  6098. VkStructureType sType;
  6099. void* pNext;
  6100. VkBool32 shaderFloat16;
  6101. VkBool32 shaderInt8;
  6102. } VkPhysicalDeviceShaderFloat16Int8Features;
  6103. typedef struct VkPhysicalDeviceFloatControlsProperties {
  6104. VkStructureType sType;
  6105. void* pNext;
  6106. VkShaderFloatControlsIndependence denormBehaviorIndependence;
  6107. VkShaderFloatControlsIndependence roundingModeIndependence;
  6108. VkBool32 shaderSignedZeroInfNanPreserveFloat16;
  6109. VkBool32 shaderSignedZeroInfNanPreserveFloat32;
  6110. VkBool32 shaderSignedZeroInfNanPreserveFloat64;
  6111. VkBool32 shaderDenormPreserveFloat16;
  6112. VkBool32 shaderDenormPreserveFloat32;
  6113. VkBool32 shaderDenormPreserveFloat64;
  6114. VkBool32 shaderDenormFlushToZeroFloat16;
  6115. VkBool32 shaderDenormFlushToZeroFloat32;
  6116. VkBool32 shaderDenormFlushToZeroFloat64;
  6117. VkBool32 shaderRoundingModeRTEFloat16;
  6118. VkBool32 shaderRoundingModeRTEFloat32;
  6119. VkBool32 shaderRoundingModeRTEFloat64;
  6120. VkBool32 shaderRoundingModeRTZFloat16;
  6121. VkBool32 shaderRoundingModeRTZFloat32;
  6122. VkBool32 shaderRoundingModeRTZFloat64;
  6123. } VkPhysicalDeviceFloatControlsProperties;
  6124. typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
  6125. VkStructureType sType;
  6126. const void* pNext;
  6127. uint32_t bindingCount;
  6128. const VkDescriptorBindingFlags* pBindingFlags;
  6129. } VkDescriptorSetLayoutBindingFlagsCreateInfo;
  6130. typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
  6131. VkStructureType sType;
  6132. void* pNext;
  6133. VkBool32 shaderInputAttachmentArrayDynamicIndexing;
  6134. VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
  6135. VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
  6136. VkBool32 shaderUniformBufferArrayNonUniformIndexing;
  6137. VkBool32 shaderSampledImageArrayNonUniformIndexing;
  6138. VkBool32 shaderStorageBufferArrayNonUniformIndexing;
  6139. VkBool32 shaderStorageImageArrayNonUniformIndexing;
  6140. VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
  6141. VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
  6142. VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
  6143. VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
  6144. VkBool32 descriptorBindingSampledImageUpdateAfterBind;
  6145. VkBool32 descriptorBindingStorageImageUpdateAfterBind;
  6146. VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
  6147. VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
  6148. VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
  6149. VkBool32 descriptorBindingUpdateUnusedWhilePending;
  6150. VkBool32 descriptorBindingPartiallyBound;
  6151. VkBool32 descriptorBindingVariableDescriptorCount;
  6152. VkBool32 runtimeDescriptorArray;
  6153. } VkPhysicalDeviceDescriptorIndexingFeatures;
  6154. typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
  6155. VkStructureType sType;
  6156. void* pNext;
  6157. uint32_t maxUpdateAfterBindDescriptorsInAllPools;
  6158. VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
  6159. VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
  6160. VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
  6161. VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
  6162. VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
  6163. VkBool32 robustBufferAccessUpdateAfterBind;
  6164. VkBool32 quadDivergentImplicitLod;
  6165. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
  6166. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
  6167. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
  6168. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
  6169. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
  6170. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
  6171. uint32_t maxPerStageUpdateAfterBindResources;
  6172. uint32_t maxDescriptorSetUpdateAfterBindSamplers;
  6173. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
  6174. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
  6175. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
  6176. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
  6177. uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
  6178. uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
  6179. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
  6180. } VkPhysicalDeviceDescriptorIndexingProperties;
  6181. typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
  6182. VkStructureType sType;
  6183. const void* pNext;
  6184. uint32_t descriptorSetCount;
  6185. const uint32_t* pDescriptorCounts;
  6186. } VkDescriptorSetVariableDescriptorCountAllocateInfo;
  6187. typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
  6188. VkStructureType sType;
  6189. void* pNext;
  6190. uint32_t maxVariableDescriptorCount;
  6191. } VkDescriptorSetVariableDescriptorCountLayoutSupport;
  6192. typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
  6193. VkStructureType sType;
  6194. void* pNext;
  6195. VkBool32 scalarBlockLayout;
  6196. } VkPhysicalDeviceScalarBlockLayoutFeatures;
  6197. typedef struct VkSamplerReductionModeCreateInfo {
  6198. VkStructureType sType;
  6199. const void* pNext;
  6200. VkSamplerReductionMode reductionMode;
  6201. } VkSamplerReductionModeCreateInfo;
  6202. typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
  6203. VkStructureType sType;
  6204. void* pNext;
  6205. VkBool32 filterMinmaxSingleComponentFormats;
  6206. VkBool32 filterMinmaxImageComponentMapping;
  6207. } VkPhysicalDeviceSamplerFilterMinmaxProperties;
  6208. typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
  6209. VkStructureType sType;
  6210. void* pNext;
  6211. VkBool32 uniformBufferStandardLayout;
  6212. } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
  6213. typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
  6214. VkStructureType sType;
  6215. void* pNext;
  6216. VkBool32 shaderSubgroupExtendedTypes;
  6217. } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  6218. typedef struct VkAttachmentDescription2 {
  6219. VkStructureType sType;
  6220. const void* pNext;
  6221. VkAttachmentDescriptionFlags flags;
  6222. VkFormat format;
  6223. VkSampleCountFlagBits samples;
  6224. VkAttachmentLoadOp loadOp;
  6225. VkAttachmentStoreOp storeOp;
  6226. VkAttachmentLoadOp stencilLoadOp;
  6227. VkAttachmentStoreOp stencilStoreOp;
  6228. VkImageLayout initialLayout;
  6229. VkImageLayout finalLayout;
  6230. } VkAttachmentDescription2;
  6231. typedef struct VkAttachmentReference2 {
  6232. VkStructureType sType;
  6233. const void* pNext;
  6234. uint32_t attachment;
  6235. VkImageLayout layout;
  6236. VkImageAspectFlags aspectMask;
  6237. } VkAttachmentReference2;
  6238. typedef struct VkSubpassDescription2 {
  6239. VkStructureType sType;
  6240. const void* pNext;
  6241. VkSubpassDescriptionFlags flags;
  6242. VkPipelineBindPoint pipelineBindPoint;
  6243. uint32_t viewMask;
  6244. uint32_t inputAttachmentCount;
  6245. const VkAttachmentReference2* pInputAttachments;
  6246. uint32_t colorAttachmentCount;
  6247. const VkAttachmentReference2* pColorAttachments;
  6248. const VkAttachmentReference2* pResolveAttachments;
  6249. const VkAttachmentReference2* pDepthStencilAttachment;
  6250. uint32_t preserveAttachmentCount;
  6251. const uint32_t* pPreserveAttachments;
  6252. } VkSubpassDescription2;
  6253. typedef struct VkSubpassDependency2 {
  6254. VkStructureType sType;
  6255. const void* pNext;
  6256. uint32_t srcSubpass;
  6257. uint32_t dstSubpass;
  6258. VkPipelineStageFlags srcStageMask;
  6259. VkPipelineStageFlags dstStageMask;
  6260. VkAccessFlags srcAccessMask;
  6261. VkAccessFlags dstAccessMask;
  6262. VkDependencyFlags dependencyFlags;
  6263. int32_t viewOffset;
  6264. } VkSubpassDependency2;
  6265. typedef struct VkRenderPassCreateInfo2 {
  6266. VkStructureType sType;
  6267. const void* pNext;
  6268. VkRenderPassCreateFlags flags;
  6269. uint32_t attachmentCount;
  6270. const VkAttachmentDescription2* pAttachments;
  6271. uint32_t subpassCount;
  6272. const VkSubpassDescription2* pSubpasses;
  6273. uint32_t dependencyCount;
  6274. const VkSubpassDependency2* pDependencies;
  6275. uint32_t correlatedViewMaskCount;
  6276. const uint32_t* pCorrelatedViewMasks;
  6277. } VkRenderPassCreateInfo2;
  6278. typedef struct VkSubpassBeginInfo {
  6279. VkStructureType sType;
  6280. const void* pNext;
  6281. VkSubpassContents contents;
  6282. } VkSubpassBeginInfo;
  6283. typedef struct VkSubpassEndInfo {
  6284. VkStructureType sType;
  6285. const void* pNext;
  6286. } VkSubpassEndInfo;
  6287. typedef struct VkSubpassDescriptionDepthStencilResolve {
  6288. VkStructureType sType;
  6289. const void* pNext;
  6290. VkResolveModeFlagBits depthResolveMode;
  6291. VkResolveModeFlagBits stencilResolveMode;
  6292. const VkAttachmentReference2* pDepthStencilResolveAttachment;
  6293. } VkSubpassDescriptionDepthStencilResolve;
  6294. typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
  6295. VkStructureType sType;
  6296. void* pNext;
  6297. VkResolveModeFlags supportedDepthResolveModes;
  6298. VkResolveModeFlags supportedStencilResolveModes;
  6299. VkBool32 independentResolveNone;
  6300. VkBool32 independentResolve;
  6301. } VkPhysicalDeviceDepthStencilResolveProperties;
  6302. typedef struct VkImageStencilUsageCreateInfo {
  6303. VkStructureType sType;
  6304. const void* pNext;
  6305. VkImageUsageFlags stencilUsage;
  6306. } VkImageStencilUsageCreateInfo;
  6307. typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
  6308. VkStructureType sType;
  6309. void* pNext;
  6310. VkBool32 imagelessFramebuffer;
  6311. } VkPhysicalDeviceImagelessFramebufferFeatures;
  6312. typedef struct VkFramebufferAttachmentImageInfo {
  6313. VkStructureType sType;
  6314. const void* pNext;
  6315. VkImageCreateFlags flags;
  6316. VkImageUsageFlags usage;
  6317. uint32_t width;
  6318. uint32_t height;
  6319. uint32_t layerCount;
  6320. uint32_t viewFormatCount;
  6321. const VkFormat* pViewFormats;
  6322. } VkFramebufferAttachmentImageInfo;
  6323. typedef struct VkFramebufferAttachmentsCreateInfo {
  6324. VkStructureType sType;
  6325. const void* pNext;
  6326. uint32_t attachmentImageInfoCount;
  6327. const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
  6328. } VkFramebufferAttachmentsCreateInfo;
  6329. typedef struct VkRenderPassAttachmentBeginInfo {
  6330. VkStructureType sType;
  6331. const void* pNext;
  6332. uint32_t attachmentCount;
  6333. const VkImageView* pAttachments;
  6334. } VkRenderPassAttachmentBeginInfo;
  6335. typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
  6336. VkStructureType sType;
  6337. void* pNext;
  6338. VkBool32 separateDepthStencilLayouts;
  6339. } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  6340. typedef struct VkAttachmentReferenceStencilLayout {
  6341. VkStructureType sType;
  6342. void* pNext;
  6343. VkImageLayout stencilLayout;
  6344. } VkAttachmentReferenceStencilLayout;
  6345. typedef struct VkAttachmentDescriptionStencilLayout {
  6346. VkStructureType sType;
  6347. void* pNext;
  6348. VkImageLayout stencilInitialLayout;
  6349. VkImageLayout stencilFinalLayout;
  6350. } VkAttachmentDescriptionStencilLayout;
  6351. typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  6352. typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
  6353. typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
  6354. typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
  6355. typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  6356. typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  6357. typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
  6358. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  6359. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  6360. typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
  6361. typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
  6362. typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
  6363. typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
  6364. #ifndef VK_NO_PROTOTYPES
  6365. VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
  6366. VkDevice device,
  6367. VkQueryPool queryPool,
  6368. uint32_t firstQuery,
  6369. uint32_t queryCount);
  6370. VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
  6371. VkDevice device,
  6372. VkSemaphore semaphore,
  6373. uint64_t* pValue);
  6374. VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
  6375. VkDevice device,
  6376. const VkSemaphoreWaitInfo* pWaitInfo,
  6377. uint64_t timeout);
  6378. VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
  6379. VkDevice device,
  6380. const VkSemaphoreSignalInfo* pSignalInfo);
  6381. VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
  6382. VkDevice device,
  6383. const VkBufferDeviceAddressInfo* pInfo);
  6384. VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
  6385. VkDevice device,
  6386. const VkBufferDeviceAddressInfo* pInfo);
  6387. VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
  6388. VkDevice device,
  6389. const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
  6390. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
  6391. VkCommandBuffer commandBuffer,
  6392. VkBuffer buffer,
  6393. VkDeviceSize offset,
  6394. VkBuffer countBuffer,
  6395. VkDeviceSize countBufferOffset,
  6396. uint32_t maxDrawCount,
  6397. uint32_t stride);
  6398. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
  6399. VkCommandBuffer commandBuffer,
  6400. VkBuffer buffer,
  6401. VkDeviceSize offset,
  6402. VkBuffer countBuffer,
  6403. VkDeviceSize countBufferOffset,
  6404. uint32_t maxDrawCount,
  6405. uint32_t stride);
  6406. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
  6407. VkDevice device,
  6408. const VkRenderPassCreateInfo2* pCreateInfo,
  6409. const VkAllocationCallbacks* pAllocator,
  6410. VkRenderPass* pRenderPass);
  6411. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
  6412. VkCommandBuffer commandBuffer,
  6413. const VkRenderPassBeginInfo* pRenderPassBegin,
  6414. const VkSubpassBeginInfo* pSubpassBeginInfo);
  6415. VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
  6416. VkCommandBuffer commandBuffer,
  6417. const VkSubpassBeginInfo* pSubpassBeginInfo,
  6418. const VkSubpassEndInfo* pSubpassEndInfo);
  6419. VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
  6420. VkCommandBuffer commandBuffer,
  6421. const VkSubpassEndInfo* pSubpassEndInfo);
  6422. #endif
  6423. // VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
  6424. #define VK_VERSION_1_3 1
  6425. // Vulkan 1.3 version number
  6426. #define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
  6427. typedef uint64_t VkFlags64;
  6428. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
  6429. typedef enum VkToolPurposeFlagBits {
  6430. VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
  6431. VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
  6432. VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
  6433. VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
  6434. VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
  6435. VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
  6436. VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
  6437. VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
  6438. VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
  6439. VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
  6440. VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
  6441. VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
  6442. VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  6443. } VkToolPurposeFlagBits;
  6444. typedef VkFlags VkToolPurposeFlags;
  6445. typedef VkFlags VkPrivateDataSlotCreateFlags;
  6446. typedef VkFlags64 VkPipelineStageFlags2;
  6447. // Flag bits for VkPipelineStageFlagBits2
  6448. typedef VkFlags64 VkPipelineStageFlagBits2;
  6449. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
  6450. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
  6451. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
  6452. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
  6453. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
  6454. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
  6455. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
  6456. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
  6457. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
  6458. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
  6459. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
  6460. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
  6461. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
  6462. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
  6463. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
  6464. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
  6465. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
  6466. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
  6467. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
  6468. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
  6469. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
  6470. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
  6471. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
  6472. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
  6473. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
  6474. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
  6475. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
  6476. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
  6477. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
  6478. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
  6479. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
  6480. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
  6481. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
  6482. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
  6483. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
  6484. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
  6485. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
  6486. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
  6487. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
  6488. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
  6489. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
  6490. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
  6491. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
  6492. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
  6493. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
  6494. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
  6495. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
  6496. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
  6497. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
  6498. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
  6499. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
  6500. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
  6501. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
  6502. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
  6503. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
  6504. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
  6505. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
  6506. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL;
  6507. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
  6508. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
  6509. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
  6510. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
  6511. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
  6512. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
  6513. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
  6514. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
  6515. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
  6516. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
  6517. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
  6518. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
  6519. // VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI is a legacy alias
  6520. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
  6521. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
  6522. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
  6523. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
  6524. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
  6525. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
  6526. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL;
  6527. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM = 0x40000000000ULL;
  6528. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR = 0x400000000000ULL;
  6529. static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x200000000000ULL;
  6530. typedef VkFlags64 VkAccessFlags2;
  6531. // Flag bits for VkAccessFlagBits2
  6532. typedef VkFlags64 VkAccessFlagBits2;
  6533. static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
  6534. static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
  6535. static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
  6536. static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
  6537. static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
  6538. static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
  6539. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
  6540. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
  6541. static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
  6542. static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
  6543. static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
  6544. static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
  6545. static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
  6546. static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
  6547. static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
  6548. static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
  6549. static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
  6550. static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
  6551. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
  6552. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
  6553. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
  6554. static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
  6555. static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
  6556. static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
  6557. static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
  6558. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM = 0x8000000000000ULL;
  6559. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM = 0x10000000000000ULL;
  6560. static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
  6561. static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
  6562. static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
  6563. static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
  6564. static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
  6565. static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
  6566. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
  6567. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
  6568. static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
  6569. static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
  6570. static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
  6571. static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
  6572. static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
  6573. static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
  6574. static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
  6575. static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
  6576. static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
  6577. static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
  6578. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
  6579. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
  6580. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
  6581. static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
  6582. static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
  6583. static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
  6584. static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
  6585. static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
  6586. static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
  6587. static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL;
  6588. static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL;
  6589. static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
  6590. static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
  6591. static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
  6592. static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
  6593. static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
  6594. static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
  6595. static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
  6596. static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
  6597. static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
  6598. static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
  6599. static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
  6600. static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
  6601. static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
  6602. static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
  6603. static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
  6604. static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM = 0x800000000000ULL;
  6605. static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM = 0x1000000000000ULL;
  6606. static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT = 0x80000000000000ULL;
  6607. static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT = 0x100000000000000ULL;
  6608. typedef enum VkSubmitFlagBits {
  6609. VK_SUBMIT_PROTECTED_BIT = 0x00000001,
  6610. VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
  6611. VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  6612. } VkSubmitFlagBits;
  6613. typedef VkFlags VkSubmitFlags;
  6614. typedef VkFlags64 VkFormatFeatureFlags2;
  6615. // Flag bits for VkFormatFeatureFlagBits2
  6616. typedef VkFlags64 VkFormatFeatureFlagBits2;
  6617. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
  6618. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
  6619. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
  6620. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
  6621. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
  6622. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
  6623. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
  6624. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
  6625. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
  6626. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
  6627. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
  6628. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
  6629. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
  6630. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
  6631. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
  6632. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
  6633. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
  6634. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
  6635. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
  6636. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
  6637. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
  6638. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
  6639. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
  6640. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
  6641. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
  6642. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
  6643. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
  6644. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = 0x400000000000ULL;
  6645. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
  6646. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
  6647. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
  6648. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
  6649. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
  6650. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
  6651. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
  6652. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
  6653. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
  6654. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
  6655. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
  6656. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
  6657. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
  6658. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
  6659. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
  6660. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
  6661. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
  6662. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
  6663. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
  6664. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
  6665. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
  6666. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
  6667. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
  6668. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
  6669. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
  6670. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
  6671. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
  6672. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
  6673. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
  6674. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
  6675. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
  6676. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
  6677. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
  6678. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
  6679. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
  6680. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV = 0x8000000000000ULL;
  6681. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
  6682. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
  6683. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
  6684. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
  6685. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
  6686. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM = 0x8000000000ULL;
  6687. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM = 0x80000000000ULL;
  6688. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
  6689. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
  6690. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
  6691. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM = 0x1000000000000ULL;
  6692. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR = 0x800000000000000ULL;
  6693. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL;
  6694. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL;
  6695. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x10000000000000ULL;
  6696. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x20000000000000ULL;
  6697. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x40000000000000ULL;
  6698. static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x80000000000000ULL;
  6699. typedef enum VkPipelineCreationFeedbackFlagBits {
  6700. VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
  6701. VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
  6702. VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
  6703. VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
  6704. VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
  6705. VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
  6706. VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  6707. } VkPipelineCreationFeedbackFlagBits;
  6708. typedef VkFlags VkPipelineCreationFeedbackFlags;
  6709. typedef enum VkRenderingFlagBits {
  6710. VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
  6711. VK_RENDERING_SUSPENDING_BIT = 0x00000002,
  6712. VK_RENDERING_RESUMING_BIT = 0x00000004,
  6713. VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
  6714. VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
  6715. VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000020,
  6716. VK_RENDERING_FRAGMENT_REGION_BIT_EXT = 0x00000040,
  6717. VK_RENDERING_CUSTOM_RESOLVE_BIT_EXT = 0x00000080,
  6718. VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR = 0x00000100,
  6719. VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
  6720. VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
  6721. VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
  6722. VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
  6723. VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  6724. } VkRenderingFlagBits;
  6725. typedef VkFlags VkRenderingFlags;
  6726. typedef struct VkPhysicalDeviceVulkan13Features {
  6727. VkStructureType sType;
  6728. void* pNext;
  6729. VkBool32 robustImageAccess;
  6730. VkBool32 inlineUniformBlock;
  6731. VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
  6732. VkBool32 pipelineCreationCacheControl;
  6733. VkBool32 privateData;
  6734. VkBool32 shaderDemoteToHelperInvocation;
  6735. VkBool32 shaderTerminateInvocation;
  6736. VkBool32 subgroupSizeControl;
  6737. VkBool32 computeFullSubgroups;
  6738. VkBool32 synchronization2;
  6739. VkBool32 textureCompressionASTC_HDR;
  6740. VkBool32 shaderZeroInitializeWorkgroupMemory;
  6741. VkBool32 dynamicRendering;
  6742. VkBool32 shaderIntegerDotProduct;
  6743. VkBool32 maintenance4;
  6744. } VkPhysicalDeviceVulkan13Features;
  6745. typedef struct VkPhysicalDeviceVulkan13Properties {
  6746. VkStructureType sType;
  6747. void* pNext;
  6748. uint32_t minSubgroupSize;
  6749. uint32_t maxSubgroupSize;
  6750. uint32_t maxComputeWorkgroupSubgroups;
  6751. VkShaderStageFlags requiredSubgroupSizeStages;
  6752. uint32_t maxInlineUniformBlockSize;
  6753. uint32_t maxPerStageDescriptorInlineUniformBlocks;
  6754. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
  6755. uint32_t maxDescriptorSetInlineUniformBlocks;
  6756. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
  6757. uint32_t maxInlineUniformTotalSize;
  6758. VkBool32 integerDotProduct8BitUnsignedAccelerated;
  6759. VkBool32 integerDotProduct8BitSignedAccelerated;
  6760. VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
  6761. VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
  6762. VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
  6763. VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
  6764. VkBool32 integerDotProduct16BitUnsignedAccelerated;
  6765. VkBool32 integerDotProduct16BitSignedAccelerated;
  6766. VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
  6767. VkBool32 integerDotProduct32BitUnsignedAccelerated;
  6768. VkBool32 integerDotProduct32BitSignedAccelerated;
  6769. VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
  6770. VkBool32 integerDotProduct64BitUnsignedAccelerated;
  6771. VkBool32 integerDotProduct64BitSignedAccelerated;
  6772. VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
  6773. VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
  6774. VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
  6775. VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
  6776. VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
  6777. VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
  6778. VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
  6779. VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
  6780. VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
  6781. VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
  6782. VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
  6783. VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
  6784. VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
  6785. VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
  6786. VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
  6787. VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
  6788. VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
  6789. VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
  6790. VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
  6791. VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
  6792. VkDeviceSize maxBufferSize;
  6793. } VkPhysicalDeviceVulkan13Properties;
  6794. typedef struct VkPhysicalDeviceToolProperties {
  6795. VkStructureType sType;
  6796. void* pNext;
  6797. char name[VK_MAX_EXTENSION_NAME_SIZE];
  6798. char version[VK_MAX_EXTENSION_NAME_SIZE];
  6799. VkToolPurposeFlags purposes;
  6800. char description[VK_MAX_DESCRIPTION_SIZE];
  6801. char layer[VK_MAX_EXTENSION_NAME_SIZE];
  6802. } VkPhysicalDeviceToolProperties;
  6803. typedef struct VkPhysicalDevicePrivateDataFeatures {
  6804. VkStructureType sType;
  6805. void* pNext;
  6806. VkBool32 privateData;
  6807. } VkPhysicalDevicePrivateDataFeatures;
  6808. typedef struct VkDevicePrivateDataCreateInfo {
  6809. VkStructureType sType;
  6810. const void* pNext;
  6811. uint32_t privateDataSlotRequestCount;
  6812. } VkDevicePrivateDataCreateInfo;
  6813. typedef struct VkPrivateDataSlotCreateInfo {
  6814. VkStructureType sType;
  6815. const void* pNext;
  6816. VkPrivateDataSlotCreateFlags flags;
  6817. } VkPrivateDataSlotCreateInfo;
  6818. typedef struct VkMemoryBarrier2 {
  6819. VkStructureType sType;
  6820. const void* pNext;
  6821. VkPipelineStageFlags2 srcStageMask;
  6822. VkAccessFlags2 srcAccessMask;
  6823. VkPipelineStageFlags2 dstStageMask;
  6824. VkAccessFlags2 dstAccessMask;
  6825. } VkMemoryBarrier2;
  6826. typedef struct VkBufferMemoryBarrier2 {
  6827. VkStructureType sType;
  6828. const void* pNext;
  6829. VkPipelineStageFlags2 srcStageMask;
  6830. VkAccessFlags2 srcAccessMask;
  6831. VkPipelineStageFlags2 dstStageMask;
  6832. VkAccessFlags2 dstAccessMask;
  6833. uint32_t srcQueueFamilyIndex;
  6834. uint32_t dstQueueFamilyIndex;
  6835. VkBuffer buffer;
  6836. VkDeviceSize offset;
  6837. VkDeviceSize size;
  6838. } VkBufferMemoryBarrier2;
  6839. typedef struct VkImageMemoryBarrier2 {
  6840. VkStructureType sType;
  6841. const void* pNext;
  6842. VkPipelineStageFlags2 srcStageMask;
  6843. VkAccessFlags2 srcAccessMask;
  6844. VkPipelineStageFlags2 dstStageMask;
  6845. VkAccessFlags2 dstAccessMask;
  6846. VkImageLayout oldLayout;
  6847. VkImageLayout newLayout;
  6848. uint32_t srcQueueFamilyIndex;
  6849. uint32_t dstQueueFamilyIndex;
  6850. VkImage image;
  6851. VkImageSubresourceRange subresourceRange;
  6852. } VkImageMemoryBarrier2;
  6853. typedef struct VkDependencyInfo {
  6854. VkStructureType sType;
  6855. const void* pNext;
  6856. VkDependencyFlags dependencyFlags;
  6857. uint32_t memoryBarrierCount;
  6858. const VkMemoryBarrier2* pMemoryBarriers;
  6859. uint32_t bufferMemoryBarrierCount;
  6860. const VkBufferMemoryBarrier2* pBufferMemoryBarriers;
  6861. uint32_t imageMemoryBarrierCount;
  6862. const VkImageMemoryBarrier2* pImageMemoryBarriers;
  6863. } VkDependencyInfo;
  6864. typedef struct VkSemaphoreSubmitInfo {
  6865. VkStructureType sType;
  6866. const void* pNext;
  6867. VkSemaphore semaphore;
  6868. uint64_t value;
  6869. VkPipelineStageFlags2 stageMask;
  6870. uint32_t deviceIndex;
  6871. } VkSemaphoreSubmitInfo;
  6872. typedef struct VkCommandBufferSubmitInfo {
  6873. VkStructureType sType;
  6874. const void* pNext;
  6875. VkCommandBuffer commandBuffer;
  6876. uint32_t deviceMask;
  6877. } VkCommandBufferSubmitInfo;
  6878. typedef struct VkSubmitInfo2 {
  6879. VkStructureType sType;
  6880. const void* pNext;
  6881. VkSubmitFlags flags;
  6882. uint32_t waitSemaphoreInfoCount;
  6883. const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos;
  6884. uint32_t commandBufferInfoCount;
  6885. const VkCommandBufferSubmitInfo* pCommandBufferInfos;
  6886. uint32_t signalSemaphoreInfoCount;
  6887. const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos;
  6888. } VkSubmitInfo2;
  6889. typedef struct VkPhysicalDeviceSynchronization2Features {
  6890. VkStructureType sType;
  6891. void* pNext;
  6892. VkBool32 synchronization2;
  6893. } VkPhysicalDeviceSynchronization2Features;
  6894. typedef struct VkBufferCopy2 {
  6895. VkStructureType sType;
  6896. const void* pNext;
  6897. VkDeviceSize srcOffset;
  6898. VkDeviceSize dstOffset;
  6899. VkDeviceSize size;
  6900. } VkBufferCopy2;
  6901. typedef struct VkCopyBufferInfo2 {
  6902. VkStructureType sType;
  6903. const void* pNext;
  6904. VkBuffer srcBuffer;
  6905. VkBuffer dstBuffer;
  6906. uint32_t regionCount;
  6907. const VkBufferCopy2* pRegions;
  6908. } VkCopyBufferInfo2;
  6909. typedef struct VkImageCopy2 {
  6910. VkStructureType sType;
  6911. const void* pNext;
  6912. VkImageSubresourceLayers srcSubresource;
  6913. VkOffset3D srcOffset;
  6914. VkImageSubresourceLayers dstSubresource;
  6915. VkOffset3D dstOffset;
  6916. VkExtent3D extent;
  6917. } VkImageCopy2;
  6918. typedef struct VkCopyImageInfo2 {
  6919. VkStructureType sType;
  6920. const void* pNext;
  6921. VkImage srcImage;
  6922. VkImageLayout srcImageLayout;
  6923. VkImage dstImage;
  6924. VkImageLayout dstImageLayout;
  6925. uint32_t regionCount;
  6926. const VkImageCopy2* pRegions;
  6927. } VkCopyImageInfo2;
  6928. typedef struct VkBufferImageCopy2 {
  6929. VkStructureType sType;
  6930. const void* pNext;
  6931. VkDeviceSize bufferOffset;
  6932. uint32_t bufferRowLength;
  6933. uint32_t bufferImageHeight;
  6934. VkImageSubresourceLayers imageSubresource;
  6935. VkOffset3D imageOffset;
  6936. VkExtent3D imageExtent;
  6937. } VkBufferImageCopy2;
  6938. typedef struct VkCopyBufferToImageInfo2 {
  6939. VkStructureType sType;
  6940. const void* pNext;
  6941. VkBuffer srcBuffer;
  6942. VkImage dstImage;
  6943. VkImageLayout dstImageLayout;
  6944. uint32_t regionCount;
  6945. const VkBufferImageCopy2* pRegions;
  6946. } VkCopyBufferToImageInfo2;
  6947. typedef struct VkCopyImageToBufferInfo2 {
  6948. VkStructureType sType;
  6949. const void* pNext;
  6950. VkImage srcImage;
  6951. VkImageLayout srcImageLayout;
  6952. VkBuffer dstBuffer;
  6953. uint32_t regionCount;
  6954. const VkBufferImageCopy2* pRegions;
  6955. } VkCopyImageToBufferInfo2;
  6956. typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
  6957. VkStructureType sType;
  6958. void* pNext;
  6959. VkBool32 textureCompressionASTC_HDR;
  6960. } VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
  6961. typedef struct VkFormatProperties3 {
  6962. VkStructureType sType;
  6963. void* pNext;
  6964. VkFormatFeatureFlags2 linearTilingFeatures;
  6965. VkFormatFeatureFlags2 optimalTilingFeatures;
  6966. VkFormatFeatureFlags2 bufferFeatures;
  6967. } VkFormatProperties3;
  6968. typedef struct VkPhysicalDeviceMaintenance4Features {
  6969. VkStructureType sType;
  6970. void* pNext;
  6971. VkBool32 maintenance4;
  6972. } VkPhysicalDeviceMaintenance4Features;
  6973. typedef struct VkPhysicalDeviceMaintenance4Properties {
  6974. VkStructureType sType;
  6975. void* pNext;
  6976. VkDeviceSize maxBufferSize;
  6977. } VkPhysicalDeviceMaintenance4Properties;
  6978. typedef struct VkDeviceBufferMemoryRequirements {
  6979. VkStructureType sType;
  6980. const void* pNext;
  6981. const VkBufferCreateInfo* pCreateInfo;
  6982. } VkDeviceBufferMemoryRequirements;
  6983. typedef struct VkDeviceImageMemoryRequirements {
  6984. VkStructureType sType;
  6985. const void* pNext;
  6986. const VkImageCreateInfo* pCreateInfo;
  6987. VkImageAspectFlagBits planeAspect;
  6988. } VkDeviceImageMemoryRequirements;
  6989. typedef struct VkPipelineCreationFeedback {
  6990. VkPipelineCreationFeedbackFlags flags;
  6991. uint64_t duration;
  6992. } VkPipelineCreationFeedback;
  6993. typedef struct VkPipelineCreationFeedbackCreateInfo {
  6994. VkStructureType sType;
  6995. const void* pNext;
  6996. VkPipelineCreationFeedback* pPipelineCreationFeedback;
  6997. uint32_t pipelineStageCreationFeedbackCount;
  6998. VkPipelineCreationFeedback* pPipelineStageCreationFeedbacks;
  6999. } VkPipelineCreationFeedbackCreateInfo;
  7000. typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
  7001. VkStructureType sType;
  7002. void* pNext;
  7003. VkBool32 shaderTerminateInvocation;
  7004. } VkPhysicalDeviceShaderTerminateInvocationFeatures;
  7005. typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
  7006. VkStructureType sType;
  7007. void* pNext;
  7008. VkBool32 shaderDemoteToHelperInvocation;
  7009. } VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
  7010. typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
  7011. VkStructureType sType;
  7012. void* pNext;
  7013. VkBool32 pipelineCreationCacheControl;
  7014. } VkPhysicalDevicePipelineCreationCacheControlFeatures;
  7015. typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
  7016. VkStructureType sType;
  7017. void* pNext;
  7018. VkBool32 shaderZeroInitializeWorkgroupMemory;
  7019. } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
  7020. typedef struct VkPhysicalDeviceImageRobustnessFeatures {
  7021. VkStructureType sType;
  7022. void* pNext;
  7023. VkBool32 robustImageAccess;
  7024. } VkPhysicalDeviceImageRobustnessFeatures;
  7025. typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
  7026. VkStructureType sType;
  7027. void* pNext;
  7028. VkBool32 subgroupSizeControl;
  7029. VkBool32 computeFullSubgroups;
  7030. } VkPhysicalDeviceSubgroupSizeControlFeatures;
  7031. typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
  7032. VkStructureType sType;
  7033. void* pNext;
  7034. uint32_t minSubgroupSize;
  7035. uint32_t maxSubgroupSize;
  7036. uint32_t maxComputeWorkgroupSubgroups;
  7037. VkShaderStageFlags requiredSubgroupSizeStages;
  7038. } VkPhysicalDeviceSubgroupSizeControlProperties;
  7039. typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
  7040. VkStructureType sType;
  7041. const void* pNext;
  7042. uint32_t requiredSubgroupSize;
  7043. } VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
  7044. typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
  7045. VkStructureType sType;
  7046. void* pNext;
  7047. VkBool32 inlineUniformBlock;
  7048. VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
  7049. } VkPhysicalDeviceInlineUniformBlockFeatures;
  7050. typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
  7051. VkStructureType sType;
  7052. void* pNext;
  7053. uint32_t maxInlineUniformBlockSize;
  7054. uint32_t maxPerStageDescriptorInlineUniformBlocks;
  7055. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
  7056. uint32_t maxDescriptorSetInlineUniformBlocks;
  7057. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
  7058. } VkPhysicalDeviceInlineUniformBlockProperties;
  7059. typedef struct VkWriteDescriptorSetInlineUniformBlock {
  7060. VkStructureType sType;
  7061. const void* pNext;
  7062. uint32_t dataSize;
  7063. const void* pData;
  7064. } VkWriteDescriptorSetInlineUniformBlock;
  7065. typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
  7066. VkStructureType sType;
  7067. const void* pNext;
  7068. uint32_t maxInlineUniformBlockBindings;
  7069. } VkDescriptorPoolInlineUniformBlockCreateInfo;
  7070. typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
  7071. VkStructureType sType;
  7072. void* pNext;
  7073. VkBool32 shaderIntegerDotProduct;
  7074. } VkPhysicalDeviceShaderIntegerDotProductFeatures;
  7075. typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
  7076. VkStructureType sType;
  7077. void* pNext;
  7078. VkBool32 integerDotProduct8BitUnsignedAccelerated;
  7079. VkBool32 integerDotProduct8BitSignedAccelerated;
  7080. VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
  7081. VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
  7082. VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
  7083. VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
  7084. VkBool32 integerDotProduct16BitUnsignedAccelerated;
  7085. VkBool32 integerDotProduct16BitSignedAccelerated;
  7086. VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
  7087. VkBool32 integerDotProduct32BitUnsignedAccelerated;
  7088. VkBool32 integerDotProduct32BitSignedAccelerated;
  7089. VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
  7090. VkBool32 integerDotProduct64BitUnsignedAccelerated;
  7091. VkBool32 integerDotProduct64BitSignedAccelerated;
  7092. VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
  7093. VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
  7094. VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
  7095. VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
  7096. VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
  7097. VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
  7098. VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
  7099. VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
  7100. VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
  7101. VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
  7102. VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
  7103. VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
  7104. VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
  7105. VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
  7106. VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
  7107. VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
  7108. } VkPhysicalDeviceShaderIntegerDotProductProperties;
  7109. typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
  7110. VkStructureType sType;
  7111. void* pNext;
  7112. VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
  7113. VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
  7114. VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
  7115. VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
  7116. } VkPhysicalDeviceTexelBufferAlignmentProperties;
  7117. typedef struct VkImageBlit2 {
  7118. VkStructureType sType;
  7119. const void* pNext;
  7120. VkImageSubresourceLayers srcSubresource;
  7121. VkOffset3D srcOffsets[2];
  7122. VkImageSubresourceLayers dstSubresource;
  7123. VkOffset3D dstOffsets[2];
  7124. } VkImageBlit2;
  7125. typedef struct VkBlitImageInfo2 {
  7126. VkStructureType sType;
  7127. const void* pNext;
  7128. VkImage srcImage;
  7129. VkImageLayout srcImageLayout;
  7130. VkImage dstImage;
  7131. VkImageLayout dstImageLayout;
  7132. uint32_t regionCount;
  7133. const VkImageBlit2* pRegions;
  7134. VkFilter filter;
  7135. } VkBlitImageInfo2;
  7136. typedef struct VkImageResolve2 {
  7137. VkStructureType sType;
  7138. const void* pNext;
  7139. VkImageSubresourceLayers srcSubresource;
  7140. VkOffset3D srcOffset;
  7141. VkImageSubresourceLayers dstSubresource;
  7142. VkOffset3D dstOffset;
  7143. VkExtent3D extent;
  7144. } VkImageResolve2;
  7145. typedef struct VkResolveImageInfo2 {
  7146. VkStructureType sType;
  7147. const void* pNext;
  7148. VkImage srcImage;
  7149. VkImageLayout srcImageLayout;
  7150. VkImage dstImage;
  7151. VkImageLayout dstImageLayout;
  7152. uint32_t regionCount;
  7153. const VkImageResolve2* pRegions;
  7154. } VkResolveImageInfo2;
  7155. typedef struct VkRenderingAttachmentInfo {
  7156. VkStructureType sType;
  7157. const void* pNext;
  7158. VkImageView imageView;
  7159. VkImageLayout imageLayout;
  7160. VkResolveModeFlagBits resolveMode;
  7161. VkImageView resolveImageView;
  7162. VkImageLayout resolveImageLayout;
  7163. VkAttachmentLoadOp loadOp;
  7164. VkAttachmentStoreOp storeOp;
  7165. VkClearValue clearValue;
  7166. } VkRenderingAttachmentInfo;
  7167. typedef struct VkRenderingInfo {
  7168. VkStructureType sType;
  7169. const void* pNext;
  7170. VkRenderingFlags flags;
  7171. VkRect2D renderArea;
  7172. uint32_t layerCount;
  7173. uint32_t viewMask;
  7174. uint32_t colorAttachmentCount;
  7175. const VkRenderingAttachmentInfo* pColorAttachments;
  7176. const VkRenderingAttachmentInfo* pDepthAttachment;
  7177. const VkRenderingAttachmentInfo* pStencilAttachment;
  7178. } VkRenderingInfo;
  7179. typedef struct VkPipelineRenderingCreateInfo {
  7180. VkStructureType sType;
  7181. const void* pNext;
  7182. uint32_t viewMask;
  7183. uint32_t colorAttachmentCount;
  7184. const VkFormat* pColorAttachmentFormats;
  7185. VkFormat depthAttachmentFormat;
  7186. VkFormat stencilAttachmentFormat;
  7187. } VkPipelineRenderingCreateInfo;
  7188. typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
  7189. VkStructureType sType;
  7190. void* pNext;
  7191. VkBool32 dynamicRendering;
  7192. } VkPhysicalDeviceDynamicRenderingFeatures;
  7193. typedef struct VkCommandBufferInheritanceRenderingInfo {
  7194. VkStructureType sType;
  7195. const void* pNext;
  7196. VkRenderingFlags flags;
  7197. uint32_t viewMask;
  7198. uint32_t colorAttachmentCount;
  7199. const VkFormat* pColorAttachmentFormats;
  7200. VkFormat depthAttachmentFormat;
  7201. VkFormat stencilAttachmentFormat;
  7202. VkSampleCountFlagBits rasterizationSamples;
  7203. } VkCommandBufferInheritanceRenderingInfo;
  7204. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
  7205. typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
  7206. typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
  7207. typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
  7208. typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
  7209. typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
  7210. typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
  7211. typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
  7212. typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
  7213. typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
  7214. typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
  7215. typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
  7216. typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  7217. typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  7218. typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  7219. typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
  7220. typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
  7221. typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
  7222. typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
  7223. typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
  7224. typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
  7225. typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer);
  7226. typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
  7227. typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
  7228. typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
  7229. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
  7230. typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
  7231. typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
  7232. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
  7233. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
  7234. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
  7235. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
  7236. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
  7237. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
  7238. typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
  7239. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
  7240. typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
  7241. #ifndef VK_NO_PROTOTYPES
  7242. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
  7243. VkPhysicalDevice physicalDevice,
  7244. uint32_t* pToolCount,
  7245. VkPhysicalDeviceToolProperties* pToolProperties);
  7246. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
  7247. VkDevice device,
  7248. const VkPrivateDataSlotCreateInfo* pCreateInfo,
  7249. const VkAllocationCallbacks* pAllocator,
  7250. VkPrivateDataSlot* pPrivateDataSlot);
  7251. VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
  7252. VkDevice device,
  7253. VkPrivateDataSlot privateDataSlot,
  7254. const VkAllocationCallbacks* pAllocator);
  7255. VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
  7256. VkDevice device,
  7257. VkObjectType objectType,
  7258. uint64_t objectHandle,
  7259. VkPrivateDataSlot privateDataSlot,
  7260. uint64_t data);
  7261. VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
  7262. VkDevice device,
  7263. VkObjectType objectType,
  7264. uint64_t objectHandle,
  7265. VkPrivateDataSlot privateDataSlot,
  7266. uint64_t* pData);
  7267. VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
  7268. VkCommandBuffer commandBuffer,
  7269. const VkDependencyInfo* pDependencyInfo);
  7270. VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
  7271. VkCommandBuffer commandBuffer,
  7272. VkPipelineStageFlags2 stage,
  7273. VkQueryPool queryPool,
  7274. uint32_t query);
  7275. VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
  7276. VkQueue queue,
  7277. uint32_t submitCount,
  7278. const VkSubmitInfo2* pSubmits,
  7279. VkFence fence);
  7280. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
  7281. VkCommandBuffer commandBuffer,
  7282. const VkCopyBufferInfo2* pCopyBufferInfo);
  7283. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
  7284. VkCommandBuffer commandBuffer,
  7285. const VkCopyImageInfo2* pCopyImageInfo);
  7286. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
  7287. VkCommandBuffer commandBuffer,
  7288. const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
  7289. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
  7290. VkCommandBuffer commandBuffer,
  7291. const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
  7292. VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
  7293. VkDevice device,
  7294. const VkDeviceBufferMemoryRequirements* pInfo,
  7295. VkMemoryRequirements2* pMemoryRequirements);
  7296. VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
  7297. VkDevice device,
  7298. const VkDeviceImageMemoryRequirements* pInfo,
  7299. VkMemoryRequirements2* pMemoryRequirements);
  7300. VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
  7301. VkDevice device,
  7302. const VkDeviceImageMemoryRequirements* pInfo,
  7303. uint32_t* pSparseMemoryRequirementCount,
  7304. VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  7305. VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
  7306. VkCommandBuffer commandBuffer,
  7307. VkEvent event,
  7308. const VkDependencyInfo* pDependencyInfo);
  7309. VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
  7310. VkCommandBuffer commandBuffer,
  7311. VkEvent event,
  7312. VkPipelineStageFlags2 stageMask);
  7313. VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
  7314. VkCommandBuffer commandBuffer,
  7315. uint32_t eventCount,
  7316. const VkEvent* pEvents,
  7317. const VkDependencyInfo* pDependencyInfos);
  7318. VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
  7319. VkCommandBuffer commandBuffer,
  7320. const VkBlitImageInfo2* pBlitImageInfo);
  7321. VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
  7322. VkCommandBuffer commandBuffer,
  7323. const VkResolveImageInfo2* pResolveImageInfo);
  7324. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
  7325. VkCommandBuffer commandBuffer,
  7326. const VkRenderingInfo* pRenderingInfo);
  7327. VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
  7328. VkCommandBuffer commandBuffer);
  7329. VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
  7330. VkCommandBuffer commandBuffer,
  7331. VkCullModeFlags cullMode);
  7332. VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
  7333. VkCommandBuffer commandBuffer,
  7334. VkFrontFace frontFace);
  7335. VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
  7336. VkCommandBuffer commandBuffer,
  7337. VkPrimitiveTopology primitiveTopology);
  7338. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
  7339. VkCommandBuffer commandBuffer,
  7340. uint32_t viewportCount,
  7341. const VkViewport* pViewports);
  7342. VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
  7343. VkCommandBuffer commandBuffer,
  7344. uint32_t scissorCount,
  7345. const VkRect2D* pScissors);
  7346. VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
  7347. VkCommandBuffer commandBuffer,
  7348. uint32_t firstBinding,
  7349. uint32_t bindingCount,
  7350. const VkBuffer* pBuffers,
  7351. const VkDeviceSize* pOffsets,
  7352. const VkDeviceSize* pSizes,
  7353. const VkDeviceSize* pStrides);
  7354. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
  7355. VkCommandBuffer commandBuffer,
  7356. VkBool32 depthTestEnable);
  7357. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
  7358. VkCommandBuffer commandBuffer,
  7359. VkBool32 depthWriteEnable);
  7360. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
  7361. VkCommandBuffer commandBuffer,
  7362. VkCompareOp depthCompareOp);
  7363. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
  7364. VkCommandBuffer commandBuffer,
  7365. VkBool32 depthBoundsTestEnable);
  7366. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
  7367. VkCommandBuffer commandBuffer,
  7368. VkBool32 stencilTestEnable);
  7369. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
  7370. VkCommandBuffer commandBuffer,
  7371. VkStencilFaceFlags faceMask,
  7372. VkStencilOp failOp,
  7373. VkStencilOp passOp,
  7374. VkStencilOp depthFailOp,
  7375. VkCompareOp compareOp);
  7376. VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
  7377. VkCommandBuffer commandBuffer,
  7378. VkBool32 rasterizerDiscardEnable);
  7379. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
  7380. VkCommandBuffer commandBuffer,
  7381. VkBool32 depthBiasEnable);
  7382. VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
  7383. VkCommandBuffer commandBuffer,
  7384. VkBool32 primitiveRestartEnable);
  7385. #endif
  7386. // VK_VERSION_1_4 is a preprocessor guard. Do not pass it to API calls.
  7387. #define VK_VERSION_1_4 1
  7388. // Vulkan 1.4 version number
  7389. #define VK_API_VERSION_1_4 VK_MAKE_API_VERSION(0, 1, 4, 0)// Patch version should always be set to 0
  7390. #define VK_MAX_GLOBAL_PRIORITY_SIZE 16U
  7391. typedef enum VkPipelineRobustnessBufferBehavior {
  7392. VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT = 0,
  7393. VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED = 1,
  7394. VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS = 2,
  7395. VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 = 3,
  7396. VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT,
  7397. VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
  7398. VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,
  7399. VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
  7400. VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
  7401. } VkPipelineRobustnessBufferBehavior;
  7402. typedef enum VkPipelineRobustnessImageBehavior {
  7403. VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT = 0,
  7404. VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED = 1,
  7405. VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS = 2,
  7406. VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2 = 3,
  7407. VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT,
  7408. VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
  7409. VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS,
  7410. VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
  7411. VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
  7412. } VkPipelineRobustnessImageBehavior;
  7413. typedef enum VkQueueGlobalPriority {
  7414. VK_QUEUE_GLOBAL_PRIORITY_LOW = 128,
  7415. VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256,
  7416. VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512,
  7417. VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024,
  7418. VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW,
  7419. VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
  7420. VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
  7421. VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
  7422. VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = VK_QUEUE_GLOBAL_PRIORITY_LOW,
  7423. VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
  7424. VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
  7425. VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
  7426. VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM = 0x7FFFFFFF
  7427. } VkQueueGlobalPriority;
  7428. typedef enum VkLineRasterizationMode {
  7429. VK_LINE_RASTERIZATION_MODE_DEFAULT = 0,
  7430. VK_LINE_RASTERIZATION_MODE_RECTANGULAR = 1,
  7431. VK_LINE_RASTERIZATION_MODE_BRESENHAM = 2,
  7432. VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH = 3,
  7433. VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT,
  7434. VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
  7435. VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
  7436. VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
  7437. VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = VK_LINE_RASTERIZATION_MODE_DEFAULT,
  7438. VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
  7439. VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
  7440. VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
  7441. VK_LINE_RASTERIZATION_MODE_MAX_ENUM = 0x7FFFFFFF
  7442. } VkLineRasterizationMode;
  7443. typedef enum VkMemoryUnmapFlagBits {
  7444. VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
  7445. VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  7446. } VkMemoryUnmapFlagBits;
  7447. typedef VkFlags VkMemoryUnmapFlags;
  7448. typedef VkFlags64 VkBufferUsageFlags2;
  7449. // Flag bits for VkBufferUsageFlagBits2
  7450. typedef VkFlags64 VkBufferUsageFlagBits2;
  7451. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL;
  7452. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL;
  7453. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL;
  7454. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL;
  7455. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL;
  7456. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL;
  7457. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL;
  7458. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL;
  7459. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL;
  7460. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL;
  7461. #ifdef VK_ENABLE_BETA_EXTENSIONS
  7462. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
  7463. #endif
  7464. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
  7465. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
  7466. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
  7467. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
  7468. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
  7469. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
  7470. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
  7471. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
  7472. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
  7473. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
  7474. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
  7475. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
  7476. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
  7477. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
  7478. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
  7479. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
  7480. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
  7481. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
  7482. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
  7483. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
  7484. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
  7485. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
  7486. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
  7487. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
  7488. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
  7489. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
  7490. #ifdef VK_ENABLE_BETA_EXTENSIONS
  7491. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX = 0x200000000ULL;
  7492. #endif
  7493. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM = 0x20000000ULL;
  7494. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM = 0x08000000ULL;
  7495. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x100000000ULL;
  7496. static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL;
  7497. typedef enum VkHostImageCopyFlagBits {
  7498. VK_HOST_IMAGE_COPY_MEMCPY_BIT = 0x00000001,
  7499. // VK_HOST_IMAGE_COPY_MEMCPY is a legacy alias
  7500. VK_HOST_IMAGE_COPY_MEMCPY = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
  7501. VK_HOST_IMAGE_COPY_MEMCPY_BIT_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
  7502. // VK_HOST_IMAGE_COPY_MEMCPY_EXT is a legacy alias
  7503. VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
  7504. VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  7505. } VkHostImageCopyFlagBits;
  7506. typedef VkFlags VkHostImageCopyFlags;
  7507. typedef VkFlags64 VkPipelineCreateFlags2;
  7508. // Flag bits for VkPipelineCreateFlagBits2
  7509. typedef VkFlags64 VkPipelineCreateFlagBits2;
  7510. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT = 0x00000001ULL;
  7511. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT = 0x00000002ULL;
  7512. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT = 0x00000004ULL;
  7513. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008ULL;
  7514. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT = 0x00000010ULL;
  7515. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100ULL;
  7516. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200ULL;
  7517. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT = 0x08000000ULL;
  7518. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT = 0x40000000ULL;
  7519. #ifdef VK_ENABLE_BETA_EXTENSIONS
  7520. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000ULL;
  7521. #endif
  7522. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_BIT_KHR = 0x00001000ULL;
  7523. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV = 0x200000000ULL;
  7524. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
  7525. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
  7526. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
  7527. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
  7528. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
  7529. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
  7530. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
  7531. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
  7532. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
  7533. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
  7534. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
  7535. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
  7536. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
  7537. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
  7538. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
  7539. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
  7540. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
  7541. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
  7542. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
  7543. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
  7544. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
  7545. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
  7546. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
  7547. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
  7548. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
  7549. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
  7550. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
  7551. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
  7552. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
  7553. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
  7554. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
  7555. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
  7556. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM = 0x2000000000ULL;
  7557. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
  7558. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
  7559. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x10000000000ULL;
  7560. static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_64_BIT_INDEXING_BIT_EXT = 0x80000000000ULL;
  7561. typedef struct VkPhysicalDeviceVulkan14Features {
  7562. VkStructureType sType;
  7563. void* pNext;
  7564. VkBool32 globalPriorityQuery;
  7565. VkBool32 shaderSubgroupRotate;
  7566. VkBool32 shaderSubgroupRotateClustered;
  7567. VkBool32 shaderFloatControls2;
  7568. VkBool32 shaderExpectAssume;
  7569. VkBool32 rectangularLines;
  7570. VkBool32 bresenhamLines;
  7571. VkBool32 smoothLines;
  7572. VkBool32 stippledRectangularLines;
  7573. VkBool32 stippledBresenhamLines;
  7574. VkBool32 stippledSmoothLines;
  7575. VkBool32 vertexAttributeInstanceRateDivisor;
  7576. VkBool32 vertexAttributeInstanceRateZeroDivisor;
  7577. VkBool32 indexTypeUint8;
  7578. VkBool32 dynamicRenderingLocalRead;
  7579. VkBool32 maintenance5;
  7580. VkBool32 maintenance6;
  7581. VkBool32 pipelineProtectedAccess;
  7582. VkBool32 pipelineRobustness;
  7583. VkBool32 hostImageCopy;
  7584. VkBool32 pushDescriptor;
  7585. } VkPhysicalDeviceVulkan14Features;
  7586. typedef struct VkPhysicalDeviceVulkan14Properties {
  7587. VkStructureType sType;
  7588. void* pNext;
  7589. uint32_t lineSubPixelPrecisionBits;
  7590. uint32_t maxVertexAttribDivisor;
  7591. VkBool32 supportsNonZeroFirstInstance;
  7592. uint32_t maxPushDescriptors;
  7593. VkBool32 dynamicRenderingLocalReadDepthStencilAttachments;
  7594. VkBool32 dynamicRenderingLocalReadMultisampledAttachments;
  7595. VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
  7596. VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
  7597. VkBool32 depthStencilSwizzleOneSupport;
  7598. VkBool32 polygonModePointSize;
  7599. VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
  7600. VkBool32 nonStrictWideLinesUseParallelogram;
  7601. VkBool32 blockTexelViewCompatibleMultipleLayers;
  7602. uint32_t maxCombinedImageSamplerDescriptorCount;
  7603. VkBool32 fragmentShadingRateClampCombinerInputs;
  7604. VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
  7605. VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
  7606. VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
  7607. VkPipelineRobustnessImageBehavior defaultRobustnessImages;
  7608. uint32_t copySrcLayoutCount;
  7609. VkImageLayout* pCopySrcLayouts;
  7610. uint32_t copyDstLayoutCount;
  7611. VkImageLayout* pCopyDstLayouts;
  7612. uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
  7613. VkBool32 identicalMemoryTypeRequirements;
  7614. } VkPhysicalDeviceVulkan14Properties;
  7615. typedef struct VkDeviceQueueGlobalPriorityCreateInfo {
  7616. VkStructureType sType;
  7617. const void* pNext;
  7618. VkQueueGlobalPriority globalPriority;
  7619. } VkDeviceQueueGlobalPriorityCreateInfo;
  7620. typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures {
  7621. VkStructureType sType;
  7622. void* pNext;
  7623. VkBool32 globalPriorityQuery;
  7624. } VkPhysicalDeviceGlobalPriorityQueryFeatures;
  7625. typedef struct VkQueueFamilyGlobalPriorityProperties {
  7626. VkStructureType sType;
  7627. void* pNext;
  7628. uint32_t priorityCount;
  7629. VkQueueGlobalPriority priorities[VK_MAX_GLOBAL_PRIORITY_SIZE];
  7630. } VkQueueFamilyGlobalPriorityProperties;
  7631. typedef struct VkPhysicalDeviceIndexTypeUint8Features {
  7632. VkStructureType sType;
  7633. void* pNext;
  7634. VkBool32 indexTypeUint8;
  7635. } VkPhysicalDeviceIndexTypeUint8Features;
  7636. typedef struct VkMemoryMapInfo {
  7637. VkStructureType sType;
  7638. const void* pNext;
  7639. VkMemoryMapFlags flags;
  7640. VkDeviceMemory memory;
  7641. VkDeviceSize offset;
  7642. VkDeviceSize size;
  7643. } VkMemoryMapInfo;
  7644. typedef struct VkMemoryUnmapInfo {
  7645. VkStructureType sType;
  7646. const void* pNext;
  7647. VkMemoryUnmapFlags flags;
  7648. VkDeviceMemory memory;
  7649. } VkMemoryUnmapInfo;
  7650. typedef struct VkPhysicalDeviceMaintenance5Features {
  7651. VkStructureType sType;
  7652. void* pNext;
  7653. VkBool32 maintenance5;
  7654. } VkPhysicalDeviceMaintenance5Features;
  7655. typedef struct VkPhysicalDeviceMaintenance5Properties {
  7656. VkStructureType sType;
  7657. void* pNext;
  7658. VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
  7659. VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
  7660. VkBool32 depthStencilSwizzleOneSupport;
  7661. VkBool32 polygonModePointSize;
  7662. VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
  7663. VkBool32 nonStrictWideLinesUseParallelogram;
  7664. } VkPhysicalDeviceMaintenance5Properties;
  7665. typedef struct VkImageSubresource2 {
  7666. VkStructureType sType;
  7667. void* pNext;
  7668. VkImageSubresource imageSubresource;
  7669. } VkImageSubresource2;
  7670. typedef struct VkDeviceImageSubresourceInfo {
  7671. VkStructureType sType;
  7672. const void* pNext;
  7673. const VkImageCreateInfo* pCreateInfo;
  7674. const VkImageSubresource2* pSubresource;
  7675. } VkDeviceImageSubresourceInfo;
  7676. typedef struct VkSubresourceLayout2 {
  7677. VkStructureType sType;
  7678. void* pNext;
  7679. VkSubresourceLayout subresourceLayout;
  7680. } VkSubresourceLayout2;
  7681. typedef struct VkBufferUsageFlags2CreateInfo {
  7682. VkStructureType sType;
  7683. const void* pNext;
  7684. VkBufferUsageFlags2 usage;
  7685. } VkBufferUsageFlags2CreateInfo;
  7686. typedef struct VkPhysicalDeviceMaintenance6Features {
  7687. VkStructureType sType;
  7688. void* pNext;
  7689. VkBool32 maintenance6;
  7690. } VkPhysicalDeviceMaintenance6Features;
  7691. typedef struct VkPhysicalDeviceMaintenance6Properties {
  7692. VkStructureType sType;
  7693. void* pNext;
  7694. VkBool32 blockTexelViewCompatibleMultipleLayers;
  7695. uint32_t maxCombinedImageSamplerDescriptorCount;
  7696. VkBool32 fragmentShadingRateClampCombinerInputs;
  7697. } VkPhysicalDeviceMaintenance6Properties;
  7698. typedef struct VkBindMemoryStatus {
  7699. VkStructureType sType;
  7700. const void* pNext;
  7701. VkResult* pResult;
  7702. } VkBindMemoryStatus;
  7703. typedef struct VkPhysicalDeviceHostImageCopyFeatures {
  7704. VkStructureType sType;
  7705. void* pNext;
  7706. VkBool32 hostImageCopy;
  7707. } VkPhysicalDeviceHostImageCopyFeatures;
  7708. typedef struct VkPhysicalDeviceHostImageCopyProperties {
  7709. VkStructureType sType;
  7710. void* pNext;
  7711. uint32_t copySrcLayoutCount;
  7712. VkImageLayout* pCopySrcLayouts;
  7713. uint32_t copyDstLayoutCount;
  7714. VkImageLayout* pCopyDstLayouts;
  7715. uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
  7716. VkBool32 identicalMemoryTypeRequirements;
  7717. } VkPhysicalDeviceHostImageCopyProperties;
  7718. typedef struct VkMemoryToImageCopy {
  7719. VkStructureType sType;
  7720. const void* pNext;
  7721. const void* pHostPointer;
  7722. uint32_t memoryRowLength;
  7723. uint32_t memoryImageHeight;
  7724. VkImageSubresourceLayers imageSubresource;
  7725. VkOffset3D imageOffset;
  7726. VkExtent3D imageExtent;
  7727. } VkMemoryToImageCopy;
  7728. typedef struct VkImageToMemoryCopy {
  7729. VkStructureType sType;
  7730. const void* pNext;
  7731. void* pHostPointer;
  7732. uint32_t memoryRowLength;
  7733. uint32_t memoryImageHeight;
  7734. VkImageSubresourceLayers imageSubresource;
  7735. VkOffset3D imageOffset;
  7736. VkExtent3D imageExtent;
  7737. } VkImageToMemoryCopy;
  7738. typedef struct VkCopyMemoryToImageInfo {
  7739. VkStructureType sType;
  7740. const void* pNext;
  7741. VkHostImageCopyFlags flags;
  7742. VkImage dstImage;
  7743. VkImageLayout dstImageLayout;
  7744. uint32_t regionCount;
  7745. const VkMemoryToImageCopy* pRegions;
  7746. } VkCopyMemoryToImageInfo;
  7747. typedef struct VkCopyImageToMemoryInfo {
  7748. VkStructureType sType;
  7749. const void* pNext;
  7750. VkHostImageCopyFlags flags;
  7751. VkImage srcImage;
  7752. VkImageLayout srcImageLayout;
  7753. uint32_t regionCount;
  7754. const VkImageToMemoryCopy* pRegions;
  7755. } VkCopyImageToMemoryInfo;
  7756. typedef struct VkCopyImageToImageInfo {
  7757. VkStructureType sType;
  7758. const void* pNext;
  7759. VkHostImageCopyFlags flags;
  7760. VkImage srcImage;
  7761. VkImageLayout srcImageLayout;
  7762. VkImage dstImage;
  7763. VkImageLayout dstImageLayout;
  7764. uint32_t regionCount;
  7765. const VkImageCopy2* pRegions;
  7766. } VkCopyImageToImageInfo;
  7767. typedef struct VkHostImageLayoutTransitionInfo {
  7768. VkStructureType sType;
  7769. const void* pNext;
  7770. VkImage image;
  7771. VkImageLayout oldLayout;
  7772. VkImageLayout newLayout;
  7773. VkImageSubresourceRange subresourceRange;
  7774. } VkHostImageLayoutTransitionInfo;
  7775. typedef struct VkSubresourceHostMemcpySize {
  7776. VkStructureType sType;
  7777. void* pNext;
  7778. VkDeviceSize size;
  7779. } VkSubresourceHostMemcpySize;
  7780. typedef struct VkHostImageCopyDevicePerformanceQuery {
  7781. VkStructureType sType;
  7782. void* pNext;
  7783. VkBool32 optimalDeviceAccess;
  7784. VkBool32 identicalMemoryLayout;
  7785. } VkHostImageCopyDevicePerformanceQuery;
  7786. typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures {
  7787. VkStructureType sType;
  7788. void* pNext;
  7789. VkBool32 shaderSubgroupRotate;
  7790. VkBool32 shaderSubgroupRotateClustered;
  7791. } VkPhysicalDeviceShaderSubgroupRotateFeatures;
  7792. typedef struct VkPhysicalDeviceShaderFloatControls2Features {
  7793. VkStructureType sType;
  7794. void* pNext;
  7795. VkBool32 shaderFloatControls2;
  7796. } VkPhysicalDeviceShaderFloatControls2Features;
  7797. typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures {
  7798. VkStructureType sType;
  7799. void* pNext;
  7800. VkBool32 shaderExpectAssume;
  7801. } VkPhysicalDeviceShaderExpectAssumeFeatures;
  7802. typedef struct VkPipelineCreateFlags2CreateInfo {
  7803. VkStructureType sType;
  7804. const void* pNext;
  7805. VkPipelineCreateFlags2 flags;
  7806. } VkPipelineCreateFlags2CreateInfo;
  7807. typedef struct VkPhysicalDevicePushDescriptorProperties {
  7808. VkStructureType sType;
  7809. void* pNext;
  7810. uint32_t maxPushDescriptors;
  7811. } VkPhysicalDevicePushDescriptorProperties;
  7812. typedef struct VkBindDescriptorSetsInfo {
  7813. VkStructureType sType;
  7814. const void* pNext;
  7815. VkShaderStageFlags stageFlags;
  7816. VkPipelineLayout layout;
  7817. uint32_t firstSet;
  7818. uint32_t descriptorSetCount;
  7819. const VkDescriptorSet* pDescriptorSets;
  7820. uint32_t dynamicOffsetCount;
  7821. const uint32_t* pDynamicOffsets;
  7822. } VkBindDescriptorSetsInfo;
  7823. typedef struct VkPushConstantsInfo {
  7824. VkStructureType sType;
  7825. const void* pNext;
  7826. VkPipelineLayout layout;
  7827. VkShaderStageFlags stageFlags;
  7828. uint32_t offset;
  7829. uint32_t size;
  7830. const void* pValues;
  7831. } VkPushConstantsInfo;
  7832. typedef struct VkPushDescriptorSetInfo {
  7833. VkStructureType sType;
  7834. const void* pNext;
  7835. VkShaderStageFlags stageFlags;
  7836. VkPipelineLayout layout;
  7837. uint32_t set;
  7838. uint32_t descriptorWriteCount;
  7839. const VkWriteDescriptorSet* pDescriptorWrites;
  7840. } VkPushDescriptorSetInfo;
  7841. typedef struct VkPushDescriptorSetWithTemplateInfo {
  7842. VkStructureType sType;
  7843. const void* pNext;
  7844. VkDescriptorUpdateTemplate descriptorUpdateTemplate;
  7845. VkPipelineLayout layout;
  7846. uint32_t set;
  7847. const void* pData;
  7848. } VkPushDescriptorSetWithTemplateInfo;
  7849. typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures {
  7850. VkStructureType sType;
  7851. void* pNext;
  7852. VkBool32 pipelineProtectedAccess;
  7853. } VkPhysicalDevicePipelineProtectedAccessFeatures;
  7854. typedef struct VkPhysicalDevicePipelineRobustnessFeatures {
  7855. VkStructureType sType;
  7856. void* pNext;
  7857. VkBool32 pipelineRobustness;
  7858. } VkPhysicalDevicePipelineRobustnessFeatures;
  7859. typedef struct VkPhysicalDevicePipelineRobustnessProperties {
  7860. VkStructureType sType;
  7861. void* pNext;
  7862. VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
  7863. VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
  7864. VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
  7865. VkPipelineRobustnessImageBehavior defaultRobustnessImages;
  7866. } VkPhysicalDevicePipelineRobustnessProperties;
  7867. typedef struct VkPipelineRobustnessCreateInfo {
  7868. VkStructureType sType;
  7869. const void* pNext;
  7870. VkPipelineRobustnessBufferBehavior storageBuffers;
  7871. VkPipelineRobustnessBufferBehavior uniformBuffers;
  7872. VkPipelineRobustnessBufferBehavior vertexInputs;
  7873. VkPipelineRobustnessImageBehavior images;
  7874. } VkPipelineRobustnessCreateInfo;
  7875. typedef struct VkPhysicalDeviceLineRasterizationFeatures {
  7876. VkStructureType sType;
  7877. void* pNext;
  7878. VkBool32 rectangularLines;
  7879. VkBool32 bresenhamLines;
  7880. VkBool32 smoothLines;
  7881. VkBool32 stippledRectangularLines;
  7882. VkBool32 stippledBresenhamLines;
  7883. VkBool32 stippledSmoothLines;
  7884. } VkPhysicalDeviceLineRasterizationFeatures;
  7885. typedef struct VkPhysicalDeviceLineRasterizationProperties {
  7886. VkStructureType sType;
  7887. void* pNext;
  7888. uint32_t lineSubPixelPrecisionBits;
  7889. } VkPhysicalDeviceLineRasterizationProperties;
  7890. typedef struct VkPipelineRasterizationLineStateCreateInfo {
  7891. VkStructureType sType;
  7892. const void* pNext;
  7893. VkLineRasterizationMode lineRasterizationMode;
  7894. VkBool32 stippledLineEnable;
  7895. uint32_t lineStippleFactor;
  7896. uint16_t lineStipplePattern;
  7897. } VkPipelineRasterizationLineStateCreateInfo;
  7898. typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties {
  7899. VkStructureType sType;
  7900. void* pNext;
  7901. uint32_t maxVertexAttribDivisor;
  7902. VkBool32 supportsNonZeroFirstInstance;
  7903. } VkPhysicalDeviceVertexAttributeDivisorProperties;
  7904. typedef struct VkVertexInputBindingDivisorDescription {
  7905. uint32_t binding;
  7906. uint32_t divisor;
  7907. } VkVertexInputBindingDivisorDescription;
  7908. typedef struct VkPipelineVertexInputDivisorStateCreateInfo {
  7909. VkStructureType sType;
  7910. const void* pNext;
  7911. uint32_t vertexBindingDivisorCount;
  7912. const VkVertexInputBindingDivisorDescription* pVertexBindingDivisors;
  7913. } VkPipelineVertexInputDivisorStateCreateInfo;
  7914. typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures {
  7915. VkStructureType sType;
  7916. void* pNext;
  7917. VkBool32 vertexAttributeInstanceRateDivisor;
  7918. VkBool32 vertexAttributeInstanceRateZeroDivisor;
  7919. } VkPhysicalDeviceVertexAttributeDivisorFeatures;
  7920. typedef struct VkRenderingAreaInfo {
  7921. VkStructureType sType;
  7922. const void* pNext;
  7923. uint32_t viewMask;
  7924. uint32_t colorAttachmentCount;
  7925. const VkFormat* pColorAttachmentFormats;
  7926. VkFormat depthAttachmentFormat;
  7927. VkFormat stencilAttachmentFormat;
  7928. } VkRenderingAreaInfo;
  7929. typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures {
  7930. VkStructureType sType;
  7931. void* pNext;
  7932. VkBool32 dynamicRenderingLocalRead;
  7933. } VkPhysicalDeviceDynamicRenderingLocalReadFeatures;
  7934. typedef struct VkRenderingAttachmentLocationInfo {
  7935. VkStructureType sType;
  7936. const void* pNext;
  7937. uint32_t colorAttachmentCount;
  7938. const uint32_t* pColorAttachmentLocations;
  7939. } VkRenderingAttachmentLocationInfo;
  7940. typedef struct VkRenderingInputAttachmentIndexInfo {
  7941. VkStructureType sType;
  7942. const void* pNext;
  7943. uint32_t colorAttachmentCount;
  7944. const uint32_t* pColorAttachmentInputIndices;
  7945. const uint32_t* pDepthInputAttachmentIndex;
  7946. const uint32_t* pStencilInputAttachmentIndex;
  7947. } VkRenderingInputAttachmentIndexInfo;
  7948. typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
  7949. typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
  7950. typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayout)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
  7951. typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
  7952. typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImage)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
  7953. typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemory)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
  7954. typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImage)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
  7955. typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayout)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
  7956. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
  7957. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
  7958. typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
  7959. typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
  7960. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
  7961. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
  7962. typedef void (VKAPI_PTR *PFN_vkCmdSetLineStipple)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
  7963. typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
  7964. typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularity)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
  7965. typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocations)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
  7966. typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndices)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
  7967. #ifndef VK_NO_PROTOTYPES
  7968. VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2(
  7969. VkDevice device,
  7970. const VkMemoryMapInfo* pMemoryMapInfo,
  7971. void** ppData);
  7972. VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2(
  7973. VkDevice device,
  7974. const VkMemoryUnmapInfo* pMemoryUnmapInfo);
  7975. VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayout(
  7976. VkDevice device,
  7977. const VkDeviceImageSubresourceInfo* pInfo,
  7978. VkSubresourceLayout2* pLayout);
  7979. VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2(
  7980. VkDevice device,
  7981. VkImage image,
  7982. const VkImageSubresource2* pSubresource,
  7983. VkSubresourceLayout2* pLayout);
  7984. VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImage(
  7985. VkDevice device,
  7986. const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
  7987. VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemory(
  7988. VkDevice device,
  7989. const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
  7990. VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImage(
  7991. VkDevice device,
  7992. const VkCopyImageToImageInfo* pCopyImageToImageInfo);
  7993. VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayout(
  7994. VkDevice device,
  7995. uint32_t transitionCount,
  7996. const VkHostImageLayoutTransitionInfo* pTransitions);
  7997. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet(
  7998. VkCommandBuffer commandBuffer,
  7999. VkPipelineBindPoint pipelineBindPoint,
  8000. VkPipelineLayout layout,
  8001. uint32_t set,
  8002. uint32_t descriptorWriteCount,
  8003. const VkWriteDescriptorSet* pDescriptorWrites);
  8004. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate(
  8005. VkCommandBuffer commandBuffer,
  8006. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  8007. VkPipelineLayout layout,
  8008. uint32_t set,
  8009. const void* pData);
  8010. VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2(
  8011. VkCommandBuffer commandBuffer,
  8012. const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
  8013. VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2(
  8014. VkCommandBuffer commandBuffer,
  8015. const VkPushConstantsInfo* pPushConstantsInfo);
  8016. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2(
  8017. VkCommandBuffer commandBuffer,
  8018. const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
  8019. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2(
  8020. VkCommandBuffer commandBuffer,
  8021. const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
  8022. VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStipple(
  8023. VkCommandBuffer commandBuffer,
  8024. uint32_t lineStippleFactor,
  8025. uint16_t lineStipplePattern);
  8026. VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2(
  8027. VkCommandBuffer commandBuffer,
  8028. VkBuffer buffer,
  8029. VkDeviceSize offset,
  8030. VkDeviceSize size,
  8031. VkIndexType indexType);
  8032. VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularity(
  8033. VkDevice device,
  8034. const VkRenderingAreaInfo* pRenderingAreaInfo,
  8035. VkExtent2D* pGranularity);
  8036. VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocations(
  8037. VkCommandBuffer commandBuffer,
  8038. const VkRenderingAttachmentLocationInfo* pLocationInfo);
  8039. VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndices(
  8040. VkCommandBuffer commandBuffer,
  8041. const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
  8042. #endif
  8043. // VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
  8044. #define VK_KHR_surface 1
  8045. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
  8046. #define VK_KHR_SURFACE_SPEC_VERSION 25
  8047. #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
  8048. typedef enum VkPresentModeKHR {
  8049. VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
  8050. VK_PRESENT_MODE_MAILBOX_KHR = 1,
  8051. VK_PRESENT_MODE_FIFO_KHR = 2,
  8052. VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
  8053. VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
  8054. VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
  8055. VK_PRESENT_MODE_FIFO_LATEST_READY_KHR = 1000361000,
  8056. VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = VK_PRESENT_MODE_FIFO_LATEST_READY_KHR,
  8057. VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  8058. } VkPresentModeKHR;
  8059. typedef enum VkColorSpaceKHR {
  8060. VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
  8061. VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
  8062. VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
  8063. VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
  8064. VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
  8065. VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
  8066. VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
  8067. VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
  8068. VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
  8069. // VK_COLOR_SPACE_DOLBYVISION_EXT is legacy, but no reason was given in the API XML
  8070. VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
  8071. VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
  8072. VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
  8073. VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
  8074. VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
  8075. VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
  8076. VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
  8077. // VK_COLORSPACE_SRGB_NONLINEAR_KHR is a legacy alias
  8078. VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
  8079. // VK_COLOR_SPACE_DCI_P3_LINEAR_EXT is a legacy alias
  8080. VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
  8081. VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
  8082. } VkColorSpaceKHR;
  8083. typedef enum VkSurfaceTransformFlagBitsKHR {
  8084. VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
  8085. VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
  8086. VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
  8087. VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
  8088. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
  8089. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
  8090. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
  8091. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
  8092. VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
  8093. VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8094. } VkSurfaceTransformFlagBitsKHR;
  8095. typedef enum VkCompositeAlphaFlagBitsKHR {
  8096. VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
  8097. VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
  8098. VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
  8099. VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
  8100. VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8101. } VkCompositeAlphaFlagBitsKHR;
  8102. typedef VkFlags VkCompositeAlphaFlagsKHR;
  8103. typedef VkFlags VkSurfaceTransformFlagsKHR;
  8104. typedef struct VkSurfaceCapabilitiesKHR {
  8105. uint32_t minImageCount;
  8106. uint32_t maxImageCount;
  8107. VkExtent2D currentExtent;
  8108. VkExtent2D minImageExtent;
  8109. VkExtent2D maxImageExtent;
  8110. uint32_t maxImageArrayLayers;
  8111. VkSurfaceTransformFlagsKHR supportedTransforms;
  8112. VkSurfaceTransformFlagBitsKHR currentTransform;
  8113. VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
  8114. VkImageUsageFlags supportedUsageFlags;
  8115. } VkSurfaceCapabilitiesKHR;
  8116. typedef struct VkSurfaceFormatKHR {
  8117. VkFormat format;
  8118. VkColorSpaceKHR colorSpace;
  8119. } VkSurfaceFormatKHR;
  8120. typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
  8121. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
  8122. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
  8123. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
  8124. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
  8125. #ifndef VK_NO_PROTOTYPES
  8126. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8127. VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
  8128. VkInstance instance,
  8129. VkSurfaceKHR surface,
  8130. const VkAllocationCallbacks* pAllocator);
  8131. #endif
  8132. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8133. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
  8134. VkPhysicalDevice physicalDevice,
  8135. uint32_t queueFamilyIndex,
  8136. VkSurfaceKHR surface,
  8137. VkBool32* pSupported);
  8138. #endif
  8139. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8140. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
  8141. VkPhysicalDevice physicalDevice,
  8142. VkSurfaceKHR surface,
  8143. VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
  8144. #endif
  8145. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8146. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
  8147. VkPhysicalDevice physicalDevice,
  8148. VkSurfaceKHR surface,
  8149. uint32_t* pSurfaceFormatCount,
  8150. VkSurfaceFormatKHR* pSurfaceFormats);
  8151. #endif
  8152. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8153. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
  8154. VkPhysicalDevice physicalDevice,
  8155. VkSurfaceKHR surface,
  8156. uint32_t* pPresentModeCount,
  8157. VkPresentModeKHR* pPresentModes);
  8158. #endif
  8159. #endif
  8160. // VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
  8161. #define VK_KHR_swapchain 1
  8162. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
  8163. #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
  8164. #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
  8165. typedef enum VkSwapchainCreateFlagBitsKHR {
  8166. VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
  8167. VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
  8168. VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
  8169. VK_SWAPCHAIN_CREATE_PRESENT_TIMING_BIT_EXT = 0x00000200,
  8170. VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR = 0x00000040,
  8171. VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR = 0x00000080,
  8172. VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR = 0x00000008,
  8173. VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR,
  8174. VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8175. } VkSwapchainCreateFlagBitsKHR;
  8176. typedef VkFlags VkSwapchainCreateFlagsKHR;
  8177. typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
  8178. VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
  8179. VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
  8180. VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
  8181. VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
  8182. VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8183. } VkDeviceGroupPresentModeFlagBitsKHR;
  8184. typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
  8185. typedef struct VkSwapchainCreateInfoKHR {
  8186. VkStructureType sType;
  8187. const void* pNext;
  8188. VkSwapchainCreateFlagsKHR flags;
  8189. VkSurfaceKHR surface;
  8190. uint32_t minImageCount;
  8191. VkFormat imageFormat;
  8192. VkColorSpaceKHR imageColorSpace;
  8193. VkExtent2D imageExtent;
  8194. uint32_t imageArrayLayers;
  8195. VkImageUsageFlags imageUsage;
  8196. VkSharingMode imageSharingMode;
  8197. uint32_t queueFamilyIndexCount;
  8198. const uint32_t* pQueueFamilyIndices;
  8199. VkSurfaceTransformFlagBitsKHR preTransform;
  8200. VkCompositeAlphaFlagBitsKHR compositeAlpha;
  8201. VkPresentModeKHR presentMode;
  8202. VkBool32 clipped;
  8203. VkSwapchainKHR oldSwapchain;
  8204. } VkSwapchainCreateInfoKHR;
  8205. typedef struct VkPresentInfoKHR {
  8206. VkStructureType sType;
  8207. const void* pNext;
  8208. uint32_t waitSemaphoreCount;
  8209. const VkSemaphore* pWaitSemaphores;
  8210. uint32_t swapchainCount;
  8211. const VkSwapchainKHR* pSwapchains;
  8212. const uint32_t* pImageIndices;
  8213. VkResult* pResults;
  8214. } VkPresentInfoKHR;
  8215. typedef struct VkImageSwapchainCreateInfoKHR {
  8216. VkStructureType sType;
  8217. const void* pNext;
  8218. VkSwapchainKHR swapchain;
  8219. } VkImageSwapchainCreateInfoKHR;
  8220. typedef struct VkBindImageMemorySwapchainInfoKHR {
  8221. VkStructureType sType;
  8222. const void* pNext;
  8223. VkSwapchainKHR swapchain;
  8224. uint32_t imageIndex;
  8225. } VkBindImageMemorySwapchainInfoKHR;
  8226. typedef struct VkAcquireNextImageInfoKHR {
  8227. VkStructureType sType;
  8228. const void* pNext;
  8229. VkSwapchainKHR swapchain;
  8230. uint64_t timeout;
  8231. VkSemaphore semaphore;
  8232. VkFence fence;
  8233. uint32_t deviceMask;
  8234. } VkAcquireNextImageInfoKHR;
  8235. typedef struct VkDeviceGroupPresentCapabilitiesKHR {
  8236. VkStructureType sType;
  8237. void* pNext;
  8238. uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
  8239. VkDeviceGroupPresentModeFlagsKHR modes;
  8240. } VkDeviceGroupPresentCapabilitiesKHR;
  8241. typedef struct VkDeviceGroupPresentInfoKHR {
  8242. VkStructureType sType;
  8243. const void* pNext;
  8244. uint32_t swapchainCount;
  8245. const uint32_t* pDeviceMasks;
  8246. VkDeviceGroupPresentModeFlagBitsKHR mode;
  8247. } VkDeviceGroupPresentInfoKHR;
  8248. typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
  8249. VkStructureType sType;
  8250. const void* pNext;
  8251. VkDeviceGroupPresentModeFlagsKHR modes;
  8252. } VkDeviceGroupSwapchainCreateInfoKHR;
  8253. typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
  8254. typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
  8255. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
  8256. typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
  8257. typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
  8258. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
  8259. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
  8260. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
  8261. typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
  8262. #ifndef VK_NO_PROTOTYPES
  8263. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8264. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
  8265. VkDevice device,
  8266. const VkSwapchainCreateInfoKHR* pCreateInfo,
  8267. const VkAllocationCallbacks* pAllocator,
  8268. VkSwapchainKHR* pSwapchain);
  8269. #endif
  8270. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8271. VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
  8272. VkDevice device,
  8273. VkSwapchainKHR swapchain,
  8274. const VkAllocationCallbacks* pAllocator);
  8275. #endif
  8276. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8277. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
  8278. VkDevice device,
  8279. VkSwapchainKHR swapchain,
  8280. uint32_t* pSwapchainImageCount,
  8281. VkImage* pSwapchainImages);
  8282. #endif
  8283. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8284. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
  8285. VkDevice device,
  8286. VkSwapchainKHR swapchain,
  8287. uint64_t timeout,
  8288. VkSemaphore semaphore,
  8289. VkFence fence,
  8290. uint32_t* pImageIndex);
  8291. #endif
  8292. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8293. VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
  8294. VkQueue queue,
  8295. const VkPresentInfoKHR* pPresentInfo);
  8296. #endif
  8297. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8298. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
  8299. VkDevice device,
  8300. VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
  8301. #endif
  8302. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8303. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
  8304. VkDevice device,
  8305. VkSurfaceKHR surface,
  8306. VkDeviceGroupPresentModeFlagsKHR* pModes);
  8307. #endif
  8308. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8309. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
  8310. VkPhysicalDevice physicalDevice,
  8311. VkSurfaceKHR surface,
  8312. uint32_t* pRectCount,
  8313. VkRect2D* pRects);
  8314. #endif
  8315. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8316. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
  8317. VkDevice device,
  8318. const VkAcquireNextImageInfoKHR* pAcquireInfo,
  8319. uint32_t* pImageIndex);
  8320. #endif
  8321. #endif
  8322. // VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
  8323. #define VK_KHR_display 1
  8324. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
  8325. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
  8326. #define VK_KHR_DISPLAY_SPEC_VERSION 23
  8327. #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
  8328. typedef VkFlags VkDisplayModeCreateFlagsKHR;
  8329. typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
  8330. VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
  8331. VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
  8332. VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
  8333. VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
  8334. VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8335. } VkDisplayPlaneAlphaFlagBitsKHR;
  8336. typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
  8337. typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
  8338. typedef struct VkDisplayModeParametersKHR {
  8339. VkExtent2D visibleRegion;
  8340. uint32_t refreshRate;
  8341. } VkDisplayModeParametersKHR;
  8342. typedef struct VkDisplayModeCreateInfoKHR {
  8343. VkStructureType sType;
  8344. const void* pNext;
  8345. VkDisplayModeCreateFlagsKHR flags;
  8346. VkDisplayModeParametersKHR parameters;
  8347. } VkDisplayModeCreateInfoKHR;
  8348. typedef struct VkDisplayModePropertiesKHR {
  8349. VkDisplayModeKHR displayMode;
  8350. VkDisplayModeParametersKHR parameters;
  8351. } VkDisplayModePropertiesKHR;
  8352. typedef struct VkDisplayPlaneCapabilitiesKHR {
  8353. VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
  8354. VkOffset2D minSrcPosition;
  8355. VkOffset2D maxSrcPosition;
  8356. VkExtent2D minSrcExtent;
  8357. VkExtent2D maxSrcExtent;
  8358. VkOffset2D minDstPosition;
  8359. VkOffset2D maxDstPosition;
  8360. VkExtent2D minDstExtent;
  8361. VkExtent2D maxDstExtent;
  8362. } VkDisplayPlaneCapabilitiesKHR;
  8363. typedef struct VkDisplayPlanePropertiesKHR {
  8364. VkDisplayKHR currentDisplay;
  8365. uint32_t currentStackIndex;
  8366. } VkDisplayPlanePropertiesKHR;
  8367. typedef struct VkDisplayPropertiesKHR {
  8368. VkDisplayKHR display;
  8369. const char* displayName;
  8370. VkExtent2D physicalDimensions;
  8371. VkExtent2D physicalResolution;
  8372. VkSurfaceTransformFlagsKHR supportedTransforms;
  8373. VkBool32 planeReorderPossible;
  8374. VkBool32 persistentContent;
  8375. } VkDisplayPropertiesKHR;
  8376. typedef struct VkDisplaySurfaceCreateInfoKHR {
  8377. VkStructureType sType;
  8378. const void* pNext;
  8379. VkDisplaySurfaceCreateFlagsKHR flags;
  8380. VkDisplayModeKHR displayMode;
  8381. uint32_t planeIndex;
  8382. uint32_t planeStackIndex;
  8383. VkSurfaceTransformFlagBitsKHR transform;
  8384. float globalAlpha;
  8385. VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
  8386. VkExtent2D imageExtent;
  8387. } VkDisplaySurfaceCreateInfoKHR;
  8388. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
  8389. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
  8390. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
  8391. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
  8392. typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
  8393. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
  8394. typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  8395. #ifndef VK_NO_PROTOTYPES
  8396. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8397. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
  8398. VkPhysicalDevice physicalDevice,
  8399. uint32_t* pPropertyCount,
  8400. VkDisplayPropertiesKHR* pProperties);
  8401. #endif
  8402. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8403. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
  8404. VkPhysicalDevice physicalDevice,
  8405. uint32_t* pPropertyCount,
  8406. VkDisplayPlanePropertiesKHR* pProperties);
  8407. #endif
  8408. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8409. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
  8410. VkPhysicalDevice physicalDevice,
  8411. uint32_t planeIndex,
  8412. uint32_t* pDisplayCount,
  8413. VkDisplayKHR* pDisplays);
  8414. #endif
  8415. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8416. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
  8417. VkPhysicalDevice physicalDevice,
  8418. VkDisplayKHR display,
  8419. uint32_t* pPropertyCount,
  8420. VkDisplayModePropertiesKHR* pProperties);
  8421. #endif
  8422. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8423. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
  8424. VkPhysicalDevice physicalDevice,
  8425. VkDisplayKHR display,
  8426. const VkDisplayModeCreateInfoKHR* pCreateInfo,
  8427. const VkAllocationCallbacks* pAllocator,
  8428. VkDisplayModeKHR* pMode);
  8429. #endif
  8430. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8431. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
  8432. VkPhysicalDevice physicalDevice,
  8433. VkDisplayModeKHR mode,
  8434. uint32_t planeIndex,
  8435. VkDisplayPlaneCapabilitiesKHR* pCapabilities);
  8436. #endif
  8437. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8438. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
  8439. VkInstance instance,
  8440. const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
  8441. const VkAllocationCallbacks* pAllocator,
  8442. VkSurfaceKHR* pSurface);
  8443. #endif
  8444. #endif
  8445. // VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
  8446. #define VK_KHR_display_swapchain 1
  8447. #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
  8448. #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
  8449. typedef struct VkDisplayPresentInfoKHR {
  8450. VkStructureType sType;
  8451. const void* pNext;
  8452. VkRect2D srcRect;
  8453. VkRect2D dstRect;
  8454. VkBool32 persistent;
  8455. } VkDisplayPresentInfoKHR;
  8456. typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
  8457. #ifndef VK_NO_PROTOTYPES
  8458. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8459. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
  8460. VkDevice device,
  8461. uint32_t swapchainCount,
  8462. const VkSwapchainCreateInfoKHR* pCreateInfos,
  8463. const VkAllocationCallbacks* pAllocator,
  8464. VkSwapchainKHR* pSwapchains);
  8465. #endif
  8466. #endif
  8467. // VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
  8468. #define VK_KHR_sampler_mirror_clamp_to_edge 1
  8469. #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
  8470. #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
  8471. // VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
  8472. #define VK_KHR_video_queue 1
  8473. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
  8474. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
  8475. #define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 8
  8476. #define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
  8477. typedef enum VkQueryResultStatusKHR {
  8478. VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
  8479. VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
  8480. VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
  8481. VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
  8482. VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
  8483. } VkQueryResultStatusKHR;
  8484. typedef enum VkVideoCodecOperationFlagBitsKHR {
  8485. VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
  8486. VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
  8487. VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
  8488. VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
  8489. VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
  8490. VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
  8491. VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR = 0x00040000,
  8492. VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR = 0x00000008,
  8493. VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8494. } VkVideoCodecOperationFlagBitsKHR;
  8495. typedef VkFlags VkVideoCodecOperationFlagsKHR;
  8496. typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
  8497. VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
  8498. VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
  8499. VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
  8500. VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
  8501. VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
  8502. VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8503. } VkVideoChromaSubsamplingFlagBitsKHR;
  8504. typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
  8505. typedef enum VkVideoComponentBitDepthFlagBitsKHR {
  8506. VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
  8507. VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
  8508. VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
  8509. VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
  8510. VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8511. } VkVideoComponentBitDepthFlagBitsKHR;
  8512. typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
  8513. typedef enum VkVideoCapabilityFlagBitsKHR {
  8514. VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
  8515. VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
  8516. VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8517. } VkVideoCapabilityFlagBitsKHR;
  8518. typedef VkFlags VkVideoCapabilityFlagsKHR;
  8519. typedef enum VkVideoSessionCreateFlagBitsKHR {
  8520. VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
  8521. VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
  8522. VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
  8523. VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000008,
  8524. VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x00000010,
  8525. VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR = 0x00000020,
  8526. VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8527. } VkVideoSessionCreateFlagBitsKHR;
  8528. typedef VkFlags VkVideoSessionCreateFlagsKHR;
  8529. typedef enum VkVideoSessionParametersCreateFlagBitsKHR {
  8530. VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR = 0x00000001,
  8531. VK_VIDEO_SESSION_PARAMETERS_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8532. } VkVideoSessionParametersCreateFlagBitsKHR;
  8533. typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
  8534. typedef VkFlags VkVideoBeginCodingFlagsKHR;
  8535. typedef VkFlags VkVideoEndCodingFlagsKHR;
  8536. typedef enum VkVideoCodingControlFlagBitsKHR {
  8537. VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
  8538. VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
  8539. VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
  8540. VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8541. } VkVideoCodingControlFlagBitsKHR;
  8542. typedef VkFlags VkVideoCodingControlFlagsKHR;
  8543. typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
  8544. VkStructureType sType;
  8545. void* pNext;
  8546. VkBool32 queryResultStatusSupport;
  8547. } VkQueueFamilyQueryResultStatusPropertiesKHR;
  8548. typedef struct VkQueueFamilyVideoPropertiesKHR {
  8549. VkStructureType sType;
  8550. void* pNext;
  8551. VkVideoCodecOperationFlagsKHR videoCodecOperations;
  8552. } VkQueueFamilyVideoPropertiesKHR;
  8553. typedef struct VkVideoProfileInfoKHR {
  8554. VkStructureType sType;
  8555. const void* pNext;
  8556. VkVideoCodecOperationFlagBitsKHR videoCodecOperation;
  8557. VkVideoChromaSubsamplingFlagsKHR chromaSubsampling;
  8558. VkVideoComponentBitDepthFlagsKHR lumaBitDepth;
  8559. VkVideoComponentBitDepthFlagsKHR chromaBitDepth;
  8560. } VkVideoProfileInfoKHR;
  8561. typedef struct VkVideoProfileListInfoKHR {
  8562. VkStructureType sType;
  8563. const void* pNext;
  8564. uint32_t profileCount;
  8565. const VkVideoProfileInfoKHR* pProfiles;
  8566. } VkVideoProfileListInfoKHR;
  8567. typedef struct VkVideoCapabilitiesKHR {
  8568. VkStructureType sType;
  8569. void* pNext;
  8570. VkVideoCapabilityFlagsKHR flags;
  8571. VkDeviceSize minBitstreamBufferOffsetAlignment;
  8572. VkDeviceSize minBitstreamBufferSizeAlignment;
  8573. VkExtent2D pictureAccessGranularity;
  8574. VkExtent2D minCodedExtent;
  8575. VkExtent2D maxCodedExtent;
  8576. uint32_t maxDpbSlots;
  8577. uint32_t maxActiveReferencePictures;
  8578. VkExtensionProperties stdHeaderVersion;
  8579. } VkVideoCapabilitiesKHR;
  8580. typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
  8581. VkStructureType sType;
  8582. const void* pNext;
  8583. VkImageUsageFlags imageUsage;
  8584. } VkPhysicalDeviceVideoFormatInfoKHR;
  8585. typedef struct VkVideoFormatPropertiesKHR {
  8586. VkStructureType sType;
  8587. void* pNext;
  8588. VkFormat format;
  8589. VkComponentMapping componentMapping;
  8590. VkImageCreateFlags imageCreateFlags;
  8591. VkImageType imageType;
  8592. VkImageTiling imageTiling;
  8593. VkImageUsageFlags imageUsageFlags;
  8594. } VkVideoFormatPropertiesKHR;
  8595. typedef struct VkVideoPictureResourceInfoKHR {
  8596. VkStructureType sType;
  8597. const void* pNext;
  8598. VkOffset2D codedOffset;
  8599. VkExtent2D codedExtent;
  8600. uint32_t baseArrayLayer;
  8601. VkImageView imageViewBinding;
  8602. } VkVideoPictureResourceInfoKHR;
  8603. typedef struct VkVideoReferenceSlotInfoKHR {
  8604. VkStructureType sType;
  8605. const void* pNext;
  8606. int32_t slotIndex;
  8607. const VkVideoPictureResourceInfoKHR* pPictureResource;
  8608. } VkVideoReferenceSlotInfoKHR;
  8609. typedef struct VkVideoSessionMemoryRequirementsKHR {
  8610. VkStructureType sType;
  8611. void* pNext;
  8612. uint32_t memoryBindIndex;
  8613. VkMemoryRequirements memoryRequirements;
  8614. } VkVideoSessionMemoryRequirementsKHR;
  8615. typedef struct VkBindVideoSessionMemoryInfoKHR {
  8616. VkStructureType sType;
  8617. const void* pNext;
  8618. uint32_t memoryBindIndex;
  8619. VkDeviceMemory memory;
  8620. VkDeviceSize memoryOffset;
  8621. VkDeviceSize memorySize;
  8622. } VkBindVideoSessionMemoryInfoKHR;
  8623. typedef struct VkVideoSessionCreateInfoKHR {
  8624. VkStructureType sType;
  8625. const void* pNext;
  8626. uint32_t queueFamilyIndex;
  8627. VkVideoSessionCreateFlagsKHR flags;
  8628. const VkVideoProfileInfoKHR* pVideoProfile;
  8629. VkFormat pictureFormat;
  8630. VkExtent2D maxCodedExtent;
  8631. VkFormat referencePictureFormat;
  8632. uint32_t maxDpbSlots;
  8633. uint32_t maxActiveReferencePictures;
  8634. const VkExtensionProperties* pStdHeaderVersion;
  8635. } VkVideoSessionCreateInfoKHR;
  8636. typedef struct VkVideoSessionParametersCreateInfoKHR {
  8637. VkStructureType sType;
  8638. const void* pNext;
  8639. VkVideoSessionParametersCreateFlagsKHR flags;
  8640. VkVideoSessionParametersKHR videoSessionParametersTemplate;
  8641. VkVideoSessionKHR videoSession;
  8642. } VkVideoSessionParametersCreateInfoKHR;
  8643. typedef struct VkVideoSessionParametersUpdateInfoKHR {
  8644. VkStructureType sType;
  8645. const void* pNext;
  8646. uint32_t updateSequenceCount;
  8647. } VkVideoSessionParametersUpdateInfoKHR;
  8648. typedef struct VkVideoBeginCodingInfoKHR {
  8649. VkStructureType sType;
  8650. const void* pNext;
  8651. VkVideoBeginCodingFlagsKHR flags;
  8652. VkVideoSessionKHR videoSession;
  8653. VkVideoSessionParametersKHR videoSessionParameters;
  8654. uint32_t referenceSlotCount;
  8655. const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
  8656. } VkVideoBeginCodingInfoKHR;
  8657. typedef struct VkVideoEndCodingInfoKHR {
  8658. VkStructureType sType;
  8659. const void* pNext;
  8660. VkVideoEndCodingFlagsKHR flags;
  8661. } VkVideoEndCodingInfoKHR;
  8662. typedef struct VkVideoCodingControlInfoKHR {
  8663. VkStructureType sType;
  8664. const void* pNext;
  8665. VkVideoCodingControlFlagsKHR flags;
  8666. } VkVideoCodingControlInfoKHR;
  8667. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
  8668. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
  8669. typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
  8670. typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
  8671. typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
  8672. typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
  8673. typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
  8674. typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
  8675. typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
  8676. typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
  8677. typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
  8678. typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
  8679. #ifndef VK_NO_PROTOTYPES
  8680. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8681. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
  8682. VkPhysicalDevice physicalDevice,
  8683. const VkVideoProfileInfoKHR* pVideoProfile,
  8684. VkVideoCapabilitiesKHR* pCapabilities);
  8685. #endif
  8686. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8687. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
  8688. VkPhysicalDevice physicalDevice,
  8689. const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
  8690. uint32_t* pVideoFormatPropertyCount,
  8691. VkVideoFormatPropertiesKHR* pVideoFormatProperties);
  8692. #endif
  8693. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8694. VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
  8695. VkDevice device,
  8696. const VkVideoSessionCreateInfoKHR* pCreateInfo,
  8697. const VkAllocationCallbacks* pAllocator,
  8698. VkVideoSessionKHR* pVideoSession);
  8699. #endif
  8700. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8701. VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
  8702. VkDevice device,
  8703. VkVideoSessionKHR videoSession,
  8704. const VkAllocationCallbacks* pAllocator);
  8705. #endif
  8706. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8707. VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
  8708. VkDevice device,
  8709. VkVideoSessionKHR videoSession,
  8710. uint32_t* pMemoryRequirementsCount,
  8711. VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
  8712. #endif
  8713. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8714. VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
  8715. VkDevice device,
  8716. VkVideoSessionKHR videoSession,
  8717. uint32_t bindSessionMemoryInfoCount,
  8718. const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
  8719. #endif
  8720. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8721. VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
  8722. VkDevice device,
  8723. const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
  8724. const VkAllocationCallbacks* pAllocator,
  8725. VkVideoSessionParametersKHR* pVideoSessionParameters);
  8726. #endif
  8727. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8728. VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
  8729. VkDevice device,
  8730. VkVideoSessionParametersKHR videoSessionParameters,
  8731. const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
  8732. #endif
  8733. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8734. VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
  8735. VkDevice device,
  8736. VkVideoSessionParametersKHR videoSessionParameters,
  8737. const VkAllocationCallbacks* pAllocator);
  8738. #endif
  8739. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8740. VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
  8741. VkCommandBuffer commandBuffer,
  8742. const VkVideoBeginCodingInfoKHR* pBeginInfo);
  8743. #endif
  8744. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8745. VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
  8746. VkCommandBuffer commandBuffer,
  8747. const VkVideoEndCodingInfoKHR* pEndCodingInfo);
  8748. #endif
  8749. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8750. VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
  8751. VkCommandBuffer commandBuffer,
  8752. const VkVideoCodingControlInfoKHR* pCodingControlInfo);
  8753. #endif
  8754. #endif
  8755. // VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
  8756. #define VK_KHR_video_decode_queue 1
  8757. #define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
  8758. #define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
  8759. typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
  8760. VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
  8761. VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
  8762. VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8763. } VkVideoDecodeCapabilityFlagBitsKHR;
  8764. typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
  8765. typedef enum VkVideoDecodeUsageFlagBitsKHR {
  8766. VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
  8767. VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
  8768. VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
  8769. VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
  8770. VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8771. } VkVideoDecodeUsageFlagBitsKHR;
  8772. typedef VkFlags VkVideoDecodeUsageFlagsKHR;
  8773. typedef VkFlags VkVideoDecodeFlagsKHR;
  8774. typedef struct VkVideoDecodeCapabilitiesKHR {
  8775. VkStructureType sType;
  8776. void* pNext;
  8777. VkVideoDecodeCapabilityFlagsKHR flags;
  8778. } VkVideoDecodeCapabilitiesKHR;
  8779. typedef struct VkVideoDecodeUsageInfoKHR {
  8780. VkStructureType sType;
  8781. const void* pNext;
  8782. VkVideoDecodeUsageFlagsKHR videoUsageHints;
  8783. } VkVideoDecodeUsageInfoKHR;
  8784. typedef struct VkVideoDecodeInfoKHR {
  8785. VkStructureType sType;
  8786. const void* pNext;
  8787. VkVideoDecodeFlagsKHR flags;
  8788. VkBuffer srcBuffer;
  8789. VkDeviceSize srcBufferOffset;
  8790. VkDeviceSize srcBufferRange;
  8791. VkVideoPictureResourceInfoKHR dstPictureResource;
  8792. const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
  8793. uint32_t referenceSlotCount;
  8794. const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
  8795. } VkVideoDecodeInfoKHR;
  8796. typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
  8797. #ifndef VK_NO_PROTOTYPES
  8798. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  8799. VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
  8800. VkCommandBuffer commandBuffer,
  8801. const VkVideoDecodeInfoKHR* pDecodeInfo);
  8802. #endif
  8803. #endif
  8804. // VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
  8805. #define VK_KHR_video_encode_h264 1
  8806. #include "vk_video/vulkan_video_codec_h264std.h"
  8807. #include "vk_video/vulkan_video_codec_h264std_encode.h"
  8808. #define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
  8809. #define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
  8810. typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
  8811. VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
  8812. VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
  8813. VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
  8814. VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
  8815. VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
  8816. VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
  8817. VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
  8818. VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
  8819. VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
  8820. VK_VIDEO_ENCODE_H264_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000400,
  8821. VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000200,
  8822. VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8823. } VkVideoEncodeH264CapabilityFlagBitsKHR;
  8824. typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
  8825. typedef enum VkVideoEncodeH264StdFlagBitsKHR {
  8826. VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
  8827. VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
  8828. VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
  8829. VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
  8830. VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
  8831. VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
  8832. VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
  8833. VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
  8834. VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
  8835. VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
  8836. VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
  8837. VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
  8838. VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
  8839. VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
  8840. VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
  8841. VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
  8842. VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
  8843. VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
  8844. VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
  8845. VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
  8846. VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8847. } VkVideoEncodeH264StdFlagBitsKHR;
  8848. typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
  8849. typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
  8850. VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
  8851. VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
  8852. VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
  8853. VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
  8854. VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
  8855. VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8856. } VkVideoEncodeH264RateControlFlagBitsKHR;
  8857. typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
  8858. typedef struct VkVideoEncodeH264CapabilitiesKHR {
  8859. VkStructureType sType;
  8860. void* pNext;
  8861. VkVideoEncodeH264CapabilityFlagsKHR flags;
  8862. StdVideoH264LevelIdc maxLevelIdc;
  8863. uint32_t maxSliceCount;
  8864. uint32_t maxPPictureL0ReferenceCount;
  8865. uint32_t maxBPictureL0ReferenceCount;
  8866. uint32_t maxL1ReferenceCount;
  8867. uint32_t maxTemporalLayerCount;
  8868. VkBool32 expectDyadicTemporalLayerPattern;
  8869. int32_t minQp;
  8870. int32_t maxQp;
  8871. VkBool32 prefersGopRemainingFrames;
  8872. VkBool32 requiresGopRemainingFrames;
  8873. VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags;
  8874. } VkVideoEncodeH264CapabilitiesKHR;
  8875. typedef struct VkVideoEncodeH264QpKHR {
  8876. int32_t qpI;
  8877. int32_t qpP;
  8878. int32_t qpB;
  8879. } VkVideoEncodeH264QpKHR;
  8880. typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
  8881. VkStructureType sType;
  8882. void* pNext;
  8883. VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags;
  8884. uint32_t preferredGopFrameCount;
  8885. uint32_t preferredIdrPeriod;
  8886. uint32_t preferredConsecutiveBFrameCount;
  8887. uint32_t preferredTemporalLayerCount;
  8888. VkVideoEncodeH264QpKHR preferredConstantQp;
  8889. uint32_t preferredMaxL0ReferenceCount;
  8890. uint32_t preferredMaxL1ReferenceCount;
  8891. VkBool32 preferredStdEntropyCodingModeFlag;
  8892. } VkVideoEncodeH264QualityLevelPropertiesKHR;
  8893. typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
  8894. VkStructureType sType;
  8895. const void* pNext;
  8896. VkBool32 useMaxLevelIdc;
  8897. StdVideoH264LevelIdc maxLevelIdc;
  8898. } VkVideoEncodeH264SessionCreateInfoKHR;
  8899. typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
  8900. VkStructureType sType;
  8901. const void* pNext;
  8902. uint32_t stdSPSCount;
  8903. const StdVideoH264SequenceParameterSet* pStdSPSs;
  8904. uint32_t stdPPSCount;
  8905. const StdVideoH264PictureParameterSet* pStdPPSs;
  8906. } VkVideoEncodeH264SessionParametersAddInfoKHR;
  8907. typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
  8908. VkStructureType sType;
  8909. const void* pNext;
  8910. uint32_t maxStdSPSCount;
  8911. uint32_t maxStdPPSCount;
  8912. const VkVideoEncodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
  8913. } VkVideoEncodeH264SessionParametersCreateInfoKHR;
  8914. typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
  8915. VkStructureType sType;
  8916. const void* pNext;
  8917. VkBool32 writeStdSPS;
  8918. VkBool32 writeStdPPS;
  8919. uint32_t stdSPSId;
  8920. uint32_t stdPPSId;
  8921. } VkVideoEncodeH264SessionParametersGetInfoKHR;
  8922. typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
  8923. VkStructureType sType;
  8924. void* pNext;
  8925. VkBool32 hasStdSPSOverrides;
  8926. VkBool32 hasStdPPSOverrides;
  8927. } VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
  8928. typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
  8929. VkStructureType sType;
  8930. const void* pNext;
  8931. int32_t constantQp;
  8932. const StdVideoEncodeH264SliceHeader* pStdSliceHeader;
  8933. } VkVideoEncodeH264NaluSliceInfoKHR;
  8934. typedef struct VkVideoEncodeH264PictureInfoKHR {
  8935. VkStructureType sType;
  8936. const void* pNext;
  8937. uint32_t naluSliceEntryCount;
  8938. const VkVideoEncodeH264NaluSliceInfoKHR* pNaluSliceEntries;
  8939. const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
  8940. VkBool32 generatePrefixNalu;
  8941. } VkVideoEncodeH264PictureInfoKHR;
  8942. typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
  8943. VkStructureType sType;
  8944. const void* pNext;
  8945. const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
  8946. } VkVideoEncodeH264DpbSlotInfoKHR;
  8947. typedef struct VkVideoEncodeH264ProfileInfoKHR {
  8948. VkStructureType sType;
  8949. const void* pNext;
  8950. StdVideoH264ProfileIdc stdProfileIdc;
  8951. } VkVideoEncodeH264ProfileInfoKHR;
  8952. typedef struct VkVideoEncodeH264RateControlInfoKHR {
  8953. VkStructureType sType;
  8954. const void* pNext;
  8955. VkVideoEncodeH264RateControlFlagsKHR flags;
  8956. uint32_t gopFrameCount;
  8957. uint32_t idrPeriod;
  8958. uint32_t consecutiveBFrameCount;
  8959. uint32_t temporalLayerCount;
  8960. } VkVideoEncodeH264RateControlInfoKHR;
  8961. typedef struct VkVideoEncodeH264FrameSizeKHR {
  8962. uint32_t frameISize;
  8963. uint32_t framePSize;
  8964. uint32_t frameBSize;
  8965. } VkVideoEncodeH264FrameSizeKHR;
  8966. typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
  8967. VkStructureType sType;
  8968. const void* pNext;
  8969. VkBool32 useMinQp;
  8970. VkVideoEncodeH264QpKHR minQp;
  8971. VkBool32 useMaxQp;
  8972. VkVideoEncodeH264QpKHR maxQp;
  8973. VkBool32 useMaxFrameSize;
  8974. VkVideoEncodeH264FrameSizeKHR maxFrameSize;
  8975. } VkVideoEncodeH264RateControlLayerInfoKHR;
  8976. typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
  8977. VkStructureType sType;
  8978. const void* pNext;
  8979. VkBool32 useGopRemainingFrames;
  8980. uint32_t gopRemainingI;
  8981. uint32_t gopRemainingP;
  8982. uint32_t gopRemainingB;
  8983. } VkVideoEncodeH264GopRemainingFrameInfoKHR;
  8984. // VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
  8985. #define VK_KHR_video_encode_h265 1
  8986. #include "vk_video/vulkan_video_codec_h265std.h"
  8987. #include "vk_video/vulkan_video_codec_h265std_encode.h"
  8988. #define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
  8989. #define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
  8990. typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
  8991. VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
  8992. VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
  8993. VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
  8994. VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
  8995. VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
  8996. VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
  8997. VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
  8998. VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
  8999. VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
  9000. VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
  9001. VK_VIDEO_ENCODE_H265_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000800,
  9002. VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000400,
  9003. VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  9004. } VkVideoEncodeH265CapabilityFlagBitsKHR;
  9005. typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
  9006. typedef enum VkVideoEncodeH265StdFlagBitsKHR {
  9007. VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
  9008. VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
  9009. VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
  9010. VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
  9011. VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
  9012. VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
  9013. VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
  9014. VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
  9015. VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
  9016. VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
  9017. VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
  9018. VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
  9019. VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
  9020. VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
  9021. VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
  9022. VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
  9023. VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
  9024. VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
  9025. VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
  9026. VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
  9027. VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
  9028. VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  9029. } VkVideoEncodeH265StdFlagBitsKHR;
  9030. typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
  9031. typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
  9032. VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
  9033. VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
  9034. VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
  9035. VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  9036. } VkVideoEncodeH265CtbSizeFlagBitsKHR;
  9037. typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
  9038. typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
  9039. VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
  9040. VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
  9041. VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
  9042. VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
  9043. VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  9044. } VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
  9045. typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
  9046. typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
  9047. VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
  9048. VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
  9049. VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
  9050. VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
  9051. VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
  9052. VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  9053. } VkVideoEncodeH265RateControlFlagBitsKHR;
  9054. typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
  9055. typedef struct VkVideoEncodeH265CapabilitiesKHR {
  9056. VkStructureType sType;
  9057. void* pNext;
  9058. VkVideoEncodeH265CapabilityFlagsKHR flags;
  9059. StdVideoH265LevelIdc maxLevelIdc;
  9060. uint32_t maxSliceSegmentCount;
  9061. VkExtent2D maxTiles;
  9062. VkVideoEncodeH265CtbSizeFlagsKHR ctbSizes;
  9063. VkVideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes;
  9064. uint32_t maxPPictureL0ReferenceCount;
  9065. uint32_t maxBPictureL0ReferenceCount;
  9066. uint32_t maxL1ReferenceCount;
  9067. uint32_t maxSubLayerCount;
  9068. VkBool32 expectDyadicTemporalSubLayerPattern;
  9069. int32_t minQp;
  9070. int32_t maxQp;
  9071. VkBool32 prefersGopRemainingFrames;
  9072. VkBool32 requiresGopRemainingFrames;
  9073. VkVideoEncodeH265StdFlagsKHR stdSyntaxFlags;
  9074. } VkVideoEncodeH265CapabilitiesKHR;
  9075. typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
  9076. VkStructureType sType;
  9077. const void* pNext;
  9078. VkBool32 useMaxLevelIdc;
  9079. StdVideoH265LevelIdc maxLevelIdc;
  9080. } VkVideoEncodeH265SessionCreateInfoKHR;
  9081. typedef struct VkVideoEncodeH265QpKHR {
  9082. int32_t qpI;
  9083. int32_t qpP;
  9084. int32_t qpB;
  9085. } VkVideoEncodeH265QpKHR;
  9086. typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
  9087. VkStructureType sType;
  9088. void* pNext;
  9089. VkVideoEncodeH265RateControlFlagsKHR preferredRateControlFlags;
  9090. uint32_t preferredGopFrameCount;
  9091. uint32_t preferredIdrPeriod;
  9092. uint32_t preferredConsecutiveBFrameCount;
  9093. uint32_t preferredSubLayerCount;
  9094. VkVideoEncodeH265QpKHR preferredConstantQp;
  9095. uint32_t preferredMaxL0ReferenceCount;
  9096. uint32_t preferredMaxL1ReferenceCount;
  9097. } VkVideoEncodeH265QualityLevelPropertiesKHR;
  9098. typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
  9099. VkStructureType sType;
  9100. const void* pNext;
  9101. uint32_t stdVPSCount;
  9102. const StdVideoH265VideoParameterSet* pStdVPSs;
  9103. uint32_t stdSPSCount;
  9104. const StdVideoH265SequenceParameterSet* pStdSPSs;
  9105. uint32_t stdPPSCount;
  9106. const StdVideoH265PictureParameterSet* pStdPPSs;
  9107. } VkVideoEncodeH265SessionParametersAddInfoKHR;
  9108. typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
  9109. VkStructureType sType;
  9110. const void* pNext;
  9111. uint32_t maxStdVPSCount;
  9112. uint32_t maxStdSPSCount;
  9113. uint32_t maxStdPPSCount;
  9114. const VkVideoEncodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
  9115. } VkVideoEncodeH265SessionParametersCreateInfoKHR;
  9116. typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
  9117. VkStructureType sType;
  9118. const void* pNext;
  9119. VkBool32 writeStdVPS;
  9120. VkBool32 writeStdSPS;
  9121. VkBool32 writeStdPPS;
  9122. uint32_t stdVPSId;
  9123. uint32_t stdSPSId;
  9124. uint32_t stdPPSId;
  9125. } VkVideoEncodeH265SessionParametersGetInfoKHR;
  9126. typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
  9127. VkStructureType sType;
  9128. void* pNext;
  9129. VkBool32 hasStdVPSOverrides;
  9130. VkBool32 hasStdSPSOverrides;
  9131. VkBool32 hasStdPPSOverrides;
  9132. } VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
  9133. typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
  9134. VkStructureType sType;
  9135. const void* pNext;
  9136. int32_t constantQp;
  9137. const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader;
  9138. } VkVideoEncodeH265NaluSliceSegmentInfoKHR;
  9139. typedef struct VkVideoEncodeH265PictureInfoKHR {
  9140. VkStructureType sType;
  9141. const void* pNext;
  9142. uint32_t naluSliceSegmentEntryCount;
  9143. const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries;
  9144. const StdVideoEncodeH265PictureInfo* pStdPictureInfo;
  9145. } VkVideoEncodeH265PictureInfoKHR;
  9146. typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
  9147. VkStructureType sType;
  9148. const void* pNext;
  9149. const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
  9150. } VkVideoEncodeH265DpbSlotInfoKHR;
  9151. typedef struct VkVideoEncodeH265ProfileInfoKHR {
  9152. VkStructureType sType;
  9153. const void* pNext;
  9154. StdVideoH265ProfileIdc stdProfileIdc;
  9155. } VkVideoEncodeH265ProfileInfoKHR;
  9156. typedef struct VkVideoEncodeH265RateControlInfoKHR {
  9157. VkStructureType sType;
  9158. const void* pNext;
  9159. VkVideoEncodeH265RateControlFlagsKHR flags;
  9160. uint32_t gopFrameCount;
  9161. uint32_t idrPeriod;
  9162. uint32_t consecutiveBFrameCount;
  9163. uint32_t subLayerCount;
  9164. } VkVideoEncodeH265RateControlInfoKHR;
  9165. typedef struct VkVideoEncodeH265FrameSizeKHR {
  9166. uint32_t frameISize;
  9167. uint32_t framePSize;
  9168. uint32_t frameBSize;
  9169. } VkVideoEncodeH265FrameSizeKHR;
  9170. typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
  9171. VkStructureType sType;
  9172. const void* pNext;
  9173. VkBool32 useMinQp;
  9174. VkVideoEncodeH265QpKHR minQp;
  9175. VkBool32 useMaxQp;
  9176. VkVideoEncodeH265QpKHR maxQp;
  9177. VkBool32 useMaxFrameSize;
  9178. VkVideoEncodeH265FrameSizeKHR maxFrameSize;
  9179. } VkVideoEncodeH265RateControlLayerInfoKHR;
  9180. typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
  9181. VkStructureType sType;
  9182. const void* pNext;
  9183. VkBool32 useGopRemainingFrames;
  9184. uint32_t gopRemainingI;
  9185. uint32_t gopRemainingP;
  9186. uint32_t gopRemainingB;
  9187. } VkVideoEncodeH265GopRemainingFrameInfoKHR;
  9188. // VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
  9189. #define VK_KHR_video_decode_h264 1
  9190. #include "vk_video/vulkan_video_codec_h264std_decode.h"
  9191. #define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
  9192. #define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
  9193. typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
  9194. VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
  9195. VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
  9196. VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
  9197. VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  9198. } VkVideoDecodeH264PictureLayoutFlagBitsKHR;
  9199. typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
  9200. typedef struct VkVideoDecodeH264ProfileInfoKHR {
  9201. VkStructureType sType;
  9202. const void* pNext;
  9203. StdVideoH264ProfileIdc stdProfileIdc;
  9204. VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout;
  9205. } VkVideoDecodeH264ProfileInfoKHR;
  9206. typedef struct VkVideoDecodeH264CapabilitiesKHR {
  9207. VkStructureType sType;
  9208. void* pNext;
  9209. StdVideoH264LevelIdc maxLevelIdc;
  9210. VkOffset2D fieldOffsetGranularity;
  9211. } VkVideoDecodeH264CapabilitiesKHR;
  9212. typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
  9213. VkStructureType sType;
  9214. const void* pNext;
  9215. uint32_t stdSPSCount;
  9216. const StdVideoH264SequenceParameterSet* pStdSPSs;
  9217. uint32_t stdPPSCount;
  9218. const StdVideoH264PictureParameterSet* pStdPPSs;
  9219. } VkVideoDecodeH264SessionParametersAddInfoKHR;
  9220. typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
  9221. VkStructureType sType;
  9222. const void* pNext;
  9223. uint32_t maxStdSPSCount;
  9224. uint32_t maxStdPPSCount;
  9225. const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
  9226. } VkVideoDecodeH264SessionParametersCreateInfoKHR;
  9227. typedef struct VkVideoDecodeH264PictureInfoKHR {
  9228. VkStructureType sType;
  9229. const void* pNext;
  9230. const StdVideoDecodeH264PictureInfo* pStdPictureInfo;
  9231. uint32_t sliceCount;
  9232. const uint32_t* pSliceOffsets;
  9233. } VkVideoDecodeH264PictureInfoKHR;
  9234. typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
  9235. VkStructureType sType;
  9236. const void* pNext;
  9237. const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo;
  9238. } VkVideoDecodeH264DpbSlotInfoKHR;
  9239. // VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
  9240. #define VK_KHR_dynamic_rendering 1
  9241. #define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
  9242. #define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
  9243. typedef VkRenderingFlags VkRenderingFlagsKHR;
  9244. typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
  9245. typedef VkRenderingInfo VkRenderingInfoKHR;
  9246. typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
  9247. typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
  9248. typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
  9249. typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
  9250. typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
  9251. typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer);
  9252. #ifndef VK_NO_PROTOTYPES
  9253. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9254. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
  9255. VkCommandBuffer commandBuffer,
  9256. const VkRenderingInfo* pRenderingInfo);
  9257. #endif
  9258. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9259. VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
  9260. VkCommandBuffer commandBuffer);
  9261. #endif
  9262. #endif
  9263. // VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
  9264. #define VK_KHR_multiview 1
  9265. #define VK_KHR_MULTIVIEW_SPEC_VERSION 1
  9266. #define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
  9267. typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
  9268. typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
  9269. typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
  9270. // VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
  9271. #define VK_KHR_get_physical_device_properties2 1
  9272. #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
  9273. #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
  9274. typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
  9275. typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
  9276. typedef VkFormatProperties2 VkFormatProperties2KHR;
  9277. typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
  9278. typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
  9279. typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
  9280. typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
  9281. typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
  9282. typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
  9283. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
  9284. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
  9285. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
  9286. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
  9287. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
  9288. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  9289. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
  9290. #ifndef VK_NO_PROTOTYPES
  9291. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9292. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
  9293. VkPhysicalDevice physicalDevice,
  9294. VkPhysicalDeviceFeatures2* pFeatures);
  9295. #endif
  9296. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9297. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
  9298. VkPhysicalDevice physicalDevice,
  9299. VkPhysicalDeviceProperties2* pProperties);
  9300. #endif
  9301. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9302. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
  9303. VkPhysicalDevice physicalDevice,
  9304. VkFormat format,
  9305. VkFormatProperties2* pFormatProperties);
  9306. #endif
  9307. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9308. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
  9309. VkPhysicalDevice physicalDevice,
  9310. const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
  9311. VkImageFormatProperties2* pImageFormatProperties);
  9312. #endif
  9313. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9314. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
  9315. VkPhysicalDevice physicalDevice,
  9316. uint32_t* pQueueFamilyPropertyCount,
  9317. VkQueueFamilyProperties2* pQueueFamilyProperties);
  9318. #endif
  9319. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9320. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
  9321. VkPhysicalDevice physicalDevice,
  9322. VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  9323. #endif
  9324. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9325. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
  9326. VkPhysicalDevice physicalDevice,
  9327. const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
  9328. uint32_t* pPropertyCount,
  9329. VkSparseImageFormatProperties2* pProperties);
  9330. #endif
  9331. #endif
  9332. // VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
  9333. #define VK_KHR_device_group 1
  9334. #define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
  9335. #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
  9336. typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
  9337. typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
  9338. typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
  9339. typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
  9340. typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
  9341. typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
  9342. typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
  9343. typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
  9344. typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
  9345. typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
  9346. typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
  9347. typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  9348. typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
  9349. typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  9350. #ifndef VK_NO_PROTOTYPES
  9351. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9352. VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
  9353. VkDevice device,
  9354. uint32_t heapIndex,
  9355. uint32_t localDeviceIndex,
  9356. uint32_t remoteDeviceIndex,
  9357. VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  9358. #endif
  9359. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9360. VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
  9361. VkCommandBuffer commandBuffer,
  9362. uint32_t deviceMask);
  9363. #endif
  9364. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9365. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
  9366. VkCommandBuffer commandBuffer,
  9367. uint32_t baseGroupX,
  9368. uint32_t baseGroupY,
  9369. uint32_t baseGroupZ,
  9370. uint32_t groupCountX,
  9371. uint32_t groupCountY,
  9372. uint32_t groupCountZ);
  9373. #endif
  9374. #endif
  9375. // VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
  9376. #define VK_KHR_shader_draw_parameters 1
  9377. #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
  9378. #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
  9379. // VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  9380. #define VK_KHR_maintenance1 1
  9381. #define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
  9382. #define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
  9383. // VK_KHR_MAINTENANCE1_SPEC_VERSION is a legacy alias
  9384. #define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION
  9385. // VK_KHR_MAINTENANCE1_EXTENSION_NAME is a legacy alias
  9386. #define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
  9387. typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
  9388. typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
  9389. #ifndef VK_NO_PROTOTYPES
  9390. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9391. VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
  9392. VkDevice device,
  9393. VkCommandPool commandPool,
  9394. VkCommandPoolTrimFlags flags);
  9395. #endif
  9396. #endif
  9397. // VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
  9398. #define VK_KHR_device_group_creation 1
  9399. #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
  9400. #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
  9401. #define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
  9402. typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
  9403. typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
  9404. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  9405. #ifndef VK_NO_PROTOTYPES
  9406. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9407. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
  9408. VkInstance instance,
  9409. uint32_t* pPhysicalDeviceGroupCount,
  9410. VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  9411. #endif
  9412. #endif
  9413. // VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
  9414. #define VK_KHR_external_memory_capabilities 1
  9415. #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
  9416. #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
  9417. #define VK_LUID_SIZE_KHR VK_LUID_SIZE
  9418. typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
  9419. typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
  9420. typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
  9421. typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
  9422. typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
  9423. typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
  9424. typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
  9425. typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
  9426. typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
  9427. typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
  9428. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
  9429. #ifndef VK_NO_PROTOTYPES
  9430. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9431. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
  9432. VkPhysicalDevice physicalDevice,
  9433. const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
  9434. VkExternalBufferProperties* pExternalBufferProperties);
  9435. #endif
  9436. #endif
  9437. // VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
  9438. #define VK_KHR_external_memory 1
  9439. #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
  9440. #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
  9441. #define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
  9442. typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
  9443. typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
  9444. typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
  9445. // VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
  9446. #define VK_KHR_external_memory_fd 1
  9447. #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
  9448. #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
  9449. typedef struct VkImportMemoryFdInfoKHR {
  9450. VkStructureType sType;
  9451. const void* pNext;
  9452. VkExternalMemoryHandleTypeFlagBits handleType;
  9453. int fd;
  9454. } VkImportMemoryFdInfoKHR;
  9455. typedef struct VkMemoryFdPropertiesKHR {
  9456. VkStructureType sType;
  9457. void* pNext;
  9458. uint32_t memoryTypeBits;
  9459. } VkMemoryFdPropertiesKHR;
  9460. typedef struct VkMemoryGetFdInfoKHR {
  9461. VkStructureType sType;
  9462. const void* pNext;
  9463. VkDeviceMemory memory;
  9464. VkExternalMemoryHandleTypeFlagBits handleType;
  9465. } VkMemoryGetFdInfoKHR;
  9466. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
  9467. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
  9468. #ifndef VK_NO_PROTOTYPES
  9469. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9470. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
  9471. VkDevice device,
  9472. const VkMemoryGetFdInfoKHR* pGetFdInfo,
  9473. int* pFd);
  9474. #endif
  9475. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9476. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
  9477. VkDevice device,
  9478. VkExternalMemoryHandleTypeFlagBits handleType,
  9479. int fd,
  9480. VkMemoryFdPropertiesKHR* pMemoryFdProperties);
  9481. #endif
  9482. #endif
  9483. // VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
  9484. #define VK_KHR_external_semaphore_capabilities 1
  9485. #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
  9486. #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
  9487. typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
  9488. typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
  9489. typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
  9490. typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
  9491. typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
  9492. typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
  9493. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  9494. #ifndef VK_NO_PROTOTYPES
  9495. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9496. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
  9497. VkPhysicalDevice physicalDevice,
  9498. const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
  9499. VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  9500. #endif
  9501. #endif
  9502. // VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
  9503. #define VK_KHR_external_semaphore 1
  9504. #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
  9505. #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
  9506. typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
  9507. typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
  9508. typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
  9509. // VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
  9510. #define VK_KHR_external_semaphore_fd 1
  9511. #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
  9512. #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
  9513. typedef struct VkImportSemaphoreFdInfoKHR {
  9514. VkStructureType sType;
  9515. const void* pNext;
  9516. VkSemaphore semaphore;
  9517. VkSemaphoreImportFlags flags;
  9518. VkExternalSemaphoreHandleTypeFlagBits handleType;
  9519. int fd;
  9520. } VkImportSemaphoreFdInfoKHR;
  9521. typedef struct VkSemaphoreGetFdInfoKHR {
  9522. VkStructureType sType;
  9523. const void* pNext;
  9524. VkSemaphore semaphore;
  9525. VkExternalSemaphoreHandleTypeFlagBits handleType;
  9526. } VkSemaphoreGetFdInfoKHR;
  9527. typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
  9528. typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
  9529. #ifndef VK_NO_PROTOTYPES
  9530. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9531. VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
  9532. VkDevice device,
  9533. const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
  9534. #endif
  9535. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9536. VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
  9537. VkDevice device,
  9538. const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
  9539. int* pFd);
  9540. #endif
  9541. #endif
  9542. // VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
  9543. #define VK_KHR_push_descriptor 1
  9544. #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
  9545. #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
  9546. typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR;
  9547. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
  9548. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
  9549. #ifndef VK_NO_PROTOTYPES
  9550. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9551. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
  9552. VkCommandBuffer commandBuffer,
  9553. VkPipelineBindPoint pipelineBindPoint,
  9554. VkPipelineLayout layout,
  9555. uint32_t set,
  9556. uint32_t descriptorWriteCount,
  9557. const VkWriteDescriptorSet* pDescriptorWrites);
  9558. #endif
  9559. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9560. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
  9561. VkCommandBuffer commandBuffer,
  9562. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  9563. VkPipelineLayout layout,
  9564. uint32_t set,
  9565. const void* pData);
  9566. #endif
  9567. #endif
  9568. // VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
  9569. #define VK_KHR_shader_float16_int8 1
  9570. #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
  9571. #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
  9572. typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
  9573. typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
  9574. // VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
  9575. #define VK_KHR_16bit_storage 1
  9576. #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
  9577. #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
  9578. typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
  9579. // VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
  9580. #define VK_KHR_incremental_present 1
  9581. #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
  9582. #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
  9583. typedef struct VkRectLayerKHR {
  9584. VkOffset2D offset;
  9585. VkExtent2D extent;
  9586. uint32_t layer;
  9587. } VkRectLayerKHR;
  9588. typedef struct VkPresentRegionKHR {
  9589. uint32_t rectangleCount;
  9590. const VkRectLayerKHR* pRectangles;
  9591. } VkPresentRegionKHR;
  9592. typedef struct VkPresentRegionsKHR {
  9593. VkStructureType sType;
  9594. const void* pNext;
  9595. uint32_t swapchainCount;
  9596. const VkPresentRegionKHR* pRegions;
  9597. } VkPresentRegionsKHR;
  9598. // VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
  9599. #define VK_KHR_descriptor_update_template 1
  9600. typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
  9601. #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
  9602. #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
  9603. typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
  9604. typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
  9605. typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
  9606. typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
  9607. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  9608. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
  9609. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
  9610. #ifndef VK_NO_PROTOTYPES
  9611. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9612. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
  9613. VkDevice device,
  9614. const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
  9615. const VkAllocationCallbacks* pAllocator,
  9616. VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  9617. #endif
  9618. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9619. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
  9620. VkDevice device,
  9621. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  9622. const VkAllocationCallbacks* pAllocator);
  9623. #endif
  9624. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9625. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
  9626. VkDevice device,
  9627. VkDescriptorSet descriptorSet,
  9628. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  9629. const void* pData);
  9630. #endif
  9631. #endif
  9632. // VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
  9633. #define VK_KHR_imageless_framebuffer 1
  9634. #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
  9635. #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
  9636. typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
  9637. typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
  9638. typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
  9639. typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
  9640. // VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
  9641. #define VK_KHR_create_renderpass2 1
  9642. #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
  9643. #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
  9644. typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
  9645. typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
  9646. typedef VkAttachmentReference2 VkAttachmentReference2KHR;
  9647. typedef VkSubpassDescription2 VkSubpassDescription2KHR;
  9648. typedef VkSubpassDependency2 VkSubpassDependency2KHR;
  9649. typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
  9650. typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
  9651. typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
  9652. typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
  9653. typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
  9654. typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
  9655. #ifndef VK_NO_PROTOTYPES
  9656. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9657. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
  9658. VkDevice device,
  9659. const VkRenderPassCreateInfo2* pCreateInfo,
  9660. const VkAllocationCallbacks* pAllocator,
  9661. VkRenderPass* pRenderPass);
  9662. #endif
  9663. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9664. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
  9665. VkCommandBuffer commandBuffer,
  9666. const VkRenderPassBeginInfo* pRenderPassBegin,
  9667. const VkSubpassBeginInfo* pSubpassBeginInfo);
  9668. #endif
  9669. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9670. VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
  9671. VkCommandBuffer commandBuffer,
  9672. const VkSubpassBeginInfo* pSubpassBeginInfo,
  9673. const VkSubpassEndInfo* pSubpassEndInfo);
  9674. #endif
  9675. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9676. VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
  9677. VkCommandBuffer commandBuffer,
  9678. const VkSubpassEndInfo* pSubpassEndInfo);
  9679. #endif
  9680. #endif
  9681. // VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
  9682. #define VK_KHR_shared_presentable_image 1
  9683. #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
  9684. #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
  9685. typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
  9686. VkStructureType sType;
  9687. void* pNext;
  9688. VkImageUsageFlags sharedPresentSupportedUsageFlags;
  9689. } VkSharedPresentSurfaceCapabilitiesKHR;
  9690. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
  9691. #ifndef VK_NO_PROTOTYPES
  9692. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9693. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
  9694. VkDevice device,
  9695. VkSwapchainKHR swapchain);
  9696. #endif
  9697. #endif
  9698. // VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
  9699. #define VK_KHR_external_fence_capabilities 1
  9700. #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
  9701. #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
  9702. typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
  9703. typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
  9704. typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
  9705. typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
  9706. typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
  9707. typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
  9708. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
  9709. #ifndef VK_NO_PROTOTYPES
  9710. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9711. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
  9712. VkPhysicalDevice physicalDevice,
  9713. const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
  9714. VkExternalFenceProperties* pExternalFenceProperties);
  9715. #endif
  9716. #endif
  9717. // VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
  9718. #define VK_KHR_external_fence 1
  9719. #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
  9720. #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
  9721. typedef VkFenceImportFlags VkFenceImportFlagsKHR;
  9722. typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
  9723. typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
  9724. // VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
  9725. #define VK_KHR_external_fence_fd 1
  9726. #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
  9727. #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
  9728. typedef struct VkImportFenceFdInfoKHR {
  9729. VkStructureType sType;
  9730. const void* pNext;
  9731. VkFence fence;
  9732. VkFenceImportFlags flags;
  9733. VkExternalFenceHandleTypeFlagBits handleType;
  9734. int fd;
  9735. } VkImportFenceFdInfoKHR;
  9736. typedef struct VkFenceGetFdInfoKHR {
  9737. VkStructureType sType;
  9738. const void* pNext;
  9739. VkFence fence;
  9740. VkExternalFenceHandleTypeFlagBits handleType;
  9741. } VkFenceGetFdInfoKHR;
  9742. typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
  9743. typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
  9744. #ifndef VK_NO_PROTOTYPES
  9745. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9746. VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
  9747. VkDevice device,
  9748. const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
  9749. #endif
  9750. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9751. VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
  9752. VkDevice device,
  9753. const VkFenceGetFdInfoKHR* pGetFdInfo,
  9754. int* pFd);
  9755. #endif
  9756. #endif
  9757. // VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
  9758. #define VK_KHR_performance_query 1
  9759. #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
  9760. #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
  9761. typedef enum VkPerformanceCounterUnitKHR {
  9762. VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
  9763. VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
  9764. VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
  9765. VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
  9766. VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
  9767. VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
  9768. VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
  9769. VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
  9770. VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
  9771. VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
  9772. VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
  9773. VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
  9774. } VkPerformanceCounterUnitKHR;
  9775. typedef enum VkPerformanceCounterScopeKHR {
  9776. VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
  9777. VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
  9778. VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
  9779. // VK_QUERY_SCOPE_COMMAND_BUFFER_KHR is a legacy alias
  9780. VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
  9781. // VK_QUERY_SCOPE_RENDER_PASS_KHR is a legacy alias
  9782. VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
  9783. // VK_QUERY_SCOPE_COMMAND_KHR is a legacy alias
  9784. VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
  9785. VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
  9786. } VkPerformanceCounterScopeKHR;
  9787. typedef enum VkPerformanceCounterStorageKHR {
  9788. VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
  9789. VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
  9790. VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
  9791. VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
  9792. VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
  9793. VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
  9794. VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
  9795. } VkPerformanceCounterStorageKHR;
  9796. typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
  9797. VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
  9798. VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
  9799. // VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR is a legacy alias
  9800. VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
  9801. // VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR is a legacy alias
  9802. VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
  9803. VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  9804. } VkPerformanceCounterDescriptionFlagBitsKHR;
  9805. typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
  9806. typedef enum VkAcquireProfilingLockFlagBitsKHR {
  9807. VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  9808. } VkAcquireProfilingLockFlagBitsKHR;
  9809. typedef VkFlags VkAcquireProfilingLockFlagsKHR;
  9810. typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
  9811. VkStructureType sType;
  9812. void* pNext;
  9813. VkBool32 performanceCounterQueryPools;
  9814. VkBool32 performanceCounterMultipleQueryPools;
  9815. } VkPhysicalDevicePerformanceQueryFeaturesKHR;
  9816. typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
  9817. VkStructureType sType;
  9818. void* pNext;
  9819. VkBool32 allowCommandBufferQueryCopies;
  9820. } VkPhysicalDevicePerformanceQueryPropertiesKHR;
  9821. typedef struct VkPerformanceCounterKHR {
  9822. VkStructureType sType;
  9823. void* pNext;
  9824. VkPerformanceCounterUnitKHR unit;
  9825. VkPerformanceCounterScopeKHR scope;
  9826. VkPerformanceCounterStorageKHR storage;
  9827. uint8_t uuid[VK_UUID_SIZE];
  9828. } VkPerformanceCounterKHR;
  9829. typedef struct VkPerformanceCounterDescriptionKHR {
  9830. VkStructureType sType;
  9831. void* pNext;
  9832. VkPerformanceCounterDescriptionFlagsKHR flags;
  9833. char name[VK_MAX_DESCRIPTION_SIZE];
  9834. char category[VK_MAX_DESCRIPTION_SIZE];
  9835. char description[VK_MAX_DESCRIPTION_SIZE];
  9836. } VkPerformanceCounterDescriptionKHR;
  9837. typedef struct VkQueryPoolPerformanceCreateInfoKHR {
  9838. VkStructureType sType;
  9839. const void* pNext;
  9840. uint32_t queueFamilyIndex;
  9841. uint32_t counterIndexCount;
  9842. const uint32_t* pCounterIndices;
  9843. } VkQueryPoolPerformanceCreateInfoKHR;
  9844. typedef union VkPerformanceCounterResultKHR {
  9845. int32_t int32;
  9846. int64_t int64;
  9847. uint32_t uint32;
  9848. uint64_t uint64;
  9849. float float32;
  9850. double float64;
  9851. } VkPerformanceCounterResultKHR;
  9852. typedef struct VkAcquireProfilingLockInfoKHR {
  9853. VkStructureType sType;
  9854. const void* pNext;
  9855. VkAcquireProfilingLockFlagsKHR flags;
  9856. uint64_t timeout;
  9857. } VkAcquireProfilingLockInfoKHR;
  9858. typedef struct VkPerformanceQuerySubmitInfoKHR {
  9859. VkStructureType sType;
  9860. const void* pNext;
  9861. uint32_t counterPassIndex;
  9862. } VkPerformanceQuerySubmitInfoKHR;
  9863. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
  9864. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
  9865. typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
  9866. typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
  9867. #ifndef VK_NO_PROTOTYPES
  9868. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9869. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
  9870. VkPhysicalDevice physicalDevice,
  9871. uint32_t queueFamilyIndex,
  9872. uint32_t* pCounterCount,
  9873. VkPerformanceCounterKHR* pCounters,
  9874. VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
  9875. #endif
  9876. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9877. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
  9878. VkPhysicalDevice physicalDevice,
  9879. const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
  9880. uint32_t* pNumPasses);
  9881. #endif
  9882. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9883. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
  9884. VkDevice device,
  9885. const VkAcquireProfilingLockInfoKHR* pInfo);
  9886. #endif
  9887. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9888. VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
  9889. VkDevice device);
  9890. #endif
  9891. #endif
  9892. // VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
  9893. #define VK_KHR_maintenance2 1
  9894. #define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
  9895. #define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
  9896. // VK_KHR_MAINTENANCE2_SPEC_VERSION is a legacy alias
  9897. #define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION
  9898. // VK_KHR_MAINTENANCE2_EXTENSION_NAME is a legacy alias
  9899. #define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
  9900. typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
  9901. typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
  9902. typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
  9903. typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
  9904. typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
  9905. typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
  9906. typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
  9907. // VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
  9908. #define VK_KHR_get_surface_capabilities2 1
  9909. #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
  9910. #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
  9911. typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
  9912. VkStructureType sType;
  9913. const void* pNext;
  9914. VkSurfaceKHR surface;
  9915. } VkPhysicalDeviceSurfaceInfo2KHR;
  9916. typedef struct VkSurfaceCapabilities2KHR {
  9917. VkStructureType sType;
  9918. void* pNext;
  9919. VkSurfaceCapabilitiesKHR surfaceCapabilities;
  9920. } VkSurfaceCapabilities2KHR;
  9921. typedef struct VkSurfaceFormat2KHR {
  9922. VkStructureType sType;
  9923. void* pNext;
  9924. VkSurfaceFormatKHR surfaceFormat;
  9925. } VkSurfaceFormat2KHR;
  9926. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
  9927. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
  9928. #ifndef VK_NO_PROTOTYPES
  9929. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9930. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
  9931. VkPhysicalDevice physicalDevice,
  9932. const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
  9933. VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
  9934. #endif
  9935. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9936. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
  9937. VkPhysicalDevice physicalDevice,
  9938. const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
  9939. uint32_t* pSurfaceFormatCount,
  9940. VkSurfaceFormat2KHR* pSurfaceFormats);
  9941. #endif
  9942. #endif
  9943. // VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
  9944. #define VK_KHR_variable_pointers 1
  9945. #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
  9946. #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
  9947. typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
  9948. typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
  9949. // VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
  9950. #define VK_KHR_get_display_properties2 1
  9951. #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
  9952. #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
  9953. typedef struct VkDisplayProperties2KHR {
  9954. VkStructureType sType;
  9955. void* pNext;
  9956. VkDisplayPropertiesKHR displayProperties;
  9957. } VkDisplayProperties2KHR;
  9958. typedef struct VkDisplayPlaneProperties2KHR {
  9959. VkStructureType sType;
  9960. void* pNext;
  9961. VkDisplayPlanePropertiesKHR displayPlaneProperties;
  9962. } VkDisplayPlaneProperties2KHR;
  9963. typedef struct VkDisplayModeProperties2KHR {
  9964. VkStructureType sType;
  9965. void* pNext;
  9966. VkDisplayModePropertiesKHR displayModeProperties;
  9967. } VkDisplayModeProperties2KHR;
  9968. typedef struct VkDisplayPlaneInfo2KHR {
  9969. VkStructureType sType;
  9970. const void* pNext;
  9971. VkDisplayModeKHR mode;
  9972. uint32_t planeIndex;
  9973. } VkDisplayPlaneInfo2KHR;
  9974. typedef struct VkDisplayPlaneCapabilities2KHR {
  9975. VkStructureType sType;
  9976. void* pNext;
  9977. VkDisplayPlaneCapabilitiesKHR capabilities;
  9978. } VkDisplayPlaneCapabilities2KHR;
  9979. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
  9980. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
  9981. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
  9982. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
  9983. #ifndef VK_NO_PROTOTYPES
  9984. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9985. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
  9986. VkPhysicalDevice physicalDevice,
  9987. uint32_t* pPropertyCount,
  9988. VkDisplayProperties2KHR* pProperties);
  9989. #endif
  9990. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9991. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
  9992. VkPhysicalDevice physicalDevice,
  9993. uint32_t* pPropertyCount,
  9994. VkDisplayPlaneProperties2KHR* pProperties);
  9995. #endif
  9996. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  9997. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
  9998. VkPhysicalDevice physicalDevice,
  9999. VkDisplayKHR display,
  10000. uint32_t* pPropertyCount,
  10001. VkDisplayModeProperties2KHR* pProperties);
  10002. #endif
  10003. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10004. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
  10005. VkPhysicalDevice physicalDevice,
  10006. const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
  10007. VkDisplayPlaneCapabilities2KHR* pCapabilities);
  10008. #endif
  10009. #endif
  10010. // VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
  10011. #define VK_KHR_dedicated_allocation 1
  10012. #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
  10013. #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
  10014. typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
  10015. typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
  10016. // VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
  10017. #define VK_KHR_storage_buffer_storage_class 1
  10018. #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
  10019. #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
  10020. // VK_KHR_shader_bfloat16 is a preprocessor guard. Do not pass it to API calls.
  10021. #define VK_KHR_shader_bfloat16 1
  10022. #define VK_KHR_SHADER_BFLOAT16_SPEC_VERSION 1
  10023. #define VK_KHR_SHADER_BFLOAT16_EXTENSION_NAME "VK_KHR_shader_bfloat16"
  10024. typedef struct VkPhysicalDeviceShaderBfloat16FeaturesKHR {
  10025. VkStructureType sType;
  10026. void* pNext;
  10027. VkBool32 shaderBFloat16Type;
  10028. VkBool32 shaderBFloat16DotProduct;
  10029. VkBool32 shaderBFloat16CooperativeMatrix;
  10030. } VkPhysicalDeviceShaderBfloat16FeaturesKHR;
  10031. // VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
  10032. #define VK_KHR_relaxed_block_layout 1
  10033. #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
  10034. #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
  10035. // VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
  10036. #define VK_KHR_get_memory_requirements2 1
  10037. #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
  10038. #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
  10039. typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
  10040. typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
  10041. typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
  10042. typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
  10043. typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
  10044. typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  10045. typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  10046. typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  10047. #ifndef VK_NO_PROTOTYPES
  10048. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10049. VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
  10050. VkDevice device,
  10051. const VkImageMemoryRequirementsInfo2* pInfo,
  10052. VkMemoryRequirements2* pMemoryRequirements);
  10053. #endif
  10054. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10055. VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
  10056. VkDevice device,
  10057. const VkBufferMemoryRequirementsInfo2* pInfo,
  10058. VkMemoryRequirements2* pMemoryRequirements);
  10059. #endif
  10060. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10061. VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
  10062. VkDevice device,
  10063. const VkImageSparseMemoryRequirementsInfo2* pInfo,
  10064. uint32_t* pSparseMemoryRequirementCount,
  10065. VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  10066. #endif
  10067. #endif
  10068. // VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
  10069. #define VK_KHR_image_format_list 1
  10070. #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
  10071. #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
  10072. typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
  10073. // VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
  10074. #define VK_KHR_sampler_ycbcr_conversion 1
  10075. typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
  10076. #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
  10077. #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
  10078. typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
  10079. typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
  10080. typedef VkChromaLocation VkChromaLocationKHR;
  10081. typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
  10082. typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
  10083. typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
  10084. typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
  10085. typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
  10086. typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
  10087. typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
  10088. typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
  10089. #ifndef VK_NO_PROTOTYPES
  10090. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10091. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
  10092. VkDevice device,
  10093. const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
  10094. const VkAllocationCallbacks* pAllocator,
  10095. VkSamplerYcbcrConversion* pYcbcrConversion);
  10096. #endif
  10097. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10098. VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
  10099. VkDevice device,
  10100. VkSamplerYcbcrConversion ycbcrConversion,
  10101. const VkAllocationCallbacks* pAllocator);
  10102. #endif
  10103. #endif
  10104. // VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
  10105. #define VK_KHR_bind_memory2 1
  10106. #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
  10107. #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
  10108. typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
  10109. typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
  10110. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
  10111. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
  10112. #ifndef VK_NO_PROTOTYPES
  10113. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10114. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
  10115. VkDevice device,
  10116. uint32_t bindInfoCount,
  10117. const VkBindBufferMemoryInfo* pBindInfos);
  10118. #endif
  10119. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10120. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
  10121. VkDevice device,
  10122. uint32_t bindInfoCount,
  10123. const VkBindImageMemoryInfo* pBindInfos);
  10124. #endif
  10125. #endif
  10126. // VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
  10127. #define VK_KHR_maintenance3 1
  10128. #define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
  10129. #define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
  10130. // VK_KHR_MAINTENANCE3_SPEC_VERSION is a legacy alias
  10131. #define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION
  10132. // VK_KHR_MAINTENANCE3_EXTENSION_NAME is a legacy alias
  10133. #define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
  10134. typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
  10135. typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
  10136. typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
  10137. #ifndef VK_NO_PROTOTYPES
  10138. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10139. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
  10140. VkDevice device,
  10141. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  10142. VkDescriptorSetLayoutSupport* pSupport);
  10143. #endif
  10144. #endif
  10145. // VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
  10146. #define VK_KHR_draw_indirect_count 1
  10147. #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
  10148. #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
  10149. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  10150. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  10151. #ifndef VK_NO_PROTOTYPES
  10152. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10153. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
  10154. VkCommandBuffer commandBuffer,
  10155. VkBuffer buffer,
  10156. VkDeviceSize offset,
  10157. VkBuffer countBuffer,
  10158. VkDeviceSize countBufferOffset,
  10159. uint32_t maxDrawCount,
  10160. uint32_t stride);
  10161. #endif
  10162. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10163. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
  10164. VkCommandBuffer commandBuffer,
  10165. VkBuffer buffer,
  10166. VkDeviceSize offset,
  10167. VkBuffer countBuffer,
  10168. VkDeviceSize countBufferOffset,
  10169. uint32_t maxDrawCount,
  10170. uint32_t stride);
  10171. #endif
  10172. #endif
  10173. // VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
  10174. #define VK_KHR_shader_subgroup_extended_types 1
  10175. #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
  10176. #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
  10177. typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
  10178. // VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
  10179. #define VK_KHR_8bit_storage 1
  10180. #define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
  10181. #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
  10182. typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
  10183. // VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
  10184. #define VK_KHR_shader_atomic_int64 1
  10185. #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
  10186. #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
  10187. typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
  10188. // VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
  10189. #define VK_KHR_shader_clock 1
  10190. #define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
  10191. #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
  10192. typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
  10193. VkStructureType sType;
  10194. void* pNext;
  10195. VkBool32 shaderSubgroupClock;
  10196. VkBool32 shaderDeviceClock;
  10197. } VkPhysicalDeviceShaderClockFeaturesKHR;
  10198. // VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
  10199. #define VK_KHR_video_decode_h265 1
  10200. #include "vk_video/vulkan_video_codec_h265std_decode.h"
  10201. #define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
  10202. #define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
  10203. typedef struct VkVideoDecodeH265ProfileInfoKHR {
  10204. VkStructureType sType;
  10205. const void* pNext;
  10206. StdVideoH265ProfileIdc stdProfileIdc;
  10207. } VkVideoDecodeH265ProfileInfoKHR;
  10208. typedef struct VkVideoDecodeH265CapabilitiesKHR {
  10209. VkStructureType sType;
  10210. void* pNext;
  10211. StdVideoH265LevelIdc maxLevelIdc;
  10212. } VkVideoDecodeH265CapabilitiesKHR;
  10213. typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
  10214. VkStructureType sType;
  10215. const void* pNext;
  10216. uint32_t stdVPSCount;
  10217. const StdVideoH265VideoParameterSet* pStdVPSs;
  10218. uint32_t stdSPSCount;
  10219. const StdVideoH265SequenceParameterSet* pStdSPSs;
  10220. uint32_t stdPPSCount;
  10221. const StdVideoH265PictureParameterSet* pStdPPSs;
  10222. } VkVideoDecodeH265SessionParametersAddInfoKHR;
  10223. typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
  10224. VkStructureType sType;
  10225. const void* pNext;
  10226. uint32_t maxStdVPSCount;
  10227. uint32_t maxStdSPSCount;
  10228. uint32_t maxStdPPSCount;
  10229. const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
  10230. } VkVideoDecodeH265SessionParametersCreateInfoKHR;
  10231. typedef struct VkVideoDecodeH265PictureInfoKHR {
  10232. VkStructureType sType;
  10233. const void* pNext;
  10234. const StdVideoDecodeH265PictureInfo* pStdPictureInfo;
  10235. uint32_t sliceSegmentCount;
  10236. const uint32_t* pSliceSegmentOffsets;
  10237. } VkVideoDecodeH265PictureInfoKHR;
  10238. typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
  10239. VkStructureType sType;
  10240. const void* pNext;
  10241. const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo;
  10242. } VkVideoDecodeH265DpbSlotInfoKHR;
  10243. // VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
  10244. #define VK_KHR_global_priority 1
  10245. #define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
  10246. #define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
  10247. #define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR VK_MAX_GLOBAL_PRIORITY_SIZE
  10248. typedef VkQueueGlobalPriority VkQueueGlobalPriorityKHR;
  10249. typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR;
  10250. typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
  10251. typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR;
  10252. // VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
  10253. #define VK_KHR_driver_properties 1
  10254. #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
  10255. #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
  10256. #define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE
  10257. #define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE
  10258. typedef VkDriverId VkDriverIdKHR;
  10259. typedef VkConformanceVersion VkConformanceVersionKHR;
  10260. typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
  10261. // VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
  10262. #define VK_KHR_shader_float_controls 1
  10263. #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
  10264. #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
  10265. typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
  10266. typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
  10267. // VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
  10268. #define VK_KHR_depth_stencil_resolve 1
  10269. #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
  10270. #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
  10271. typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
  10272. typedef VkResolveModeFlags VkResolveModeFlagsKHR;
  10273. typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
  10274. typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
  10275. // VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
  10276. #define VK_KHR_swapchain_mutable_format 1
  10277. #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
  10278. #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
  10279. // VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
  10280. #define VK_KHR_timeline_semaphore 1
  10281. #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
  10282. #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
  10283. typedef VkSemaphoreType VkSemaphoreTypeKHR;
  10284. typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
  10285. typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
  10286. typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
  10287. typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
  10288. typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
  10289. typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
  10290. typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
  10291. typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
  10292. typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
  10293. typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
  10294. typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
  10295. #ifndef VK_NO_PROTOTYPES
  10296. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10297. VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
  10298. VkDevice device,
  10299. VkSemaphore semaphore,
  10300. uint64_t* pValue);
  10301. #endif
  10302. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10303. VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
  10304. VkDevice device,
  10305. const VkSemaphoreWaitInfo* pWaitInfo,
  10306. uint64_t timeout);
  10307. #endif
  10308. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10309. VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
  10310. VkDevice device,
  10311. const VkSemaphoreSignalInfo* pSignalInfo);
  10312. #endif
  10313. #endif
  10314. // VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
  10315. #define VK_KHR_vulkan_memory_model 1
  10316. #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
  10317. #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
  10318. typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
  10319. // VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
  10320. #define VK_KHR_shader_terminate_invocation 1
  10321. #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
  10322. #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
  10323. typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
  10324. // VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
  10325. #define VK_KHR_fragment_shading_rate 1
  10326. #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
  10327. #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
  10328. typedef enum VkFragmentShadingRateCombinerOpKHR {
  10329. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
  10330. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
  10331. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
  10332. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
  10333. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
  10334. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
  10335. } VkFragmentShadingRateCombinerOpKHR;
  10336. typedef struct VkFragmentShadingRateAttachmentInfoKHR {
  10337. VkStructureType sType;
  10338. const void* pNext;
  10339. const VkAttachmentReference2* pFragmentShadingRateAttachment;
  10340. VkExtent2D shadingRateAttachmentTexelSize;
  10341. } VkFragmentShadingRateAttachmentInfoKHR;
  10342. typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
  10343. VkStructureType sType;
  10344. const void* pNext;
  10345. VkExtent2D fragmentSize;
  10346. VkFragmentShadingRateCombinerOpKHR combinerOps[2];
  10347. } VkPipelineFragmentShadingRateStateCreateInfoKHR;
  10348. typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
  10349. VkStructureType sType;
  10350. void* pNext;
  10351. VkBool32 pipelineFragmentShadingRate;
  10352. VkBool32 primitiveFragmentShadingRate;
  10353. VkBool32 attachmentFragmentShadingRate;
  10354. } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
  10355. typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
  10356. VkStructureType sType;
  10357. void* pNext;
  10358. VkExtent2D minFragmentShadingRateAttachmentTexelSize;
  10359. VkExtent2D maxFragmentShadingRateAttachmentTexelSize;
  10360. uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
  10361. VkBool32 primitiveFragmentShadingRateWithMultipleViewports;
  10362. VkBool32 layeredShadingRateAttachments;
  10363. VkBool32 fragmentShadingRateNonTrivialCombinerOps;
  10364. VkExtent2D maxFragmentSize;
  10365. uint32_t maxFragmentSizeAspectRatio;
  10366. uint32_t maxFragmentShadingRateCoverageSamples;
  10367. VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples;
  10368. VkBool32 fragmentShadingRateWithShaderDepthStencilWrites;
  10369. VkBool32 fragmentShadingRateWithSampleMask;
  10370. VkBool32 fragmentShadingRateWithShaderSampleMask;
  10371. VkBool32 fragmentShadingRateWithConservativeRasterization;
  10372. VkBool32 fragmentShadingRateWithFragmentShaderInterlock;
  10373. VkBool32 fragmentShadingRateWithCustomSampleLocations;
  10374. VkBool32 fragmentShadingRateStrictMultiplyCombiner;
  10375. } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
  10376. typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
  10377. VkStructureType sType;
  10378. void* pNext;
  10379. VkSampleCountFlags sampleCounts;
  10380. VkExtent2D fragmentSize;
  10381. } VkPhysicalDeviceFragmentShadingRateKHR;
  10382. typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
  10383. VkStructureType sType;
  10384. const void* pNext;
  10385. VkImageView imageView;
  10386. VkImageLayout imageLayout;
  10387. VkExtent2D shadingRateAttachmentTexelSize;
  10388. } VkRenderingFragmentShadingRateAttachmentInfoKHR;
  10389. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
  10390. typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
  10391. #ifndef VK_NO_PROTOTYPES
  10392. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10393. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
  10394. VkPhysicalDevice physicalDevice,
  10395. uint32_t* pFragmentShadingRateCount,
  10396. VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
  10397. #endif
  10398. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10399. VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
  10400. VkCommandBuffer commandBuffer,
  10401. const VkExtent2D* pFragmentSize,
  10402. const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
  10403. #endif
  10404. #endif
  10405. // VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
  10406. #define VK_KHR_dynamic_rendering_local_read 1
  10407. #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
  10408. #define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
  10409. typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
  10410. typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR;
  10411. typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR;
  10412. typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
  10413. typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
  10414. #ifndef VK_NO_PROTOTYPES
  10415. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10416. VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
  10417. VkCommandBuffer commandBuffer,
  10418. const VkRenderingAttachmentLocationInfo* pLocationInfo);
  10419. #endif
  10420. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10421. VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
  10422. VkCommandBuffer commandBuffer,
  10423. const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
  10424. #endif
  10425. #endif
  10426. // VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
  10427. #define VK_KHR_shader_quad_control 1
  10428. #define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
  10429. #define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
  10430. typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
  10431. VkStructureType sType;
  10432. void* pNext;
  10433. VkBool32 shaderQuadControl;
  10434. } VkPhysicalDeviceShaderQuadControlFeaturesKHR;
  10435. // VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
  10436. #define VK_KHR_spirv_1_4 1
  10437. #define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
  10438. #define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
  10439. // VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
  10440. #define VK_KHR_surface_protected_capabilities 1
  10441. #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
  10442. #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
  10443. typedef struct VkSurfaceProtectedCapabilitiesKHR {
  10444. VkStructureType sType;
  10445. void* pNext;
  10446. VkBool32 supportsProtected;
  10447. } VkSurfaceProtectedCapabilitiesKHR;
  10448. // VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
  10449. #define VK_KHR_separate_depth_stencil_layouts 1
  10450. #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
  10451. #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
  10452. typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
  10453. typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
  10454. typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
  10455. // VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
  10456. #define VK_KHR_present_wait 1
  10457. #define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
  10458. #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
  10459. typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
  10460. VkStructureType sType;
  10461. void* pNext;
  10462. VkBool32 presentWait;
  10463. } VkPhysicalDevicePresentWaitFeaturesKHR;
  10464. typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
  10465. #ifndef VK_NO_PROTOTYPES
  10466. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10467. VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
  10468. VkDevice device,
  10469. VkSwapchainKHR swapchain,
  10470. uint64_t presentId,
  10471. uint64_t timeout);
  10472. #endif
  10473. #endif
  10474. // VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
  10475. #define VK_KHR_uniform_buffer_standard_layout 1
  10476. #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
  10477. #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
  10478. typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
  10479. // VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
  10480. #define VK_KHR_buffer_device_address 1
  10481. #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
  10482. #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
  10483. typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
  10484. typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
  10485. typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
  10486. typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
  10487. typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
  10488. typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  10489. typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  10490. typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
  10491. #ifndef VK_NO_PROTOTYPES
  10492. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10493. VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
  10494. VkDevice device,
  10495. const VkBufferDeviceAddressInfo* pInfo);
  10496. #endif
  10497. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10498. VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
  10499. VkDevice device,
  10500. const VkBufferDeviceAddressInfo* pInfo);
  10501. #endif
  10502. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10503. VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
  10504. VkDevice device,
  10505. const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
  10506. #endif
  10507. #endif
  10508. // VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
  10509. #define VK_KHR_deferred_host_operations 1
  10510. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
  10511. #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
  10512. #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
  10513. typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
  10514. typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
  10515. typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
  10516. typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
  10517. typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
  10518. #ifndef VK_NO_PROTOTYPES
  10519. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10520. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
  10521. VkDevice device,
  10522. const VkAllocationCallbacks* pAllocator,
  10523. VkDeferredOperationKHR* pDeferredOperation);
  10524. #endif
  10525. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10526. VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
  10527. VkDevice device,
  10528. VkDeferredOperationKHR operation,
  10529. const VkAllocationCallbacks* pAllocator);
  10530. #endif
  10531. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10532. VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
  10533. VkDevice device,
  10534. VkDeferredOperationKHR operation);
  10535. #endif
  10536. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10537. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
  10538. VkDevice device,
  10539. VkDeferredOperationKHR operation);
  10540. #endif
  10541. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10542. VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
  10543. VkDevice device,
  10544. VkDeferredOperationKHR operation);
  10545. #endif
  10546. #endif
  10547. // VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
  10548. #define VK_KHR_pipeline_executable_properties 1
  10549. #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
  10550. #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
  10551. typedef enum VkPipelineExecutableStatisticFormatKHR {
  10552. VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
  10553. VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
  10554. VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
  10555. VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
  10556. VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
  10557. } VkPipelineExecutableStatisticFormatKHR;
  10558. typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
  10559. VkStructureType sType;
  10560. void* pNext;
  10561. VkBool32 pipelineExecutableInfo;
  10562. } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  10563. typedef struct VkPipelineInfoKHR {
  10564. VkStructureType sType;
  10565. const void* pNext;
  10566. VkPipeline pipeline;
  10567. } VkPipelineInfoKHR;
  10568. typedef struct VkPipelineExecutablePropertiesKHR {
  10569. VkStructureType sType;
  10570. void* pNext;
  10571. VkShaderStageFlags stages;
  10572. char name[VK_MAX_DESCRIPTION_SIZE];
  10573. char description[VK_MAX_DESCRIPTION_SIZE];
  10574. uint32_t subgroupSize;
  10575. } VkPipelineExecutablePropertiesKHR;
  10576. typedef struct VkPipelineExecutableInfoKHR {
  10577. VkStructureType sType;
  10578. const void* pNext;
  10579. VkPipeline pipeline;
  10580. uint32_t executableIndex;
  10581. } VkPipelineExecutableInfoKHR;
  10582. typedef union VkPipelineExecutableStatisticValueKHR {
  10583. VkBool32 b32;
  10584. int64_t i64;
  10585. uint64_t u64;
  10586. double f64;
  10587. } VkPipelineExecutableStatisticValueKHR;
  10588. typedef struct VkPipelineExecutableStatisticKHR {
  10589. VkStructureType sType;
  10590. void* pNext;
  10591. char name[VK_MAX_DESCRIPTION_SIZE];
  10592. char description[VK_MAX_DESCRIPTION_SIZE];
  10593. VkPipelineExecutableStatisticFormatKHR format;
  10594. VkPipelineExecutableStatisticValueKHR value;
  10595. } VkPipelineExecutableStatisticKHR;
  10596. typedef struct VkPipelineExecutableInternalRepresentationKHR {
  10597. VkStructureType sType;
  10598. void* pNext;
  10599. char name[VK_MAX_DESCRIPTION_SIZE];
  10600. char description[VK_MAX_DESCRIPTION_SIZE];
  10601. VkBool32 isText;
  10602. size_t dataSize;
  10603. void* pData;
  10604. } VkPipelineExecutableInternalRepresentationKHR;
  10605. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
  10606. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
  10607. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
  10608. #ifndef VK_NO_PROTOTYPES
  10609. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10610. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
  10611. VkDevice device,
  10612. const VkPipelineInfoKHR* pPipelineInfo,
  10613. uint32_t* pExecutableCount,
  10614. VkPipelineExecutablePropertiesKHR* pProperties);
  10615. #endif
  10616. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10617. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
  10618. VkDevice device,
  10619. const VkPipelineExecutableInfoKHR* pExecutableInfo,
  10620. uint32_t* pStatisticCount,
  10621. VkPipelineExecutableStatisticKHR* pStatistics);
  10622. #endif
  10623. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10624. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
  10625. VkDevice device,
  10626. const VkPipelineExecutableInfoKHR* pExecutableInfo,
  10627. uint32_t* pInternalRepresentationCount,
  10628. VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
  10629. #endif
  10630. #endif
  10631. // VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
  10632. #define VK_KHR_map_memory2 1
  10633. #define VK_KHR_MAP_MEMORY_2_SPEC_VERSION 1
  10634. #define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
  10635. typedef VkMemoryUnmapFlagBits VkMemoryUnmapFlagBitsKHR;
  10636. typedef VkMemoryUnmapFlags VkMemoryUnmapFlagsKHR;
  10637. typedef VkMemoryMapInfo VkMemoryMapInfoKHR;
  10638. typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR;
  10639. typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
  10640. typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
  10641. #ifndef VK_NO_PROTOTYPES
  10642. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10643. VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
  10644. VkDevice device,
  10645. const VkMemoryMapInfo* pMemoryMapInfo,
  10646. void** ppData);
  10647. #endif
  10648. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10649. VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
  10650. VkDevice device,
  10651. const VkMemoryUnmapInfo* pMemoryUnmapInfo);
  10652. #endif
  10653. #endif
  10654. // VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
  10655. #define VK_KHR_shader_integer_dot_product 1
  10656. #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
  10657. #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
  10658. typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
  10659. typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
  10660. // VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
  10661. #define VK_KHR_pipeline_library 1
  10662. #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
  10663. #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
  10664. typedef struct VkPipelineLibraryCreateInfoKHR {
  10665. VkStructureType sType;
  10666. const void* pNext;
  10667. uint32_t libraryCount;
  10668. const VkPipeline* pLibraries;
  10669. } VkPipelineLibraryCreateInfoKHR;
  10670. // VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
  10671. #define VK_KHR_shader_non_semantic_info 1
  10672. #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
  10673. #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
  10674. // VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
  10675. #define VK_KHR_present_id 1
  10676. #define VK_KHR_PRESENT_ID_SPEC_VERSION 1
  10677. #define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
  10678. typedef struct VkPresentIdKHR {
  10679. VkStructureType sType;
  10680. const void* pNext;
  10681. uint32_t swapchainCount;
  10682. const uint64_t* pPresentIds;
  10683. } VkPresentIdKHR;
  10684. typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
  10685. VkStructureType sType;
  10686. void* pNext;
  10687. VkBool32 presentId;
  10688. } VkPhysicalDevicePresentIdFeaturesKHR;
  10689. // VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
  10690. #define VK_KHR_video_encode_queue 1
  10691. #define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
  10692. #define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
  10693. typedef enum VkVideoEncodeTuningModeKHR {
  10694. VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
  10695. VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
  10696. VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
  10697. VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
  10698. VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
  10699. VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  10700. } VkVideoEncodeTuningModeKHR;
  10701. typedef enum VkVideoEncodeFlagBitsKHR {
  10702. VK_VIDEO_ENCODE_INTRA_REFRESH_BIT_KHR = 0x00000004,
  10703. VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000001,
  10704. VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR = 0x00000002,
  10705. VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10706. } VkVideoEncodeFlagBitsKHR;
  10707. typedef VkFlags VkVideoEncodeFlagsKHR;
  10708. typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
  10709. VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
  10710. VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
  10711. VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000004,
  10712. VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR = 0x00000008,
  10713. VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10714. } VkVideoEncodeCapabilityFlagBitsKHR;
  10715. typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
  10716. typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
  10717. VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
  10718. VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
  10719. VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
  10720. VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
  10721. VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10722. } VkVideoEncodeRateControlModeFlagBitsKHR;
  10723. typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
  10724. typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
  10725. VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
  10726. VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
  10727. VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
  10728. VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10729. } VkVideoEncodeFeedbackFlagBitsKHR;
  10730. typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
  10731. typedef enum VkVideoEncodeUsageFlagBitsKHR {
  10732. VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
  10733. VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
  10734. VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
  10735. VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
  10736. VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
  10737. VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10738. } VkVideoEncodeUsageFlagBitsKHR;
  10739. typedef VkFlags VkVideoEncodeUsageFlagsKHR;
  10740. typedef enum VkVideoEncodeContentFlagBitsKHR {
  10741. VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
  10742. VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
  10743. VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
  10744. VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
  10745. VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10746. } VkVideoEncodeContentFlagBitsKHR;
  10747. typedef VkFlags VkVideoEncodeContentFlagsKHR;
  10748. typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
  10749. typedef struct VkVideoEncodeInfoKHR {
  10750. VkStructureType sType;
  10751. const void* pNext;
  10752. VkVideoEncodeFlagsKHR flags;
  10753. VkBuffer dstBuffer;
  10754. VkDeviceSize dstBufferOffset;
  10755. VkDeviceSize dstBufferRange;
  10756. VkVideoPictureResourceInfoKHR srcPictureResource;
  10757. const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
  10758. uint32_t referenceSlotCount;
  10759. const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
  10760. uint32_t precedingExternallyEncodedBytes;
  10761. } VkVideoEncodeInfoKHR;
  10762. typedef struct VkVideoEncodeCapabilitiesKHR {
  10763. VkStructureType sType;
  10764. void* pNext;
  10765. VkVideoEncodeCapabilityFlagsKHR flags;
  10766. VkVideoEncodeRateControlModeFlagsKHR rateControlModes;
  10767. uint32_t maxRateControlLayers;
  10768. uint64_t maxBitrate;
  10769. uint32_t maxQualityLevels;
  10770. VkExtent2D encodeInputPictureGranularity;
  10771. VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags;
  10772. } VkVideoEncodeCapabilitiesKHR;
  10773. typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
  10774. VkStructureType sType;
  10775. const void* pNext;
  10776. VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags;
  10777. } VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
  10778. typedef struct VkVideoEncodeUsageInfoKHR {
  10779. VkStructureType sType;
  10780. const void* pNext;
  10781. VkVideoEncodeUsageFlagsKHR videoUsageHints;
  10782. VkVideoEncodeContentFlagsKHR videoContentHints;
  10783. VkVideoEncodeTuningModeKHR tuningMode;
  10784. } VkVideoEncodeUsageInfoKHR;
  10785. typedef struct VkVideoEncodeRateControlLayerInfoKHR {
  10786. VkStructureType sType;
  10787. const void* pNext;
  10788. uint64_t averageBitrate;
  10789. uint64_t maxBitrate;
  10790. uint32_t frameRateNumerator;
  10791. uint32_t frameRateDenominator;
  10792. } VkVideoEncodeRateControlLayerInfoKHR;
  10793. typedef struct VkVideoEncodeRateControlInfoKHR {
  10794. VkStructureType sType;
  10795. const void* pNext;
  10796. VkVideoEncodeRateControlFlagsKHR flags;
  10797. VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
  10798. uint32_t layerCount;
  10799. const VkVideoEncodeRateControlLayerInfoKHR* pLayers;
  10800. uint32_t virtualBufferSizeInMs;
  10801. uint32_t initialVirtualBufferSizeInMs;
  10802. } VkVideoEncodeRateControlInfoKHR;
  10803. typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
  10804. VkStructureType sType;
  10805. const void* pNext;
  10806. const VkVideoProfileInfoKHR* pVideoProfile;
  10807. uint32_t qualityLevel;
  10808. } VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
  10809. typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
  10810. VkStructureType sType;
  10811. void* pNext;
  10812. VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode;
  10813. uint32_t preferredRateControlLayerCount;
  10814. } VkVideoEncodeQualityLevelPropertiesKHR;
  10815. typedef struct VkVideoEncodeQualityLevelInfoKHR {
  10816. VkStructureType sType;
  10817. const void* pNext;
  10818. uint32_t qualityLevel;
  10819. } VkVideoEncodeQualityLevelInfoKHR;
  10820. typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
  10821. VkStructureType sType;
  10822. const void* pNext;
  10823. VkVideoSessionParametersKHR videoSessionParameters;
  10824. } VkVideoEncodeSessionParametersGetInfoKHR;
  10825. typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
  10826. VkStructureType sType;
  10827. void* pNext;
  10828. VkBool32 hasOverrides;
  10829. } VkVideoEncodeSessionParametersFeedbackInfoKHR;
  10830. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
  10831. typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
  10832. typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
  10833. #ifndef VK_NO_PROTOTYPES
  10834. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10835. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
  10836. VkPhysicalDevice physicalDevice,
  10837. const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
  10838. VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
  10839. #endif
  10840. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10841. VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
  10842. VkDevice device,
  10843. const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
  10844. VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
  10845. size_t* pDataSize,
  10846. void* pData);
  10847. #endif
  10848. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10849. VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
  10850. VkCommandBuffer commandBuffer,
  10851. const VkVideoEncodeInfoKHR* pEncodeInfo);
  10852. #endif
  10853. #endif
  10854. // VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
  10855. #define VK_KHR_synchronization2 1
  10856. #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
  10857. #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
  10858. typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
  10859. typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
  10860. typedef VkAccessFlags2 VkAccessFlags2KHR;
  10861. typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
  10862. typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
  10863. typedef VkSubmitFlags VkSubmitFlagsKHR;
  10864. typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
  10865. typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
  10866. typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
  10867. typedef VkDependencyInfo VkDependencyInfoKHR;
  10868. typedef VkSubmitInfo2 VkSubmitInfo2KHR;
  10869. typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
  10870. typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
  10871. typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
  10872. typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
  10873. typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
  10874. typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
  10875. typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
  10876. typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
  10877. typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
  10878. #ifndef VK_NO_PROTOTYPES
  10879. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10880. VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
  10881. VkCommandBuffer commandBuffer,
  10882. VkEvent event,
  10883. const VkDependencyInfo* pDependencyInfo);
  10884. #endif
  10885. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10886. VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
  10887. VkCommandBuffer commandBuffer,
  10888. VkEvent event,
  10889. VkPipelineStageFlags2 stageMask);
  10890. #endif
  10891. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10892. VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
  10893. VkCommandBuffer commandBuffer,
  10894. uint32_t eventCount,
  10895. const VkEvent* pEvents,
  10896. const VkDependencyInfo* pDependencyInfos);
  10897. #endif
  10898. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10899. VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
  10900. VkCommandBuffer commandBuffer,
  10901. const VkDependencyInfo* pDependencyInfo);
  10902. #endif
  10903. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10904. VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
  10905. VkCommandBuffer commandBuffer,
  10906. VkPipelineStageFlags2 stage,
  10907. VkQueryPool queryPool,
  10908. uint32_t query);
  10909. #endif
  10910. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10911. VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
  10912. VkQueue queue,
  10913. uint32_t submitCount,
  10914. const VkSubmitInfo2* pSubmits,
  10915. VkFence fence);
  10916. #endif
  10917. #endif
  10918. // VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
  10919. #define VK_KHR_fragment_shader_barycentric 1
  10920. #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
  10921. #define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
  10922. typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
  10923. VkStructureType sType;
  10924. void* pNext;
  10925. VkBool32 fragmentShaderBarycentric;
  10926. } VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
  10927. typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
  10928. VkStructureType sType;
  10929. void* pNext;
  10930. VkBool32 triStripVertexOrderIndependentOfProvokingVertex;
  10931. } VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
  10932. // VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
  10933. #define VK_KHR_shader_subgroup_uniform_control_flow 1
  10934. #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
  10935. #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
  10936. typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
  10937. VkStructureType sType;
  10938. void* pNext;
  10939. VkBool32 shaderSubgroupUniformControlFlow;
  10940. } VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  10941. // VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
  10942. #define VK_KHR_zero_initialize_workgroup_memory 1
  10943. #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
  10944. #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
  10945. typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
  10946. // VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
  10947. #define VK_KHR_workgroup_memory_explicit_layout 1
  10948. #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
  10949. #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
  10950. typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
  10951. VkStructureType sType;
  10952. void* pNext;
  10953. VkBool32 workgroupMemoryExplicitLayout;
  10954. VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout;
  10955. VkBool32 workgroupMemoryExplicitLayout8BitAccess;
  10956. VkBool32 workgroupMemoryExplicitLayout16BitAccess;
  10957. } VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  10958. // VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
  10959. #define VK_KHR_copy_commands2 1
  10960. #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
  10961. #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
  10962. typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
  10963. typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
  10964. typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
  10965. typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
  10966. typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
  10967. typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
  10968. typedef VkBufferCopy2 VkBufferCopy2KHR;
  10969. typedef VkImageCopy2 VkImageCopy2KHR;
  10970. typedef VkImageBlit2 VkImageBlit2KHR;
  10971. typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
  10972. typedef VkImageResolve2 VkImageResolve2KHR;
  10973. typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
  10974. typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
  10975. typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
  10976. typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
  10977. typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
  10978. typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
  10979. #ifndef VK_NO_PROTOTYPES
  10980. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10981. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
  10982. VkCommandBuffer commandBuffer,
  10983. const VkCopyBufferInfo2* pCopyBufferInfo);
  10984. #endif
  10985. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10986. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
  10987. VkCommandBuffer commandBuffer,
  10988. const VkCopyImageInfo2* pCopyImageInfo);
  10989. #endif
  10990. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10991. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
  10992. VkCommandBuffer commandBuffer,
  10993. const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
  10994. #endif
  10995. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  10996. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
  10997. VkCommandBuffer commandBuffer,
  10998. const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
  10999. #endif
  11000. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11001. VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
  11002. VkCommandBuffer commandBuffer,
  11003. const VkBlitImageInfo2* pBlitImageInfo);
  11004. #endif
  11005. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11006. VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
  11007. VkCommandBuffer commandBuffer,
  11008. const VkResolveImageInfo2* pResolveImageInfo);
  11009. #endif
  11010. #endif
  11011. // VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
  11012. #define VK_KHR_format_feature_flags2 1
  11013. #define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
  11014. #define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
  11015. typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
  11016. typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
  11017. typedef VkFormatProperties3 VkFormatProperties3KHR;
  11018. // VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  11019. #define VK_KHR_ray_tracing_maintenance1 1
  11020. #define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
  11021. #define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
  11022. typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
  11023. VkStructureType sType;
  11024. void* pNext;
  11025. VkBool32 rayTracingMaintenance1;
  11026. VkBool32 rayTracingPipelineTraceRaysIndirect2;
  11027. } VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
  11028. typedef struct VkTraceRaysIndirectCommand2KHR {
  11029. VkDeviceAddress raygenShaderRecordAddress;
  11030. VkDeviceSize raygenShaderRecordSize;
  11031. VkDeviceAddress missShaderBindingTableAddress;
  11032. VkDeviceSize missShaderBindingTableSize;
  11033. VkDeviceSize missShaderBindingTableStride;
  11034. VkDeviceAddress hitShaderBindingTableAddress;
  11035. VkDeviceSize hitShaderBindingTableSize;
  11036. VkDeviceSize hitShaderBindingTableStride;
  11037. VkDeviceAddress callableShaderBindingTableAddress;
  11038. VkDeviceSize callableShaderBindingTableSize;
  11039. VkDeviceSize callableShaderBindingTableStride;
  11040. uint32_t width;
  11041. uint32_t height;
  11042. uint32_t depth;
  11043. } VkTraceRaysIndirectCommand2KHR;
  11044. typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
  11045. #ifndef VK_NO_PROTOTYPES
  11046. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11047. VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
  11048. VkCommandBuffer commandBuffer,
  11049. VkDeviceAddress indirectDeviceAddress);
  11050. #endif
  11051. #endif
  11052. // VK_KHR_shader_untyped_pointers is a preprocessor guard. Do not pass it to API calls.
  11053. #define VK_KHR_shader_untyped_pointers 1
  11054. #define VK_KHR_SHADER_UNTYPED_POINTERS_SPEC_VERSION 1
  11055. #define VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME "VK_KHR_shader_untyped_pointers"
  11056. typedef struct VkPhysicalDeviceShaderUntypedPointersFeaturesKHR {
  11057. VkStructureType sType;
  11058. void* pNext;
  11059. VkBool32 shaderUntypedPointers;
  11060. } VkPhysicalDeviceShaderUntypedPointersFeaturesKHR;
  11061. // VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
  11062. #define VK_KHR_portability_enumeration 1
  11063. #define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
  11064. #define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
  11065. // VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
  11066. #define VK_KHR_maintenance4 1
  11067. #define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
  11068. #define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
  11069. typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
  11070. typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
  11071. typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
  11072. typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
  11073. typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  11074. typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  11075. typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  11076. #ifndef VK_NO_PROTOTYPES
  11077. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11078. VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
  11079. VkDevice device,
  11080. const VkDeviceBufferMemoryRequirements* pInfo,
  11081. VkMemoryRequirements2* pMemoryRequirements);
  11082. #endif
  11083. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11084. VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
  11085. VkDevice device,
  11086. const VkDeviceImageMemoryRequirements* pInfo,
  11087. VkMemoryRequirements2* pMemoryRequirements);
  11088. #endif
  11089. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11090. VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
  11091. VkDevice device,
  11092. const VkDeviceImageMemoryRequirements* pInfo,
  11093. uint32_t* pSparseMemoryRequirementCount,
  11094. VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  11095. #endif
  11096. #endif
  11097. // VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
  11098. #define VK_KHR_shader_subgroup_rotate 1
  11099. #define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
  11100. #define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
  11101. typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
  11102. // VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
  11103. #define VK_KHR_shader_maximal_reconvergence 1
  11104. #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
  11105. #define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
  11106. typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
  11107. VkStructureType sType;
  11108. void* pNext;
  11109. VkBool32 shaderMaximalReconvergence;
  11110. } VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
  11111. // VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
  11112. #define VK_KHR_maintenance5 1
  11113. #define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
  11114. #define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
  11115. typedef VkPipelineCreateFlags2 VkPipelineCreateFlags2KHR;
  11116. typedef VkPipelineCreateFlagBits2 VkPipelineCreateFlagBits2KHR;
  11117. typedef VkBufferUsageFlags2 VkBufferUsageFlags2KHR;
  11118. typedef VkBufferUsageFlagBits2 VkBufferUsageFlagBits2KHR;
  11119. typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;
  11120. typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR;
  11121. typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR;
  11122. typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR;
  11123. typedef VkImageSubresource2 VkImageSubresource2KHR;
  11124. typedef VkSubresourceLayout2 VkSubresourceLayout2KHR;
  11125. typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR;
  11126. typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR;
  11127. typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
  11128. typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
  11129. typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
  11130. typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
  11131. #ifndef VK_NO_PROTOTYPES
  11132. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11133. VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
  11134. VkCommandBuffer commandBuffer,
  11135. VkBuffer buffer,
  11136. VkDeviceSize offset,
  11137. VkDeviceSize size,
  11138. VkIndexType indexType);
  11139. #endif
  11140. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11141. VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
  11142. VkDevice device,
  11143. const VkRenderingAreaInfo* pRenderingAreaInfo,
  11144. VkExtent2D* pGranularity);
  11145. #endif
  11146. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11147. VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
  11148. VkDevice device,
  11149. const VkDeviceImageSubresourceInfo* pInfo,
  11150. VkSubresourceLayout2* pLayout);
  11151. #endif
  11152. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11153. VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
  11154. VkDevice device,
  11155. VkImage image,
  11156. const VkImageSubresource2* pSubresource,
  11157. VkSubresourceLayout2* pLayout);
  11158. #endif
  11159. #endif
  11160. // VK_KHR_present_id2 is a preprocessor guard. Do not pass it to API calls.
  11161. #define VK_KHR_present_id2 1
  11162. #define VK_KHR_PRESENT_ID_2_SPEC_VERSION 1
  11163. #define VK_KHR_PRESENT_ID_2_EXTENSION_NAME "VK_KHR_present_id2"
  11164. typedef struct VkSurfaceCapabilitiesPresentId2KHR {
  11165. VkStructureType sType;
  11166. void* pNext;
  11167. VkBool32 presentId2Supported;
  11168. } VkSurfaceCapabilitiesPresentId2KHR;
  11169. typedef struct VkPresentId2KHR {
  11170. VkStructureType sType;
  11171. const void* pNext;
  11172. uint32_t swapchainCount;
  11173. const uint64_t* pPresentIds;
  11174. } VkPresentId2KHR;
  11175. typedef struct VkPhysicalDevicePresentId2FeaturesKHR {
  11176. VkStructureType sType;
  11177. void* pNext;
  11178. VkBool32 presentId2;
  11179. } VkPhysicalDevicePresentId2FeaturesKHR;
  11180. // VK_KHR_present_wait2 is a preprocessor guard. Do not pass it to API calls.
  11181. #define VK_KHR_present_wait2 1
  11182. #define VK_KHR_PRESENT_WAIT_2_SPEC_VERSION 1
  11183. #define VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME "VK_KHR_present_wait2"
  11184. typedef struct VkSurfaceCapabilitiesPresentWait2KHR {
  11185. VkStructureType sType;
  11186. void* pNext;
  11187. VkBool32 presentWait2Supported;
  11188. } VkSurfaceCapabilitiesPresentWait2KHR;
  11189. typedef struct VkPhysicalDevicePresentWait2FeaturesKHR {
  11190. VkStructureType sType;
  11191. void* pNext;
  11192. VkBool32 presentWait2;
  11193. } VkPhysicalDevicePresentWait2FeaturesKHR;
  11194. typedef struct VkPresentWait2InfoKHR {
  11195. VkStructureType sType;
  11196. const void* pNext;
  11197. uint64_t presentId;
  11198. uint64_t timeout;
  11199. } VkPresentWait2InfoKHR;
  11200. typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresent2KHR)(VkDevice device, VkSwapchainKHR swapchain, const VkPresentWait2InfoKHR* pPresentWait2Info);
  11201. #ifndef VK_NO_PROTOTYPES
  11202. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11203. VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresent2KHR(
  11204. VkDevice device,
  11205. VkSwapchainKHR swapchain,
  11206. const VkPresentWait2InfoKHR* pPresentWait2Info);
  11207. #endif
  11208. #endif
  11209. // VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
  11210. #define VK_KHR_ray_tracing_position_fetch 1
  11211. #define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
  11212. #define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
  11213. typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
  11214. VkStructureType sType;
  11215. void* pNext;
  11216. VkBool32 rayTracingPositionFetch;
  11217. } VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
  11218. // VK_KHR_pipeline_binary is a preprocessor guard. Do not pass it to API calls.
  11219. #define VK_KHR_pipeline_binary 1
  11220. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineBinaryKHR)
  11221. #define VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR 32U
  11222. #define VK_KHR_PIPELINE_BINARY_SPEC_VERSION 1
  11223. #define VK_KHR_PIPELINE_BINARY_EXTENSION_NAME "VK_KHR_pipeline_binary"
  11224. typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR {
  11225. VkStructureType sType;
  11226. void* pNext;
  11227. VkBool32 pipelineBinaries;
  11228. } VkPhysicalDevicePipelineBinaryFeaturesKHR;
  11229. typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR {
  11230. VkStructureType sType;
  11231. void* pNext;
  11232. VkBool32 pipelineBinaryInternalCache;
  11233. VkBool32 pipelineBinaryInternalCacheControl;
  11234. VkBool32 pipelineBinaryPrefersInternalCache;
  11235. VkBool32 pipelineBinaryPrecompiledInternalCache;
  11236. VkBool32 pipelineBinaryCompressedData;
  11237. } VkPhysicalDevicePipelineBinaryPropertiesKHR;
  11238. typedef struct VkDevicePipelineBinaryInternalCacheControlKHR {
  11239. VkStructureType sType;
  11240. const void* pNext;
  11241. VkBool32 disableInternalCache;
  11242. } VkDevicePipelineBinaryInternalCacheControlKHR;
  11243. typedef struct VkPipelineBinaryKeyKHR {
  11244. VkStructureType sType;
  11245. void* pNext;
  11246. uint32_t keySize;
  11247. uint8_t key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
  11248. } VkPipelineBinaryKeyKHR;
  11249. typedef struct VkPipelineBinaryDataKHR {
  11250. size_t dataSize;
  11251. void* pData;
  11252. } VkPipelineBinaryDataKHR;
  11253. typedef struct VkPipelineBinaryKeysAndDataKHR {
  11254. uint32_t binaryCount;
  11255. const VkPipelineBinaryKeyKHR* pPipelineBinaryKeys;
  11256. const VkPipelineBinaryDataKHR* pPipelineBinaryData;
  11257. } VkPipelineBinaryKeysAndDataKHR;
  11258. typedef struct VkPipelineCreateInfoKHR {
  11259. VkStructureType sType;
  11260. void* pNext;
  11261. } VkPipelineCreateInfoKHR;
  11262. typedef struct VkPipelineBinaryCreateInfoKHR {
  11263. VkStructureType sType;
  11264. const void* pNext;
  11265. const VkPipelineBinaryKeysAndDataKHR* pKeysAndDataInfo;
  11266. VkPipeline pipeline;
  11267. const VkPipelineCreateInfoKHR* pPipelineCreateInfo;
  11268. } VkPipelineBinaryCreateInfoKHR;
  11269. typedef struct VkPipelineBinaryInfoKHR {
  11270. VkStructureType sType;
  11271. const void* pNext;
  11272. uint32_t binaryCount;
  11273. const VkPipelineBinaryKHR* pPipelineBinaries;
  11274. } VkPipelineBinaryInfoKHR;
  11275. typedef struct VkReleaseCapturedPipelineDataInfoKHR {
  11276. VkStructureType sType;
  11277. void* pNext;
  11278. VkPipeline pipeline;
  11279. } VkReleaseCapturedPipelineDataInfoKHR;
  11280. typedef struct VkPipelineBinaryDataInfoKHR {
  11281. VkStructureType sType;
  11282. void* pNext;
  11283. VkPipelineBinaryKHR pipelineBinary;
  11284. } VkPipelineBinaryDataInfoKHR;
  11285. typedef struct VkPipelineBinaryHandlesInfoKHR {
  11286. VkStructureType sType;
  11287. const void* pNext;
  11288. uint32_t pipelineBinaryCount;
  11289. VkPipelineBinaryKHR* pPipelineBinaries;
  11290. } VkPipelineBinaryHandlesInfoKHR;
  11291. typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);
  11292. typedef void (VKAPI_PTR *PFN_vkDestroyPipelineBinaryKHR)(VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);
  11293. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineKeyKHR)(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);
  11294. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);
  11295. typedef VkResult (VKAPI_PTR *PFN_vkReleaseCapturedPipelineDataKHR)(VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);
  11296. #ifndef VK_NO_PROTOTYPES
  11297. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11298. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(
  11299. VkDevice device,
  11300. const VkPipelineBinaryCreateInfoKHR* pCreateInfo,
  11301. const VkAllocationCallbacks* pAllocator,
  11302. VkPipelineBinaryHandlesInfoKHR* pBinaries);
  11303. #endif
  11304. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11305. VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineBinaryKHR(
  11306. VkDevice device,
  11307. VkPipelineBinaryKHR pipelineBinary,
  11308. const VkAllocationCallbacks* pAllocator);
  11309. #endif
  11310. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11311. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineKeyKHR(
  11312. VkDevice device,
  11313. const VkPipelineCreateInfoKHR* pPipelineCreateInfo,
  11314. VkPipelineBinaryKeyKHR* pPipelineKey);
  11315. #endif
  11316. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11317. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(
  11318. VkDevice device,
  11319. const VkPipelineBinaryDataInfoKHR* pInfo,
  11320. VkPipelineBinaryKeyKHR* pPipelineBinaryKey,
  11321. size_t* pPipelineBinaryDataSize,
  11322. void* pPipelineBinaryData);
  11323. #endif
  11324. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11325. VKAPI_ATTR VkResult VKAPI_CALL vkReleaseCapturedPipelineDataKHR(
  11326. VkDevice device,
  11327. const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
  11328. const VkAllocationCallbacks* pAllocator);
  11329. #endif
  11330. #endif
  11331. // VK_KHR_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  11332. #define VK_KHR_surface_maintenance1 1
  11333. #define VK_KHR_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
  11334. #define VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_surface_maintenance1"
  11335. typedef enum VkPresentScalingFlagBitsKHR {
  11336. VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR = 0x00000001,
  11337. VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR = 0x00000002,
  11338. VK_PRESENT_SCALING_STRETCH_BIT_KHR = 0x00000004,
  11339. VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR,
  11340. VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR,
  11341. VK_PRESENT_SCALING_STRETCH_BIT_EXT = VK_PRESENT_SCALING_STRETCH_BIT_KHR,
  11342. VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  11343. } VkPresentScalingFlagBitsKHR;
  11344. typedef VkFlags VkPresentScalingFlagsKHR;
  11345. typedef enum VkPresentGravityFlagBitsKHR {
  11346. VK_PRESENT_GRAVITY_MIN_BIT_KHR = 0x00000001,
  11347. VK_PRESENT_GRAVITY_MAX_BIT_KHR = 0x00000002,
  11348. VK_PRESENT_GRAVITY_CENTERED_BIT_KHR = 0x00000004,
  11349. VK_PRESENT_GRAVITY_MIN_BIT_EXT = VK_PRESENT_GRAVITY_MIN_BIT_KHR,
  11350. VK_PRESENT_GRAVITY_MAX_BIT_EXT = VK_PRESENT_GRAVITY_MAX_BIT_KHR,
  11351. VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = VK_PRESENT_GRAVITY_CENTERED_BIT_KHR,
  11352. VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  11353. } VkPresentGravityFlagBitsKHR;
  11354. typedef VkFlags VkPresentGravityFlagsKHR;
  11355. typedef struct VkSurfacePresentModeKHR {
  11356. VkStructureType sType;
  11357. void* pNext;
  11358. VkPresentModeKHR presentMode;
  11359. } VkSurfacePresentModeKHR;
  11360. typedef struct VkSurfacePresentScalingCapabilitiesKHR {
  11361. VkStructureType sType;
  11362. void* pNext;
  11363. VkPresentScalingFlagsKHR supportedPresentScaling;
  11364. VkPresentGravityFlagsKHR supportedPresentGravityX;
  11365. VkPresentGravityFlagsKHR supportedPresentGravityY;
  11366. VkExtent2D minScaledImageExtent;
  11367. VkExtent2D maxScaledImageExtent;
  11368. } VkSurfacePresentScalingCapabilitiesKHR;
  11369. typedef struct VkSurfacePresentModeCompatibilityKHR {
  11370. VkStructureType sType;
  11371. void* pNext;
  11372. uint32_t presentModeCount;
  11373. VkPresentModeKHR* pPresentModes;
  11374. } VkSurfacePresentModeCompatibilityKHR;
  11375. // VK_KHR_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  11376. #define VK_KHR_swapchain_maintenance1 1
  11377. #define VK_KHR_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
  11378. #define VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_swapchain_maintenance1"
  11379. typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR {
  11380. VkStructureType sType;
  11381. void* pNext;
  11382. VkBool32 swapchainMaintenance1;
  11383. } VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR;
  11384. typedef struct VkSwapchainPresentFenceInfoKHR {
  11385. VkStructureType sType;
  11386. const void* pNext;
  11387. uint32_t swapchainCount;
  11388. const VkFence* pFences;
  11389. } VkSwapchainPresentFenceInfoKHR;
  11390. typedef struct VkSwapchainPresentModesCreateInfoKHR {
  11391. VkStructureType sType;
  11392. const void* pNext;
  11393. uint32_t presentModeCount;
  11394. const VkPresentModeKHR* pPresentModes;
  11395. } VkSwapchainPresentModesCreateInfoKHR;
  11396. typedef struct VkSwapchainPresentModeInfoKHR {
  11397. VkStructureType sType;
  11398. const void* pNext;
  11399. uint32_t swapchainCount;
  11400. const VkPresentModeKHR* pPresentModes;
  11401. } VkSwapchainPresentModeInfoKHR;
  11402. typedef struct VkSwapchainPresentScalingCreateInfoKHR {
  11403. VkStructureType sType;
  11404. const void* pNext;
  11405. VkPresentScalingFlagsKHR scalingBehavior;
  11406. VkPresentGravityFlagsKHR presentGravityX;
  11407. VkPresentGravityFlagsKHR presentGravityY;
  11408. } VkSwapchainPresentScalingCreateInfoKHR;
  11409. typedef struct VkReleaseSwapchainImagesInfoKHR {
  11410. VkStructureType sType;
  11411. const void* pNext;
  11412. VkSwapchainKHR swapchain;
  11413. uint32_t imageIndexCount;
  11414. const uint32_t* pImageIndices;
  11415. } VkReleaseSwapchainImagesInfoKHR;
  11416. typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesKHR)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
  11417. #ifndef VK_NO_PROTOTYPES
  11418. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11419. VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesKHR(
  11420. VkDevice device,
  11421. const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
  11422. #endif
  11423. #endif
  11424. // VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
  11425. #define VK_KHR_cooperative_matrix 1
  11426. #define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
  11427. #define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
  11428. typedef enum VkComponentTypeKHR {
  11429. VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
  11430. VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
  11431. VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
  11432. VK_COMPONENT_TYPE_SINT8_KHR = 3,
  11433. VK_COMPONENT_TYPE_SINT16_KHR = 4,
  11434. VK_COMPONENT_TYPE_SINT32_KHR = 5,
  11435. VK_COMPONENT_TYPE_SINT64_KHR = 6,
  11436. VK_COMPONENT_TYPE_UINT8_KHR = 7,
  11437. VK_COMPONENT_TYPE_UINT16_KHR = 8,
  11438. VK_COMPONENT_TYPE_UINT32_KHR = 9,
  11439. VK_COMPONENT_TYPE_UINT64_KHR = 10,
  11440. VK_COMPONENT_TYPE_BFLOAT16_KHR = 1000141000,
  11441. VK_COMPONENT_TYPE_SINT8_PACKED_NV = 1000491000,
  11442. VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001,
  11443. VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT = 1000491002,
  11444. VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT = 1000491003,
  11445. VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
  11446. VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
  11447. VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
  11448. VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
  11449. VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
  11450. VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
  11451. VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
  11452. VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
  11453. VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
  11454. VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
  11455. VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
  11456. VK_COMPONENT_TYPE_FLOAT_E4M3_NV = VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT,
  11457. VK_COMPONENT_TYPE_FLOAT_E5M2_NV = VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT,
  11458. VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  11459. } VkComponentTypeKHR;
  11460. typedef enum VkScopeKHR {
  11461. VK_SCOPE_DEVICE_KHR = 1,
  11462. VK_SCOPE_WORKGROUP_KHR = 2,
  11463. VK_SCOPE_SUBGROUP_KHR = 3,
  11464. VK_SCOPE_QUEUE_FAMILY_KHR = 5,
  11465. VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
  11466. VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
  11467. VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
  11468. VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
  11469. VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
  11470. } VkScopeKHR;
  11471. typedef struct VkCooperativeMatrixPropertiesKHR {
  11472. VkStructureType sType;
  11473. void* pNext;
  11474. uint32_t MSize;
  11475. uint32_t NSize;
  11476. uint32_t KSize;
  11477. VkComponentTypeKHR AType;
  11478. VkComponentTypeKHR BType;
  11479. VkComponentTypeKHR CType;
  11480. VkComponentTypeKHR ResultType;
  11481. VkBool32 saturatingAccumulation;
  11482. VkScopeKHR scope;
  11483. } VkCooperativeMatrixPropertiesKHR;
  11484. typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
  11485. VkStructureType sType;
  11486. void* pNext;
  11487. VkBool32 cooperativeMatrix;
  11488. VkBool32 cooperativeMatrixRobustBufferAccess;
  11489. } VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
  11490. typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
  11491. VkStructureType sType;
  11492. void* pNext;
  11493. VkShaderStageFlags cooperativeMatrixSupportedStages;
  11494. } VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
  11495. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
  11496. #ifndef VK_NO_PROTOTYPES
  11497. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11498. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
  11499. VkPhysicalDevice physicalDevice,
  11500. uint32_t* pPropertyCount,
  11501. VkCooperativeMatrixPropertiesKHR* pProperties);
  11502. #endif
  11503. #endif
  11504. // VK_KHR_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
  11505. #define VK_KHR_compute_shader_derivatives 1
  11506. #define VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
  11507. #define VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_KHR_compute_shader_derivatives"
  11508. typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR {
  11509. VkStructureType sType;
  11510. void* pNext;
  11511. VkBool32 computeDerivativeGroupQuads;
  11512. VkBool32 computeDerivativeGroupLinear;
  11513. } VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
  11514. typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR {
  11515. VkStructureType sType;
  11516. void* pNext;
  11517. VkBool32 meshAndTaskShaderDerivatives;
  11518. } VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR;
  11519. // VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
  11520. #define VK_KHR_video_decode_av1 1
  11521. #include "vk_video/vulkan_video_codec_av1std.h"
  11522. #include "vk_video/vulkan_video_codec_av1std_decode.h"
  11523. #define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
  11524. #define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
  11525. #define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
  11526. typedef struct VkVideoDecodeAV1ProfileInfoKHR {
  11527. VkStructureType sType;
  11528. const void* pNext;
  11529. StdVideoAV1Profile stdProfile;
  11530. VkBool32 filmGrainSupport;
  11531. } VkVideoDecodeAV1ProfileInfoKHR;
  11532. typedef struct VkVideoDecodeAV1CapabilitiesKHR {
  11533. VkStructureType sType;
  11534. void* pNext;
  11535. StdVideoAV1Level maxLevel;
  11536. } VkVideoDecodeAV1CapabilitiesKHR;
  11537. typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
  11538. VkStructureType sType;
  11539. const void* pNext;
  11540. const StdVideoAV1SequenceHeader* pStdSequenceHeader;
  11541. } VkVideoDecodeAV1SessionParametersCreateInfoKHR;
  11542. typedef struct VkVideoDecodeAV1PictureInfoKHR {
  11543. VkStructureType sType;
  11544. const void* pNext;
  11545. const StdVideoDecodeAV1PictureInfo* pStdPictureInfo;
  11546. int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
  11547. uint32_t frameHeaderOffset;
  11548. uint32_t tileCount;
  11549. const uint32_t* pTileOffsets;
  11550. const uint32_t* pTileSizes;
  11551. } VkVideoDecodeAV1PictureInfoKHR;
  11552. typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
  11553. VkStructureType sType;
  11554. const void* pNext;
  11555. const StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo;
  11556. } VkVideoDecodeAV1DpbSlotInfoKHR;
  11557. // VK_KHR_video_encode_av1 is a preprocessor guard. Do not pass it to API calls.
  11558. #define VK_KHR_video_encode_av1 1
  11559. #include "vk_video/vulkan_video_codec_av1std_encode.h"
  11560. #define VK_KHR_VIDEO_ENCODE_AV1_SPEC_VERSION 1
  11561. #define VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME "VK_KHR_video_encode_av1"
  11562. typedef enum VkVideoEncodeAV1PredictionModeKHR {
  11563. VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR = 0,
  11564. VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR = 1,
  11565. VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR = 2,
  11566. VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR = 3,
  11567. VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  11568. } VkVideoEncodeAV1PredictionModeKHR;
  11569. typedef enum VkVideoEncodeAV1RateControlGroupKHR {
  11570. VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR = 0,
  11571. VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR = 1,
  11572. VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR = 2,
  11573. VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_MAX_ENUM_KHR = 0x7FFFFFFF
  11574. } VkVideoEncodeAV1RateControlGroupKHR;
  11575. typedef enum VkVideoEncodeAV1CapabilityFlagBitsKHR {
  11576. VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR = 0x00000001,
  11577. VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR = 0x00000002,
  11578. VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR = 0x00000004,
  11579. VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR = 0x00000008,
  11580. VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR = 0x00000010,
  11581. VK_VIDEO_ENCODE_AV1_CAPABILITY_COMPOUND_PREDICTION_INTRA_REFRESH_BIT_KHR = 0x00000020,
  11582. VK_VIDEO_ENCODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  11583. } VkVideoEncodeAV1CapabilityFlagBitsKHR;
  11584. typedef VkFlags VkVideoEncodeAV1CapabilityFlagsKHR;
  11585. typedef enum VkVideoEncodeAV1StdFlagBitsKHR {
  11586. VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR = 0x00000001,
  11587. VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR = 0x00000002,
  11588. VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR = 0x00000004,
  11589. VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR = 0x00000008,
  11590. VK_VIDEO_ENCODE_AV1_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  11591. } VkVideoEncodeAV1StdFlagBitsKHR;
  11592. typedef VkFlags VkVideoEncodeAV1StdFlagsKHR;
  11593. typedef enum VkVideoEncodeAV1SuperblockSizeFlagBitsKHR {
  11594. VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR = 0x00000001,
  11595. VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR = 0x00000002,
  11596. VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  11597. } VkVideoEncodeAV1SuperblockSizeFlagBitsKHR;
  11598. typedef VkFlags VkVideoEncodeAV1SuperblockSizeFlagsKHR;
  11599. typedef enum VkVideoEncodeAV1RateControlFlagBitsKHR {
  11600. VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000001,
  11601. VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000002,
  11602. VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
  11603. VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
  11604. VK_VIDEO_ENCODE_AV1_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  11605. } VkVideoEncodeAV1RateControlFlagBitsKHR;
  11606. typedef VkFlags VkVideoEncodeAV1RateControlFlagsKHR;
  11607. typedef struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR {
  11608. VkStructureType sType;
  11609. void* pNext;
  11610. VkBool32 videoEncodeAV1;
  11611. } VkPhysicalDeviceVideoEncodeAV1FeaturesKHR;
  11612. typedef struct VkVideoEncodeAV1CapabilitiesKHR {
  11613. VkStructureType sType;
  11614. void* pNext;
  11615. VkVideoEncodeAV1CapabilityFlagsKHR flags;
  11616. StdVideoAV1Level maxLevel;
  11617. VkExtent2D codedPictureAlignment;
  11618. VkExtent2D maxTiles;
  11619. VkExtent2D minTileSize;
  11620. VkExtent2D maxTileSize;
  11621. VkVideoEncodeAV1SuperblockSizeFlagsKHR superblockSizes;
  11622. uint32_t maxSingleReferenceCount;
  11623. uint32_t singleReferenceNameMask;
  11624. uint32_t maxUnidirectionalCompoundReferenceCount;
  11625. uint32_t maxUnidirectionalCompoundGroup1ReferenceCount;
  11626. uint32_t unidirectionalCompoundReferenceNameMask;
  11627. uint32_t maxBidirectionalCompoundReferenceCount;
  11628. uint32_t maxBidirectionalCompoundGroup1ReferenceCount;
  11629. uint32_t maxBidirectionalCompoundGroup2ReferenceCount;
  11630. uint32_t bidirectionalCompoundReferenceNameMask;
  11631. uint32_t maxTemporalLayerCount;
  11632. uint32_t maxSpatialLayerCount;
  11633. uint32_t maxOperatingPoints;
  11634. uint32_t minQIndex;
  11635. uint32_t maxQIndex;
  11636. VkBool32 prefersGopRemainingFrames;
  11637. VkBool32 requiresGopRemainingFrames;
  11638. VkVideoEncodeAV1StdFlagsKHR stdSyntaxFlags;
  11639. } VkVideoEncodeAV1CapabilitiesKHR;
  11640. typedef struct VkVideoEncodeAV1QIndexKHR {
  11641. uint32_t intraQIndex;
  11642. uint32_t predictiveQIndex;
  11643. uint32_t bipredictiveQIndex;
  11644. } VkVideoEncodeAV1QIndexKHR;
  11645. typedef struct VkVideoEncodeAV1QualityLevelPropertiesKHR {
  11646. VkStructureType sType;
  11647. void* pNext;
  11648. VkVideoEncodeAV1RateControlFlagsKHR preferredRateControlFlags;
  11649. uint32_t preferredGopFrameCount;
  11650. uint32_t preferredKeyFramePeriod;
  11651. uint32_t preferredConsecutiveBipredictiveFrameCount;
  11652. uint32_t preferredTemporalLayerCount;
  11653. VkVideoEncodeAV1QIndexKHR preferredConstantQIndex;
  11654. uint32_t preferredMaxSingleReferenceCount;
  11655. uint32_t preferredSingleReferenceNameMask;
  11656. uint32_t preferredMaxUnidirectionalCompoundReferenceCount;
  11657. uint32_t preferredMaxUnidirectionalCompoundGroup1ReferenceCount;
  11658. uint32_t preferredUnidirectionalCompoundReferenceNameMask;
  11659. uint32_t preferredMaxBidirectionalCompoundReferenceCount;
  11660. uint32_t preferredMaxBidirectionalCompoundGroup1ReferenceCount;
  11661. uint32_t preferredMaxBidirectionalCompoundGroup2ReferenceCount;
  11662. uint32_t preferredBidirectionalCompoundReferenceNameMask;
  11663. } VkVideoEncodeAV1QualityLevelPropertiesKHR;
  11664. typedef struct VkVideoEncodeAV1SessionCreateInfoKHR {
  11665. VkStructureType sType;
  11666. const void* pNext;
  11667. VkBool32 useMaxLevel;
  11668. StdVideoAV1Level maxLevel;
  11669. } VkVideoEncodeAV1SessionCreateInfoKHR;
  11670. typedef struct VkVideoEncodeAV1SessionParametersCreateInfoKHR {
  11671. VkStructureType sType;
  11672. const void* pNext;
  11673. const StdVideoAV1SequenceHeader* pStdSequenceHeader;
  11674. const StdVideoEncodeAV1DecoderModelInfo* pStdDecoderModelInfo;
  11675. uint32_t stdOperatingPointCount;
  11676. const StdVideoEncodeAV1OperatingPointInfo* pStdOperatingPoints;
  11677. } VkVideoEncodeAV1SessionParametersCreateInfoKHR;
  11678. typedef struct VkVideoEncodeAV1PictureInfoKHR {
  11679. VkStructureType sType;
  11680. const void* pNext;
  11681. VkVideoEncodeAV1PredictionModeKHR predictionMode;
  11682. VkVideoEncodeAV1RateControlGroupKHR rateControlGroup;
  11683. uint32_t constantQIndex;
  11684. const StdVideoEncodeAV1PictureInfo* pStdPictureInfo;
  11685. int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
  11686. VkBool32 primaryReferenceCdfOnly;
  11687. VkBool32 generateObuExtensionHeader;
  11688. } VkVideoEncodeAV1PictureInfoKHR;
  11689. typedef struct VkVideoEncodeAV1DpbSlotInfoKHR {
  11690. VkStructureType sType;
  11691. const void* pNext;
  11692. const StdVideoEncodeAV1ReferenceInfo* pStdReferenceInfo;
  11693. } VkVideoEncodeAV1DpbSlotInfoKHR;
  11694. typedef struct VkVideoEncodeAV1ProfileInfoKHR {
  11695. VkStructureType sType;
  11696. const void* pNext;
  11697. StdVideoAV1Profile stdProfile;
  11698. } VkVideoEncodeAV1ProfileInfoKHR;
  11699. typedef struct VkVideoEncodeAV1FrameSizeKHR {
  11700. uint32_t intraFrameSize;
  11701. uint32_t predictiveFrameSize;
  11702. uint32_t bipredictiveFrameSize;
  11703. } VkVideoEncodeAV1FrameSizeKHR;
  11704. typedef struct VkVideoEncodeAV1GopRemainingFrameInfoKHR {
  11705. VkStructureType sType;
  11706. const void* pNext;
  11707. VkBool32 useGopRemainingFrames;
  11708. uint32_t gopRemainingIntra;
  11709. uint32_t gopRemainingPredictive;
  11710. uint32_t gopRemainingBipredictive;
  11711. } VkVideoEncodeAV1GopRemainingFrameInfoKHR;
  11712. typedef struct VkVideoEncodeAV1RateControlInfoKHR {
  11713. VkStructureType sType;
  11714. const void* pNext;
  11715. VkVideoEncodeAV1RateControlFlagsKHR flags;
  11716. uint32_t gopFrameCount;
  11717. uint32_t keyFramePeriod;
  11718. uint32_t consecutiveBipredictiveFrameCount;
  11719. uint32_t temporalLayerCount;
  11720. } VkVideoEncodeAV1RateControlInfoKHR;
  11721. typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR {
  11722. VkStructureType sType;
  11723. const void* pNext;
  11724. VkBool32 useMinQIndex;
  11725. VkVideoEncodeAV1QIndexKHR minQIndex;
  11726. VkBool32 useMaxQIndex;
  11727. VkVideoEncodeAV1QIndexKHR maxQIndex;
  11728. VkBool32 useMaxFrameSize;
  11729. VkVideoEncodeAV1FrameSizeKHR maxFrameSize;
  11730. } VkVideoEncodeAV1RateControlLayerInfoKHR;
  11731. // VK_KHR_video_decode_vp9 is a preprocessor guard. Do not pass it to API calls.
  11732. #define VK_KHR_video_decode_vp9 1
  11733. #include "vk_video/vulkan_video_codec_vp9std.h"
  11734. #include "vk_video/vulkan_video_codec_vp9std_decode.h"
  11735. #define VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR 3U
  11736. #define VK_KHR_VIDEO_DECODE_VP9_SPEC_VERSION 1
  11737. #define VK_KHR_VIDEO_DECODE_VP9_EXTENSION_NAME "VK_KHR_video_decode_vp9"
  11738. typedef struct VkPhysicalDeviceVideoDecodeVP9FeaturesKHR {
  11739. VkStructureType sType;
  11740. void* pNext;
  11741. VkBool32 videoDecodeVP9;
  11742. } VkPhysicalDeviceVideoDecodeVP9FeaturesKHR;
  11743. typedef struct VkVideoDecodeVP9ProfileInfoKHR {
  11744. VkStructureType sType;
  11745. const void* pNext;
  11746. StdVideoVP9Profile stdProfile;
  11747. } VkVideoDecodeVP9ProfileInfoKHR;
  11748. typedef struct VkVideoDecodeVP9CapabilitiesKHR {
  11749. VkStructureType sType;
  11750. void* pNext;
  11751. StdVideoVP9Level maxLevel;
  11752. } VkVideoDecodeVP9CapabilitiesKHR;
  11753. typedef struct VkVideoDecodeVP9PictureInfoKHR {
  11754. VkStructureType sType;
  11755. const void* pNext;
  11756. const StdVideoDecodeVP9PictureInfo* pStdPictureInfo;
  11757. int32_t referenceNameSlotIndices[VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR];
  11758. uint32_t uncompressedHeaderOffset;
  11759. uint32_t compressedHeaderOffset;
  11760. uint32_t tilesOffset;
  11761. } VkVideoDecodeVP9PictureInfoKHR;
  11762. // VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  11763. #define VK_KHR_video_maintenance1 1
  11764. #define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
  11765. #define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
  11766. typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
  11767. VkStructureType sType;
  11768. void* pNext;
  11769. VkBool32 videoMaintenance1;
  11770. } VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
  11771. typedef struct VkVideoInlineQueryInfoKHR {
  11772. VkStructureType sType;
  11773. const void* pNext;
  11774. VkQueryPool queryPool;
  11775. uint32_t firstQuery;
  11776. uint32_t queryCount;
  11777. } VkVideoInlineQueryInfoKHR;
  11778. // VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
  11779. #define VK_KHR_vertex_attribute_divisor 1
  11780. #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
  11781. #define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
  11782. typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
  11783. typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR;
  11784. typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR;
  11785. typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
  11786. // VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
  11787. #define VK_KHR_load_store_op_none 1
  11788. #define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
  11789. #define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
  11790. // VK_KHR_unified_image_layouts is a preprocessor guard. Do not pass it to API calls.
  11791. #define VK_KHR_unified_image_layouts 1
  11792. #define VK_KHR_UNIFIED_IMAGE_LAYOUTS_SPEC_VERSION 1
  11793. #define VK_KHR_UNIFIED_IMAGE_LAYOUTS_EXTENSION_NAME "VK_KHR_unified_image_layouts"
  11794. typedef struct VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
  11795. VkStructureType sType;
  11796. void* pNext;
  11797. VkBool32 unifiedImageLayouts;
  11798. VkBool32 unifiedImageLayoutsVideo;
  11799. } VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR;
  11800. typedef struct VkAttachmentFeedbackLoopInfoEXT {
  11801. VkStructureType sType;
  11802. const void* pNext;
  11803. VkBool32 feedbackLoopEnable;
  11804. } VkAttachmentFeedbackLoopInfoEXT;
  11805. // VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
  11806. #define VK_KHR_shader_float_controls2 1
  11807. #define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
  11808. #define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
  11809. typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
  11810. // VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
  11811. #define VK_KHR_index_type_uint8 1
  11812. #define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
  11813. #define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
  11814. typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
  11815. // VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
  11816. #define VK_KHR_line_rasterization 1
  11817. #define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
  11818. #define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
  11819. typedef VkLineRasterizationMode VkLineRasterizationModeKHR;
  11820. typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR;
  11821. typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR;
  11822. typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR;
  11823. typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
  11824. #ifndef VK_NO_PROTOTYPES
  11825. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11826. VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
  11827. VkCommandBuffer commandBuffer,
  11828. uint32_t lineStippleFactor,
  11829. uint16_t lineStipplePattern);
  11830. #endif
  11831. #endif
  11832. // VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
  11833. #define VK_KHR_calibrated_timestamps 1
  11834. #define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
  11835. #define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
  11836. typedef enum VkTimeDomainKHR {
  11837. VK_TIME_DOMAIN_DEVICE_KHR = 0,
  11838. VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
  11839. VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
  11840. VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
  11841. VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT = 1000208000,
  11842. VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT = 1000208001,
  11843. VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
  11844. VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
  11845. VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
  11846. VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
  11847. VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
  11848. } VkTimeDomainKHR;
  11849. typedef struct VkCalibratedTimestampInfoKHR {
  11850. VkStructureType sType;
  11851. const void* pNext;
  11852. VkTimeDomainKHR timeDomain;
  11853. } VkCalibratedTimestampInfoKHR;
  11854. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
  11855. typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
  11856. #ifndef VK_NO_PROTOTYPES
  11857. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11858. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
  11859. VkPhysicalDevice physicalDevice,
  11860. uint32_t* pTimeDomainCount,
  11861. VkTimeDomainKHR* pTimeDomains);
  11862. #endif
  11863. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11864. VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
  11865. VkDevice device,
  11866. uint32_t timestampCount,
  11867. const VkCalibratedTimestampInfoKHR* pTimestampInfos,
  11868. uint64_t* pTimestamps,
  11869. uint64_t* pMaxDeviation);
  11870. #endif
  11871. #endif
  11872. // VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
  11873. #define VK_KHR_shader_expect_assume 1
  11874. #define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
  11875. #define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
  11876. typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
  11877. // VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
  11878. #define VK_KHR_maintenance6 1
  11879. #define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
  11880. #define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
  11881. typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR;
  11882. typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR;
  11883. typedef VkBindMemoryStatus VkBindMemoryStatusKHR;
  11884. typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR;
  11885. typedef VkPushConstantsInfo VkPushConstantsInfoKHR;
  11886. typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR;
  11887. typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR;
  11888. typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
  11889. VkStructureType sType;
  11890. const void* pNext;
  11891. VkShaderStageFlags stageFlags;
  11892. VkPipelineLayout layout;
  11893. uint32_t firstSet;
  11894. uint32_t setCount;
  11895. const uint32_t* pBufferIndices;
  11896. const VkDeviceSize* pOffsets;
  11897. } VkSetDescriptorBufferOffsetsInfoEXT;
  11898. typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
  11899. VkStructureType sType;
  11900. const void* pNext;
  11901. VkShaderStageFlags stageFlags;
  11902. VkPipelineLayout layout;
  11903. uint32_t set;
  11904. } VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
  11905. typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
  11906. typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
  11907. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
  11908. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
  11909. typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
  11910. typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
  11911. #ifndef VK_NO_PROTOTYPES
  11912. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11913. VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
  11914. VkCommandBuffer commandBuffer,
  11915. const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
  11916. #endif
  11917. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11918. VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
  11919. VkCommandBuffer commandBuffer,
  11920. const VkPushConstantsInfo* pPushConstantsInfo);
  11921. #endif
  11922. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11923. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
  11924. VkCommandBuffer commandBuffer,
  11925. const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
  11926. #endif
  11927. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11928. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
  11929. VkCommandBuffer commandBuffer,
  11930. const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
  11931. #endif
  11932. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11933. VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
  11934. VkCommandBuffer commandBuffer,
  11935. const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
  11936. #endif
  11937. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  11938. VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
  11939. VkCommandBuffer commandBuffer,
  11940. const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
  11941. #endif
  11942. #endif
  11943. // VK_KHR_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
  11944. #define VK_KHR_copy_memory_indirect 1
  11945. #define VK_KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
  11946. #define VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_KHR_copy_memory_indirect"
  11947. typedef enum VkAddressCopyFlagBitsKHR {
  11948. VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR = 0x00000001,
  11949. VK_ADDRESS_COPY_SPARSE_BIT_KHR = 0x00000002,
  11950. VK_ADDRESS_COPY_PROTECTED_BIT_KHR = 0x00000004,
  11951. VK_ADDRESS_COPY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  11952. } VkAddressCopyFlagBitsKHR;
  11953. typedef VkFlags VkAddressCopyFlagsKHR;
  11954. typedef struct VkStridedDeviceAddressRangeKHR {
  11955. VkDeviceAddress address;
  11956. VkDeviceSize size;
  11957. VkDeviceSize stride;
  11958. } VkStridedDeviceAddressRangeKHR;
  11959. typedef struct VkCopyMemoryIndirectCommandKHR {
  11960. VkDeviceAddress srcAddress;
  11961. VkDeviceAddress dstAddress;
  11962. VkDeviceSize size;
  11963. } VkCopyMemoryIndirectCommandKHR;
  11964. typedef struct VkCopyMemoryIndirectInfoKHR {
  11965. VkStructureType sType;
  11966. const void* pNext;
  11967. VkAddressCopyFlagsKHR srcCopyFlags;
  11968. VkAddressCopyFlagsKHR dstCopyFlags;
  11969. uint32_t copyCount;
  11970. VkStridedDeviceAddressRangeKHR copyAddressRange;
  11971. } VkCopyMemoryIndirectInfoKHR;
  11972. typedef struct VkCopyMemoryToImageIndirectCommandKHR {
  11973. VkDeviceAddress srcAddress;
  11974. uint32_t bufferRowLength;
  11975. uint32_t bufferImageHeight;
  11976. VkImageSubresourceLayers imageSubresource;
  11977. VkOffset3D imageOffset;
  11978. VkExtent3D imageExtent;
  11979. } VkCopyMemoryToImageIndirectCommandKHR;
  11980. typedef struct VkCopyMemoryToImageIndirectInfoKHR {
  11981. VkStructureType sType;
  11982. const void* pNext;
  11983. VkAddressCopyFlagsKHR srcCopyFlags;
  11984. uint32_t copyCount;
  11985. VkStridedDeviceAddressRangeKHR copyAddressRange;
  11986. VkImage dstImage;
  11987. VkImageLayout dstImageLayout;
  11988. const VkImageSubresourceLayers* pImageSubresources;
  11989. } VkCopyMemoryToImageIndirectInfoKHR;
  11990. typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR {
  11991. VkStructureType sType;
  11992. void* pNext;
  11993. VkBool32 indirectMemoryCopy;
  11994. VkBool32 indirectMemoryToImageCopy;
  11995. } VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR;
  11996. typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR {
  11997. VkStructureType sType;
  11998. void* pNext;
  11999. VkQueueFlags supportedQueues;
  12000. } VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR;
  12001. typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
  12002. typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
  12003. #ifndef VK_NO_PROTOTYPES
  12004. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12005. VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectKHR(
  12006. VkCommandBuffer commandBuffer,
  12007. const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
  12008. #endif
  12009. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12010. VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectKHR(
  12011. VkCommandBuffer commandBuffer,
  12012. const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
  12013. #endif
  12014. #endif
  12015. // VK_KHR_video_encode_intra_refresh is a preprocessor guard. Do not pass it to API calls.
  12016. #define VK_KHR_video_encode_intra_refresh 1
  12017. #define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_SPEC_VERSION 1
  12018. #define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_EXTENSION_NAME "VK_KHR_video_encode_intra_refresh"
  12019. typedef enum VkVideoEncodeIntraRefreshModeFlagBitsKHR {
  12020. VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_NONE_KHR = 0,
  12021. VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_PER_PICTURE_PARTITION_BIT_KHR = 0x00000001,
  12022. VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_BASED_BIT_KHR = 0x00000002,
  12023. VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_ROW_BASED_BIT_KHR = 0x00000004,
  12024. VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_COLUMN_BASED_BIT_KHR = 0x00000008,
  12025. VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  12026. } VkVideoEncodeIntraRefreshModeFlagBitsKHR;
  12027. typedef VkFlags VkVideoEncodeIntraRefreshModeFlagsKHR;
  12028. typedef struct VkVideoEncodeIntraRefreshCapabilitiesKHR {
  12029. VkStructureType sType;
  12030. void* pNext;
  12031. VkVideoEncodeIntraRefreshModeFlagsKHR intraRefreshModes;
  12032. uint32_t maxIntraRefreshCycleDuration;
  12033. uint32_t maxIntraRefreshActiveReferencePictures;
  12034. VkBool32 partitionIndependentIntraRefreshRegions;
  12035. VkBool32 nonRectangularIntraRefreshRegions;
  12036. } VkVideoEncodeIntraRefreshCapabilitiesKHR;
  12037. typedef struct VkVideoEncodeSessionIntraRefreshCreateInfoKHR {
  12038. VkStructureType sType;
  12039. const void* pNext;
  12040. VkVideoEncodeIntraRefreshModeFlagBitsKHR intraRefreshMode;
  12041. } VkVideoEncodeSessionIntraRefreshCreateInfoKHR;
  12042. typedef struct VkVideoEncodeIntraRefreshInfoKHR {
  12043. VkStructureType sType;
  12044. const void* pNext;
  12045. uint32_t intraRefreshCycleDuration;
  12046. uint32_t intraRefreshIndex;
  12047. } VkVideoEncodeIntraRefreshInfoKHR;
  12048. typedef struct VkVideoReferenceIntraRefreshInfoKHR {
  12049. VkStructureType sType;
  12050. const void* pNext;
  12051. uint32_t dirtyIntraRefreshRegions;
  12052. } VkVideoReferenceIntraRefreshInfoKHR;
  12053. typedef struct VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
  12054. VkStructureType sType;
  12055. void* pNext;
  12056. VkBool32 videoEncodeIntraRefresh;
  12057. } VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR;
  12058. // VK_KHR_video_encode_quantization_map is a preprocessor guard. Do not pass it to API calls.
  12059. #define VK_KHR_video_encode_quantization_map 1
  12060. #define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION 2
  12061. #define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME "VK_KHR_video_encode_quantization_map"
  12062. typedef struct VkVideoEncodeQuantizationMapCapabilitiesKHR {
  12063. VkStructureType sType;
  12064. void* pNext;
  12065. VkExtent2D maxQuantizationMapExtent;
  12066. } VkVideoEncodeQuantizationMapCapabilitiesKHR;
  12067. typedef struct VkVideoFormatQuantizationMapPropertiesKHR {
  12068. VkStructureType sType;
  12069. void* pNext;
  12070. VkExtent2D quantizationMapTexelSize;
  12071. } VkVideoFormatQuantizationMapPropertiesKHR;
  12072. typedef struct VkVideoEncodeQuantizationMapInfoKHR {
  12073. VkStructureType sType;
  12074. const void* pNext;
  12075. VkImageView quantizationMap;
  12076. VkExtent2D quantizationMapExtent;
  12077. } VkVideoEncodeQuantizationMapInfoKHR;
  12078. typedef struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
  12079. VkStructureType sType;
  12080. const void* pNext;
  12081. VkExtent2D quantizationMapTexelSize;
  12082. } VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR;
  12083. typedef struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
  12084. VkStructureType sType;
  12085. void* pNext;
  12086. VkBool32 videoEncodeQuantizationMap;
  12087. } VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR;
  12088. typedef struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR {
  12089. VkStructureType sType;
  12090. void* pNext;
  12091. int32_t minQpDelta;
  12092. int32_t maxQpDelta;
  12093. } VkVideoEncodeH264QuantizationMapCapabilitiesKHR;
  12094. typedef struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR {
  12095. VkStructureType sType;
  12096. void* pNext;
  12097. int32_t minQpDelta;
  12098. int32_t maxQpDelta;
  12099. } VkVideoEncodeH265QuantizationMapCapabilitiesKHR;
  12100. typedef struct VkVideoFormatH265QuantizationMapPropertiesKHR {
  12101. VkStructureType sType;
  12102. void* pNext;
  12103. VkVideoEncodeH265CtbSizeFlagsKHR compatibleCtbSizes;
  12104. } VkVideoFormatH265QuantizationMapPropertiesKHR;
  12105. typedef struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR {
  12106. VkStructureType sType;
  12107. void* pNext;
  12108. int32_t minQIndexDelta;
  12109. int32_t maxQIndexDelta;
  12110. } VkVideoEncodeAV1QuantizationMapCapabilitiesKHR;
  12111. typedef struct VkVideoFormatAV1QuantizationMapPropertiesKHR {
  12112. VkStructureType sType;
  12113. void* pNext;
  12114. VkVideoEncodeAV1SuperblockSizeFlagsKHR compatibleSuperblockSizes;
  12115. } VkVideoFormatAV1QuantizationMapPropertiesKHR;
  12116. // VK_KHR_shader_relaxed_extended_instruction is a preprocessor guard. Do not pass it to API calls.
  12117. #define VK_KHR_shader_relaxed_extended_instruction 1
  12118. #define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION 1
  12119. #define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME "VK_KHR_shader_relaxed_extended_instruction"
  12120. typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
  12121. VkStructureType sType;
  12122. void* pNext;
  12123. VkBool32 shaderRelaxedExtendedInstruction;
  12124. } VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
  12125. // VK_KHR_maintenance7 is a preprocessor guard. Do not pass it to API calls.
  12126. #define VK_KHR_maintenance7 1
  12127. #define VK_KHR_MAINTENANCE_7_SPEC_VERSION 1
  12128. #define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
  12129. typedef enum VkPhysicalDeviceLayeredApiKHR {
  12130. VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
  12131. VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
  12132. VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
  12133. VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
  12134. VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4,
  12135. VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR = 0x7FFFFFFF
  12136. } VkPhysicalDeviceLayeredApiKHR;
  12137. typedef struct VkPhysicalDeviceMaintenance7FeaturesKHR {
  12138. VkStructureType sType;
  12139. void* pNext;
  12140. VkBool32 maintenance7;
  12141. } VkPhysicalDeviceMaintenance7FeaturesKHR;
  12142. typedef struct VkPhysicalDeviceMaintenance7PropertiesKHR {
  12143. VkStructureType sType;
  12144. void* pNext;
  12145. VkBool32 robustFragmentShadingRateAttachmentAccess;
  12146. VkBool32 separateDepthStencilAttachmentAccess;
  12147. uint32_t maxDescriptorSetTotalUniformBuffersDynamic;
  12148. uint32_t maxDescriptorSetTotalStorageBuffersDynamic;
  12149. uint32_t maxDescriptorSetTotalBuffersDynamic;
  12150. uint32_t maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
  12151. uint32_t maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
  12152. uint32_t maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
  12153. } VkPhysicalDeviceMaintenance7PropertiesKHR;
  12154. typedef struct VkPhysicalDeviceLayeredApiPropertiesKHR {
  12155. VkStructureType sType;
  12156. void* pNext;
  12157. uint32_t vendorID;
  12158. uint32_t deviceID;
  12159. VkPhysicalDeviceLayeredApiKHR layeredAPI;
  12160. char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
  12161. } VkPhysicalDeviceLayeredApiPropertiesKHR;
  12162. typedef struct VkPhysicalDeviceLayeredApiPropertiesListKHR {
  12163. VkStructureType sType;
  12164. void* pNext;
  12165. uint32_t layeredApiCount;
  12166. VkPhysicalDeviceLayeredApiPropertiesKHR* pLayeredApis;
  12167. } VkPhysicalDeviceLayeredApiPropertiesListKHR;
  12168. typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
  12169. VkStructureType sType;
  12170. void* pNext;
  12171. VkPhysicalDeviceProperties2 properties;
  12172. } VkPhysicalDeviceLayeredApiVulkanPropertiesKHR;
  12173. // VK_KHR_maintenance8 is a preprocessor guard. Do not pass it to API calls.
  12174. #define VK_KHR_maintenance8 1
  12175. #define VK_KHR_MAINTENANCE_8_SPEC_VERSION 1
  12176. #define VK_KHR_MAINTENANCE_8_EXTENSION_NAME "VK_KHR_maintenance8"
  12177. typedef VkFlags64 VkAccessFlags3KHR;
  12178. // Flag bits for VkAccessFlagBits3KHR
  12179. typedef VkFlags64 VkAccessFlagBits3KHR;
  12180. static const VkAccessFlagBits3KHR VK_ACCESS_3_NONE_KHR = 0ULL;
  12181. typedef struct VkMemoryBarrierAccessFlags3KHR {
  12182. VkStructureType sType;
  12183. const void* pNext;
  12184. VkAccessFlags3KHR srcAccessMask3;
  12185. VkAccessFlags3KHR dstAccessMask3;
  12186. } VkMemoryBarrierAccessFlags3KHR;
  12187. typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR {
  12188. VkStructureType sType;
  12189. void* pNext;
  12190. VkBool32 maintenance8;
  12191. } VkPhysicalDeviceMaintenance8FeaturesKHR;
  12192. // VK_KHR_shader_fma is a preprocessor guard. Do not pass it to API calls.
  12193. #define VK_KHR_shader_fma 1
  12194. #define VK_KHR_SHADER_FMA_SPEC_VERSION 1
  12195. #define VK_KHR_SHADER_FMA_EXTENSION_NAME "VK_KHR_shader_fma"
  12196. typedef struct VkPhysicalDeviceShaderFmaFeaturesKHR {
  12197. VkStructureType sType;
  12198. void* pNext;
  12199. VkBool32 shaderFmaFloat16;
  12200. VkBool32 shaderFmaFloat32;
  12201. VkBool32 shaderFmaFloat64;
  12202. } VkPhysicalDeviceShaderFmaFeaturesKHR;
  12203. // VK_KHR_maintenance9 is a preprocessor guard. Do not pass it to API calls.
  12204. #define VK_KHR_maintenance9 1
  12205. #define VK_KHR_MAINTENANCE_9_SPEC_VERSION 1
  12206. #define VK_KHR_MAINTENANCE_9_EXTENSION_NAME "VK_KHR_maintenance9"
  12207. typedef enum VkDefaultVertexAttributeValueKHR {
  12208. VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR = 0,
  12209. VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR = 1,
  12210. VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_MAX_ENUM_KHR = 0x7FFFFFFF
  12211. } VkDefaultVertexAttributeValueKHR;
  12212. typedef struct VkPhysicalDeviceMaintenance9FeaturesKHR {
  12213. VkStructureType sType;
  12214. void* pNext;
  12215. VkBool32 maintenance9;
  12216. } VkPhysicalDeviceMaintenance9FeaturesKHR;
  12217. typedef struct VkPhysicalDeviceMaintenance9PropertiesKHR {
  12218. VkStructureType sType;
  12219. void* pNext;
  12220. VkBool32 image2DViewOf3DSparse;
  12221. VkDefaultVertexAttributeValueKHR defaultVertexAttributeValue;
  12222. } VkPhysicalDeviceMaintenance9PropertiesKHR;
  12223. typedef struct VkQueueFamilyOwnershipTransferPropertiesKHR {
  12224. VkStructureType sType;
  12225. void* pNext;
  12226. uint32_t optimalImageTransferToQueueFamilies;
  12227. } VkQueueFamilyOwnershipTransferPropertiesKHR;
  12228. // VK_KHR_video_maintenance2 is a preprocessor guard. Do not pass it to API calls.
  12229. #define VK_KHR_video_maintenance2 1
  12230. #define VK_KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION 1
  12231. #define VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_video_maintenance2"
  12232. typedef struct VkPhysicalDeviceVideoMaintenance2FeaturesKHR {
  12233. VkStructureType sType;
  12234. void* pNext;
  12235. VkBool32 videoMaintenance2;
  12236. } VkPhysicalDeviceVideoMaintenance2FeaturesKHR;
  12237. typedef struct VkVideoDecodeH264InlineSessionParametersInfoKHR {
  12238. VkStructureType sType;
  12239. const void* pNext;
  12240. const StdVideoH264SequenceParameterSet* pStdSPS;
  12241. const StdVideoH264PictureParameterSet* pStdPPS;
  12242. } VkVideoDecodeH264InlineSessionParametersInfoKHR;
  12243. typedef struct VkVideoDecodeH265InlineSessionParametersInfoKHR {
  12244. VkStructureType sType;
  12245. const void* pNext;
  12246. const StdVideoH265VideoParameterSet* pStdVPS;
  12247. const StdVideoH265SequenceParameterSet* pStdSPS;
  12248. const StdVideoH265PictureParameterSet* pStdPPS;
  12249. } VkVideoDecodeH265InlineSessionParametersInfoKHR;
  12250. typedef struct VkVideoDecodeAV1InlineSessionParametersInfoKHR {
  12251. VkStructureType sType;
  12252. const void* pNext;
  12253. const StdVideoAV1SequenceHeader* pStdSequenceHeader;
  12254. } VkVideoDecodeAV1InlineSessionParametersInfoKHR;
  12255. // VK_KHR_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
  12256. #define VK_KHR_depth_clamp_zero_one 1
  12257. #define VK_KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
  12258. #define VK_KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_KHR_depth_clamp_zero_one"
  12259. typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesKHR {
  12260. VkStructureType sType;
  12261. void* pNext;
  12262. VkBool32 depthClampZeroOne;
  12263. } VkPhysicalDeviceDepthClampZeroOneFeaturesKHR;
  12264. // VK_KHR_robustness2 is a preprocessor guard. Do not pass it to API calls.
  12265. #define VK_KHR_robustness2 1
  12266. #define VK_KHR_ROBUSTNESS_2_SPEC_VERSION 1
  12267. #define VK_KHR_ROBUSTNESS_2_EXTENSION_NAME "VK_KHR_robustness2"
  12268. typedef struct VkPhysicalDeviceRobustness2FeaturesKHR {
  12269. VkStructureType sType;
  12270. void* pNext;
  12271. VkBool32 robustBufferAccess2;
  12272. VkBool32 robustImageAccess2;
  12273. VkBool32 nullDescriptor;
  12274. } VkPhysicalDeviceRobustness2FeaturesKHR;
  12275. typedef struct VkPhysicalDeviceRobustness2PropertiesKHR {
  12276. VkStructureType sType;
  12277. void* pNext;
  12278. VkDeviceSize robustStorageBufferAccessSizeAlignment;
  12279. VkDeviceSize robustUniformBufferAccessSizeAlignment;
  12280. } VkPhysicalDeviceRobustness2PropertiesKHR;
  12281. // VK_KHR_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
  12282. #define VK_KHR_present_mode_fifo_latest_ready 1
  12283. #define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
  12284. #define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_KHR_present_mode_fifo_latest_ready"
  12285. typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
  12286. VkStructureType sType;
  12287. void* pNext;
  12288. VkBool32 presentModeFifoLatestReady;
  12289. } VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR;
  12290. // VK_KHR_maintenance10 is a preprocessor guard. Do not pass it to API calls.
  12291. #define VK_KHR_maintenance10 1
  12292. #define VK_KHR_MAINTENANCE_10_SPEC_VERSION 1
  12293. #define VK_KHR_MAINTENANCE_10_EXTENSION_NAME "VK_KHR_maintenance10"
  12294. typedef enum VkRenderingAttachmentFlagBitsKHR {
  12295. VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR = 0x00000001,
  12296. VK_RENDERING_ATTACHMENT_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
  12297. VK_RENDERING_ATTACHMENT_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000004,
  12298. VK_RENDERING_ATTACHMENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  12299. } VkRenderingAttachmentFlagBitsKHR;
  12300. typedef VkFlags VkRenderingAttachmentFlagsKHR;
  12301. typedef enum VkResolveImageFlagBitsKHR {
  12302. VK_RESOLVE_IMAGE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000001,
  12303. VK_RESOLVE_IMAGE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
  12304. VK_RESOLVE_IMAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  12305. } VkResolveImageFlagBitsKHR;
  12306. typedef VkFlags VkResolveImageFlagsKHR;
  12307. typedef struct VkPhysicalDeviceMaintenance10FeaturesKHR {
  12308. VkStructureType sType;
  12309. void* pNext;
  12310. VkBool32 maintenance10;
  12311. } VkPhysicalDeviceMaintenance10FeaturesKHR;
  12312. typedef struct VkPhysicalDeviceMaintenance10PropertiesKHR {
  12313. VkStructureType sType;
  12314. void* pNext;
  12315. VkBool32 rgba4OpaqueBlackSwizzled;
  12316. VkBool32 resolveSrgbFormatAppliesTransferFunction;
  12317. VkBool32 resolveSrgbFormatSupportsTransferFunctionControl;
  12318. } VkPhysicalDeviceMaintenance10PropertiesKHR;
  12319. typedef struct VkRenderingEndInfoKHR {
  12320. VkStructureType sType;
  12321. const void* pNext;
  12322. } VkRenderingEndInfoKHR;
  12323. typedef struct VkRenderingAttachmentFlagsInfoKHR {
  12324. VkStructureType sType;
  12325. const void* pNext;
  12326. VkRenderingAttachmentFlagsKHR flags;
  12327. } VkRenderingAttachmentFlagsInfoKHR;
  12328. typedef struct VkResolveImageModeInfoKHR {
  12329. VkStructureType sType;
  12330. const void* pNext;
  12331. VkResolveImageFlagsKHR flags;
  12332. VkResolveModeFlagBits resolveMode;
  12333. VkResolveModeFlagBits stencilResolveMode;
  12334. } VkResolveImageModeInfoKHR;
  12335. typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2KHR)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo);
  12336. #ifndef VK_NO_PROTOTYPES
  12337. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12338. VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2KHR(
  12339. VkCommandBuffer commandBuffer,
  12340. const VkRenderingEndInfoKHR* pRenderingEndInfo);
  12341. #endif
  12342. #endif
  12343. // VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
  12344. #define VK_EXT_debug_report 1
  12345. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
  12346. #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
  12347. #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
  12348. typedef enum VkDebugReportObjectTypeEXT {
  12349. VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
  12350. VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
  12351. VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
  12352. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
  12353. VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
  12354. VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
  12355. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
  12356. VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
  12357. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
  12358. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
  12359. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
  12360. VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
  12361. VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
  12362. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
  12363. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
  12364. VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
  12365. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
  12366. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
  12367. VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
  12368. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
  12369. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
  12370. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
  12371. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
  12372. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
  12373. VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
  12374. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
  12375. VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
  12376. VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
  12377. VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
  12378. VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
  12379. VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
  12380. VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
  12381. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
  12382. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
  12383. VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
  12384. VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
  12385. VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
  12386. VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
  12387. VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
  12388. VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
  12389. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
  12390. // VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT is a legacy alias
  12391. VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
  12392. // VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT is a legacy alias
  12393. VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
  12394. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
  12395. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
  12396. VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  12397. } VkDebugReportObjectTypeEXT;
  12398. typedef enum VkDebugReportFlagBitsEXT {
  12399. VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
  12400. VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
  12401. VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
  12402. VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
  12403. VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
  12404. VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  12405. } VkDebugReportFlagBitsEXT;
  12406. typedef VkFlags VkDebugReportFlagsEXT;
  12407. typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
  12408. VkDebugReportFlagsEXT flags,
  12409. VkDebugReportObjectTypeEXT objectType,
  12410. uint64_t object,
  12411. size_t location,
  12412. int32_t messageCode,
  12413. const char* pLayerPrefix,
  12414. const char* pMessage,
  12415. void* pUserData);
  12416. typedef struct VkDebugReportCallbackCreateInfoEXT {
  12417. VkStructureType sType;
  12418. const void* pNext;
  12419. VkDebugReportFlagsEXT flags;
  12420. PFN_vkDebugReportCallbackEXT pfnCallback;
  12421. void* pUserData;
  12422. } VkDebugReportCallbackCreateInfoEXT;
  12423. typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
  12424. typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
  12425. 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);
  12426. #ifndef VK_NO_PROTOTYPES
  12427. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12428. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
  12429. VkInstance instance,
  12430. const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
  12431. const VkAllocationCallbacks* pAllocator,
  12432. VkDebugReportCallbackEXT* pCallback);
  12433. #endif
  12434. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12435. VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
  12436. VkInstance instance,
  12437. VkDebugReportCallbackEXT callback,
  12438. const VkAllocationCallbacks* pAllocator);
  12439. #endif
  12440. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12441. VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
  12442. VkInstance instance,
  12443. VkDebugReportFlagsEXT flags,
  12444. VkDebugReportObjectTypeEXT objectType,
  12445. uint64_t object,
  12446. size_t location,
  12447. int32_t messageCode,
  12448. const char* pLayerPrefix,
  12449. const char* pMessage);
  12450. #endif
  12451. #endif
  12452. // VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
  12453. #define VK_NV_glsl_shader 1
  12454. #define VK_NV_GLSL_SHADER_SPEC_VERSION 1
  12455. #define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
  12456. // VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
  12457. #define VK_EXT_depth_range_unrestricted 1
  12458. #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
  12459. #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
  12460. // VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
  12461. #define VK_IMG_filter_cubic 1
  12462. #define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
  12463. #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
  12464. // VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
  12465. #define VK_AMD_rasterization_order 1
  12466. #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
  12467. #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
  12468. typedef enum VkRasterizationOrderAMD {
  12469. VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
  12470. VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
  12471. VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
  12472. } VkRasterizationOrderAMD;
  12473. typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
  12474. VkStructureType sType;
  12475. const void* pNext;
  12476. VkRasterizationOrderAMD rasterizationOrder;
  12477. } VkPipelineRasterizationStateRasterizationOrderAMD;
  12478. // VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
  12479. #define VK_AMD_shader_trinary_minmax 1
  12480. #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
  12481. #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
  12482. // VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
  12483. #define VK_AMD_shader_explicit_vertex_parameter 1
  12484. #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
  12485. #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
  12486. // VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
  12487. #define VK_EXT_debug_marker 1
  12488. #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
  12489. #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
  12490. typedef struct VkDebugMarkerObjectNameInfoEXT {
  12491. VkStructureType sType;
  12492. const void* pNext;
  12493. VkDebugReportObjectTypeEXT objectType;
  12494. uint64_t object;
  12495. const char* pObjectName;
  12496. } VkDebugMarkerObjectNameInfoEXT;
  12497. typedef struct VkDebugMarkerObjectTagInfoEXT {
  12498. VkStructureType sType;
  12499. const void* pNext;
  12500. VkDebugReportObjectTypeEXT objectType;
  12501. uint64_t object;
  12502. uint64_t tagName;
  12503. size_t tagSize;
  12504. const void* pTag;
  12505. } VkDebugMarkerObjectTagInfoEXT;
  12506. typedef struct VkDebugMarkerMarkerInfoEXT {
  12507. VkStructureType sType;
  12508. const void* pNext;
  12509. const char* pMarkerName;
  12510. float color[4];
  12511. } VkDebugMarkerMarkerInfoEXT;
  12512. typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
  12513. typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
  12514. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  12515. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
  12516. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  12517. #ifndef VK_NO_PROTOTYPES
  12518. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12519. VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
  12520. VkDevice device,
  12521. const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
  12522. #endif
  12523. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12524. VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
  12525. VkDevice device,
  12526. const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
  12527. #endif
  12528. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12529. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
  12530. VkCommandBuffer commandBuffer,
  12531. const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  12532. #endif
  12533. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12534. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
  12535. VkCommandBuffer commandBuffer);
  12536. #endif
  12537. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12538. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
  12539. VkCommandBuffer commandBuffer,
  12540. const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  12541. #endif
  12542. #endif
  12543. // VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
  12544. #define VK_AMD_gcn_shader 1
  12545. #define VK_AMD_GCN_SHADER_SPEC_VERSION 1
  12546. #define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
  12547. // VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
  12548. #define VK_NV_dedicated_allocation 1
  12549. #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
  12550. #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
  12551. typedef struct VkDedicatedAllocationImageCreateInfoNV {
  12552. VkStructureType sType;
  12553. const void* pNext;
  12554. VkBool32 dedicatedAllocation;
  12555. } VkDedicatedAllocationImageCreateInfoNV;
  12556. typedef struct VkDedicatedAllocationBufferCreateInfoNV {
  12557. VkStructureType sType;
  12558. const void* pNext;
  12559. VkBool32 dedicatedAllocation;
  12560. } VkDedicatedAllocationBufferCreateInfoNV;
  12561. typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
  12562. VkStructureType sType;
  12563. const void* pNext;
  12564. VkImage image;
  12565. VkBuffer buffer;
  12566. } VkDedicatedAllocationMemoryAllocateInfoNV;
  12567. // VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
  12568. #define VK_EXT_transform_feedback 1
  12569. #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
  12570. #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
  12571. typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
  12572. typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
  12573. VkStructureType sType;
  12574. void* pNext;
  12575. VkBool32 transformFeedback;
  12576. VkBool32 geometryStreams;
  12577. } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
  12578. typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
  12579. VkStructureType sType;
  12580. void* pNext;
  12581. uint32_t maxTransformFeedbackStreams;
  12582. uint32_t maxTransformFeedbackBuffers;
  12583. VkDeviceSize maxTransformFeedbackBufferSize;
  12584. uint32_t maxTransformFeedbackStreamDataSize;
  12585. uint32_t maxTransformFeedbackBufferDataSize;
  12586. uint32_t maxTransformFeedbackBufferDataStride;
  12587. VkBool32 transformFeedbackQueries;
  12588. VkBool32 transformFeedbackStreamsLinesTriangles;
  12589. VkBool32 transformFeedbackRasterizationStreamSelect;
  12590. VkBool32 transformFeedbackDraw;
  12591. } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
  12592. typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
  12593. VkStructureType sType;
  12594. const void* pNext;
  12595. VkPipelineRasterizationStateStreamCreateFlagsEXT flags;
  12596. uint32_t rasterizationStream;
  12597. } VkPipelineRasterizationStateStreamCreateInfoEXT;
  12598. typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
  12599. typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
  12600. typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
  12601. typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
  12602. typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
  12603. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
  12604. #ifndef VK_NO_PROTOTYPES
  12605. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12606. VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
  12607. VkCommandBuffer commandBuffer,
  12608. uint32_t firstBinding,
  12609. uint32_t bindingCount,
  12610. const VkBuffer* pBuffers,
  12611. const VkDeviceSize* pOffsets,
  12612. const VkDeviceSize* pSizes);
  12613. #endif
  12614. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12615. VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
  12616. VkCommandBuffer commandBuffer,
  12617. uint32_t firstCounterBuffer,
  12618. uint32_t counterBufferCount,
  12619. const VkBuffer* pCounterBuffers,
  12620. const VkDeviceSize* pCounterBufferOffsets);
  12621. #endif
  12622. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12623. VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
  12624. VkCommandBuffer commandBuffer,
  12625. uint32_t firstCounterBuffer,
  12626. uint32_t counterBufferCount,
  12627. const VkBuffer* pCounterBuffers,
  12628. const VkDeviceSize* pCounterBufferOffsets);
  12629. #endif
  12630. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12631. VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
  12632. VkCommandBuffer commandBuffer,
  12633. VkQueryPool queryPool,
  12634. uint32_t query,
  12635. VkQueryControlFlags flags,
  12636. uint32_t index);
  12637. #endif
  12638. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12639. VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
  12640. VkCommandBuffer commandBuffer,
  12641. VkQueryPool queryPool,
  12642. uint32_t query,
  12643. uint32_t index);
  12644. #endif
  12645. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12646. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
  12647. VkCommandBuffer commandBuffer,
  12648. uint32_t instanceCount,
  12649. uint32_t firstInstance,
  12650. VkBuffer counterBuffer,
  12651. VkDeviceSize counterBufferOffset,
  12652. uint32_t counterOffset,
  12653. uint32_t vertexStride);
  12654. #endif
  12655. #endif
  12656. // VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
  12657. #define VK_NVX_binary_import 1
  12658. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
  12659. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
  12660. #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 2
  12661. #define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
  12662. typedef struct VkCuModuleCreateInfoNVX {
  12663. VkStructureType sType;
  12664. const void* pNext;
  12665. size_t dataSize;
  12666. const void* pData;
  12667. } VkCuModuleCreateInfoNVX;
  12668. typedef struct VkCuModuleTexturingModeCreateInfoNVX {
  12669. VkStructureType sType;
  12670. const void* pNext;
  12671. VkBool32 use64bitTexturing;
  12672. } VkCuModuleTexturingModeCreateInfoNVX;
  12673. typedef struct VkCuFunctionCreateInfoNVX {
  12674. VkStructureType sType;
  12675. const void* pNext;
  12676. VkCuModuleNVX module;
  12677. const char* pName;
  12678. } VkCuFunctionCreateInfoNVX;
  12679. typedef struct VkCuLaunchInfoNVX {
  12680. VkStructureType sType;
  12681. const void* pNext;
  12682. VkCuFunctionNVX function;
  12683. uint32_t gridDimX;
  12684. uint32_t gridDimY;
  12685. uint32_t gridDimZ;
  12686. uint32_t blockDimX;
  12687. uint32_t blockDimY;
  12688. uint32_t blockDimZ;
  12689. uint32_t sharedMemBytes;
  12690. size_t paramCount;
  12691. const void* const * pParams;
  12692. size_t extraCount;
  12693. const void* const * pExtras;
  12694. } VkCuLaunchInfoNVX;
  12695. typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
  12696. typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
  12697. typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
  12698. typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
  12699. typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
  12700. #ifndef VK_NO_PROTOTYPES
  12701. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12702. VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
  12703. VkDevice device,
  12704. const VkCuModuleCreateInfoNVX* pCreateInfo,
  12705. const VkAllocationCallbacks* pAllocator,
  12706. VkCuModuleNVX* pModule);
  12707. #endif
  12708. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12709. VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
  12710. VkDevice device,
  12711. const VkCuFunctionCreateInfoNVX* pCreateInfo,
  12712. const VkAllocationCallbacks* pAllocator,
  12713. VkCuFunctionNVX* pFunction);
  12714. #endif
  12715. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12716. VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
  12717. VkDevice device,
  12718. VkCuModuleNVX module,
  12719. const VkAllocationCallbacks* pAllocator);
  12720. #endif
  12721. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12722. VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
  12723. VkDevice device,
  12724. VkCuFunctionNVX function,
  12725. const VkAllocationCallbacks* pAllocator);
  12726. #endif
  12727. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12728. VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
  12729. VkCommandBuffer commandBuffer,
  12730. const VkCuLaunchInfoNVX* pLaunchInfo);
  12731. #endif
  12732. #endif
  12733. // VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
  12734. #define VK_NVX_image_view_handle 1
  12735. #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 3
  12736. #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
  12737. typedef struct VkImageViewHandleInfoNVX {
  12738. VkStructureType sType;
  12739. const void* pNext;
  12740. VkImageView imageView;
  12741. VkDescriptorType descriptorType;
  12742. VkSampler sampler;
  12743. } VkImageViewHandleInfoNVX;
  12744. typedef struct VkImageViewAddressPropertiesNVX {
  12745. VkStructureType sType;
  12746. void* pNext;
  12747. VkDeviceAddress deviceAddress;
  12748. VkDeviceSize size;
  12749. } VkImageViewAddressPropertiesNVX;
  12750. typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
  12751. typedef uint64_t (VKAPI_PTR *PFN_vkGetImageViewHandle64NVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
  12752. typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
  12753. #ifndef VK_NO_PROTOTYPES
  12754. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12755. VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
  12756. VkDevice device,
  12757. const VkImageViewHandleInfoNVX* pInfo);
  12758. #endif
  12759. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12760. VKAPI_ATTR uint64_t VKAPI_CALL vkGetImageViewHandle64NVX(
  12761. VkDevice device,
  12762. const VkImageViewHandleInfoNVX* pInfo);
  12763. #endif
  12764. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12765. VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
  12766. VkDevice device,
  12767. VkImageView imageView,
  12768. VkImageViewAddressPropertiesNVX* pProperties);
  12769. #endif
  12770. #endif
  12771. // VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
  12772. #define VK_AMD_draw_indirect_count 1
  12773. #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
  12774. #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
  12775. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  12776. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  12777. #ifndef VK_NO_PROTOTYPES
  12778. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12779. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
  12780. VkCommandBuffer commandBuffer,
  12781. VkBuffer buffer,
  12782. VkDeviceSize offset,
  12783. VkBuffer countBuffer,
  12784. VkDeviceSize countBufferOffset,
  12785. uint32_t maxDrawCount,
  12786. uint32_t stride);
  12787. #endif
  12788. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12789. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
  12790. VkCommandBuffer commandBuffer,
  12791. VkBuffer buffer,
  12792. VkDeviceSize offset,
  12793. VkBuffer countBuffer,
  12794. VkDeviceSize countBufferOffset,
  12795. uint32_t maxDrawCount,
  12796. uint32_t stride);
  12797. #endif
  12798. #endif
  12799. // VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
  12800. #define VK_AMD_negative_viewport_height 1
  12801. #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
  12802. #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
  12803. // VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
  12804. #define VK_AMD_gpu_shader_half_float 1
  12805. #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
  12806. #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
  12807. // VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
  12808. #define VK_AMD_shader_ballot 1
  12809. #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
  12810. #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
  12811. // VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
  12812. #define VK_AMD_texture_gather_bias_lod 1
  12813. #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
  12814. #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
  12815. typedef struct VkTextureLODGatherFormatPropertiesAMD {
  12816. VkStructureType sType;
  12817. void* pNext;
  12818. VkBool32 supportsTextureGatherLODBiasAMD;
  12819. } VkTextureLODGatherFormatPropertiesAMD;
  12820. // VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
  12821. #define VK_AMD_shader_info 1
  12822. #define VK_AMD_SHADER_INFO_SPEC_VERSION 1
  12823. #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
  12824. typedef enum VkShaderInfoTypeAMD {
  12825. VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
  12826. VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
  12827. VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
  12828. VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
  12829. } VkShaderInfoTypeAMD;
  12830. typedef struct VkShaderResourceUsageAMD {
  12831. uint32_t numUsedVgprs;
  12832. uint32_t numUsedSgprs;
  12833. uint32_t ldsSizePerLocalWorkGroup;
  12834. size_t ldsUsageSizeInBytes;
  12835. size_t scratchMemUsageInBytes;
  12836. } VkShaderResourceUsageAMD;
  12837. typedef struct VkShaderStatisticsInfoAMD {
  12838. VkShaderStageFlags shaderStageMask;
  12839. VkShaderResourceUsageAMD resourceUsage;
  12840. uint32_t numPhysicalVgprs;
  12841. uint32_t numPhysicalSgprs;
  12842. uint32_t numAvailableVgprs;
  12843. uint32_t numAvailableSgprs;
  12844. uint32_t computeWorkGroupSize[3];
  12845. } VkShaderStatisticsInfoAMD;
  12846. typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
  12847. #ifndef VK_NO_PROTOTYPES
  12848. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12849. VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
  12850. VkDevice device,
  12851. VkPipeline pipeline,
  12852. VkShaderStageFlagBits shaderStage,
  12853. VkShaderInfoTypeAMD infoType,
  12854. size_t* pInfoSize,
  12855. void* pInfo);
  12856. #endif
  12857. #endif
  12858. // VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
  12859. #define VK_AMD_shader_image_load_store_lod 1
  12860. #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
  12861. #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
  12862. // VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
  12863. #define VK_NV_corner_sampled_image 1
  12864. #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
  12865. #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
  12866. typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
  12867. VkStructureType sType;
  12868. void* pNext;
  12869. VkBool32 cornerSampledImage;
  12870. } VkPhysicalDeviceCornerSampledImageFeaturesNV;
  12871. // VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
  12872. #define VK_IMG_format_pvrtc 1
  12873. #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
  12874. #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
  12875. // VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
  12876. #define VK_NV_external_memory_capabilities 1
  12877. #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
  12878. #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
  12879. typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
  12880. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
  12881. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
  12882. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
  12883. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
  12884. VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  12885. } VkExternalMemoryHandleTypeFlagBitsNV;
  12886. typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
  12887. typedef enum VkExternalMemoryFeatureFlagBitsNV {
  12888. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
  12889. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
  12890. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
  12891. VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  12892. } VkExternalMemoryFeatureFlagBitsNV;
  12893. typedef VkFlags VkExternalMemoryFeatureFlagsNV;
  12894. typedef struct VkExternalImageFormatPropertiesNV {
  12895. VkImageFormatProperties imageFormatProperties;
  12896. VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
  12897. VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
  12898. VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
  12899. } VkExternalImageFormatPropertiesNV;
  12900. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
  12901. #ifndef VK_NO_PROTOTYPES
  12902. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  12903. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
  12904. VkPhysicalDevice physicalDevice,
  12905. VkFormat format,
  12906. VkImageType type,
  12907. VkImageTiling tiling,
  12908. VkImageUsageFlags usage,
  12909. VkImageCreateFlags flags,
  12910. VkExternalMemoryHandleTypeFlagsNV externalHandleType,
  12911. VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
  12912. #endif
  12913. #endif
  12914. // VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
  12915. #define VK_NV_external_memory 1
  12916. #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
  12917. #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
  12918. typedef struct VkExternalMemoryImageCreateInfoNV {
  12919. VkStructureType sType;
  12920. const void* pNext;
  12921. VkExternalMemoryHandleTypeFlagsNV handleTypes;
  12922. } VkExternalMemoryImageCreateInfoNV;
  12923. typedef struct VkExportMemoryAllocateInfoNV {
  12924. VkStructureType sType;
  12925. const void* pNext;
  12926. VkExternalMemoryHandleTypeFlagsNV handleTypes;
  12927. } VkExportMemoryAllocateInfoNV;
  12928. // VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
  12929. #define VK_EXT_validation_flags 1
  12930. #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
  12931. #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
  12932. typedef enum VkValidationCheckEXT {
  12933. VK_VALIDATION_CHECK_ALL_EXT = 0,
  12934. VK_VALIDATION_CHECK_SHADERS_EXT = 1,
  12935. VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
  12936. } VkValidationCheckEXT;
  12937. typedef struct VkValidationFlagsEXT {
  12938. VkStructureType sType;
  12939. const void* pNext;
  12940. uint32_t disabledValidationCheckCount;
  12941. const VkValidationCheckEXT* pDisabledValidationChecks;
  12942. } VkValidationFlagsEXT;
  12943. // VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
  12944. #define VK_EXT_shader_subgroup_ballot 1
  12945. #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
  12946. #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
  12947. // VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
  12948. #define VK_EXT_shader_subgroup_vote 1
  12949. #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
  12950. #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
  12951. // VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
  12952. #define VK_EXT_texture_compression_astc_hdr 1
  12953. #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
  12954. #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
  12955. typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
  12956. // VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
  12957. #define VK_EXT_astc_decode_mode 1
  12958. #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
  12959. #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
  12960. typedef struct VkImageViewASTCDecodeModeEXT {
  12961. VkStructureType sType;
  12962. const void* pNext;
  12963. VkFormat decodeMode;
  12964. } VkImageViewASTCDecodeModeEXT;
  12965. typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
  12966. VkStructureType sType;
  12967. void* pNext;
  12968. VkBool32 decodeModeSharedExponent;
  12969. } VkPhysicalDeviceASTCDecodeFeaturesEXT;
  12970. // VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
  12971. #define VK_EXT_pipeline_robustness 1
  12972. #define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
  12973. #define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
  12974. typedef VkPipelineRobustnessBufferBehavior VkPipelineRobustnessBufferBehaviorEXT;
  12975. typedef VkPipelineRobustnessImageBehavior VkPipelineRobustnessImageBehaviorEXT;
  12976. typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT;
  12977. typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT;
  12978. typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT;
  12979. // VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
  12980. #define VK_EXT_conditional_rendering 1
  12981. #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
  12982. #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
  12983. typedef enum VkConditionalRenderingFlagBitsEXT {
  12984. VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
  12985. VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  12986. } VkConditionalRenderingFlagBitsEXT;
  12987. typedef VkFlags VkConditionalRenderingFlagsEXT;
  12988. typedef struct VkConditionalRenderingBeginInfoEXT {
  12989. VkStructureType sType;
  12990. const void* pNext;
  12991. VkBuffer buffer;
  12992. VkDeviceSize offset;
  12993. VkConditionalRenderingFlagsEXT flags;
  12994. } VkConditionalRenderingBeginInfoEXT;
  12995. typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
  12996. VkStructureType sType;
  12997. void* pNext;
  12998. VkBool32 conditionalRendering;
  12999. VkBool32 inheritedConditionalRendering;
  13000. } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
  13001. typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
  13002. VkStructureType sType;
  13003. const void* pNext;
  13004. VkBool32 conditionalRenderingEnable;
  13005. } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
  13006. typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
  13007. typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
  13008. #ifndef VK_NO_PROTOTYPES
  13009. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13010. VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
  13011. VkCommandBuffer commandBuffer,
  13012. const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
  13013. #endif
  13014. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13015. VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
  13016. VkCommandBuffer commandBuffer);
  13017. #endif
  13018. #endif
  13019. // VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
  13020. #define VK_NV_clip_space_w_scaling 1
  13021. #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
  13022. #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
  13023. typedef struct VkViewportWScalingNV {
  13024. float xcoeff;
  13025. float ycoeff;
  13026. } VkViewportWScalingNV;
  13027. typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
  13028. VkStructureType sType;
  13029. const void* pNext;
  13030. VkBool32 viewportWScalingEnable;
  13031. uint32_t viewportCount;
  13032. const VkViewportWScalingNV* pViewportWScalings;
  13033. } VkPipelineViewportWScalingStateCreateInfoNV;
  13034. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
  13035. #ifndef VK_NO_PROTOTYPES
  13036. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13037. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
  13038. VkCommandBuffer commandBuffer,
  13039. uint32_t firstViewport,
  13040. uint32_t viewportCount,
  13041. const VkViewportWScalingNV* pViewportWScalings);
  13042. #endif
  13043. #endif
  13044. // VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
  13045. #define VK_EXT_direct_mode_display 1
  13046. #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
  13047. #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
  13048. typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
  13049. #ifndef VK_NO_PROTOTYPES
  13050. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13051. VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
  13052. VkPhysicalDevice physicalDevice,
  13053. VkDisplayKHR display);
  13054. #endif
  13055. #endif
  13056. // VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
  13057. #define VK_EXT_display_surface_counter 1
  13058. #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
  13059. #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
  13060. typedef enum VkSurfaceCounterFlagBitsEXT {
  13061. VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
  13062. // VK_SURFACE_COUNTER_VBLANK_EXT is a legacy alias
  13063. VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
  13064. VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  13065. } VkSurfaceCounterFlagBitsEXT;
  13066. typedef VkFlags VkSurfaceCounterFlagsEXT;
  13067. typedef struct VkSurfaceCapabilities2EXT {
  13068. VkStructureType sType;
  13069. void* pNext;
  13070. uint32_t minImageCount;
  13071. uint32_t maxImageCount;
  13072. VkExtent2D currentExtent;
  13073. VkExtent2D minImageExtent;
  13074. VkExtent2D maxImageExtent;
  13075. uint32_t maxImageArrayLayers;
  13076. VkSurfaceTransformFlagsKHR supportedTransforms;
  13077. VkSurfaceTransformFlagBitsKHR currentTransform;
  13078. VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
  13079. VkImageUsageFlags supportedUsageFlags;
  13080. VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
  13081. } VkSurfaceCapabilities2EXT;
  13082. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
  13083. #ifndef VK_NO_PROTOTYPES
  13084. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13085. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
  13086. VkPhysicalDevice physicalDevice,
  13087. VkSurfaceKHR surface,
  13088. VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
  13089. #endif
  13090. #endif
  13091. // VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
  13092. #define VK_EXT_display_control 1
  13093. #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
  13094. #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
  13095. typedef enum VkDisplayPowerStateEXT {
  13096. VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
  13097. VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
  13098. VK_DISPLAY_POWER_STATE_ON_EXT = 2,
  13099. VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
  13100. } VkDisplayPowerStateEXT;
  13101. typedef enum VkDeviceEventTypeEXT {
  13102. VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
  13103. VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  13104. } VkDeviceEventTypeEXT;
  13105. typedef enum VkDisplayEventTypeEXT {
  13106. VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
  13107. VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  13108. } VkDisplayEventTypeEXT;
  13109. typedef struct VkDisplayPowerInfoEXT {
  13110. VkStructureType sType;
  13111. const void* pNext;
  13112. VkDisplayPowerStateEXT powerState;
  13113. } VkDisplayPowerInfoEXT;
  13114. typedef struct VkDeviceEventInfoEXT {
  13115. VkStructureType sType;
  13116. const void* pNext;
  13117. VkDeviceEventTypeEXT deviceEvent;
  13118. } VkDeviceEventInfoEXT;
  13119. typedef struct VkDisplayEventInfoEXT {
  13120. VkStructureType sType;
  13121. const void* pNext;
  13122. VkDisplayEventTypeEXT displayEvent;
  13123. } VkDisplayEventInfoEXT;
  13124. typedef struct VkSwapchainCounterCreateInfoEXT {
  13125. VkStructureType sType;
  13126. const void* pNext;
  13127. VkSurfaceCounterFlagsEXT surfaceCounters;
  13128. } VkSwapchainCounterCreateInfoEXT;
  13129. typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
  13130. typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  13131. typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  13132. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
  13133. #ifndef VK_NO_PROTOTYPES
  13134. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13135. VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
  13136. VkDevice device,
  13137. VkDisplayKHR display,
  13138. const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
  13139. #endif
  13140. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13141. VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
  13142. VkDevice device,
  13143. const VkDeviceEventInfoEXT* pDeviceEventInfo,
  13144. const VkAllocationCallbacks* pAllocator,
  13145. VkFence* pFence);
  13146. #endif
  13147. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13148. VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
  13149. VkDevice device,
  13150. VkDisplayKHR display,
  13151. const VkDisplayEventInfoEXT* pDisplayEventInfo,
  13152. const VkAllocationCallbacks* pAllocator,
  13153. VkFence* pFence);
  13154. #endif
  13155. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13156. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
  13157. VkDevice device,
  13158. VkSwapchainKHR swapchain,
  13159. VkSurfaceCounterFlagBitsEXT counter,
  13160. uint64_t* pCounterValue);
  13161. #endif
  13162. #endif
  13163. // VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
  13164. #define VK_GOOGLE_display_timing 1
  13165. #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
  13166. #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
  13167. typedef struct VkRefreshCycleDurationGOOGLE {
  13168. uint64_t refreshDuration;
  13169. } VkRefreshCycleDurationGOOGLE;
  13170. typedef struct VkPastPresentationTimingGOOGLE {
  13171. uint32_t presentID;
  13172. uint64_t desiredPresentTime;
  13173. uint64_t actualPresentTime;
  13174. uint64_t earliestPresentTime;
  13175. uint64_t presentMargin;
  13176. } VkPastPresentationTimingGOOGLE;
  13177. typedef struct VkPresentTimeGOOGLE {
  13178. uint32_t presentID;
  13179. uint64_t desiredPresentTime;
  13180. } VkPresentTimeGOOGLE;
  13181. typedef struct VkPresentTimesInfoGOOGLE {
  13182. VkStructureType sType;
  13183. const void* pNext;
  13184. uint32_t swapchainCount;
  13185. const VkPresentTimeGOOGLE* pTimes;
  13186. } VkPresentTimesInfoGOOGLE;
  13187. typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
  13188. typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
  13189. #ifndef VK_NO_PROTOTYPES
  13190. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13191. VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
  13192. VkDevice device,
  13193. VkSwapchainKHR swapchain,
  13194. VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
  13195. #endif
  13196. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13197. VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
  13198. VkDevice device,
  13199. VkSwapchainKHR swapchain,
  13200. uint32_t* pPresentationTimingCount,
  13201. VkPastPresentationTimingGOOGLE* pPresentationTimings);
  13202. #endif
  13203. #endif
  13204. // VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
  13205. #define VK_NV_sample_mask_override_coverage 1
  13206. #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
  13207. #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
  13208. // VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
  13209. #define VK_NV_geometry_shader_passthrough 1
  13210. #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
  13211. #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
  13212. // VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
  13213. #define VK_NV_viewport_array2 1
  13214. #define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
  13215. #define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
  13216. // VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION is a legacy alias
  13217. #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
  13218. // VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME is a legacy alias
  13219. #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
  13220. // VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
  13221. #define VK_NVX_multiview_per_view_attributes 1
  13222. #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
  13223. #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
  13224. typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
  13225. VkStructureType sType;
  13226. void* pNext;
  13227. VkBool32 perViewPositionAllComponents;
  13228. } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  13229. typedef struct VkMultiviewPerViewAttributesInfoNVX {
  13230. VkStructureType sType;
  13231. const void* pNext;
  13232. VkBool32 perViewAttributes;
  13233. VkBool32 perViewAttributesPositionXOnly;
  13234. } VkMultiviewPerViewAttributesInfoNVX;
  13235. // VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
  13236. #define VK_NV_viewport_swizzle 1
  13237. #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
  13238. #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
  13239. typedef enum VkViewportCoordinateSwizzleNV {
  13240. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
  13241. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
  13242. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
  13243. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
  13244. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
  13245. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
  13246. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
  13247. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
  13248. VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
  13249. } VkViewportCoordinateSwizzleNV;
  13250. typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
  13251. typedef struct VkViewportSwizzleNV {
  13252. VkViewportCoordinateSwizzleNV x;
  13253. VkViewportCoordinateSwizzleNV y;
  13254. VkViewportCoordinateSwizzleNV z;
  13255. VkViewportCoordinateSwizzleNV w;
  13256. } VkViewportSwizzleNV;
  13257. typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
  13258. VkStructureType sType;
  13259. const void* pNext;
  13260. VkPipelineViewportSwizzleStateCreateFlagsNV flags;
  13261. uint32_t viewportCount;
  13262. const VkViewportSwizzleNV* pViewportSwizzles;
  13263. } VkPipelineViewportSwizzleStateCreateInfoNV;
  13264. // VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
  13265. #define VK_EXT_discard_rectangles 1
  13266. #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
  13267. #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
  13268. typedef enum VkDiscardRectangleModeEXT {
  13269. VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
  13270. VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
  13271. VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  13272. } VkDiscardRectangleModeEXT;
  13273. typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
  13274. typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
  13275. VkStructureType sType;
  13276. void* pNext;
  13277. uint32_t maxDiscardRectangles;
  13278. } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
  13279. typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
  13280. VkStructureType sType;
  13281. const void* pNext;
  13282. VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
  13283. VkDiscardRectangleModeEXT discardRectangleMode;
  13284. uint32_t discardRectangleCount;
  13285. const VkRect2D* pDiscardRectangles;
  13286. } VkPipelineDiscardRectangleStateCreateInfoEXT;
  13287. typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
  13288. typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
  13289. typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
  13290. #ifndef VK_NO_PROTOTYPES
  13291. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13292. VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
  13293. VkCommandBuffer commandBuffer,
  13294. uint32_t firstDiscardRectangle,
  13295. uint32_t discardRectangleCount,
  13296. const VkRect2D* pDiscardRectangles);
  13297. #endif
  13298. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13299. VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
  13300. VkCommandBuffer commandBuffer,
  13301. VkBool32 discardRectangleEnable);
  13302. #endif
  13303. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13304. VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
  13305. VkCommandBuffer commandBuffer,
  13306. VkDiscardRectangleModeEXT discardRectangleMode);
  13307. #endif
  13308. #endif
  13309. // VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
  13310. #define VK_EXT_conservative_rasterization 1
  13311. #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
  13312. #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
  13313. typedef enum VkConservativeRasterizationModeEXT {
  13314. VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
  13315. VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
  13316. VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
  13317. VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  13318. } VkConservativeRasterizationModeEXT;
  13319. typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
  13320. typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
  13321. VkStructureType sType;
  13322. void* pNext;
  13323. float primitiveOverestimationSize;
  13324. float maxExtraPrimitiveOverestimationSize;
  13325. float extraPrimitiveOverestimationSizeGranularity;
  13326. VkBool32 primitiveUnderestimation;
  13327. VkBool32 conservativePointAndLineRasterization;
  13328. VkBool32 degenerateTrianglesRasterized;
  13329. VkBool32 degenerateLinesRasterized;
  13330. VkBool32 fullyCoveredFragmentShaderInputVariable;
  13331. VkBool32 conservativeRasterizationPostDepthCoverage;
  13332. } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
  13333. typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
  13334. VkStructureType sType;
  13335. const void* pNext;
  13336. VkPipelineRasterizationConservativeStateCreateFlagsEXT flags;
  13337. VkConservativeRasterizationModeEXT conservativeRasterizationMode;
  13338. float extraPrimitiveOverestimationSize;
  13339. } VkPipelineRasterizationConservativeStateCreateInfoEXT;
  13340. // VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
  13341. #define VK_EXT_depth_clip_enable 1
  13342. #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
  13343. #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
  13344. typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
  13345. typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
  13346. VkStructureType sType;
  13347. void* pNext;
  13348. VkBool32 depthClipEnable;
  13349. } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
  13350. typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
  13351. VkStructureType sType;
  13352. const void* pNext;
  13353. VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags;
  13354. VkBool32 depthClipEnable;
  13355. } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
  13356. // VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
  13357. #define VK_EXT_swapchain_colorspace 1
  13358. #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 5
  13359. #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
  13360. // VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
  13361. #define VK_EXT_hdr_metadata 1
  13362. #define VK_EXT_HDR_METADATA_SPEC_VERSION 3
  13363. #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
  13364. typedef struct VkXYColorEXT {
  13365. float x;
  13366. float y;
  13367. } VkXYColorEXT;
  13368. typedef struct VkHdrMetadataEXT {
  13369. VkStructureType sType;
  13370. const void* pNext;
  13371. VkXYColorEXT displayPrimaryRed;
  13372. VkXYColorEXT displayPrimaryGreen;
  13373. VkXYColorEXT displayPrimaryBlue;
  13374. VkXYColorEXT whitePoint;
  13375. float maxLuminance;
  13376. float minLuminance;
  13377. float maxContentLightLevel;
  13378. float maxFrameAverageLightLevel;
  13379. } VkHdrMetadataEXT;
  13380. typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
  13381. #ifndef VK_NO_PROTOTYPES
  13382. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13383. VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
  13384. VkDevice device,
  13385. uint32_t swapchainCount,
  13386. const VkSwapchainKHR* pSwapchains,
  13387. const VkHdrMetadataEXT* pMetadata);
  13388. #endif
  13389. #endif
  13390. // VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
  13391. #define VK_IMG_relaxed_line_rasterization 1
  13392. #define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
  13393. #define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
  13394. typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
  13395. VkStructureType sType;
  13396. void* pNext;
  13397. VkBool32 relaxedLineRasterization;
  13398. } VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
  13399. // VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
  13400. #define VK_EXT_external_memory_dma_buf 1
  13401. #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
  13402. #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
  13403. // VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
  13404. #define VK_EXT_queue_family_foreign 1
  13405. #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
  13406. #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
  13407. #define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U)
  13408. // VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
  13409. #define VK_EXT_debug_utils 1
  13410. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
  13411. #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
  13412. #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
  13413. typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
  13414. typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
  13415. VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
  13416. VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
  13417. VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
  13418. VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
  13419. VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  13420. } VkDebugUtilsMessageSeverityFlagBitsEXT;
  13421. typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
  13422. VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
  13423. VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
  13424. VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
  13425. VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
  13426. VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  13427. } VkDebugUtilsMessageTypeFlagBitsEXT;
  13428. typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
  13429. typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
  13430. typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
  13431. typedef struct VkDebugUtilsLabelEXT {
  13432. VkStructureType sType;
  13433. const void* pNext;
  13434. const char* pLabelName;
  13435. float color[4];
  13436. } VkDebugUtilsLabelEXT;
  13437. typedef struct VkDebugUtilsObjectNameInfoEXT {
  13438. VkStructureType sType;
  13439. const void* pNext;
  13440. VkObjectType objectType;
  13441. uint64_t objectHandle;
  13442. const char* pObjectName;
  13443. } VkDebugUtilsObjectNameInfoEXT;
  13444. typedef struct VkDebugUtilsMessengerCallbackDataEXT {
  13445. VkStructureType sType;
  13446. const void* pNext;
  13447. VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
  13448. const char* pMessageIdName;
  13449. int32_t messageIdNumber;
  13450. const char* pMessage;
  13451. uint32_t queueLabelCount;
  13452. const VkDebugUtilsLabelEXT* pQueueLabels;
  13453. uint32_t cmdBufLabelCount;
  13454. const VkDebugUtilsLabelEXT* pCmdBufLabels;
  13455. uint32_t objectCount;
  13456. const VkDebugUtilsObjectNameInfoEXT* pObjects;
  13457. } VkDebugUtilsMessengerCallbackDataEXT;
  13458. typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
  13459. VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
  13460. VkDebugUtilsMessageTypeFlagsEXT messageTypes,
  13461. const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
  13462. void* pUserData);
  13463. typedef struct VkDebugUtilsMessengerCreateInfoEXT {
  13464. VkStructureType sType;
  13465. const void* pNext;
  13466. VkDebugUtilsMessengerCreateFlagsEXT flags;
  13467. VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
  13468. VkDebugUtilsMessageTypeFlagsEXT messageType;
  13469. PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
  13470. void* pUserData;
  13471. } VkDebugUtilsMessengerCreateInfoEXT;
  13472. typedef struct VkDebugUtilsObjectTagInfoEXT {
  13473. VkStructureType sType;
  13474. const void* pNext;
  13475. VkObjectType objectType;
  13476. uint64_t objectHandle;
  13477. uint64_t tagName;
  13478. size_t tagSize;
  13479. const void* pTag;
  13480. } VkDebugUtilsObjectTagInfoEXT;
  13481. typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
  13482. typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
  13483. typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
  13484. typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
  13485. typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
  13486. typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
  13487. typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
  13488. typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
  13489. typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
  13490. typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
  13491. typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
  13492. #ifndef VK_NO_PROTOTYPES
  13493. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13494. VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
  13495. VkDevice device,
  13496. const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
  13497. #endif
  13498. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13499. VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
  13500. VkDevice device,
  13501. const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
  13502. #endif
  13503. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13504. VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
  13505. VkQueue queue,
  13506. const VkDebugUtilsLabelEXT* pLabelInfo);
  13507. #endif
  13508. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13509. VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
  13510. VkQueue queue);
  13511. #endif
  13512. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13513. VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
  13514. VkQueue queue,
  13515. const VkDebugUtilsLabelEXT* pLabelInfo);
  13516. #endif
  13517. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13518. VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
  13519. VkCommandBuffer commandBuffer,
  13520. const VkDebugUtilsLabelEXT* pLabelInfo);
  13521. #endif
  13522. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13523. VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
  13524. VkCommandBuffer commandBuffer);
  13525. #endif
  13526. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13527. VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
  13528. VkCommandBuffer commandBuffer,
  13529. const VkDebugUtilsLabelEXT* pLabelInfo);
  13530. #endif
  13531. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13532. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
  13533. VkInstance instance,
  13534. const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
  13535. const VkAllocationCallbacks* pAllocator,
  13536. VkDebugUtilsMessengerEXT* pMessenger);
  13537. #endif
  13538. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13539. VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
  13540. VkInstance instance,
  13541. VkDebugUtilsMessengerEXT messenger,
  13542. const VkAllocationCallbacks* pAllocator);
  13543. #endif
  13544. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13545. VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
  13546. VkInstance instance,
  13547. VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
  13548. VkDebugUtilsMessageTypeFlagsEXT messageTypes,
  13549. const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
  13550. #endif
  13551. #endif
  13552. // VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
  13553. #define VK_EXT_sampler_filter_minmax 1
  13554. #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
  13555. #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
  13556. typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
  13557. typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
  13558. typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
  13559. // VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
  13560. #define VK_AMD_gpu_shader_int16 1
  13561. #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
  13562. #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
  13563. // VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
  13564. #define VK_AMD_mixed_attachment_samples 1
  13565. #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
  13566. #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
  13567. typedef struct VkAttachmentSampleCountInfoAMD {
  13568. VkStructureType sType;
  13569. const void* pNext;
  13570. uint32_t colorAttachmentCount;
  13571. const VkSampleCountFlagBits* pColorAttachmentSamples;
  13572. VkSampleCountFlagBits depthStencilAttachmentSamples;
  13573. } VkAttachmentSampleCountInfoAMD;
  13574. // VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
  13575. #define VK_AMD_shader_fragment_mask 1
  13576. #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
  13577. #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
  13578. // VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
  13579. #define VK_EXT_inline_uniform_block 1
  13580. #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
  13581. #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
  13582. typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
  13583. typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
  13584. typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
  13585. typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
  13586. // VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
  13587. #define VK_EXT_shader_stencil_export 1
  13588. #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
  13589. #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
  13590. // VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
  13591. #define VK_EXT_sample_locations 1
  13592. #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
  13593. #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
  13594. typedef struct VkSampleLocationEXT {
  13595. float x;
  13596. float y;
  13597. } VkSampleLocationEXT;
  13598. typedef struct VkSampleLocationsInfoEXT {
  13599. VkStructureType sType;
  13600. const void* pNext;
  13601. VkSampleCountFlagBits sampleLocationsPerPixel;
  13602. VkExtent2D sampleLocationGridSize;
  13603. uint32_t sampleLocationsCount;
  13604. const VkSampleLocationEXT* pSampleLocations;
  13605. } VkSampleLocationsInfoEXT;
  13606. typedef struct VkAttachmentSampleLocationsEXT {
  13607. uint32_t attachmentIndex;
  13608. VkSampleLocationsInfoEXT sampleLocationsInfo;
  13609. } VkAttachmentSampleLocationsEXT;
  13610. typedef struct VkSubpassSampleLocationsEXT {
  13611. uint32_t subpassIndex;
  13612. VkSampleLocationsInfoEXT sampleLocationsInfo;
  13613. } VkSubpassSampleLocationsEXT;
  13614. typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
  13615. VkStructureType sType;
  13616. const void* pNext;
  13617. uint32_t attachmentInitialSampleLocationsCount;
  13618. const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
  13619. uint32_t postSubpassSampleLocationsCount;
  13620. const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
  13621. } VkRenderPassSampleLocationsBeginInfoEXT;
  13622. typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
  13623. VkStructureType sType;
  13624. const void* pNext;
  13625. VkBool32 sampleLocationsEnable;
  13626. VkSampleLocationsInfoEXT sampleLocationsInfo;
  13627. } VkPipelineSampleLocationsStateCreateInfoEXT;
  13628. typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
  13629. VkStructureType sType;
  13630. void* pNext;
  13631. VkSampleCountFlags sampleLocationSampleCounts;
  13632. VkExtent2D maxSampleLocationGridSize;
  13633. float sampleLocationCoordinateRange[2];
  13634. uint32_t sampleLocationSubPixelBits;
  13635. VkBool32 variableSampleLocations;
  13636. } VkPhysicalDeviceSampleLocationsPropertiesEXT;
  13637. typedef struct VkMultisamplePropertiesEXT {
  13638. VkStructureType sType;
  13639. void* pNext;
  13640. VkExtent2D maxSampleLocationGridSize;
  13641. } VkMultisamplePropertiesEXT;
  13642. typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
  13643. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
  13644. #ifndef VK_NO_PROTOTYPES
  13645. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13646. VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
  13647. VkCommandBuffer commandBuffer,
  13648. const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
  13649. #endif
  13650. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13651. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
  13652. VkPhysicalDevice physicalDevice,
  13653. VkSampleCountFlagBits samples,
  13654. VkMultisamplePropertiesEXT* pMultisampleProperties);
  13655. #endif
  13656. #endif
  13657. // VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
  13658. #define VK_EXT_blend_operation_advanced 1
  13659. #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
  13660. #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
  13661. typedef enum VkBlendOverlapEXT {
  13662. VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
  13663. VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
  13664. VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
  13665. VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
  13666. } VkBlendOverlapEXT;
  13667. typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
  13668. VkStructureType sType;
  13669. void* pNext;
  13670. VkBool32 advancedBlendCoherentOperations;
  13671. } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  13672. typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
  13673. VkStructureType sType;
  13674. void* pNext;
  13675. uint32_t advancedBlendMaxColorAttachments;
  13676. VkBool32 advancedBlendIndependentBlend;
  13677. VkBool32 advancedBlendNonPremultipliedSrcColor;
  13678. VkBool32 advancedBlendNonPremultipliedDstColor;
  13679. VkBool32 advancedBlendCorrelatedOverlap;
  13680. VkBool32 advancedBlendAllOperations;
  13681. } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  13682. typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
  13683. VkStructureType sType;
  13684. const void* pNext;
  13685. VkBool32 srcPremultiplied;
  13686. VkBool32 dstPremultiplied;
  13687. VkBlendOverlapEXT blendOverlap;
  13688. } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
  13689. // VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
  13690. #define VK_NV_fragment_coverage_to_color 1
  13691. #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
  13692. #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
  13693. typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
  13694. typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
  13695. VkStructureType sType;
  13696. const void* pNext;
  13697. VkPipelineCoverageToColorStateCreateFlagsNV flags;
  13698. VkBool32 coverageToColorEnable;
  13699. uint32_t coverageToColorLocation;
  13700. } VkPipelineCoverageToColorStateCreateInfoNV;
  13701. // VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
  13702. #define VK_NV_framebuffer_mixed_samples 1
  13703. #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
  13704. #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
  13705. typedef enum VkCoverageModulationModeNV {
  13706. VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
  13707. VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
  13708. VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
  13709. VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
  13710. VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  13711. } VkCoverageModulationModeNV;
  13712. typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
  13713. typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
  13714. VkStructureType sType;
  13715. const void* pNext;
  13716. VkPipelineCoverageModulationStateCreateFlagsNV flags;
  13717. VkCoverageModulationModeNV coverageModulationMode;
  13718. VkBool32 coverageModulationTableEnable;
  13719. uint32_t coverageModulationTableCount;
  13720. const float* pCoverageModulationTable;
  13721. } VkPipelineCoverageModulationStateCreateInfoNV;
  13722. typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
  13723. // VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
  13724. #define VK_NV_fill_rectangle 1
  13725. #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
  13726. #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
  13727. // VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
  13728. #define VK_NV_shader_sm_builtins 1
  13729. #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
  13730. #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
  13731. typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
  13732. VkStructureType sType;
  13733. void* pNext;
  13734. uint32_t shaderSMCount;
  13735. uint32_t shaderWarpsPerSM;
  13736. } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
  13737. typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
  13738. VkStructureType sType;
  13739. void* pNext;
  13740. VkBool32 shaderSMBuiltins;
  13741. } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
  13742. // VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
  13743. #define VK_EXT_post_depth_coverage 1
  13744. #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
  13745. #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
  13746. // VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
  13747. #define VK_EXT_image_drm_format_modifier 1
  13748. #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
  13749. #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
  13750. typedef struct VkDrmFormatModifierPropertiesEXT {
  13751. uint64_t drmFormatModifier;
  13752. uint32_t drmFormatModifierPlaneCount;
  13753. VkFormatFeatureFlags drmFormatModifierTilingFeatures;
  13754. } VkDrmFormatModifierPropertiesEXT;
  13755. typedef struct VkDrmFormatModifierPropertiesListEXT {
  13756. VkStructureType sType;
  13757. void* pNext;
  13758. uint32_t drmFormatModifierCount;
  13759. VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
  13760. } VkDrmFormatModifierPropertiesListEXT;
  13761. typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
  13762. VkStructureType sType;
  13763. const void* pNext;
  13764. uint64_t drmFormatModifier;
  13765. VkSharingMode sharingMode;
  13766. uint32_t queueFamilyIndexCount;
  13767. const uint32_t* pQueueFamilyIndices;
  13768. } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
  13769. typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
  13770. VkStructureType sType;
  13771. const void* pNext;
  13772. uint32_t drmFormatModifierCount;
  13773. const uint64_t* pDrmFormatModifiers;
  13774. } VkImageDrmFormatModifierListCreateInfoEXT;
  13775. typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
  13776. VkStructureType sType;
  13777. const void* pNext;
  13778. uint64_t drmFormatModifier;
  13779. uint32_t drmFormatModifierPlaneCount;
  13780. const VkSubresourceLayout* pPlaneLayouts;
  13781. } VkImageDrmFormatModifierExplicitCreateInfoEXT;
  13782. typedef struct VkImageDrmFormatModifierPropertiesEXT {
  13783. VkStructureType sType;
  13784. void* pNext;
  13785. uint64_t drmFormatModifier;
  13786. } VkImageDrmFormatModifierPropertiesEXT;
  13787. typedef struct VkDrmFormatModifierProperties2EXT {
  13788. uint64_t drmFormatModifier;
  13789. uint32_t drmFormatModifierPlaneCount;
  13790. VkFormatFeatureFlags2 drmFormatModifierTilingFeatures;
  13791. } VkDrmFormatModifierProperties2EXT;
  13792. typedef struct VkDrmFormatModifierPropertiesList2EXT {
  13793. VkStructureType sType;
  13794. void* pNext;
  13795. uint32_t drmFormatModifierCount;
  13796. VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties;
  13797. } VkDrmFormatModifierPropertiesList2EXT;
  13798. typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
  13799. #ifndef VK_NO_PROTOTYPES
  13800. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13801. VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
  13802. VkDevice device,
  13803. VkImage image,
  13804. VkImageDrmFormatModifierPropertiesEXT* pProperties);
  13805. #endif
  13806. #endif
  13807. // VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
  13808. #define VK_EXT_validation_cache 1
  13809. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
  13810. #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
  13811. #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
  13812. typedef enum VkValidationCacheHeaderVersionEXT {
  13813. VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
  13814. VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
  13815. } VkValidationCacheHeaderVersionEXT;
  13816. typedef VkFlags VkValidationCacheCreateFlagsEXT;
  13817. typedef struct VkValidationCacheCreateInfoEXT {
  13818. VkStructureType sType;
  13819. const void* pNext;
  13820. VkValidationCacheCreateFlagsEXT flags;
  13821. size_t initialDataSize;
  13822. const void* pInitialData;
  13823. } VkValidationCacheCreateInfoEXT;
  13824. typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
  13825. VkStructureType sType;
  13826. const void* pNext;
  13827. VkValidationCacheEXT validationCache;
  13828. } VkShaderModuleValidationCacheCreateInfoEXT;
  13829. typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
  13830. typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
  13831. typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
  13832. typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
  13833. #ifndef VK_NO_PROTOTYPES
  13834. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13835. VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
  13836. VkDevice device,
  13837. const VkValidationCacheCreateInfoEXT* pCreateInfo,
  13838. const VkAllocationCallbacks* pAllocator,
  13839. VkValidationCacheEXT* pValidationCache);
  13840. #endif
  13841. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13842. VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
  13843. VkDevice device,
  13844. VkValidationCacheEXT validationCache,
  13845. const VkAllocationCallbacks* pAllocator);
  13846. #endif
  13847. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13848. VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
  13849. VkDevice device,
  13850. VkValidationCacheEXT dstCache,
  13851. uint32_t srcCacheCount,
  13852. const VkValidationCacheEXT* pSrcCaches);
  13853. #endif
  13854. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13855. VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
  13856. VkDevice device,
  13857. VkValidationCacheEXT validationCache,
  13858. size_t* pDataSize,
  13859. void* pData);
  13860. #endif
  13861. #endif
  13862. // VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
  13863. #define VK_EXT_descriptor_indexing 1
  13864. #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
  13865. #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
  13866. typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
  13867. typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
  13868. typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
  13869. typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
  13870. typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
  13871. typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
  13872. typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
  13873. // VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
  13874. #define VK_EXT_shader_viewport_index_layer 1
  13875. #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
  13876. #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
  13877. // VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
  13878. #define VK_NV_shading_rate_image 1
  13879. #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
  13880. #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
  13881. typedef enum VkShadingRatePaletteEntryNV {
  13882. VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
  13883. VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
  13884. VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
  13885. VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
  13886. VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
  13887. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
  13888. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
  13889. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
  13890. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
  13891. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
  13892. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
  13893. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
  13894. VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
  13895. } VkShadingRatePaletteEntryNV;
  13896. typedef enum VkCoarseSampleOrderTypeNV {
  13897. VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
  13898. VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
  13899. VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
  13900. VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
  13901. VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  13902. } VkCoarseSampleOrderTypeNV;
  13903. typedef struct VkShadingRatePaletteNV {
  13904. uint32_t shadingRatePaletteEntryCount;
  13905. const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
  13906. } VkShadingRatePaletteNV;
  13907. typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
  13908. VkStructureType sType;
  13909. const void* pNext;
  13910. VkBool32 shadingRateImageEnable;
  13911. uint32_t viewportCount;
  13912. const VkShadingRatePaletteNV* pShadingRatePalettes;
  13913. } VkPipelineViewportShadingRateImageStateCreateInfoNV;
  13914. typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
  13915. VkStructureType sType;
  13916. void* pNext;
  13917. VkBool32 shadingRateImage;
  13918. VkBool32 shadingRateCoarseSampleOrder;
  13919. } VkPhysicalDeviceShadingRateImageFeaturesNV;
  13920. typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
  13921. VkStructureType sType;
  13922. void* pNext;
  13923. VkExtent2D shadingRateTexelSize;
  13924. uint32_t shadingRatePaletteSize;
  13925. uint32_t shadingRateMaxCoarseSamples;
  13926. } VkPhysicalDeviceShadingRateImagePropertiesNV;
  13927. typedef struct VkCoarseSampleLocationNV {
  13928. uint32_t pixelX;
  13929. uint32_t pixelY;
  13930. uint32_t sample;
  13931. } VkCoarseSampleLocationNV;
  13932. typedef struct VkCoarseSampleOrderCustomNV {
  13933. VkShadingRatePaletteEntryNV shadingRate;
  13934. uint32_t sampleCount;
  13935. uint32_t sampleLocationCount;
  13936. const VkCoarseSampleLocationNV* pSampleLocations;
  13937. } VkCoarseSampleOrderCustomNV;
  13938. typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
  13939. VkStructureType sType;
  13940. const void* pNext;
  13941. VkCoarseSampleOrderTypeNV sampleOrderType;
  13942. uint32_t customSampleOrderCount;
  13943. const VkCoarseSampleOrderCustomNV* pCustomSampleOrders;
  13944. } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
  13945. typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
  13946. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
  13947. typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
  13948. #ifndef VK_NO_PROTOTYPES
  13949. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13950. VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
  13951. VkCommandBuffer commandBuffer,
  13952. VkImageView imageView,
  13953. VkImageLayout imageLayout);
  13954. #endif
  13955. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13956. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
  13957. VkCommandBuffer commandBuffer,
  13958. uint32_t firstViewport,
  13959. uint32_t viewportCount,
  13960. const VkShadingRatePaletteNV* pShadingRatePalettes);
  13961. #endif
  13962. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  13963. VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
  13964. VkCommandBuffer commandBuffer,
  13965. VkCoarseSampleOrderTypeNV sampleOrderType,
  13966. uint32_t customSampleOrderCount,
  13967. const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
  13968. #endif
  13969. #endif
  13970. // VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
  13971. #define VK_NV_ray_tracing 1
  13972. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
  13973. #define VK_NV_RAY_TRACING_SPEC_VERSION 3
  13974. #define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
  13975. #define VK_SHADER_UNUSED_KHR (~0U)
  13976. #define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR
  13977. typedef enum VkRayTracingShaderGroupTypeKHR {
  13978. VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
  13979. VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
  13980. VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
  13981. VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
  13982. VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
  13983. VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
  13984. VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  13985. } VkRayTracingShaderGroupTypeKHR;
  13986. typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
  13987. typedef enum VkGeometryTypeKHR {
  13988. VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
  13989. VK_GEOMETRY_TYPE_AABBS_KHR = 1,
  13990. VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
  13991. VK_GEOMETRY_TYPE_SPHERES_NV = 1000429004,
  13992. VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV = 1000429005,
  13993. #ifdef VK_ENABLE_BETA_EXTENSIONS
  13994. VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX = 1000478000,
  13995. #endif
  13996. VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
  13997. VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
  13998. VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  13999. } VkGeometryTypeKHR;
  14000. typedef VkGeometryTypeKHR VkGeometryTypeNV;
  14001. typedef enum VkAccelerationStructureTypeKHR {
  14002. VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
  14003. VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
  14004. VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
  14005. VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
  14006. VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
  14007. VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  14008. } VkAccelerationStructureTypeKHR;
  14009. typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
  14010. typedef enum VkCopyAccelerationStructureModeKHR {
  14011. VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
  14012. VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
  14013. VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
  14014. VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
  14015. VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
  14016. VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
  14017. VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  14018. } VkCopyAccelerationStructureModeKHR;
  14019. typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
  14020. typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
  14021. VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
  14022. VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
  14023. VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
  14024. VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  14025. } VkAccelerationStructureMemoryRequirementsTypeNV;
  14026. typedef enum VkGeometryFlagBitsKHR {
  14027. VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
  14028. VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
  14029. VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
  14030. VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
  14031. VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  14032. } VkGeometryFlagBitsKHR;
  14033. typedef VkFlags VkGeometryFlagsKHR;
  14034. typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
  14035. typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
  14036. typedef enum VkGeometryInstanceFlagBitsKHR {
  14037. VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
  14038. VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
  14039. VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
  14040. VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
  14041. VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT = 0x00000010,
  14042. VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000020,
  14043. VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
  14044. VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
  14045. VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
  14046. VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
  14047. VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
  14048. // VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT is a legacy alias
  14049. VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT,
  14050. // VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias
  14051. VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
  14052. VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  14053. } VkGeometryInstanceFlagBitsKHR;
  14054. typedef VkFlags VkGeometryInstanceFlagsKHR;
  14055. typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
  14056. typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
  14057. typedef enum VkBuildAccelerationStructureFlagBitsKHR {
  14058. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
  14059. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
  14060. VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
  14061. VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
  14062. VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
  14063. VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
  14064. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT = 0x00000040,
  14065. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000080,
  14066. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT = 0x00000100,
  14067. #ifdef VK_ENABLE_BETA_EXTENSIONS
  14068. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV = 0x00000200,
  14069. #endif
  14070. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR = 0x00000800,
  14071. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_CLUSTER_OPACITY_MICROMAPS_BIT_NV = 0x00001000,
  14072. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
  14073. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
  14074. VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
  14075. VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
  14076. VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
  14077. // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT is a legacy alias
  14078. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT,
  14079. // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias
  14080. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
  14081. // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT is a legacy alias
  14082. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT,
  14083. #ifdef VK_ENABLE_BETA_EXTENSIONS
  14084. // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV is a legacy alias
  14085. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV,
  14086. #endif
  14087. // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR is a legacy alias
  14088. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR,
  14089. VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  14090. } VkBuildAccelerationStructureFlagBitsKHR;
  14091. typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
  14092. typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
  14093. typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
  14094. typedef struct VkRayTracingShaderGroupCreateInfoNV {
  14095. VkStructureType sType;
  14096. const void* pNext;
  14097. VkRayTracingShaderGroupTypeKHR type;
  14098. uint32_t generalShader;
  14099. uint32_t closestHitShader;
  14100. uint32_t anyHitShader;
  14101. uint32_t intersectionShader;
  14102. } VkRayTracingShaderGroupCreateInfoNV;
  14103. typedef struct VkRayTracingPipelineCreateInfoNV {
  14104. VkStructureType sType;
  14105. const void* pNext;
  14106. VkPipelineCreateFlags flags;
  14107. uint32_t stageCount;
  14108. const VkPipelineShaderStageCreateInfo* pStages;
  14109. uint32_t groupCount;
  14110. const VkRayTracingShaderGroupCreateInfoNV* pGroups;
  14111. uint32_t maxRecursionDepth;
  14112. VkPipelineLayout layout;
  14113. VkPipeline basePipelineHandle;
  14114. int32_t basePipelineIndex;
  14115. } VkRayTracingPipelineCreateInfoNV;
  14116. typedef struct VkGeometryTrianglesNV {
  14117. VkStructureType sType;
  14118. const void* pNext;
  14119. VkBuffer vertexData;
  14120. VkDeviceSize vertexOffset;
  14121. uint32_t vertexCount;
  14122. VkDeviceSize vertexStride;
  14123. VkFormat vertexFormat;
  14124. VkBuffer indexData;
  14125. VkDeviceSize indexOffset;
  14126. uint32_t indexCount;
  14127. VkIndexType indexType;
  14128. VkBuffer transformData;
  14129. VkDeviceSize transformOffset;
  14130. } VkGeometryTrianglesNV;
  14131. typedef struct VkGeometryAABBNV {
  14132. VkStructureType sType;
  14133. const void* pNext;
  14134. VkBuffer aabbData;
  14135. uint32_t numAABBs;
  14136. uint32_t stride;
  14137. VkDeviceSize offset;
  14138. } VkGeometryAABBNV;
  14139. typedef struct VkGeometryDataNV {
  14140. VkGeometryTrianglesNV triangles;
  14141. VkGeometryAABBNV aabbs;
  14142. } VkGeometryDataNV;
  14143. typedef struct VkGeometryNV {
  14144. VkStructureType sType;
  14145. const void* pNext;
  14146. VkGeometryTypeKHR geometryType;
  14147. VkGeometryDataNV geometry;
  14148. VkGeometryFlagsKHR flags;
  14149. } VkGeometryNV;
  14150. typedef struct VkAccelerationStructureInfoNV {
  14151. VkStructureType sType;
  14152. const void* pNext;
  14153. VkAccelerationStructureTypeNV type;
  14154. VkBuildAccelerationStructureFlagsNV flags;
  14155. uint32_t instanceCount;
  14156. uint32_t geometryCount;
  14157. const VkGeometryNV* pGeometries;
  14158. } VkAccelerationStructureInfoNV;
  14159. typedef struct VkAccelerationStructureCreateInfoNV {
  14160. VkStructureType sType;
  14161. const void* pNext;
  14162. VkDeviceSize compactedSize;
  14163. VkAccelerationStructureInfoNV info;
  14164. } VkAccelerationStructureCreateInfoNV;
  14165. typedef struct VkBindAccelerationStructureMemoryInfoNV {
  14166. VkStructureType sType;
  14167. const void* pNext;
  14168. VkAccelerationStructureNV accelerationStructure;
  14169. VkDeviceMemory memory;
  14170. VkDeviceSize memoryOffset;
  14171. uint32_t deviceIndexCount;
  14172. const uint32_t* pDeviceIndices;
  14173. } VkBindAccelerationStructureMemoryInfoNV;
  14174. typedef struct VkWriteDescriptorSetAccelerationStructureNV {
  14175. VkStructureType sType;
  14176. const void* pNext;
  14177. uint32_t accelerationStructureCount;
  14178. const VkAccelerationStructureNV* pAccelerationStructures;
  14179. } VkWriteDescriptorSetAccelerationStructureNV;
  14180. typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
  14181. VkStructureType sType;
  14182. const void* pNext;
  14183. VkAccelerationStructureMemoryRequirementsTypeNV type;
  14184. VkAccelerationStructureNV accelerationStructure;
  14185. } VkAccelerationStructureMemoryRequirementsInfoNV;
  14186. typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
  14187. VkStructureType sType;
  14188. void* pNext;
  14189. uint32_t shaderGroupHandleSize;
  14190. uint32_t maxRecursionDepth;
  14191. uint32_t maxShaderGroupStride;
  14192. uint32_t shaderGroupBaseAlignment;
  14193. uint64_t maxGeometryCount;
  14194. uint64_t maxInstanceCount;
  14195. uint64_t maxTriangleCount;
  14196. uint32_t maxDescriptorSetAccelerationStructures;
  14197. } VkPhysicalDeviceRayTracingPropertiesNV;
  14198. typedef struct VkTransformMatrixKHR {
  14199. float matrix[3][4];
  14200. } VkTransformMatrixKHR;
  14201. typedef VkTransformMatrixKHR VkTransformMatrixNV;
  14202. typedef struct VkAabbPositionsKHR {
  14203. float minX;
  14204. float minY;
  14205. float minZ;
  14206. float maxX;
  14207. float maxY;
  14208. float maxZ;
  14209. } VkAabbPositionsKHR;
  14210. typedef VkAabbPositionsKHR VkAabbPositionsNV;
  14211. typedef struct VkAccelerationStructureInstanceKHR {
  14212. VkTransformMatrixKHR transform;
  14213. uint32_t instanceCustomIndex:24;
  14214. uint32_t mask:8;
  14215. uint32_t instanceShaderBindingTableRecordOffset:24;
  14216. VkGeometryInstanceFlagsKHR flags:8;
  14217. uint64_t accelerationStructureReference;
  14218. } VkAccelerationStructureInstanceKHR;
  14219. typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
  14220. typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
  14221. typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
  14222. typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
  14223. typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
  14224. typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
  14225. typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
  14226. typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth);
  14227. typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  14228. typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
  14229. typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
  14230. typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
  14231. typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
  14232. typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
  14233. #ifndef VK_NO_PROTOTYPES
  14234. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14235. VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
  14236. VkDevice device,
  14237. const VkAccelerationStructureCreateInfoNV* pCreateInfo,
  14238. const VkAllocationCallbacks* pAllocator,
  14239. VkAccelerationStructureNV* pAccelerationStructure);
  14240. #endif
  14241. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14242. VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
  14243. VkDevice device,
  14244. VkAccelerationStructureNV accelerationStructure,
  14245. const VkAllocationCallbacks* pAllocator);
  14246. #endif
  14247. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14248. VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
  14249. VkDevice device,
  14250. const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
  14251. VkMemoryRequirements2KHR* pMemoryRequirements);
  14252. #endif
  14253. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14254. VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
  14255. VkDevice device,
  14256. uint32_t bindInfoCount,
  14257. const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
  14258. #endif
  14259. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14260. VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
  14261. VkCommandBuffer commandBuffer,
  14262. const VkAccelerationStructureInfoNV* pInfo,
  14263. VkBuffer instanceData,
  14264. VkDeviceSize instanceOffset,
  14265. VkBool32 update,
  14266. VkAccelerationStructureNV dst,
  14267. VkAccelerationStructureNV src,
  14268. VkBuffer scratch,
  14269. VkDeviceSize scratchOffset);
  14270. #endif
  14271. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14272. VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
  14273. VkCommandBuffer commandBuffer,
  14274. VkAccelerationStructureNV dst,
  14275. VkAccelerationStructureNV src,
  14276. VkCopyAccelerationStructureModeKHR mode);
  14277. #endif
  14278. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14279. VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
  14280. VkCommandBuffer commandBuffer,
  14281. VkBuffer raygenShaderBindingTableBuffer,
  14282. VkDeviceSize raygenShaderBindingOffset,
  14283. VkBuffer missShaderBindingTableBuffer,
  14284. VkDeviceSize missShaderBindingOffset,
  14285. VkDeviceSize missShaderBindingStride,
  14286. VkBuffer hitShaderBindingTableBuffer,
  14287. VkDeviceSize hitShaderBindingOffset,
  14288. VkDeviceSize hitShaderBindingStride,
  14289. VkBuffer callableShaderBindingTableBuffer,
  14290. VkDeviceSize callableShaderBindingOffset,
  14291. VkDeviceSize callableShaderBindingStride,
  14292. uint32_t width,
  14293. uint32_t height,
  14294. uint32_t depth);
  14295. #endif
  14296. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14297. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
  14298. VkDevice device,
  14299. VkPipelineCache pipelineCache,
  14300. uint32_t createInfoCount,
  14301. const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
  14302. const VkAllocationCallbacks* pAllocator,
  14303. VkPipeline* pPipelines);
  14304. #endif
  14305. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14306. VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
  14307. VkDevice device,
  14308. VkPipeline pipeline,
  14309. uint32_t firstGroup,
  14310. uint32_t groupCount,
  14311. size_t dataSize,
  14312. void* pData);
  14313. #endif
  14314. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14315. VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
  14316. VkDevice device,
  14317. VkPipeline pipeline,
  14318. uint32_t firstGroup,
  14319. uint32_t groupCount,
  14320. size_t dataSize,
  14321. void* pData);
  14322. #endif
  14323. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14324. VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
  14325. VkDevice device,
  14326. VkAccelerationStructureNV accelerationStructure,
  14327. size_t dataSize,
  14328. void* pData);
  14329. #endif
  14330. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14331. VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
  14332. VkCommandBuffer commandBuffer,
  14333. uint32_t accelerationStructureCount,
  14334. const VkAccelerationStructureNV* pAccelerationStructures,
  14335. VkQueryType queryType,
  14336. VkQueryPool queryPool,
  14337. uint32_t firstQuery);
  14338. #endif
  14339. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14340. VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
  14341. VkDevice device,
  14342. VkPipeline pipeline,
  14343. uint32_t shader);
  14344. #endif
  14345. #endif
  14346. // VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
  14347. #define VK_NV_representative_fragment_test 1
  14348. #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
  14349. #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
  14350. typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
  14351. VkStructureType sType;
  14352. void* pNext;
  14353. VkBool32 representativeFragmentTest;
  14354. } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  14355. typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
  14356. VkStructureType sType;
  14357. const void* pNext;
  14358. VkBool32 representativeFragmentTestEnable;
  14359. } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
  14360. // VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
  14361. #define VK_EXT_filter_cubic 1
  14362. #define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
  14363. #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
  14364. typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
  14365. VkStructureType sType;
  14366. void* pNext;
  14367. VkImageViewType imageViewType;
  14368. } VkPhysicalDeviceImageViewImageFormatInfoEXT;
  14369. typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
  14370. VkStructureType sType;
  14371. void* pNext;
  14372. VkBool32 filterCubic;
  14373. VkBool32 filterCubicMinmax;
  14374. } VkFilterCubicImageViewImageFormatPropertiesEXT;
  14375. // VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
  14376. #define VK_QCOM_render_pass_shader_resolve 1
  14377. #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
  14378. #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
  14379. // VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
  14380. #define VK_EXT_global_priority 1
  14381. #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
  14382. #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
  14383. typedef VkQueueGlobalPriority VkQueueGlobalPriorityEXT;
  14384. typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT;
  14385. // VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
  14386. #define VK_EXT_external_memory_host 1
  14387. #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
  14388. #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
  14389. typedef struct VkImportMemoryHostPointerInfoEXT {
  14390. VkStructureType sType;
  14391. const void* pNext;
  14392. VkExternalMemoryHandleTypeFlagBits handleType;
  14393. void* pHostPointer;
  14394. } VkImportMemoryHostPointerInfoEXT;
  14395. typedef struct VkMemoryHostPointerPropertiesEXT {
  14396. VkStructureType sType;
  14397. void* pNext;
  14398. uint32_t memoryTypeBits;
  14399. } VkMemoryHostPointerPropertiesEXT;
  14400. typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
  14401. VkStructureType sType;
  14402. void* pNext;
  14403. VkDeviceSize minImportedHostPointerAlignment;
  14404. } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
  14405. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
  14406. #ifndef VK_NO_PROTOTYPES
  14407. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14408. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
  14409. VkDevice device,
  14410. VkExternalMemoryHandleTypeFlagBits handleType,
  14411. const void* pHostPointer,
  14412. VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
  14413. #endif
  14414. #endif
  14415. // VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
  14416. #define VK_AMD_buffer_marker 1
  14417. #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
  14418. #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
  14419. typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
  14420. typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
  14421. #ifndef VK_NO_PROTOTYPES
  14422. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14423. VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
  14424. VkCommandBuffer commandBuffer,
  14425. VkPipelineStageFlagBits pipelineStage,
  14426. VkBuffer dstBuffer,
  14427. VkDeviceSize dstOffset,
  14428. uint32_t marker);
  14429. #endif
  14430. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14431. VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
  14432. VkCommandBuffer commandBuffer,
  14433. VkPipelineStageFlags2 stage,
  14434. VkBuffer dstBuffer,
  14435. VkDeviceSize dstOffset,
  14436. uint32_t marker);
  14437. #endif
  14438. #endif
  14439. // VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
  14440. #define VK_AMD_pipeline_compiler_control 1
  14441. #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
  14442. #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
  14443. typedef enum VkPipelineCompilerControlFlagBitsAMD {
  14444. VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
  14445. } VkPipelineCompilerControlFlagBitsAMD;
  14446. typedef VkFlags VkPipelineCompilerControlFlagsAMD;
  14447. typedef struct VkPipelineCompilerControlCreateInfoAMD {
  14448. VkStructureType sType;
  14449. const void* pNext;
  14450. VkPipelineCompilerControlFlagsAMD compilerControlFlags;
  14451. } VkPipelineCompilerControlCreateInfoAMD;
  14452. // VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
  14453. #define VK_EXT_calibrated_timestamps 1
  14454. #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
  14455. #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
  14456. typedef VkTimeDomainKHR VkTimeDomainEXT;
  14457. typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
  14458. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
  14459. typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
  14460. #ifndef VK_NO_PROTOTYPES
  14461. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14462. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
  14463. VkPhysicalDevice physicalDevice,
  14464. uint32_t* pTimeDomainCount,
  14465. VkTimeDomainKHR* pTimeDomains);
  14466. #endif
  14467. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14468. VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
  14469. VkDevice device,
  14470. uint32_t timestampCount,
  14471. const VkCalibratedTimestampInfoKHR* pTimestampInfos,
  14472. uint64_t* pTimestamps,
  14473. uint64_t* pMaxDeviation);
  14474. #endif
  14475. #endif
  14476. // VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
  14477. #define VK_AMD_shader_core_properties 1
  14478. #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
  14479. #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
  14480. typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
  14481. VkStructureType sType;
  14482. void* pNext;
  14483. uint32_t shaderEngineCount;
  14484. uint32_t shaderArraysPerEngineCount;
  14485. uint32_t computeUnitsPerShaderArray;
  14486. uint32_t simdPerComputeUnit;
  14487. uint32_t wavefrontsPerSimd;
  14488. uint32_t wavefrontSize;
  14489. uint32_t sgprsPerSimd;
  14490. uint32_t minSgprAllocation;
  14491. uint32_t maxSgprAllocation;
  14492. uint32_t sgprAllocationGranularity;
  14493. uint32_t vgprsPerSimd;
  14494. uint32_t minVgprAllocation;
  14495. uint32_t maxVgprAllocation;
  14496. uint32_t vgprAllocationGranularity;
  14497. } VkPhysicalDeviceShaderCorePropertiesAMD;
  14498. // VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
  14499. #define VK_AMD_memory_overallocation_behavior 1
  14500. #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
  14501. #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
  14502. typedef enum VkMemoryOverallocationBehaviorAMD {
  14503. VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
  14504. VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
  14505. VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
  14506. VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
  14507. } VkMemoryOverallocationBehaviorAMD;
  14508. typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
  14509. VkStructureType sType;
  14510. const void* pNext;
  14511. VkMemoryOverallocationBehaviorAMD overallocationBehavior;
  14512. } VkDeviceMemoryOverallocationCreateInfoAMD;
  14513. // VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
  14514. #define VK_EXT_vertex_attribute_divisor 1
  14515. #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
  14516. #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
  14517. typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
  14518. VkStructureType sType;
  14519. void* pNext;
  14520. uint32_t maxVertexAttribDivisor;
  14521. } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  14522. typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT;
  14523. typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT;
  14524. typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  14525. // VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
  14526. #define VK_EXT_pipeline_creation_feedback 1
  14527. #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
  14528. #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
  14529. typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
  14530. typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
  14531. typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
  14532. typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
  14533. // VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
  14534. #define VK_NV_shader_subgroup_partitioned 1
  14535. #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
  14536. #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
  14537. // VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
  14538. #define VK_NV_compute_shader_derivatives 1
  14539. #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
  14540. #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
  14541. typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
  14542. // VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
  14543. #define VK_NV_mesh_shader 1
  14544. #define VK_NV_MESH_SHADER_SPEC_VERSION 1
  14545. #define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
  14546. typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
  14547. VkStructureType sType;
  14548. void* pNext;
  14549. VkBool32 taskShader;
  14550. VkBool32 meshShader;
  14551. } VkPhysicalDeviceMeshShaderFeaturesNV;
  14552. typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
  14553. VkStructureType sType;
  14554. void* pNext;
  14555. uint32_t maxDrawMeshTasksCount;
  14556. uint32_t maxTaskWorkGroupInvocations;
  14557. uint32_t maxTaskWorkGroupSize[3];
  14558. uint32_t maxTaskTotalMemorySize;
  14559. uint32_t maxTaskOutputCount;
  14560. uint32_t maxMeshWorkGroupInvocations;
  14561. uint32_t maxMeshWorkGroupSize[3];
  14562. uint32_t maxMeshTotalMemorySize;
  14563. uint32_t maxMeshOutputVertices;
  14564. uint32_t maxMeshOutputPrimitives;
  14565. uint32_t maxMeshMultiviewViewCount;
  14566. uint32_t meshOutputPerVertexGranularity;
  14567. uint32_t meshOutputPerPrimitiveGranularity;
  14568. } VkPhysicalDeviceMeshShaderPropertiesNV;
  14569. typedef struct VkDrawMeshTasksIndirectCommandNV {
  14570. uint32_t taskCount;
  14571. uint32_t firstTask;
  14572. } VkDrawMeshTasksIndirectCommandNV;
  14573. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
  14574. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  14575. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  14576. #ifndef VK_NO_PROTOTYPES
  14577. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14578. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
  14579. VkCommandBuffer commandBuffer,
  14580. uint32_t taskCount,
  14581. uint32_t firstTask);
  14582. #endif
  14583. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14584. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
  14585. VkCommandBuffer commandBuffer,
  14586. VkBuffer buffer,
  14587. VkDeviceSize offset,
  14588. uint32_t drawCount,
  14589. uint32_t stride);
  14590. #endif
  14591. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14592. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
  14593. VkCommandBuffer commandBuffer,
  14594. VkBuffer buffer,
  14595. VkDeviceSize offset,
  14596. VkBuffer countBuffer,
  14597. VkDeviceSize countBufferOffset,
  14598. uint32_t maxDrawCount,
  14599. uint32_t stride);
  14600. #endif
  14601. #endif
  14602. // VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
  14603. #define VK_NV_fragment_shader_barycentric 1
  14604. #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
  14605. #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
  14606. typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
  14607. // VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
  14608. #define VK_NV_shader_image_footprint 1
  14609. #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
  14610. #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
  14611. typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
  14612. VkStructureType sType;
  14613. void* pNext;
  14614. VkBool32 imageFootprint;
  14615. } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
  14616. // VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
  14617. #define VK_NV_scissor_exclusive 1
  14618. #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
  14619. #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
  14620. typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
  14621. VkStructureType sType;
  14622. const void* pNext;
  14623. uint32_t exclusiveScissorCount;
  14624. const VkRect2D* pExclusiveScissors;
  14625. } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
  14626. typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
  14627. VkStructureType sType;
  14628. void* pNext;
  14629. VkBool32 exclusiveScissor;
  14630. } VkPhysicalDeviceExclusiveScissorFeaturesNV;
  14631. typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
  14632. typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
  14633. #ifndef VK_NO_PROTOTYPES
  14634. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14635. VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
  14636. VkCommandBuffer commandBuffer,
  14637. uint32_t firstExclusiveScissor,
  14638. uint32_t exclusiveScissorCount,
  14639. const VkBool32* pExclusiveScissorEnables);
  14640. #endif
  14641. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14642. VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
  14643. VkCommandBuffer commandBuffer,
  14644. uint32_t firstExclusiveScissor,
  14645. uint32_t exclusiveScissorCount,
  14646. const VkRect2D* pExclusiveScissors);
  14647. #endif
  14648. #endif
  14649. // VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
  14650. #define VK_NV_device_diagnostic_checkpoints 1
  14651. #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
  14652. #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
  14653. typedef struct VkQueueFamilyCheckpointPropertiesNV {
  14654. VkStructureType sType;
  14655. void* pNext;
  14656. VkPipelineStageFlags checkpointExecutionStageMask;
  14657. } VkQueueFamilyCheckpointPropertiesNV;
  14658. typedef struct VkCheckpointDataNV {
  14659. VkStructureType sType;
  14660. void* pNext;
  14661. VkPipelineStageFlagBits stage;
  14662. void* pCheckpointMarker;
  14663. } VkCheckpointDataNV;
  14664. typedef struct VkQueueFamilyCheckpointProperties2NV {
  14665. VkStructureType sType;
  14666. void* pNext;
  14667. VkPipelineStageFlags2 checkpointExecutionStageMask;
  14668. } VkQueueFamilyCheckpointProperties2NV;
  14669. typedef struct VkCheckpointData2NV {
  14670. VkStructureType sType;
  14671. void* pNext;
  14672. VkPipelineStageFlags2 stage;
  14673. void* pCheckpointMarker;
  14674. } VkCheckpointData2NV;
  14675. typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
  14676. typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
  14677. typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
  14678. #ifndef VK_NO_PROTOTYPES
  14679. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14680. VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
  14681. VkCommandBuffer commandBuffer,
  14682. const void* pCheckpointMarker);
  14683. #endif
  14684. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14685. VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
  14686. VkQueue queue,
  14687. uint32_t* pCheckpointDataCount,
  14688. VkCheckpointDataNV* pCheckpointData);
  14689. #endif
  14690. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14691. VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
  14692. VkQueue queue,
  14693. uint32_t* pCheckpointDataCount,
  14694. VkCheckpointData2NV* pCheckpointData);
  14695. #endif
  14696. #endif
  14697. // VK_EXT_present_timing is a preprocessor guard. Do not pass it to API calls.
  14698. #define VK_EXT_present_timing 1
  14699. #define VK_EXT_PRESENT_TIMING_SPEC_VERSION 3
  14700. #define VK_EXT_PRESENT_TIMING_EXTENSION_NAME "VK_EXT_present_timing"
  14701. typedef enum VkPresentStageFlagBitsEXT {
  14702. VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT = 0x00000001,
  14703. VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT = 0x00000002,
  14704. VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT = 0x00000004,
  14705. VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT = 0x00000008,
  14706. VK_PRESENT_STAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  14707. } VkPresentStageFlagBitsEXT;
  14708. typedef VkFlags VkPresentStageFlagsEXT;
  14709. typedef enum VkPastPresentationTimingFlagBitsEXT {
  14710. VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT = 0x00000001,
  14711. VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT = 0x00000002,
  14712. VK_PAST_PRESENTATION_TIMING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  14713. } VkPastPresentationTimingFlagBitsEXT;
  14714. typedef VkFlags VkPastPresentationTimingFlagsEXT;
  14715. typedef enum VkPresentTimingInfoFlagBitsEXT {
  14716. VK_PRESENT_TIMING_INFO_PRESENT_AT_RELATIVE_TIME_BIT_EXT = 0x00000001,
  14717. VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT = 0x00000002,
  14718. VK_PRESENT_TIMING_INFO_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  14719. } VkPresentTimingInfoFlagBitsEXT;
  14720. typedef VkFlags VkPresentTimingInfoFlagsEXT;
  14721. typedef struct VkPhysicalDevicePresentTimingFeaturesEXT {
  14722. VkStructureType sType;
  14723. void* pNext;
  14724. VkBool32 presentTiming;
  14725. VkBool32 presentAtAbsoluteTime;
  14726. VkBool32 presentAtRelativeTime;
  14727. } VkPhysicalDevicePresentTimingFeaturesEXT;
  14728. typedef struct VkPresentTimingSurfaceCapabilitiesEXT {
  14729. VkStructureType sType;
  14730. void* pNext;
  14731. VkBool32 presentTimingSupported;
  14732. VkBool32 presentAtAbsoluteTimeSupported;
  14733. VkBool32 presentAtRelativeTimeSupported;
  14734. VkPresentStageFlagsEXT presentStageQueries;
  14735. } VkPresentTimingSurfaceCapabilitiesEXT;
  14736. typedef struct VkSwapchainCalibratedTimestampInfoEXT {
  14737. VkStructureType sType;
  14738. const void* pNext;
  14739. VkSwapchainKHR swapchain;
  14740. VkPresentStageFlagsEXT presentStage;
  14741. uint64_t timeDomainId;
  14742. } VkSwapchainCalibratedTimestampInfoEXT;
  14743. typedef struct VkSwapchainTimingPropertiesEXT {
  14744. VkStructureType sType;
  14745. void* pNext;
  14746. uint64_t refreshDuration;
  14747. uint64_t refreshInterval;
  14748. } VkSwapchainTimingPropertiesEXT;
  14749. typedef struct VkSwapchainTimeDomainPropertiesEXT {
  14750. VkStructureType sType;
  14751. void* pNext;
  14752. uint32_t timeDomainCount;
  14753. VkTimeDomainKHR* pTimeDomains;
  14754. uint64_t* pTimeDomainIds;
  14755. } VkSwapchainTimeDomainPropertiesEXT;
  14756. typedef struct VkPastPresentationTimingInfoEXT {
  14757. VkStructureType sType;
  14758. const void* pNext;
  14759. VkPastPresentationTimingFlagsEXT flags;
  14760. VkSwapchainKHR swapchain;
  14761. } VkPastPresentationTimingInfoEXT;
  14762. typedef struct VkPresentStageTimeEXT {
  14763. VkPresentStageFlagsEXT stage;
  14764. uint64_t time;
  14765. } VkPresentStageTimeEXT;
  14766. typedef struct VkPastPresentationTimingEXT {
  14767. VkStructureType sType;
  14768. void* pNext;
  14769. uint64_t presentId;
  14770. uint64_t targetTime;
  14771. uint32_t presentStageCount;
  14772. VkPresentStageTimeEXT* pPresentStages;
  14773. VkTimeDomainKHR timeDomain;
  14774. uint64_t timeDomainId;
  14775. VkBool32 reportComplete;
  14776. } VkPastPresentationTimingEXT;
  14777. typedef struct VkPastPresentationTimingPropertiesEXT {
  14778. VkStructureType sType;
  14779. void* pNext;
  14780. uint64_t timingPropertiesCounter;
  14781. uint64_t timeDomainsCounter;
  14782. uint32_t presentationTimingCount;
  14783. VkPastPresentationTimingEXT* pPresentationTimings;
  14784. } VkPastPresentationTimingPropertiesEXT;
  14785. typedef struct VkPresentTimingInfoEXT {
  14786. VkStructureType sType;
  14787. const void* pNext;
  14788. VkPresentTimingInfoFlagsEXT flags;
  14789. uint64_t targetTime;
  14790. uint64_t timeDomainId;
  14791. VkPresentStageFlagsEXT presentStageQueries;
  14792. VkPresentStageFlagsEXT targetTimeDomainPresentStage;
  14793. } VkPresentTimingInfoEXT;
  14794. typedef struct VkPresentTimingsInfoEXT {
  14795. VkStructureType sType;
  14796. const void* pNext;
  14797. uint32_t swapchainCount;
  14798. const VkPresentTimingInfoEXT* pTimingInfos;
  14799. } VkPresentTimingsInfoEXT;
  14800. typedef VkResult (VKAPI_PTR *PFN_vkSetSwapchainPresentTimingQueueSizeEXT)(VkDevice device, VkSwapchainKHR swapchain, uint32_t size);
  14801. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainTimingPropertiesEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties, uint64_t* pSwapchainTimingPropertiesCounter);
  14802. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainTimeDomainPropertiesEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties, uint64_t* pTimeDomainsCounter);
  14803. typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingEXT)(VkDevice device, const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo, VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);
  14804. #ifndef VK_NO_PROTOTYPES
  14805. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14806. VKAPI_ATTR VkResult VKAPI_CALL vkSetSwapchainPresentTimingQueueSizeEXT(
  14807. VkDevice device,
  14808. VkSwapchainKHR swapchain,
  14809. uint32_t size);
  14810. #endif
  14811. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14812. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainTimingPropertiesEXT(
  14813. VkDevice device,
  14814. VkSwapchainKHR swapchain,
  14815. VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties,
  14816. uint64_t* pSwapchainTimingPropertiesCounter);
  14817. #endif
  14818. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14819. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainTimeDomainPropertiesEXT(
  14820. VkDevice device,
  14821. VkSwapchainKHR swapchain,
  14822. VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties,
  14823. uint64_t* pTimeDomainsCounter);
  14824. #endif
  14825. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14826. VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingEXT(
  14827. VkDevice device,
  14828. const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo,
  14829. VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);
  14830. #endif
  14831. #endif
  14832. // VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
  14833. #define VK_INTEL_shader_integer_functions2 1
  14834. #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
  14835. #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
  14836. typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
  14837. VkStructureType sType;
  14838. void* pNext;
  14839. VkBool32 shaderIntegerFunctions2;
  14840. } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  14841. // VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
  14842. #define VK_INTEL_performance_query 1
  14843. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
  14844. #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
  14845. #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
  14846. typedef enum VkPerformanceConfigurationTypeINTEL {
  14847. VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
  14848. VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  14849. } VkPerformanceConfigurationTypeINTEL;
  14850. typedef enum VkQueryPoolSamplingModeINTEL {
  14851. VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
  14852. VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
  14853. } VkQueryPoolSamplingModeINTEL;
  14854. typedef enum VkPerformanceOverrideTypeINTEL {
  14855. VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
  14856. VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
  14857. VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  14858. } VkPerformanceOverrideTypeINTEL;
  14859. typedef enum VkPerformanceParameterTypeINTEL {
  14860. VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
  14861. VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
  14862. VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  14863. } VkPerformanceParameterTypeINTEL;
  14864. typedef enum VkPerformanceValueTypeINTEL {
  14865. VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
  14866. VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
  14867. VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
  14868. VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
  14869. VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
  14870. VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  14871. } VkPerformanceValueTypeINTEL;
  14872. typedef union VkPerformanceValueDataINTEL {
  14873. uint32_t value32;
  14874. uint64_t value64;
  14875. float valueFloat;
  14876. VkBool32 valueBool;
  14877. const char* valueString;
  14878. } VkPerformanceValueDataINTEL;
  14879. typedef struct VkPerformanceValueINTEL {
  14880. VkPerformanceValueTypeINTEL type;
  14881. VkPerformanceValueDataINTEL data;
  14882. } VkPerformanceValueINTEL;
  14883. typedef struct VkInitializePerformanceApiInfoINTEL {
  14884. VkStructureType sType;
  14885. const void* pNext;
  14886. void* pUserData;
  14887. } VkInitializePerformanceApiInfoINTEL;
  14888. typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
  14889. VkStructureType sType;
  14890. const void* pNext;
  14891. VkQueryPoolSamplingModeINTEL performanceCountersSampling;
  14892. } VkQueryPoolPerformanceQueryCreateInfoINTEL;
  14893. typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
  14894. typedef struct VkPerformanceMarkerInfoINTEL {
  14895. VkStructureType sType;
  14896. const void* pNext;
  14897. uint64_t marker;
  14898. } VkPerformanceMarkerInfoINTEL;
  14899. typedef struct VkPerformanceStreamMarkerInfoINTEL {
  14900. VkStructureType sType;
  14901. const void* pNext;
  14902. uint32_t marker;
  14903. } VkPerformanceStreamMarkerInfoINTEL;
  14904. typedef struct VkPerformanceOverrideInfoINTEL {
  14905. VkStructureType sType;
  14906. const void* pNext;
  14907. VkPerformanceOverrideTypeINTEL type;
  14908. VkBool32 enable;
  14909. uint64_t parameter;
  14910. } VkPerformanceOverrideInfoINTEL;
  14911. typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
  14912. VkStructureType sType;
  14913. const void* pNext;
  14914. VkPerformanceConfigurationTypeINTEL type;
  14915. } VkPerformanceConfigurationAcquireInfoINTEL;
  14916. typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
  14917. typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
  14918. typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
  14919. typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
  14920. typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
  14921. typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
  14922. typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
  14923. typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
  14924. typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
  14925. #ifndef VK_NO_PROTOTYPES
  14926. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14927. VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
  14928. VkDevice device,
  14929. const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
  14930. #endif
  14931. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14932. VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
  14933. VkDevice device);
  14934. #endif
  14935. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14936. VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
  14937. VkCommandBuffer commandBuffer,
  14938. const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
  14939. #endif
  14940. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14941. VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
  14942. VkCommandBuffer commandBuffer,
  14943. const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
  14944. #endif
  14945. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14946. VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
  14947. VkCommandBuffer commandBuffer,
  14948. const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
  14949. #endif
  14950. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14951. VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
  14952. VkDevice device,
  14953. const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
  14954. VkPerformanceConfigurationINTEL* pConfiguration);
  14955. #endif
  14956. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14957. VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
  14958. VkDevice device,
  14959. VkPerformanceConfigurationINTEL configuration);
  14960. #endif
  14961. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14962. VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
  14963. VkQueue queue,
  14964. VkPerformanceConfigurationINTEL configuration);
  14965. #endif
  14966. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  14967. VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
  14968. VkDevice device,
  14969. VkPerformanceParameterTypeINTEL parameter,
  14970. VkPerformanceValueINTEL* pValue);
  14971. #endif
  14972. #endif
  14973. // VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
  14974. #define VK_EXT_pci_bus_info 1
  14975. #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
  14976. #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
  14977. typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
  14978. VkStructureType sType;
  14979. void* pNext;
  14980. uint32_t pciDomain;
  14981. uint32_t pciBus;
  14982. uint32_t pciDevice;
  14983. uint32_t pciFunction;
  14984. } VkPhysicalDevicePCIBusInfoPropertiesEXT;
  14985. // VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
  14986. #define VK_AMD_display_native_hdr 1
  14987. #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
  14988. #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
  14989. typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
  14990. VkStructureType sType;
  14991. void* pNext;
  14992. VkBool32 localDimmingSupport;
  14993. } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
  14994. typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
  14995. VkStructureType sType;
  14996. const void* pNext;
  14997. VkBool32 localDimmingEnable;
  14998. } VkSwapchainDisplayNativeHdrCreateInfoAMD;
  14999. typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
  15000. #ifndef VK_NO_PROTOTYPES
  15001. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15002. VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
  15003. VkDevice device,
  15004. VkSwapchainKHR swapChain,
  15005. VkBool32 localDimmingEnable);
  15006. #endif
  15007. #endif
  15008. // VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
  15009. #define VK_EXT_fragment_density_map 1
  15010. #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
  15011. #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
  15012. typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
  15013. VkStructureType sType;
  15014. void* pNext;
  15015. VkBool32 fragmentDensityMap;
  15016. VkBool32 fragmentDensityMapDynamic;
  15017. VkBool32 fragmentDensityMapNonSubsampledImages;
  15018. } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
  15019. typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
  15020. VkStructureType sType;
  15021. void* pNext;
  15022. VkExtent2D minFragmentDensityTexelSize;
  15023. VkExtent2D maxFragmentDensityTexelSize;
  15024. VkBool32 fragmentDensityInvocations;
  15025. } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
  15026. typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
  15027. VkStructureType sType;
  15028. const void* pNext;
  15029. VkAttachmentReference fragmentDensityMapAttachment;
  15030. } VkRenderPassFragmentDensityMapCreateInfoEXT;
  15031. typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
  15032. VkStructureType sType;
  15033. const void* pNext;
  15034. VkImageView imageView;
  15035. VkImageLayout imageLayout;
  15036. } VkRenderingFragmentDensityMapAttachmentInfoEXT;
  15037. // VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
  15038. #define VK_EXT_scalar_block_layout 1
  15039. #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
  15040. #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
  15041. typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
  15042. // VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
  15043. #define VK_GOOGLE_hlsl_functionality1 1
  15044. #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
  15045. #define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
  15046. // VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION is a legacy alias
  15047. #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
  15048. // VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME is a legacy alias
  15049. #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
  15050. // VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
  15051. #define VK_GOOGLE_decorate_string 1
  15052. #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
  15053. #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
  15054. // VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
  15055. #define VK_EXT_subgroup_size_control 1
  15056. #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
  15057. #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
  15058. typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
  15059. typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
  15060. typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
  15061. // VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
  15062. #define VK_AMD_shader_core_properties2 1
  15063. #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
  15064. #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
  15065. typedef enum VkShaderCorePropertiesFlagBitsAMD {
  15066. VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
  15067. } VkShaderCorePropertiesFlagBitsAMD;
  15068. typedef VkFlags VkShaderCorePropertiesFlagsAMD;
  15069. typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
  15070. VkStructureType sType;
  15071. void* pNext;
  15072. VkShaderCorePropertiesFlagsAMD shaderCoreFeatures;
  15073. uint32_t activeComputeUnitCount;
  15074. } VkPhysicalDeviceShaderCoreProperties2AMD;
  15075. // VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
  15076. #define VK_AMD_device_coherent_memory 1
  15077. #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
  15078. #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
  15079. typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
  15080. VkStructureType sType;
  15081. void* pNext;
  15082. VkBool32 deviceCoherentMemory;
  15083. } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
  15084. // VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
  15085. #define VK_EXT_shader_image_atomic_int64 1
  15086. #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
  15087. #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
  15088. typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
  15089. VkStructureType sType;
  15090. void* pNext;
  15091. VkBool32 shaderImageInt64Atomics;
  15092. VkBool32 sparseImageInt64Atomics;
  15093. } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  15094. // VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
  15095. #define VK_EXT_memory_budget 1
  15096. #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
  15097. #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
  15098. typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
  15099. VkStructureType sType;
  15100. void* pNext;
  15101. VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
  15102. VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
  15103. } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
  15104. // VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
  15105. #define VK_EXT_memory_priority 1
  15106. #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
  15107. #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
  15108. typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
  15109. VkStructureType sType;
  15110. void* pNext;
  15111. VkBool32 memoryPriority;
  15112. } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
  15113. typedef struct VkMemoryPriorityAllocateInfoEXT {
  15114. VkStructureType sType;
  15115. const void* pNext;
  15116. float priority;
  15117. } VkMemoryPriorityAllocateInfoEXT;
  15118. // VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
  15119. #define VK_NV_dedicated_allocation_image_aliasing 1
  15120. #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
  15121. #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
  15122. typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
  15123. VkStructureType sType;
  15124. void* pNext;
  15125. VkBool32 dedicatedAllocationImageAliasing;
  15126. } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  15127. // VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
  15128. #define VK_EXT_buffer_device_address 1
  15129. #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
  15130. #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
  15131. typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
  15132. VkStructureType sType;
  15133. void* pNext;
  15134. VkBool32 bufferDeviceAddress;
  15135. VkBool32 bufferDeviceAddressCaptureReplay;
  15136. VkBool32 bufferDeviceAddressMultiDevice;
  15137. } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
  15138. typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
  15139. typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
  15140. typedef struct VkBufferDeviceAddressCreateInfoEXT {
  15141. VkStructureType sType;
  15142. const void* pNext;
  15143. VkDeviceAddress deviceAddress;
  15144. } VkBufferDeviceAddressCreateInfoEXT;
  15145. typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  15146. #ifndef VK_NO_PROTOTYPES
  15147. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15148. VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
  15149. VkDevice device,
  15150. const VkBufferDeviceAddressInfo* pInfo);
  15151. #endif
  15152. #endif
  15153. // VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
  15154. #define VK_EXT_tooling_info 1
  15155. #define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
  15156. #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
  15157. typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
  15158. typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
  15159. typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
  15160. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
  15161. #ifndef VK_NO_PROTOTYPES
  15162. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15163. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
  15164. VkPhysicalDevice physicalDevice,
  15165. uint32_t* pToolCount,
  15166. VkPhysicalDeviceToolProperties* pToolProperties);
  15167. #endif
  15168. #endif
  15169. // VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
  15170. #define VK_EXT_separate_stencil_usage 1
  15171. #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
  15172. #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
  15173. typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
  15174. // VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
  15175. #define VK_EXT_validation_features 1
  15176. #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
  15177. #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
  15178. typedef enum VkValidationFeatureEnableEXT {
  15179. VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
  15180. VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
  15181. VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
  15182. VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
  15183. VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
  15184. VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
  15185. } VkValidationFeatureEnableEXT;
  15186. typedef enum VkValidationFeatureDisableEXT {
  15187. VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
  15188. VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
  15189. VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
  15190. VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
  15191. VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
  15192. VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
  15193. VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
  15194. VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
  15195. VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
  15196. } VkValidationFeatureDisableEXT;
  15197. typedef struct VkValidationFeaturesEXT {
  15198. VkStructureType sType;
  15199. const void* pNext;
  15200. uint32_t enabledValidationFeatureCount;
  15201. const VkValidationFeatureEnableEXT* pEnabledValidationFeatures;
  15202. uint32_t disabledValidationFeatureCount;
  15203. const VkValidationFeatureDisableEXT* pDisabledValidationFeatures;
  15204. } VkValidationFeaturesEXT;
  15205. // VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
  15206. #define VK_NV_cooperative_matrix 1
  15207. #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
  15208. #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
  15209. typedef VkComponentTypeKHR VkComponentTypeNV;
  15210. typedef VkScopeKHR VkScopeNV;
  15211. typedef struct VkCooperativeMatrixPropertiesNV {
  15212. VkStructureType sType;
  15213. void* pNext;
  15214. uint32_t MSize;
  15215. uint32_t NSize;
  15216. uint32_t KSize;
  15217. VkComponentTypeNV AType;
  15218. VkComponentTypeNV BType;
  15219. VkComponentTypeNV CType;
  15220. VkComponentTypeNV DType;
  15221. VkScopeNV scope;
  15222. } VkCooperativeMatrixPropertiesNV;
  15223. typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
  15224. VkStructureType sType;
  15225. void* pNext;
  15226. VkBool32 cooperativeMatrix;
  15227. VkBool32 cooperativeMatrixRobustBufferAccess;
  15228. } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
  15229. typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
  15230. VkStructureType sType;
  15231. void* pNext;
  15232. VkShaderStageFlags cooperativeMatrixSupportedStages;
  15233. } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
  15234. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
  15235. #ifndef VK_NO_PROTOTYPES
  15236. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15237. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
  15238. VkPhysicalDevice physicalDevice,
  15239. uint32_t* pPropertyCount,
  15240. VkCooperativeMatrixPropertiesNV* pProperties);
  15241. #endif
  15242. #endif
  15243. // VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
  15244. #define VK_NV_coverage_reduction_mode 1
  15245. #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
  15246. #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
  15247. typedef enum VkCoverageReductionModeNV {
  15248. VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
  15249. VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
  15250. VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  15251. } VkCoverageReductionModeNV;
  15252. typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
  15253. typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
  15254. VkStructureType sType;
  15255. void* pNext;
  15256. VkBool32 coverageReductionMode;
  15257. } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
  15258. typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
  15259. VkStructureType sType;
  15260. const void* pNext;
  15261. VkPipelineCoverageReductionStateCreateFlagsNV flags;
  15262. VkCoverageReductionModeNV coverageReductionMode;
  15263. } VkPipelineCoverageReductionStateCreateInfoNV;
  15264. typedef struct VkFramebufferMixedSamplesCombinationNV {
  15265. VkStructureType sType;
  15266. void* pNext;
  15267. VkCoverageReductionModeNV coverageReductionMode;
  15268. VkSampleCountFlagBits rasterizationSamples;
  15269. VkSampleCountFlags depthStencilSamples;
  15270. VkSampleCountFlags colorSamples;
  15271. } VkFramebufferMixedSamplesCombinationNV;
  15272. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
  15273. #ifndef VK_NO_PROTOTYPES
  15274. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15275. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
  15276. VkPhysicalDevice physicalDevice,
  15277. uint32_t* pCombinationCount,
  15278. VkFramebufferMixedSamplesCombinationNV* pCombinations);
  15279. #endif
  15280. #endif
  15281. // VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
  15282. #define VK_EXT_fragment_shader_interlock 1
  15283. #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
  15284. #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
  15285. typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
  15286. VkStructureType sType;
  15287. void* pNext;
  15288. VkBool32 fragmentShaderSampleInterlock;
  15289. VkBool32 fragmentShaderPixelInterlock;
  15290. VkBool32 fragmentShaderShadingRateInterlock;
  15291. } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  15292. // VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
  15293. #define VK_EXT_ycbcr_image_arrays 1
  15294. #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
  15295. #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
  15296. typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
  15297. VkStructureType sType;
  15298. void* pNext;
  15299. VkBool32 ycbcrImageArrays;
  15300. } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
  15301. // VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
  15302. #define VK_EXT_provoking_vertex 1
  15303. #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
  15304. #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
  15305. typedef enum VkProvokingVertexModeEXT {
  15306. VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
  15307. VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
  15308. VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  15309. } VkProvokingVertexModeEXT;
  15310. typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
  15311. VkStructureType sType;
  15312. void* pNext;
  15313. VkBool32 provokingVertexLast;
  15314. VkBool32 transformFeedbackPreservesProvokingVertex;
  15315. } VkPhysicalDeviceProvokingVertexFeaturesEXT;
  15316. typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
  15317. VkStructureType sType;
  15318. void* pNext;
  15319. VkBool32 provokingVertexModePerPipeline;
  15320. VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex;
  15321. } VkPhysicalDeviceProvokingVertexPropertiesEXT;
  15322. typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
  15323. VkStructureType sType;
  15324. const void* pNext;
  15325. VkProvokingVertexModeEXT provokingVertexMode;
  15326. } VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
  15327. // VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
  15328. #define VK_EXT_headless_surface 1
  15329. #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
  15330. #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
  15331. typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
  15332. typedef struct VkHeadlessSurfaceCreateInfoEXT {
  15333. VkStructureType sType;
  15334. const void* pNext;
  15335. VkHeadlessSurfaceCreateFlagsEXT flags;
  15336. } VkHeadlessSurfaceCreateInfoEXT;
  15337. typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  15338. #ifndef VK_NO_PROTOTYPES
  15339. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15340. VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
  15341. VkInstance instance,
  15342. const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
  15343. const VkAllocationCallbacks* pAllocator,
  15344. VkSurfaceKHR* pSurface);
  15345. #endif
  15346. #endif
  15347. // VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
  15348. #define VK_EXT_line_rasterization 1
  15349. #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
  15350. #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
  15351. typedef VkLineRasterizationMode VkLineRasterizationModeEXT;
  15352. typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesEXT;
  15353. typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesEXT;
  15354. typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT;
  15355. typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
  15356. #ifndef VK_NO_PROTOTYPES
  15357. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15358. VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
  15359. VkCommandBuffer commandBuffer,
  15360. uint32_t lineStippleFactor,
  15361. uint16_t lineStipplePattern);
  15362. #endif
  15363. #endif
  15364. // VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
  15365. #define VK_EXT_shader_atomic_float 1
  15366. #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
  15367. #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
  15368. typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
  15369. VkStructureType sType;
  15370. void* pNext;
  15371. VkBool32 shaderBufferFloat32Atomics;
  15372. VkBool32 shaderBufferFloat32AtomicAdd;
  15373. VkBool32 shaderBufferFloat64Atomics;
  15374. VkBool32 shaderBufferFloat64AtomicAdd;
  15375. VkBool32 shaderSharedFloat32Atomics;
  15376. VkBool32 shaderSharedFloat32AtomicAdd;
  15377. VkBool32 shaderSharedFloat64Atomics;
  15378. VkBool32 shaderSharedFloat64AtomicAdd;
  15379. VkBool32 shaderImageFloat32Atomics;
  15380. VkBool32 shaderImageFloat32AtomicAdd;
  15381. VkBool32 sparseImageFloat32Atomics;
  15382. VkBool32 sparseImageFloat32AtomicAdd;
  15383. } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
  15384. // VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
  15385. #define VK_EXT_host_query_reset 1
  15386. #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
  15387. #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
  15388. typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
  15389. typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  15390. #ifndef VK_NO_PROTOTYPES
  15391. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15392. VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
  15393. VkDevice device,
  15394. VkQueryPool queryPool,
  15395. uint32_t firstQuery,
  15396. uint32_t queryCount);
  15397. #endif
  15398. #endif
  15399. // VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
  15400. #define VK_EXT_index_type_uint8 1
  15401. #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
  15402. #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
  15403. typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
  15404. // VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
  15405. #define VK_EXT_extended_dynamic_state 1
  15406. #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
  15407. #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
  15408. typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
  15409. VkStructureType sType;
  15410. void* pNext;
  15411. VkBool32 extendedDynamicState;
  15412. } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
  15413. typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
  15414. typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
  15415. typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
  15416. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
  15417. typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
  15418. typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
  15419. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
  15420. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
  15421. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
  15422. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
  15423. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
  15424. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
  15425. #ifndef VK_NO_PROTOTYPES
  15426. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15427. VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
  15428. VkCommandBuffer commandBuffer,
  15429. VkCullModeFlags cullMode);
  15430. #endif
  15431. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15432. VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
  15433. VkCommandBuffer commandBuffer,
  15434. VkFrontFace frontFace);
  15435. #endif
  15436. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15437. VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
  15438. VkCommandBuffer commandBuffer,
  15439. VkPrimitiveTopology primitiveTopology);
  15440. #endif
  15441. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15442. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
  15443. VkCommandBuffer commandBuffer,
  15444. uint32_t viewportCount,
  15445. const VkViewport* pViewports);
  15446. #endif
  15447. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15448. VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
  15449. VkCommandBuffer commandBuffer,
  15450. uint32_t scissorCount,
  15451. const VkRect2D* pScissors);
  15452. #endif
  15453. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15454. VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
  15455. VkCommandBuffer commandBuffer,
  15456. uint32_t firstBinding,
  15457. uint32_t bindingCount,
  15458. const VkBuffer* pBuffers,
  15459. const VkDeviceSize* pOffsets,
  15460. const VkDeviceSize* pSizes,
  15461. const VkDeviceSize* pStrides);
  15462. #endif
  15463. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15464. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
  15465. VkCommandBuffer commandBuffer,
  15466. VkBool32 depthTestEnable);
  15467. #endif
  15468. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15469. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
  15470. VkCommandBuffer commandBuffer,
  15471. VkBool32 depthWriteEnable);
  15472. #endif
  15473. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15474. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
  15475. VkCommandBuffer commandBuffer,
  15476. VkCompareOp depthCompareOp);
  15477. #endif
  15478. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15479. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
  15480. VkCommandBuffer commandBuffer,
  15481. VkBool32 depthBoundsTestEnable);
  15482. #endif
  15483. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15484. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
  15485. VkCommandBuffer commandBuffer,
  15486. VkBool32 stencilTestEnable);
  15487. #endif
  15488. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15489. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
  15490. VkCommandBuffer commandBuffer,
  15491. VkStencilFaceFlags faceMask,
  15492. VkStencilOp failOp,
  15493. VkStencilOp passOp,
  15494. VkStencilOp depthFailOp,
  15495. VkCompareOp compareOp);
  15496. #endif
  15497. #endif
  15498. // VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
  15499. #define VK_EXT_host_image_copy 1
  15500. #define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
  15501. #define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
  15502. typedef VkHostImageCopyFlagBits VkHostImageCopyFlagBitsEXT;
  15503. typedef VkHostImageCopyFlags VkHostImageCopyFlagsEXT;
  15504. typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT;
  15505. typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT;
  15506. typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT;
  15507. typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT;
  15508. typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT;
  15509. typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT;
  15510. typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT;
  15511. typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT;
  15512. typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT;
  15513. typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT;
  15514. typedef VkSubresourceLayout2 VkSubresourceLayout2EXT;
  15515. typedef VkImageSubresource2 VkImageSubresource2EXT;
  15516. typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
  15517. typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
  15518. typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
  15519. typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
  15520. typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
  15521. #ifndef VK_NO_PROTOTYPES
  15522. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15523. VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
  15524. VkDevice device,
  15525. const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
  15526. #endif
  15527. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15528. VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
  15529. VkDevice device,
  15530. const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
  15531. #endif
  15532. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15533. VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
  15534. VkDevice device,
  15535. const VkCopyImageToImageInfo* pCopyImageToImageInfo);
  15536. #endif
  15537. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15538. VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
  15539. VkDevice device,
  15540. uint32_t transitionCount,
  15541. const VkHostImageLayoutTransitionInfo* pTransitions);
  15542. #endif
  15543. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15544. VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
  15545. VkDevice device,
  15546. VkImage image,
  15547. const VkImageSubresource2* pSubresource,
  15548. VkSubresourceLayout2* pLayout);
  15549. #endif
  15550. #endif
  15551. // VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
  15552. #define VK_EXT_map_memory_placed 1
  15553. #define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
  15554. #define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
  15555. typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
  15556. VkStructureType sType;
  15557. void* pNext;
  15558. VkBool32 memoryMapPlaced;
  15559. VkBool32 memoryMapRangePlaced;
  15560. VkBool32 memoryUnmapReserve;
  15561. } VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
  15562. typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
  15563. VkStructureType sType;
  15564. void* pNext;
  15565. VkDeviceSize minPlacedMemoryMapAlignment;
  15566. } VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
  15567. typedef struct VkMemoryMapPlacedInfoEXT {
  15568. VkStructureType sType;
  15569. const void* pNext;
  15570. void* pPlacedAddress;
  15571. } VkMemoryMapPlacedInfoEXT;
  15572. // VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
  15573. #define VK_EXT_shader_atomic_float2 1
  15574. #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
  15575. #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
  15576. typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
  15577. VkStructureType sType;
  15578. void* pNext;
  15579. VkBool32 shaderBufferFloat16Atomics;
  15580. VkBool32 shaderBufferFloat16AtomicAdd;
  15581. VkBool32 shaderBufferFloat16AtomicMinMax;
  15582. VkBool32 shaderBufferFloat32AtomicMinMax;
  15583. VkBool32 shaderBufferFloat64AtomicMinMax;
  15584. VkBool32 shaderSharedFloat16Atomics;
  15585. VkBool32 shaderSharedFloat16AtomicAdd;
  15586. VkBool32 shaderSharedFloat16AtomicMinMax;
  15587. VkBool32 shaderSharedFloat32AtomicMinMax;
  15588. VkBool32 shaderSharedFloat64AtomicMinMax;
  15589. VkBool32 shaderImageFloat32AtomicMinMax;
  15590. VkBool32 sparseImageFloat32AtomicMinMax;
  15591. } VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  15592. // VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  15593. #define VK_EXT_surface_maintenance1 1
  15594. #define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
  15595. #define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
  15596. typedef VkPresentScalingFlagBitsKHR VkPresentScalingFlagBitsEXT;
  15597. typedef VkPresentScalingFlagsKHR VkPresentScalingFlagsEXT;
  15598. typedef VkPresentGravityFlagBitsKHR VkPresentGravityFlagBitsEXT;
  15599. typedef VkPresentGravityFlagsKHR VkPresentGravityFlagsEXT;
  15600. typedef VkSurfacePresentModeKHR VkSurfacePresentModeEXT;
  15601. typedef VkSurfacePresentScalingCapabilitiesKHR VkSurfacePresentScalingCapabilitiesEXT;
  15602. typedef VkSurfacePresentModeCompatibilityKHR VkSurfacePresentModeCompatibilityEXT;
  15603. // VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
  15604. #define VK_EXT_swapchain_maintenance1 1
  15605. #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
  15606. #define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
  15607. typedef VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
  15608. typedef VkSwapchainPresentFenceInfoKHR VkSwapchainPresentFenceInfoEXT;
  15609. typedef VkSwapchainPresentModesCreateInfoKHR VkSwapchainPresentModesCreateInfoEXT;
  15610. typedef VkSwapchainPresentModeInfoKHR VkSwapchainPresentModeInfoEXT;
  15611. typedef VkSwapchainPresentScalingCreateInfoKHR VkSwapchainPresentScalingCreateInfoEXT;
  15612. typedef VkReleaseSwapchainImagesInfoKHR VkReleaseSwapchainImagesInfoEXT;
  15613. typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
  15614. #ifndef VK_NO_PROTOTYPES
  15615. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15616. VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
  15617. VkDevice device,
  15618. const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
  15619. #endif
  15620. #endif
  15621. // VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
  15622. #define VK_EXT_shader_demote_to_helper_invocation 1
  15623. #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
  15624. #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
  15625. typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
  15626. // VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
  15627. #define VK_NV_device_generated_commands 1
  15628. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
  15629. #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
  15630. #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
  15631. typedef enum VkIndirectCommandsTokenTypeNV {
  15632. VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
  15633. VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
  15634. VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
  15635. VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
  15636. VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
  15637. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
  15638. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
  15639. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
  15640. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
  15641. VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
  15642. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
  15643. VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  15644. } VkIndirectCommandsTokenTypeNV;
  15645. typedef enum VkIndirectStateFlagBitsNV {
  15646. VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
  15647. VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  15648. } VkIndirectStateFlagBitsNV;
  15649. typedef VkFlags VkIndirectStateFlagsNV;
  15650. typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
  15651. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
  15652. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
  15653. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
  15654. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  15655. } VkIndirectCommandsLayoutUsageFlagBitsNV;
  15656. typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
  15657. typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
  15658. VkStructureType sType;
  15659. void* pNext;
  15660. uint32_t maxGraphicsShaderGroupCount;
  15661. uint32_t maxIndirectSequenceCount;
  15662. uint32_t maxIndirectCommandsTokenCount;
  15663. uint32_t maxIndirectCommandsStreamCount;
  15664. uint32_t maxIndirectCommandsTokenOffset;
  15665. uint32_t maxIndirectCommandsStreamStride;
  15666. uint32_t minSequencesCountBufferOffsetAlignment;
  15667. uint32_t minSequencesIndexBufferOffsetAlignment;
  15668. uint32_t minIndirectCommandsBufferOffsetAlignment;
  15669. } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  15670. typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
  15671. VkStructureType sType;
  15672. void* pNext;
  15673. VkBool32 deviceGeneratedCommands;
  15674. } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  15675. typedef struct VkGraphicsShaderGroupCreateInfoNV {
  15676. VkStructureType sType;
  15677. const void* pNext;
  15678. uint32_t stageCount;
  15679. const VkPipelineShaderStageCreateInfo* pStages;
  15680. const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
  15681. const VkPipelineTessellationStateCreateInfo* pTessellationState;
  15682. } VkGraphicsShaderGroupCreateInfoNV;
  15683. typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
  15684. VkStructureType sType;
  15685. const void* pNext;
  15686. uint32_t groupCount;
  15687. const VkGraphicsShaderGroupCreateInfoNV* pGroups;
  15688. uint32_t pipelineCount;
  15689. const VkPipeline* pPipelines;
  15690. } VkGraphicsPipelineShaderGroupsCreateInfoNV;
  15691. typedef struct VkBindShaderGroupIndirectCommandNV {
  15692. uint32_t groupIndex;
  15693. } VkBindShaderGroupIndirectCommandNV;
  15694. typedef struct VkBindIndexBufferIndirectCommandNV {
  15695. VkDeviceAddress bufferAddress;
  15696. uint32_t size;
  15697. VkIndexType indexType;
  15698. } VkBindIndexBufferIndirectCommandNV;
  15699. typedef struct VkBindVertexBufferIndirectCommandNV {
  15700. VkDeviceAddress bufferAddress;
  15701. uint32_t size;
  15702. uint32_t stride;
  15703. } VkBindVertexBufferIndirectCommandNV;
  15704. typedef struct VkSetStateFlagsIndirectCommandNV {
  15705. uint32_t data;
  15706. } VkSetStateFlagsIndirectCommandNV;
  15707. typedef struct VkIndirectCommandsStreamNV {
  15708. VkBuffer buffer;
  15709. VkDeviceSize offset;
  15710. } VkIndirectCommandsStreamNV;
  15711. typedef struct VkIndirectCommandsLayoutTokenNV {
  15712. VkStructureType sType;
  15713. const void* pNext;
  15714. VkIndirectCommandsTokenTypeNV tokenType;
  15715. uint32_t stream;
  15716. uint32_t offset;
  15717. uint32_t vertexBindingUnit;
  15718. VkBool32 vertexDynamicStride;
  15719. VkPipelineLayout pushconstantPipelineLayout;
  15720. VkShaderStageFlags pushconstantShaderStageFlags;
  15721. uint32_t pushconstantOffset;
  15722. uint32_t pushconstantSize;
  15723. VkIndirectStateFlagsNV indirectStateFlags;
  15724. uint32_t indexTypeCount;
  15725. const VkIndexType* pIndexTypes;
  15726. const uint32_t* pIndexTypeValues;
  15727. } VkIndirectCommandsLayoutTokenNV;
  15728. typedef struct VkIndirectCommandsLayoutCreateInfoNV {
  15729. VkStructureType sType;
  15730. const void* pNext;
  15731. VkIndirectCommandsLayoutUsageFlagsNV flags;
  15732. VkPipelineBindPoint pipelineBindPoint;
  15733. uint32_t tokenCount;
  15734. const VkIndirectCommandsLayoutTokenNV* pTokens;
  15735. uint32_t streamCount;
  15736. const uint32_t* pStreamStrides;
  15737. } VkIndirectCommandsLayoutCreateInfoNV;
  15738. typedef struct VkGeneratedCommandsInfoNV {
  15739. VkStructureType sType;
  15740. const void* pNext;
  15741. VkPipelineBindPoint pipelineBindPoint;
  15742. VkPipeline pipeline;
  15743. VkIndirectCommandsLayoutNV indirectCommandsLayout;
  15744. uint32_t streamCount;
  15745. const VkIndirectCommandsStreamNV* pStreams;
  15746. uint32_t sequencesCount;
  15747. VkBuffer preprocessBuffer;
  15748. VkDeviceSize preprocessOffset;
  15749. VkDeviceSize preprocessSize;
  15750. VkBuffer sequencesCountBuffer;
  15751. VkDeviceSize sequencesCountOffset;
  15752. VkBuffer sequencesIndexBuffer;
  15753. VkDeviceSize sequencesIndexOffset;
  15754. } VkGeneratedCommandsInfoNV;
  15755. typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
  15756. VkStructureType sType;
  15757. const void* pNext;
  15758. VkPipelineBindPoint pipelineBindPoint;
  15759. VkPipeline pipeline;
  15760. VkIndirectCommandsLayoutNV indirectCommandsLayout;
  15761. uint32_t maxSequencesCount;
  15762. } VkGeneratedCommandsMemoryRequirementsInfoNV;
  15763. typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  15764. typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  15765. typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  15766. typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
  15767. typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
  15768. typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
  15769. #ifndef VK_NO_PROTOTYPES
  15770. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15771. VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
  15772. VkDevice device,
  15773. const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
  15774. VkMemoryRequirements2* pMemoryRequirements);
  15775. #endif
  15776. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15777. VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
  15778. VkCommandBuffer commandBuffer,
  15779. const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  15780. #endif
  15781. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15782. VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
  15783. VkCommandBuffer commandBuffer,
  15784. VkBool32 isPreprocessed,
  15785. const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  15786. #endif
  15787. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15788. VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
  15789. VkCommandBuffer commandBuffer,
  15790. VkPipelineBindPoint pipelineBindPoint,
  15791. VkPipeline pipeline,
  15792. uint32_t groupIndex);
  15793. #endif
  15794. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15795. VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
  15796. VkDevice device,
  15797. const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
  15798. const VkAllocationCallbacks* pAllocator,
  15799. VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
  15800. #endif
  15801. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15802. VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
  15803. VkDevice device,
  15804. VkIndirectCommandsLayoutNV indirectCommandsLayout,
  15805. const VkAllocationCallbacks* pAllocator);
  15806. #endif
  15807. #endif
  15808. // VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
  15809. #define VK_NV_inherited_viewport_scissor 1
  15810. #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
  15811. #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
  15812. typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
  15813. VkStructureType sType;
  15814. void* pNext;
  15815. VkBool32 inheritedViewportScissor2D;
  15816. } VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
  15817. typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
  15818. VkStructureType sType;
  15819. const void* pNext;
  15820. VkBool32 viewportScissor2D;
  15821. uint32_t viewportDepthCount;
  15822. const VkViewport* pViewportDepths;
  15823. } VkCommandBufferInheritanceViewportScissorInfoNV;
  15824. // VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
  15825. #define VK_EXT_texel_buffer_alignment 1
  15826. #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
  15827. #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
  15828. typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
  15829. VkStructureType sType;
  15830. void* pNext;
  15831. VkBool32 texelBufferAlignment;
  15832. } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  15833. typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
  15834. // VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
  15835. #define VK_QCOM_render_pass_transform 1
  15836. #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 5
  15837. #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
  15838. typedef struct VkRenderPassTransformBeginInfoQCOM {
  15839. VkStructureType sType;
  15840. const void* pNext;
  15841. VkSurfaceTransformFlagBitsKHR transform;
  15842. } VkRenderPassTransformBeginInfoQCOM;
  15843. typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
  15844. VkStructureType sType;
  15845. const void* pNext;
  15846. VkSurfaceTransformFlagBitsKHR transform;
  15847. VkRect2D renderArea;
  15848. } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
  15849. // VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
  15850. #define VK_EXT_depth_bias_control 1
  15851. #define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
  15852. #define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
  15853. typedef enum VkDepthBiasRepresentationEXT {
  15854. VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
  15855. VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
  15856. VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
  15857. VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
  15858. } VkDepthBiasRepresentationEXT;
  15859. typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
  15860. VkStructureType sType;
  15861. void* pNext;
  15862. VkBool32 depthBiasControl;
  15863. VkBool32 leastRepresentableValueForceUnormRepresentation;
  15864. VkBool32 floatRepresentation;
  15865. VkBool32 depthBiasExact;
  15866. } VkPhysicalDeviceDepthBiasControlFeaturesEXT;
  15867. typedef struct VkDepthBiasInfoEXT {
  15868. VkStructureType sType;
  15869. const void* pNext;
  15870. float depthBiasConstantFactor;
  15871. float depthBiasClamp;
  15872. float depthBiasSlopeFactor;
  15873. } VkDepthBiasInfoEXT;
  15874. typedef struct VkDepthBiasRepresentationInfoEXT {
  15875. VkStructureType sType;
  15876. const void* pNext;
  15877. VkDepthBiasRepresentationEXT depthBiasRepresentation;
  15878. VkBool32 depthBiasExact;
  15879. } VkDepthBiasRepresentationInfoEXT;
  15880. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT* pDepthBiasInfo);
  15881. #ifndef VK_NO_PROTOTYPES
  15882. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15883. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
  15884. VkCommandBuffer commandBuffer,
  15885. const VkDepthBiasInfoEXT* pDepthBiasInfo);
  15886. #endif
  15887. #endif
  15888. // VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
  15889. #define VK_EXT_device_memory_report 1
  15890. #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
  15891. #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
  15892. typedef enum VkDeviceMemoryReportEventTypeEXT {
  15893. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
  15894. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
  15895. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
  15896. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
  15897. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
  15898. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  15899. } VkDeviceMemoryReportEventTypeEXT;
  15900. typedef VkFlags VkDeviceMemoryReportFlagsEXT;
  15901. typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
  15902. VkStructureType sType;
  15903. void* pNext;
  15904. VkBool32 deviceMemoryReport;
  15905. } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
  15906. typedef struct VkDeviceMemoryReportCallbackDataEXT {
  15907. VkStructureType sType;
  15908. void* pNext;
  15909. VkDeviceMemoryReportFlagsEXT flags;
  15910. VkDeviceMemoryReportEventTypeEXT type;
  15911. uint64_t memoryObjectId;
  15912. VkDeviceSize size;
  15913. VkObjectType objectType;
  15914. uint64_t objectHandle;
  15915. uint32_t heapIndex;
  15916. } VkDeviceMemoryReportCallbackDataEXT;
  15917. typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
  15918. const VkDeviceMemoryReportCallbackDataEXT* pCallbackData,
  15919. void* pUserData);
  15920. typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
  15921. VkStructureType sType;
  15922. const void* pNext;
  15923. VkDeviceMemoryReportFlagsEXT flags;
  15924. PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback;
  15925. void* pUserData;
  15926. } VkDeviceDeviceMemoryReportCreateInfoEXT;
  15927. // VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
  15928. #define VK_EXT_acquire_drm_display 1
  15929. #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
  15930. #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
  15931. typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
  15932. typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
  15933. #ifndef VK_NO_PROTOTYPES
  15934. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15935. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
  15936. VkPhysicalDevice physicalDevice,
  15937. int32_t drmFd,
  15938. VkDisplayKHR display);
  15939. #endif
  15940. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  15941. VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
  15942. VkPhysicalDevice physicalDevice,
  15943. int32_t drmFd,
  15944. uint32_t connectorId,
  15945. VkDisplayKHR* display);
  15946. #endif
  15947. #endif
  15948. // VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
  15949. #define VK_EXT_robustness2 1
  15950. #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
  15951. #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
  15952. typedef VkPhysicalDeviceRobustness2FeaturesKHR VkPhysicalDeviceRobustness2FeaturesEXT;
  15953. typedef VkPhysicalDeviceRobustness2PropertiesKHR VkPhysicalDeviceRobustness2PropertiesEXT;
  15954. // VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
  15955. #define VK_EXT_custom_border_color 1
  15956. #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
  15957. #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
  15958. typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
  15959. VkStructureType sType;
  15960. const void* pNext;
  15961. VkClearColorValue customBorderColor;
  15962. VkFormat format;
  15963. } VkSamplerCustomBorderColorCreateInfoEXT;
  15964. typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
  15965. VkStructureType sType;
  15966. void* pNext;
  15967. uint32_t maxCustomBorderColorSamplers;
  15968. } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
  15969. typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
  15970. VkStructureType sType;
  15971. void* pNext;
  15972. VkBool32 customBorderColors;
  15973. VkBool32 customBorderColorWithoutFormat;
  15974. } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
  15975. // VK_EXT_texture_compression_astc_3d is a preprocessor guard. Do not pass it to API calls.
  15976. #define VK_EXT_texture_compression_astc_3d 1
  15977. #define VK_EXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION 1
  15978. #define VK_EXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME "VK_EXT_texture_compression_astc_3d"
  15979. typedef struct VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
  15980. VkStructureType sType;
  15981. void* pNext;
  15982. VkBool32 textureCompressionASTC_3D;
  15983. } VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT;
  15984. // VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
  15985. #define VK_GOOGLE_user_type 1
  15986. #define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
  15987. #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
  15988. // VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
  15989. #define VK_NV_present_barrier 1
  15990. #define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
  15991. #define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
  15992. typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
  15993. VkStructureType sType;
  15994. void* pNext;
  15995. VkBool32 presentBarrier;
  15996. } VkPhysicalDevicePresentBarrierFeaturesNV;
  15997. typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
  15998. VkStructureType sType;
  15999. void* pNext;
  16000. VkBool32 presentBarrierSupported;
  16001. } VkSurfaceCapabilitiesPresentBarrierNV;
  16002. typedef struct VkSwapchainPresentBarrierCreateInfoNV {
  16003. VkStructureType sType;
  16004. void* pNext;
  16005. VkBool32 presentBarrierEnable;
  16006. } VkSwapchainPresentBarrierCreateInfoNV;
  16007. // VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
  16008. #define VK_EXT_private_data 1
  16009. typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
  16010. #define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
  16011. #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
  16012. typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
  16013. typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
  16014. typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
  16015. typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
  16016. typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
  16017. typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
  16018. typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
  16019. typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
  16020. #ifndef VK_NO_PROTOTYPES
  16021. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16022. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
  16023. VkDevice device,
  16024. const VkPrivateDataSlotCreateInfo* pCreateInfo,
  16025. const VkAllocationCallbacks* pAllocator,
  16026. VkPrivateDataSlot* pPrivateDataSlot);
  16027. #endif
  16028. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16029. VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
  16030. VkDevice device,
  16031. VkPrivateDataSlot privateDataSlot,
  16032. const VkAllocationCallbacks* pAllocator);
  16033. #endif
  16034. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16035. VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
  16036. VkDevice device,
  16037. VkObjectType objectType,
  16038. uint64_t objectHandle,
  16039. VkPrivateDataSlot privateDataSlot,
  16040. uint64_t data);
  16041. #endif
  16042. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16043. VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
  16044. VkDevice device,
  16045. VkObjectType objectType,
  16046. uint64_t objectHandle,
  16047. VkPrivateDataSlot privateDataSlot,
  16048. uint64_t* pData);
  16049. #endif
  16050. #endif
  16051. // VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
  16052. #define VK_EXT_pipeline_creation_cache_control 1
  16053. #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
  16054. #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
  16055. typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
  16056. // VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
  16057. #define VK_NV_device_diagnostics_config 1
  16058. #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
  16059. #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
  16060. typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
  16061. VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
  16062. VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
  16063. VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
  16064. VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
  16065. VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  16066. } VkDeviceDiagnosticsConfigFlagBitsNV;
  16067. typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
  16068. typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
  16069. VkStructureType sType;
  16070. void* pNext;
  16071. VkBool32 diagnosticsConfig;
  16072. } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
  16073. typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
  16074. VkStructureType sType;
  16075. const void* pNext;
  16076. VkDeviceDiagnosticsConfigFlagsNV flags;
  16077. } VkDeviceDiagnosticsConfigCreateInfoNV;
  16078. // VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
  16079. #define VK_QCOM_render_pass_store_ops 1
  16080. #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
  16081. #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
  16082. // VK_QCOM_tile_shading is a preprocessor guard. Do not pass it to API calls.
  16083. #define VK_QCOM_tile_shading 1
  16084. #define VK_QCOM_TILE_SHADING_SPEC_VERSION 2
  16085. #define VK_QCOM_TILE_SHADING_EXTENSION_NAME "VK_QCOM_tile_shading"
  16086. typedef enum VkTileShadingRenderPassFlagBitsQCOM {
  16087. VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM = 0x00000001,
  16088. VK_TILE_SHADING_RENDER_PASS_PER_TILE_EXECUTION_BIT_QCOM = 0x00000002,
  16089. VK_TILE_SHADING_RENDER_PASS_FLAG_BITS_MAX_ENUM_QCOM = 0x7FFFFFFF
  16090. } VkTileShadingRenderPassFlagBitsQCOM;
  16091. typedef VkFlags VkTileShadingRenderPassFlagsQCOM;
  16092. typedef struct VkPhysicalDeviceTileShadingFeaturesQCOM {
  16093. VkStructureType sType;
  16094. void* pNext;
  16095. VkBool32 tileShading;
  16096. VkBool32 tileShadingFragmentStage;
  16097. VkBool32 tileShadingColorAttachments;
  16098. VkBool32 tileShadingDepthAttachments;
  16099. VkBool32 tileShadingStencilAttachments;
  16100. VkBool32 tileShadingInputAttachments;
  16101. VkBool32 tileShadingSampledAttachments;
  16102. VkBool32 tileShadingPerTileDraw;
  16103. VkBool32 tileShadingPerTileDispatch;
  16104. VkBool32 tileShadingDispatchTile;
  16105. VkBool32 tileShadingApron;
  16106. VkBool32 tileShadingAnisotropicApron;
  16107. VkBool32 tileShadingAtomicOps;
  16108. VkBool32 tileShadingImageProcessing;
  16109. } VkPhysicalDeviceTileShadingFeaturesQCOM;
  16110. typedef struct VkPhysicalDeviceTileShadingPropertiesQCOM {
  16111. VkStructureType sType;
  16112. void* pNext;
  16113. uint32_t maxApronSize;
  16114. VkBool32 preferNonCoherent;
  16115. VkExtent2D tileGranularity;
  16116. VkExtent2D maxTileShadingRate;
  16117. } VkPhysicalDeviceTileShadingPropertiesQCOM;
  16118. typedef struct VkRenderPassTileShadingCreateInfoQCOM {
  16119. VkStructureType sType;
  16120. const void* pNext;
  16121. VkTileShadingRenderPassFlagsQCOM flags;
  16122. VkExtent2D tileApronSize;
  16123. } VkRenderPassTileShadingCreateInfoQCOM;
  16124. typedef struct VkPerTileBeginInfoQCOM {
  16125. VkStructureType sType;
  16126. const void* pNext;
  16127. } VkPerTileBeginInfoQCOM;
  16128. typedef struct VkPerTileEndInfoQCOM {
  16129. VkStructureType sType;
  16130. const void* pNext;
  16131. } VkPerTileEndInfoQCOM;
  16132. typedef struct VkDispatchTileInfoQCOM {
  16133. VkStructureType sType;
  16134. const void* pNext;
  16135. } VkDispatchTileInfoQCOM;
  16136. typedef void (VKAPI_PTR *PFN_vkCmdDispatchTileQCOM)(VkCommandBuffer commandBuffer, const VkDispatchTileInfoQCOM* pDispatchTileInfo);
  16137. typedef void (VKAPI_PTR *PFN_vkCmdBeginPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
  16138. typedef void (VKAPI_PTR *PFN_vkCmdEndPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileEndInfoQCOM* pPerTileEndInfo);
  16139. #ifndef VK_NO_PROTOTYPES
  16140. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16141. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchTileQCOM(
  16142. VkCommandBuffer commandBuffer,
  16143. const VkDispatchTileInfoQCOM* pDispatchTileInfo);
  16144. #endif
  16145. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16146. VKAPI_ATTR void VKAPI_CALL vkCmdBeginPerTileExecutionQCOM(
  16147. VkCommandBuffer commandBuffer,
  16148. const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
  16149. #endif
  16150. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16151. VKAPI_ATTR void VKAPI_CALL vkCmdEndPerTileExecutionQCOM(
  16152. VkCommandBuffer commandBuffer,
  16153. const VkPerTileEndInfoQCOM* pPerTileEndInfo);
  16154. #endif
  16155. #endif
  16156. // VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
  16157. #define VK_NV_low_latency 1
  16158. #define VK_NV_LOW_LATENCY_SPEC_VERSION 1
  16159. #define VK_NV_LOW_LATENCY_EXTENSION_NAME "VK_NV_low_latency"
  16160. typedef struct VkQueryLowLatencySupportNV {
  16161. VkStructureType sType;
  16162. const void* pNext;
  16163. void* pQueriedLowLatencyData;
  16164. } VkQueryLowLatencySupportNV;
  16165. // VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
  16166. #define VK_EXT_descriptor_buffer 1
  16167. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
  16168. #define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
  16169. #define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
  16170. typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
  16171. VkStructureType sType;
  16172. void* pNext;
  16173. VkBool32 combinedImageSamplerDescriptorSingleArray;
  16174. VkBool32 bufferlessPushDescriptors;
  16175. VkBool32 allowSamplerImageViewPostSubmitCreation;
  16176. VkDeviceSize descriptorBufferOffsetAlignment;
  16177. uint32_t maxDescriptorBufferBindings;
  16178. uint32_t maxResourceDescriptorBufferBindings;
  16179. uint32_t maxSamplerDescriptorBufferBindings;
  16180. uint32_t maxEmbeddedImmutableSamplerBindings;
  16181. uint32_t maxEmbeddedImmutableSamplers;
  16182. size_t bufferCaptureReplayDescriptorDataSize;
  16183. size_t imageCaptureReplayDescriptorDataSize;
  16184. size_t imageViewCaptureReplayDescriptorDataSize;
  16185. size_t samplerCaptureReplayDescriptorDataSize;
  16186. size_t accelerationStructureCaptureReplayDescriptorDataSize;
  16187. size_t samplerDescriptorSize;
  16188. size_t combinedImageSamplerDescriptorSize;
  16189. size_t sampledImageDescriptorSize;
  16190. size_t storageImageDescriptorSize;
  16191. size_t uniformTexelBufferDescriptorSize;
  16192. size_t robustUniformTexelBufferDescriptorSize;
  16193. size_t storageTexelBufferDescriptorSize;
  16194. size_t robustStorageTexelBufferDescriptorSize;
  16195. size_t uniformBufferDescriptorSize;
  16196. size_t robustUniformBufferDescriptorSize;
  16197. size_t storageBufferDescriptorSize;
  16198. size_t robustStorageBufferDescriptorSize;
  16199. size_t inputAttachmentDescriptorSize;
  16200. size_t accelerationStructureDescriptorSize;
  16201. VkDeviceSize maxSamplerDescriptorBufferRange;
  16202. VkDeviceSize maxResourceDescriptorBufferRange;
  16203. VkDeviceSize samplerDescriptorBufferAddressSpaceSize;
  16204. VkDeviceSize resourceDescriptorBufferAddressSpaceSize;
  16205. VkDeviceSize descriptorBufferAddressSpaceSize;
  16206. } VkPhysicalDeviceDescriptorBufferPropertiesEXT;
  16207. typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
  16208. VkStructureType sType;
  16209. void* pNext;
  16210. size_t combinedImageSamplerDensityMapDescriptorSize;
  16211. } VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
  16212. typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
  16213. VkStructureType sType;
  16214. void* pNext;
  16215. VkBool32 descriptorBuffer;
  16216. VkBool32 descriptorBufferCaptureReplay;
  16217. VkBool32 descriptorBufferImageLayoutIgnored;
  16218. VkBool32 descriptorBufferPushDescriptors;
  16219. } VkPhysicalDeviceDescriptorBufferFeaturesEXT;
  16220. typedef struct VkDescriptorAddressInfoEXT {
  16221. VkStructureType sType;
  16222. void* pNext;
  16223. VkDeviceAddress address;
  16224. VkDeviceSize range;
  16225. VkFormat format;
  16226. } VkDescriptorAddressInfoEXT;
  16227. typedef struct VkDescriptorBufferBindingInfoEXT {
  16228. VkStructureType sType;
  16229. const void* pNext;
  16230. VkDeviceAddress address;
  16231. VkBufferUsageFlags usage;
  16232. } VkDescriptorBufferBindingInfoEXT;
  16233. typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
  16234. VkStructureType sType;
  16235. const void* pNext;
  16236. VkBuffer buffer;
  16237. } VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
  16238. typedef union VkDescriptorDataEXT {
  16239. const VkSampler* pSampler;
  16240. const VkDescriptorImageInfo* pCombinedImageSampler;
  16241. const VkDescriptorImageInfo* pInputAttachmentImage;
  16242. const VkDescriptorImageInfo* pSampledImage;
  16243. const VkDescriptorImageInfo* pStorageImage;
  16244. const VkDescriptorAddressInfoEXT* pUniformTexelBuffer;
  16245. const VkDescriptorAddressInfoEXT* pStorageTexelBuffer;
  16246. const VkDescriptorAddressInfoEXT* pUniformBuffer;
  16247. const VkDescriptorAddressInfoEXT* pStorageBuffer;
  16248. VkDeviceAddress accelerationStructure;
  16249. } VkDescriptorDataEXT;
  16250. typedef struct VkDescriptorGetInfoEXT {
  16251. VkStructureType sType;
  16252. const void* pNext;
  16253. VkDescriptorType type;
  16254. VkDescriptorDataEXT data;
  16255. } VkDescriptorGetInfoEXT;
  16256. typedef struct VkBufferCaptureDescriptorDataInfoEXT {
  16257. VkStructureType sType;
  16258. const void* pNext;
  16259. VkBuffer buffer;
  16260. } VkBufferCaptureDescriptorDataInfoEXT;
  16261. typedef struct VkImageCaptureDescriptorDataInfoEXT {
  16262. VkStructureType sType;
  16263. const void* pNext;
  16264. VkImage image;
  16265. } VkImageCaptureDescriptorDataInfoEXT;
  16266. typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
  16267. VkStructureType sType;
  16268. const void* pNext;
  16269. VkImageView imageView;
  16270. } VkImageViewCaptureDescriptorDataInfoEXT;
  16271. typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
  16272. VkStructureType sType;
  16273. const void* pNext;
  16274. VkSampler sampler;
  16275. } VkSamplerCaptureDescriptorDataInfoEXT;
  16276. typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
  16277. VkStructureType sType;
  16278. const void* pNext;
  16279. const void* opaqueCaptureDescriptorData;
  16280. } VkOpaqueCaptureDescriptorDataCreateInfoEXT;
  16281. typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
  16282. VkStructureType sType;
  16283. const void* pNext;
  16284. VkAccelerationStructureKHR accelerationStructure;
  16285. VkAccelerationStructureNV accelerationStructureNV;
  16286. } VkAccelerationStructureCaptureDescriptorDataInfoEXT;
  16287. typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
  16288. typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
  16289. typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
  16290. typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
  16291. typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);
  16292. typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
  16293. typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
  16294. typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
  16295. typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
  16296. typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
  16297. typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
  16298. #ifndef VK_NO_PROTOTYPES
  16299. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16300. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
  16301. VkDevice device,
  16302. VkDescriptorSetLayout layout,
  16303. VkDeviceSize* pLayoutSizeInBytes);
  16304. #endif
  16305. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16306. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
  16307. VkDevice device,
  16308. VkDescriptorSetLayout layout,
  16309. uint32_t binding,
  16310. VkDeviceSize* pOffset);
  16311. #endif
  16312. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16313. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
  16314. VkDevice device,
  16315. const VkDescriptorGetInfoEXT* pDescriptorInfo,
  16316. size_t dataSize,
  16317. void* pDescriptor);
  16318. #endif
  16319. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16320. VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
  16321. VkCommandBuffer commandBuffer,
  16322. uint32_t bufferCount,
  16323. const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
  16324. #endif
  16325. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16326. VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
  16327. VkCommandBuffer commandBuffer,
  16328. VkPipelineBindPoint pipelineBindPoint,
  16329. VkPipelineLayout layout,
  16330. uint32_t firstSet,
  16331. uint32_t setCount,
  16332. const uint32_t* pBufferIndices,
  16333. const VkDeviceSize* pOffsets);
  16334. #endif
  16335. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16336. VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
  16337. VkCommandBuffer commandBuffer,
  16338. VkPipelineBindPoint pipelineBindPoint,
  16339. VkPipelineLayout layout,
  16340. uint32_t set);
  16341. #endif
  16342. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16343. VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
  16344. VkDevice device,
  16345. const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
  16346. void* pData);
  16347. #endif
  16348. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16349. VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
  16350. VkDevice device,
  16351. const VkImageCaptureDescriptorDataInfoEXT* pInfo,
  16352. void* pData);
  16353. #endif
  16354. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16355. VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
  16356. VkDevice device,
  16357. const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
  16358. void* pData);
  16359. #endif
  16360. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16361. VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
  16362. VkDevice device,
  16363. const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
  16364. void* pData);
  16365. #endif
  16366. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16367. VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
  16368. VkDevice device,
  16369. const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
  16370. void* pData);
  16371. #endif
  16372. #endif
  16373. // VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
  16374. #define VK_EXT_graphics_pipeline_library 1
  16375. #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
  16376. #define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
  16377. typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
  16378. VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
  16379. VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
  16380. VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
  16381. VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
  16382. VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  16383. } VkGraphicsPipelineLibraryFlagBitsEXT;
  16384. typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
  16385. typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
  16386. VkStructureType sType;
  16387. void* pNext;
  16388. VkBool32 graphicsPipelineLibrary;
  16389. } VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
  16390. typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
  16391. VkStructureType sType;
  16392. void* pNext;
  16393. VkBool32 graphicsPipelineLibraryFastLinking;
  16394. VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration;
  16395. } VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
  16396. typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
  16397. VkStructureType sType;
  16398. const void* pNext;
  16399. VkGraphicsPipelineLibraryFlagsEXT flags;
  16400. } VkGraphicsPipelineLibraryCreateInfoEXT;
  16401. // VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
  16402. #define VK_AMD_shader_early_and_late_fragment_tests 1
  16403. #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
  16404. #define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
  16405. typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
  16406. VkStructureType sType;
  16407. void* pNext;
  16408. VkBool32 shaderEarlyAndLateFragmentTests;
  16409. } VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
  16410. // VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
  16411. #define VK_NV_fragment_shading_rate_enums 1
  16412. #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
  16413. #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
  16414. typedef enum VkFragmentShadingRateTypeNV {
  16415. VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
  16416. VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
  16417. VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  16418. } VkFragmentShadingRateTypeNV;
  16419. typedef enum VkFragmentShadingRateNV {
  16420. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
  16421. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
  16422. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
  16423. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
  16424. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
  16425. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
  16426. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
  16427. VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
  16428. VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
  16429. VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
  16430. VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
  16431. VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
  16432. VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
  16433. } VkFragmentShadingRateNV;
  16434. typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
  16435. VkStructureType sType;
  16436. void* pNext;
  16437. VkBool32 fragmentShadingRateEnums;
  16438. VkBool32 supersampleFragmentShadingRates;
  16439. VkBool32 noInvocationFragmentShadingRates;
  16440. } VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  16441. typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
  16442. VkStructureType sType;
  16443. void* pNext;
  16444. VkSampleCountFlagBits maxFragmentShadingRateInvocationCount;
  16445. } VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  16446. typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
  16447. VkStructureType sType;
  16448. const void* pNext;
  16449. VkFragmentShadingRateTypeNV shadingRateType;
  16450. VkFragmentShadingRateNV shadingRate;
  16451. VkFragmentShadingRateCombinerOpKHR combinerOps[2];
  16452. } VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
  16453. typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
  16454. #ifndef VK_NO_PROTOTYPES
  16455. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16456. VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
  16457. VkCommandBuffer commandBuffer,
  16458. VkFragmentShadingRateNV shadingRate,
  16459. const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
  16460. #endif
  16461. #endif
  16462. // VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
  16463. #define VK_NV_ray_tracing_motion_blur 1
  16464. #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
  16465. #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
  16466. typedef enum VkAccelerationStructureMotionInstanceTypeNV {
  16467. VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
  16468. VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
  16469. VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
  16470. VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  16471. } VkAccelerationStructureMotionInstanceTypeNV;
  16472. typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
  16473. typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
  16474. typedef union VkDeviceOrHostAddressConstKHR {
  16475. VkDeviceAddress deviceAddress;
  16476. const void* hostAddress;
  16477. } VkDeviceOrHostAddressConstKHR;
  16478. typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
  16479. VkStructureType sType;
  16480. const void* pNext;
  16481. VkDeviceOrHostAddressConstKHR vertexData;
  16482. } VkAccelerationStructureGeometryMotionTrianglesDataNV;
  16483. typedef struct VkAccelerationStructureMotionInfoNV {
  16484. VkStructureType sType;
  16485. const void* pNext;
  16486. uint32_t maxInstances;
  16487. VkAccelerationStructureMotionInfoFlagsNV flags;
  16488. } VkAccelerationStructureMotionInfoNV;
  16489. typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
  16490. VkTransformMatrixKHR transformT0;
  16491. VkTransformMatrixKHR transformT1;
  16492. uint32_t instanceCustomIndex:24;
  16493. uint32_t mask:8;
  16494. uint32_t instanceShaderBindingTableRecordOffset:24;
  16495. VkGeometryInstanceFlagsKHR flags:8;
  16496. uint64_t accelerationStructureReference;
  16497. } VkAccelerationStructureMatrixMotionInstanceNV;
  16498. typedef struct VkSRTDataNV {
  16499. float sx;
  16500. float a;
  16501. float b;
  16502. float pvx;
  16503. float sy;
  16504. float c;
  16505. float pvy;
  16506. float sz;
  16507. float pvz;
  16508. float qx;
  16509. float qy;
  16510. float qz;
  16511. float qw;
  16512. float tx;
  16513. float ty;
  16514. float tz;
  16515. } VkSRTDataNV;
  16516. typedef struct VkAccelerationStructureSRTMotionInstanceNV {
  16517. VkSRTDataNV transformT0;
  16518. VkSRTDataNV transformT1;
  16519. uint32_t instanceCustomIndex:24;
  16520. uint32_t mask:8;
  16521. uint32_t instanceShaderBindingTableRecordOffset:24;
  16522. VkGeometryInstanceFlagsKHR flags:8;
  16523. uint64_t accelerationStructureReference;
  16524. } VkAccelerationStructureSRTMotionInstanceNV;
  16525. typedef union VkAccelerationStructureMotionInstanceDataNV {
  16526. VkAccelerationStructureInstanceKHR staticInstance;
  16527. VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
  16528. VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
  16529. } VkAccelerationStructureMotionInstanceDataNV;
  16530. typedef struct VkAccelerationStructureMotionInstanceNV {
  16531. VkAccelerationStructureMotionInstanceTypeNV type;
  16532. VkAccelerationStructureMotionInstanceFlagsNV flags;
  16533. VkAccelerationStructureMotionInstanceDataNV data;
  16534. } VkAccelerationStructureMotionInstanceNV;
  16535. typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
  16536. VkStructureType sType;
  16537. void* pNext;
  16538. VkBool32 rayTracingMotionBlur;
  16539. VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect;
  16540. } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
  16541. // VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
  16542. #define VK_EXT_ycbcr_2plane_444_formats 1
  16543. #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
  16544. #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
  16545. typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
  16546. VkStructureType sType;
  16547. void* pNext;
  16548. VkBool32 ycbcr2plane444Formats;
  16549. } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  16550. // VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
  16551. #define VK_EXT_fragment_density_map2 1
  16552. #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
  16553. #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
  16554. typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
  16555. VkStructureType sType;
  16556. void* pNext;
  16557. VkBool32 fragmentDensityMapDeferred;
  16558. } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
  16559. typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
  16560. VkStructureType sType;
  16561. void* pNext;
  16562. VkBool32 subsampledLoads;
  16563. VkBool32 subsampledCoarseReconstructionEarlyAccess;
  16564. uint32_t maxSubsampledArrayLayers;
  16565. uint32_t maxDescriptorSetSubsampledSamplers;
  16566. } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
  16567. // VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
  16568. #define VK_QCOM_rotated_copy_commands 1
  16569. #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
  16570. #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
  16571. typedef struct VkCopyCommandTransformInfoQCOM {
  16572. VkStructureType sType;
  16573. const void* pNext;
  16574. VkSurfaceTransformFlagBitsKHR transform;
  16575. } VkCopyCommandTransformInfoQCOM;
  16576. // VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
  16577. #define VK_EXT_image_robustness 1
  16578. #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
  16579. #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
  16580. typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
  16581. // VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
  16582. #define VK_EXT_image_compression_control 1
  16583. #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
  16584. #define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
  16585. typedef enum VkImageCompressionFlagBitsEXT {
  16586. VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
  16587. VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
  16588. VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
  16589. VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
  16590. VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  16591. } VkImageCompressionFlagBitsEXT;
  16592. typedef VkFlags VkImageCompressionFlagsEXT;
  16593. typedef enum VkImageCompressionFixedRateFlagBitsEXT {
  16594. VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
  16595. VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
  16596. VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
  16597. VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
  16598. VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
  16599. VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
  16600. VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
  16601. VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
  16602. VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
  16603. VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
  16604. VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
  16605. VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
  16606. VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
  16607. VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
  16608. VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
  16609. VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
  16610. VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
  16611. VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
  16612. VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
  16613. VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
  16614. VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
  16615. VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
  16616. VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
  16617. VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
  16618. VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
  16619. VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  16620. } VkImageCompressionFixedRateFlagBitsEXT;
  16621. typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
  16622. typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
  16623. VkStructureType sType;
  16624. void* pNext;
  16625. VkBool32 imageCompressionControl;
  16626. } VkPhysicalDeviceImageCompressionControlFeaturesEXT;
  16627. typedef struct VkImageCompressionControlEXT {
  16628. VkStructureType sType;
  16629. const void* pNext;
  16630. VkImageCompressionFlagsEXT flags;
  16631. uint32_t compressionControlPlaneCount;
  16632. VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags;
  16633. } VkImageCompressionControlEXT;
  16634. typedef struct VkImageCompressionPropertiesEXT {
  16635. VkStructureType sType;
  16636. void* pNext;
  16637. VkImageCompressionFlagsEXT imageCompressionFlags;
  16638. VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags;
  16639. } VkImageCompressionPropertiesEXT;
  16640. // VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
  16641. #define VK_EXT_attachment_feedback_loop_layout 1
  16642. #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
  16643. #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
  16644. typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
  16645. VkStructureType sType;
  16646. void* pNext;
  16647. VkBool32 attachmentFeedbackLoopLayout;
  16648. } VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
  16649. // VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
  16650. #define VK_EXT_4444_formats 1
  16651. #define VK_EXT_4444_FORMATS_SPEC_VERSION 1
  16652. #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
  16653. typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
  16654. VkStructureType sType;
  16655. void* pNext;
  16656. VkBool32 formatA4R4G4B4;
  16657. VkBool32 formatA4B4G4R4;
  16658. } VkPhysicalDevice4444FormatsFeaturesEXT;
  16659. // VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
  16660. #define VK_EXT_device_fault 1
  16661. #define VK_EXT_DEVICE_FAULT_SPEC_VERSION 2
  16662. #define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
  16663. typedef enum VkDeviceFaultAddressTypeEXT {
  16664. VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
  16665. VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
  16666. VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
  16667. VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
  16668. VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
  16669. VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
  16670. VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
  16671. VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  16672. } VkDeviceFaultAddressTypeEXT;
  16673. typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
  16674. VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
  16675. VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
  16676. } VkDeviceFaultVendorBinaryHeaderVersionEXT;
  16677. typedef struct VkPhysicalDeviceFaultFeaturesEXT {
  16678. VkStructureType sType;
  16679. void* pNext;
  16680. VkBool32 deviceFault;
  16681. VkBool32 deviceFaultVendorBinary;
  16682. } VkPhysicalDeviceFaultFeaturesEXT;
  16683. typedef struct VkDeviceFaultCountsEXT {
  16684. VkStructureType sType;
  16685. void* pNext;
  16686. uint32_t addressInfoCount;
  16687. uint32_t vendorInfoCount;
  16688. VkDeviceSize vendorBinarySize;
  16689. } VkDeviceFaultCountsEXT;
  16690. typedef struct VkDeviceFaultAddressInfoEXT {
  16691. VkDeviceFaultAddressTypeEXT addressType;
  16692. VkDeviceAddress reportedAddress;
  16693. VkDeviceSize addressPrecision;
  16694. } VkDeviceFaultAddressInfoEXT;
  16695. typedef struct VkDeviceFaultVendorInfoEXT {
  16696. char description[VK_MAX_DESCRIPTION_SIZE];
  16697. uint64_t vendorFaultCode;
  16698. uint64_t vendorFaultData;
  16699. } VkDeviceFaultVendorInfoEXT;
  16700. typedef struct VkDeviceFaultInfoEXT {
  16701. VkStructureType sType;
  16702. void* pNext;
  16703. char description[VK_MAX_DESCRIPTION_SIZE];
  16704. VkDeviceFaultAddressInfoEXT* pAddressInfos;
  16705. VkDeviceFaultVendorInfoEXT* pVendorInfos;
  16706. void* pVendorBinaryData;
  16707. } VkDeviceFaultInfoEXT;
  16708. typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
  16709. uint32_t headerSize;
  16710. VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion;
  16711. uint32_t vendorID;
  16712. uint32_t deviceID;
  16713. uint32_t driverVersion;
  16714. uint8_t pipelineCacheUUID[VK_UUID_SIZE];
  16715. uint32_t applicationNameOffset;
  16716. uint32_t applicationVersion;
  16717. uint32_t engineNameOffset;
  16718. uint32_t engineVersion;
  16719. uint32_t apiVersion;
  16720. } VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
  16721. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
  16722. #ifndef VK_NO_PROTOTYPES
  16723. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16724. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
  16725. VkDevice device,
  16726. VkDeviceFaultCountsEXT* pFaultCounts,
  16727. VkDeviceFaultInfoEXT* pFaultInfo);
  16728. #endif
  16729. #endif
  16730. // VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
  16731. #define VK_ARM_rasterization_order_attachment_access 1
  16732. #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
  16733. #define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
  16734. typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
  16735. VkStructureType sType;
  16736. void* pNext;
  16737. VkBool32 rasterizationOrderColorAttachmentAccess;
  16738. VkBool32 rasterizationOrderDepthAttachmentAccess;
  16739. VkBool32 rasterizationOrderStencilAttachmentAccess;
  16740. } VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
  16741. typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
  16742. // VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
  16743. #define VK_EXT_rgba10x6_formats 1
  16744. #define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
  16745. #define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
  16746. typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
  16747. VkStructureType sType;
  16748. void* pNext;
  16749. VkBool32 formatRgba10x6WithoutYCbCrSampler;
  16750. } VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
  16751. // VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
  16752. #define VK_VALVE_mutable_descriptor_type 1
  16753. #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
  16754. #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
  16755. typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
  16756. VkStructureType sType;
  16757. void* pNext;
  16758. VkBool32 mutableDescriptorType;
  16759. } VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
  16760. typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
  16761. typedef struct VkMutableDescriptorTypeListEXT {
  16762. uint32_t descriptorTypeCount;
  16763. const VkDescriptorType* pDescriptorTypes;
  16764. } VkMutableDescriptorTypeListEXT;
  16765. typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
  16766. typedef struct VkMutableDescriptorTypeCreateInfoEXT {
  16767. VkStructureType sType;
  16768. const void* pNext;
  16769. uint32_t mutableDescriptorTypeListCount;
  16770. const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists;
  16771. } VkMutableDescriptorTypeCreateInfoEXT;
  16772. typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
  16773. // VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
  16774. #define VK_EXT_vertex_input_dynamic_state 1
  16775. #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
  16776. #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
  16777. typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
  16778. VkStructureType sType;
  16779. void* pNext;
  16780. VkBool32 vertexInputDynamicState;
  16781. } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  16782. typedef struct VkVertexInputBindingDescription2EXT {
  16783. VkStructureType sType;
  16784. void* pNext;
  16785. uint32_t binding;
  16786. uint32_t stride;
  16787. VkVertexInputRate inputRate;
  16788. uint32_t divisor;
  16789. } VkVertexInputBindingDescription2EXT;
  16790. typedef struct VkVertexInputAttributeDescription2EXT {
  16791. VkStructureType sType;
  16792. void* pNext;
  16793. uint32_t location;
  16794. uint32_t binding;
  16795. VkFormat format;
  16796. uint32_t offset;
  16797. } VkVertexInputAttributeDescription2EXT;
  16798. typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
  16799. #ifndef VK_NO_PROTOTYPES
  16800. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16801. VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
  16802. VkCommandBuffer commandBuffer,
  16803. uint32_t vertexBindingDescriptionCount,
  16804. const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
  16805. uint32_t vertexAttributeDescriptionCount,
  16806. const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
  16807. #endif
  16808. #endif
  16809. // VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
  16810. #define VK_EXT_physical_device_drm 1
  16811. #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
  16812. #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
  16813. typedef struct VkPhysicalDeviceDrmPropertiesEXT {
  16814. VkStructureType sType;
  16815. void* pNext;
  16816. VkBool32 hasPrimary;
  16817. VkBool32 hasRender;
  16818. int64_t primaryMajor;
  16819. int64_t primaryMinor;
  16820. int64_t renderMajor;
  16821. int64_t renderMinor;
  16822. } VkPhysicalDeviceDrmPropertiesEXT;
  16823. // VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
  16824. #define VK_EXT_device_address_binding_report 1
  16825. #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
  16826. #define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
  16827. typedef enum VkDeviceAddressBindingTypeEXT {
  16828. VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
  16829. VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
  16830. VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  16831. } VkDeviceAddressBindingTypeEXT;
  16832. typedef enum VkDeviceAddressBindingFlagBitsEXT {
  16833. VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
  16834. VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  16835. } VkDeviceAddressBindingFlagBitsEXT;
  16836. typedef VkFlags VkDeviceAddressBindingFlagsEXT;
  16837. typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
  16838. VkStructureType sType;
  16839. void* pNext;
  16840. VkBool32 reportAddressBinding;
  16841. } VkPhysicalDeviceAddressBindingReportFeaturesEXT;
  16842. typedef struct VkDeviceAddressBindingCallbackDataEXT {
  16843. VkStructureType sType;
  16844. void* pNext;
  16845. VkDeviceAddressBindingFlagsEXT flags;
  16846. VkDeviceAddress baseAddress;
  16847. VkDeviceSize size;
  16848. VkDeviceAddressBindingTypeEXT bindingType;
  16849. } VkDeviceAddressBindingCallbackDataEXT;
  16850. // VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
  16851. #define VK_EXT_depth_clip_control 1
  16852. #define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
  16853. #define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
  16854. typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
  16855. VkStructureType sType;
  16856. void* pNext;
  16857. VkBool32 depthClipControl;
  16858. } VkPhysicalDeviceDepthClipControlFeaturesEXT;
  16859. typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
  16860. VkStructureType sType;
  16861. const void* pNext;
  16862. VkBool32 negativeOneToOne;
  16863. } VkPipelineViewportDepthClipControlCreateInfoEXT;
  16864. // VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
  16865. #define VK_EXT_primitive_topology_list_restart 1
  16866. #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
  16867. #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
  16868. typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
  16869. VkStructureType sType;
  16870. void* pNext;
  16871. VkBool32 primitiveTopologyListRestart;
  16872. VkBool32 primitiveTopologyPatchListRestart;
  16873. } VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  16874. // VK_EXT_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
  16875. #define VK_EXT_present_mode_fifo_latest_ready 1
  16876. #define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
  16877. #define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_EXT_present_mode_fifo_latest_ready"
  16878. typedef VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT;
  16879. // VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
  16880. #define VK_HUAWEI_subpass_shading 1
  16881. #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
  16882. #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
  16883. typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
  16884. VkStructureType sType;
  16885. void* pNext;
  16886. VkRenderPass renderPass;
  16887. uint32_t subpass;
  16888. } VkSubpassShadingPipelineCreateInfoHUAWEI;
  16889. typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
  16890. VkStructureType sType;
  16891. void* pNext;
  16892. VkBool32 subpassShading;
  16893. } VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
  16894. typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
  16895. VkStructureType sType;
  16896. void* pNext;
  16897. uint32_t maxSubpassShadingWorkgroupSizeAspectRatio;
  16898. } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
  16899. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
  16900. typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
  16901. #ifndef VK_NO_PROTOTYPES
  16902. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16903. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
  16904. VkDevice device,
  16905. VkRenderPass renderpass,
  16906. VkExtent2D* pMaxWorkgroupSize);
  16907. #endif
  16908. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16909. VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
  16910. VkCommandBuffer commandBuffer);
  16911. #endif
  16912. #endif
  16913. // VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
  16914. #define VK_HUAWEI_invocation_mask 1
  16915. #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
  16916. #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
  16917. typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
  16918. VkStructureType sType;
  16919. void* pNext;
  16920. VkBool32 invocationMask;
  16921. } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
  16922. typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
  16923. #ifndef VK_NO_PROTOTYPES
  16924. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16925. VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
  16926. VkCommandBuffer commandBuffer,
  16927. VkImageView imageView,
  16928. VkImageLayout imageLayout);
  16929. #endif
  16930. #endif
  16931. // VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
  16932. #define VK_NV_external_memory_rdma 1
  16933. typedef void* VkRemoteAddressNV;
  16934. #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
  16935. #define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
  16936. typedef struct VkMemoryGetRemoteAddressInfoNV {
  16937. VkStructureType sType;
  16938. const void* pNext;
  16939. VkDeviceMemory memory;
  16940. VkExternalMemoryHandleTypeFlagBits handleType;
  16941. } VkMemoryGetRemoteAddressInfoNV;
  16942. typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
  16943. VkStructureType sType;
  16944. void* pNext;
  16945. VkBool32 externalMemoryRDMA;
  16946. } VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
  16947. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
  16948. #ifndef VK_NO_PROTOTYPES
  16949. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16950. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
  16951. VkDevice device,
  16952. const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
  16953. VkRemoteAddressNV* pAddress);
  16954. #endif
  16955. #endif
  16956. // VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
  16957. #define VK_EXT_pipeline_properties 1
  16958. #define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
  16959. #define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
  16960. typedef VkPipelineInfoKHR VkPipelineInfoEXT;
  16961. typedef struct VkPipelinePropertiesIdentifierEXT {
  16962. VkStructureType sType;
  16963. void* pNext;
  16964. uint8_t pipelineIdentifier[VK_UUID_SIZE];
  16965. } VkPipelinePropertiesIdentifierEXT;
  16966. typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
  16967. VkStructureType sType;
  16968. void* pNext;
  16969. VkBool32 pipelinePropertiesIdentifier;
  16970. } VkPhysicalDevicePipelinePropertiesFeaturesEXT;
  16971. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
  16972. #ifndef VK_NO_PROTOTYPES
  16973. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  16974. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
  16975. VkDevice device,
  16976. const VkPipelineInfoEXT* pPipelineInfo,
  16977. VkBaseOutStructure* pPipelineProperties);
  16978. #endif
  16979. #endif
  16980. // VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
  16981. #define VK_EXT_frame_boundary 1
  16982. #define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
  16983. #define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
  16984. typedef enum VkFrameBoundaryFlagBitsEXT {
  16985. VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
  16986. VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  16987. } VkFrameBoundaryFlagBitsEXT;
  16988. typedef VkFlags VkFrameBoundaryFlagsEXT;
  16989. typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
  16990. VkStructureType sType;
  16991. void* pNext;
  16992. VkBool32 frameBoundary;
  16993. } VkPhysicalDeviceFrameBoundaryFeaturesEXT;
  16994. typedef struct VkFrameBoundaryEXT {
  16995. VkStructureType sType;
  16996. const void* pNext;
  16997. VkFrameBoundaryFlagsEXT flags;
  16998. uint64_t frameID;
  16999. uint32_t imageCount;
  17000. const VkImage* pImages;
  17001. uint32_t bufferCount;
  17002. const VkBuffer* pBuffers;
  17003. uint64_t tagName;
  17004. size_t tagSize;
  17005. const void* pTag;
  17006. } VkFrameBoundaryEXT;
  17007. // VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
  17008. #define VK_EXT_multisampled_render_to_single_sampled 1
  17009. #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
  17010. #define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
  17011. typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
  17012. VkStructureType sType;
  17013. void* pNext;
  17014. VkBool32 multisampledRenderToSingleSampled;
  17015. } VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
  17016. typedef struct VkSubpassResolvePerformanceQueryEXT {
  17017. VkStructureType sType;
  17018. void* pNext;
  17019. VkBool32 optimal;
  17020. } VkSubpassResolvePerformanceQueryEXT;
  17021. typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
  17022. VkStructureType sType;
  17023. const void* pNext;
  17024. VkBool32 multisampledRenderToSingleSampledEnable;
  17025. VkSampleCountFlagBits rasterizationSamples;
  17026. } VkMultisampledRenderToSingleSampledInfoEXT;
  17027. // VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
  17028. #define VK_EXT_extended_dynamic_state2 1
  17029. #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
  17030. #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
  17031. typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
  17032. VkStructureType sType;
  17033. void* pNext;
  17034. VkBool32 extendedDynamicState2;
  17035. VkBool32 extendedDynamicState2LogicOp;
  17036. VkBool32 extendedDynamicState2PatchControlPoints;
  17037. } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
  17038. typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
  17039. typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
  17040. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
  17041. typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
  17042. typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
  17043. #ifndef VK_NO_PROTOTYPES
  17044. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17045. VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
  17046. VkCommandBuffer commandBuffer,
  17047. uint32_t patchControlPoints);
  17048. #endif
  17049. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17050. VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
  17051. VkCommandBuffer commandBuffer,
  17052. VkBool32 rasterizerDiscardEnable);
  17053. #endif
  17054. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17055. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
  17056. VkCommandBuffer commandBuffer,
  17057. VkBool32 depthBiasEnable);
  17058. #endif
  17059. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17060. VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
  17061. VkCommandBuffer commandBuffer,
  17062. VkLogicOp logicOp);
  17063. #endif
  17064. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17065. VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
  17066. VkCommandBuffer commandBuffer,
  17067. VkBool32 primitiveRestartEnable);
  17068. #endif
  17069. #endif
  17070. // VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
  17071. #define VK_EXT_color_write_enable 1
  17072. #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
  17073. #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
  17074. typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
  17075. VkStructureType sType;
  17076. void* pNext;
  17077. VkBool32 colorWriteEnable;
  17078. } VkPhysicalDeviceColorWriteEnableFeaturesEXT;
  17079. typedef struct VkPipelineColorWriteCreateInfoEXT {
  17080. VkStructureType sType;
  17081. const void* pNext;
  17082. uint32_t attachmentCount;
  17083. const VkBool32* pColorWriteEnables;
  17084. } VkPipelineColorWriteCreateInfoEXT;
  17085. typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables);
  17086. #ifndef VK_NO_PROTOTYPES
  17087. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17088. VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT(
  17089. VkCommandBuffer commandBuffer,
  17090. uint32_t attachmentCount,
  17091. const VkBool32* pColorWriteEnables);
  17092. #endif
  17093. #endif
  17094. // VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
  17095. #define VK_EXT_primitives_generated_query 1
  17096. #define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
  17097. #define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
  17098. typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
  17099. VkStructureType sType;
  17100. void* pNext;
  17101. VkBool32 primitivesGeneratedQuery;
  17102. VkBool32 primitivesGeneratedQueryWithRasterizerDiscard;
  17103. VkBool32 primitivesGeneratedQueryWithNonZeroStreams;
  17104. } VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
  17105. // VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
  17106. #define VK_EXT_global_priority_query 1
  17107. #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
  17108. #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
  17109. #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE
  17110. typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
  17111. typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT;
  17112. // VK_VALVE_video_encode_rgb_conversion is a preprocessor guard. Do not pass it to API calls.
  17113. #define VK_VALVE_video_encode_rgb_conversion 1
  17114. #define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_SPEC_VERSION 1
  17115. #define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_EXTENSION_NAME "VK_VALVE_video_encode_rgb_conversion"
  17116. typedef enum VkVideoEncodeRgbModelConversionFlagBitsVALVE {
  17117. VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_RGB_IDENTITY_BIT_VALVE = 0x00000001,
  17118. VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_IDENTITY_BIT_VALVE = 0x00000002,
  17119. VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_709_BIT_VALVE = 0x00000004,
  17120. VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_601_BIT_VALVE = 0x00000008,
  17121. VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_2020_BIT_VALVE = 0x00000010,
  17122. VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
  17123. } VkVideoEncodeRgbModelConversionFlagBitsVALVE;
  17124. typedef VkFlags VkVideoEncodeRgbModelConversionFlagsVALVE;
  17125. typedef enum VkVideoEncodeRgbRangeCompressionFlagBitsVALVE {
  17126. VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FULL_RANGE_BIT_VALVE = 0x00000001,
  17127. VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_NARROW_RANGE_BIT_VALVE = 0x00000002,
  17128. VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
  17129. } VkVideoEncodeRgbRangeCompressionFlagBitsVALVE;
  17130. typedef VkFlags VkVideoEncodeRgbRangeCompressionFlagsVALVE;
  17131. typedef enum VkVideoEncodeRgbChromaOffsetFlagBitsVALVE {
  17132. VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_COSITED_EVEN_BIT_VALVE = 0x00000001,
  17133. VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_MIDPOINT_BIT_VALVE = 0x00000002,
  17134. VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
  17135. } VkVideoEncodeRgbChromaOffsetFlagBitsVALVE;
  17136. typedef VkFlags VkVideoEncodeRgbChromaOffsetFlagsVALVE;
  17137. typedef struct VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
  17138. VkStructureType sType;
  17139. void* pNext;
  17140. VkBool32 videoEncodeRgbConversion;
  17141. } VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE;
  17142. typedef struct VkVideoEncodeRgbConversionCapabilitiesVALVE {
  17143. VkStructureType sType;
  17144. void* pNext;
  17145. VkVideoEncodeRgbModelConversionFlagsVALVE rgbModels;
  17146. VkVideoEncodeRgbRangeCompressionFlagsVALVE rgbRanges;
  17147. VkVideoEncodeRgbChromaOffsetFlagsVALVE xChromaOffsets;
  17148. VkVideoEncodeRgbChromaOffsetFlagsVALVE yChromaOffsets;
  17149. } VkVideoEncodeRgbConversionCapabilitiesVALVE;
  17150. typedef struct VkVideoEncodeProfileRgbConversionInfoVALVE {
  17151. VkStructureType sType;
  17152. const void* pNext;
  17153. VkBool32 performEncodeRgbConversion;
  17154. } VkVideoEncodeProfileRgbConversionInfoVALVE;
  17155. typedef struct VkVideoEncodeSessionRgbConversionCreateInfoVALVE {
  17156. VkStructureType sType;
  17157. const void* pNext;
  17158. VkVideoEncodeRgbModelConversionFlagBitsVALVE rgbModel;
  17159. VkVideoEncodeRgbRangeCompressionFlagBitsVALVE rgbRange;
  17160. VkVideoEncodeRgbChromaOffsetFlagBitsVALVE xChromaOffset;
  17161. VkVideoEncodeRgbChromaOffsetFlagBitsVALVE yChromaOffset;
  17162. } VkVideoEncodeSessionRgbConversionCreateInfoVALVE;
  17163. // VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
  17164. #define VK_EXT_image_view_min_lod 1
  17165. #define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
  17166. #define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
  17167. typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
  17168. VkStructureType sType;
  17169. void* pNext;
  17170. VkBool32 minLod;
  17171. } VkPhysicalDeviceImageViewMinLodFeaturesEXT;
  17172. typedef struct VkImageViewMinLodCreateInfoEXT {
  17173. VkStructureType sType;
  17174. const void* pNext;
  17175. float minLod;
  17176. } VkImageViewMinLodCreateInfoEXT;
  17177. // VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
  17178. #define VK_EXT_multi_draw 1
  17179. #define VK_EXT_MULTI_DRAW_SPEC_VERSION 1
  17180. #define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
  17181. typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
  17182. VkStructureType sType;
  17183. void* pNext;
  17184. VkBool32 multiDraw;
  17185. } VkPhysicalDeviceMultiDrawFeaturesEXT;
  17186. typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
  17187. VkStructureType sType;
  17188. void* pNext;
  17189. uint32_t maxMultiDrawCount;
  17190. } VkPhysicalDeviceMultiDrawPropertiesEXT;
  17191. typedef struct VkMultiDrawInfoEXT {
  17192. uint32_t firstVertex;
  17193. uint32_t vertexCount;
  17194. } VkMultiDrawInfoEXT;
  17195. typedef struct VkMultiDrawIndexedInfoEXT {
  17196. uint32_t firstIndex;
  17197. uint32_t indexCount;
  17198. int32_t vertexOffset;
  17199. } VkMultiDrawIndexedInfoEXT;
  17200. typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
  17201. typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiIndexedEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset);
  17202. #ifndef VK_NO_PROTOTYPES
  17203. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17204. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
  17205. VkCommandBuffer commandBuffer,
  17206. uint32_t drawCount,
  17207. const VkMultiDrawInfoEXT* pVertexInfo,
  17208. uint32_t instanceCount,
  17209. uint32_t firstInstance,
  17210. uint32_t stride);
  17211. #endif
  17212. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17213. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
  17214. VkCommandBuffer commandBuffer,
  17215. uint32_t drawCount,
  17216. const VkMultiDrawIndexedInfoEXT* pIndexInfo,
  17217. uint32_t instanceCount,
  17218. uint32_t firstInstance,
  17219. uint32_t stride,
  17220. const int32_t* pVertexOffset);
  17221. #endif
  17222. #endif
  17223. // VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
  17224. #define VK_EXT_image_2d_view_of_3d 1
  17225. #define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
  17226. #define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
  17227. typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
  17228. VkStructureType sType;
  17229. void* pNext;
  17230. VkBool32 image2DViewOf3D;
  17231. VkBool32 sampler2DViewOf3D;
  17232. } VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
  17233. // VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
  17234. #define VK_EXT_shader_tile_image 1
  17235. #define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
  17236. #define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
  17237. typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
  17238. VkStructureType sType;
  17239. void* pNext;
  17240. VkBool32 shaderTileImageColorReadAccess;
  17241. VkBool32 shaderTileImageDepthReadAccess;
  17242. VkBool32 shaderTileImageStencilReadAccess;
  17243. } VkPhysicalDeviceShaderTileImageFeaturesEXT;
  17244. typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
  17245. VkStructureType sType;
  17246. void* pNext;
  17247. VkBool32 shaderTileImageCoherentReadAccelerated;
  17248. VkBool32 shaderTileImageReadSampleFromPixelRateInvocation;
  17249. VkBool32 shaderTileImageReadFromHelperInvocation;
  17250. } VkPhysicalDeviceShaderTileImagePropertiesEXT;
  17251. // VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
  17252. #define VK_EXT_opacity_micromap 1
  17253. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
  17254. #define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
  17255. #define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
  17256. typedef enum VkMicromapTypeEXT {
  17257. VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
  17258. #ifdef VK_ENABLE_BETA_EXTENSIONS
  17259. VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
  17260. #endif
  17261. VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  17262. } VkMicromapTypeEXT;
  17263. typedef enum VkBuildMicromapModeEXT {
  17264. VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
  17265. VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  17266. } VkBuildMicromapModeEXT;
  17267. typedef enum VkCopyMicromapModeEXT {
  17268. VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
  17269. VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
  17270. VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
  17271. VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
  17272. VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  17273. } VkCopyMicromapModeEXT;
  17274. typedef enum VkOpacityMicromapFormatEXT {
  17275. VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
  17276. VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
  17277. VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
  17278. } VkOpacityMicromapFormatEXT;
  17279. typedef enum VkOpacityMicromapSpecialIndexEXT {
  17280. VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
  17281. VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
  17282. VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
  17283. VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
  17284. VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5,
  17285. VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
  17286. } VkOpacityMicromapSpecialIndexEXT;
  17287. typedef enum VkAccelerationStructureCompatibilityKHR {
  17288. VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
  17289. VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
  17290. VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
  17291. } VkAccelerationStructureCompatibilityKHR;
  17292. typedef enum VkAccelerationStructureBuildTypeKHR {
  17293. VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
  17294. VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
  17295. VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
  17296. VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  17297. } VkAccelerationStructureBuildTypeKHR;
  17298. typedef enum VkBuildMicromapFlagBitsEXT {
  17299. VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
  17300. VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
  17301. VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
  17302. VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  17303. } VkBuildMicromapFlagBitsEXT;
  17304. typedef VkFlags VkBuildMicromapFlagsEXT;
  17305. typedef enum VkMicromapCreateFlagBitsEXT {
  17306. VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
  17307. VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  17308. } VkMicromapCreateFlagBitsEXT;
  17309. typedef VkFlags VkMicromapCreateFlagsEXT;
  17310. typedef struct VkMicromapUsageEXT {
  17311. uint32_t count;
  17312. uint32_t subdivisionLevel;
  17313. uint32_t format;
  17314. } VkMicromapUsageEXT;
  17315. typedef union VkDeviceOrHostAddressKHR {
  17316. VkDeviceAddress deviceAddress;
  17317. void* hostAddress;
  17318. } VkDeviceOrHostAddressKHR;
  17319. typedef struct VkMicromapBuildInfoEXT {
  17320. VkStructureType sType;
  17321. const void* pNext;
  17322. VkMicromapTypeEXT type;
  17323. VkBuildMicromapFlagsEXT flags;
  17324. VkBuildMicromapModeEXT mode;
  17325. VkMicromapEXT dstMicromap;
  17326. uint32_t usageCountsCount;
  17327. const VkMicromapUsageEXT* pUsageCounts;
  17328. const VkMicromapUsageEXT* const* ppUsageCounts;
  17329. VkDeviceOrHostAddressConstKHR data;
  17330. VkDeviceOrHostAddressKHR scratchData;
  17331. VkDeviceOrHostAddressConstKHR triangleArray;
  17332. VkDeviceSize triangleArrayStride;
  17333. } VkMicromapBuildInfoEXT;
  17334. typedef struct VkMicromapCreateInfoEXT {
  17335. VkStructureType sType;
  17336. const void* pNext;
  17337. VkMicromapCreateFlagsEXT createFlags;
  17338. VkBuffer buffer;
  17339. VkDeviceSize offset;
  17340. VkDeviceSize size;
  17341. VkMicromapTypeEXT type;
  17342. VkDeviceAddress deviceAddress;
  17343. } VkMicromapCreateInfoEXT;
  17344. typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
  17345. VkStructureType sType;
  17346. void* pNext;
  17347. VkBool32 micromap;
  17348. VkBool32 micromapCaptureReplay;
  17349. VkBool32 micromapHostCommands;
  17350. } VkPhysicalDeviceOpacityMicromapFeaturesEXT;
  17351. typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
  17352. VkStructureType sType;
  17353. void* pNext;
  17354. uint32_t maxOpacity2StateSubdivisionLevel;
  17355. uint32_t maxOpacity4StateSubdivisionLevel;
  17356. } VkPhysicalDeviceOpacityMicromapPropertiesEXT;
  17357. typedef struct VkMicromapVersionInfoEXT {
  17358. VkStructureType sType;
  17359. const void* pNext;
  17360. const uint8_t* pVersionData;
  17361. } VkMicromapVersionInfoEXT;
  17362. typedef struct VkCopyMicromapToMemoryInfoEXT {
  17363. VkStructureType sType;
  17364. const void* pNext;
  17365. VkMicromapEXT src;
  17366. VkDeviceOrHostAddressKHR dst;
  17367. VkCopyMicromapModeEXT mode;
  17368. } VkCopyMicromapToMemoryInfoEXT;
  17369. typedef struct VkCopyMemoryToMicromapInfoEXT {
  17370. VkStructureType sType;
  17371. const void* pNext;
  17372. VkDeviceOrHostAddressConstKHR src;
  17373. VkMicromapEXT dst;
  17374. VkCopyMicromapModeEXT mode;
  17375. } VkCopyMemoryToMicromapInfoEXT;
  17376. typedef struct VkCopyMicromapInfoEXT {
  17377. VkStructureType sType;
  17378. const void* pNext;
  17379. VkMicromapEXT src;
  17380. VkMicromapEXT dst;
  17381. VkCopyMicromapModeEXT mode;
  17382. } VkCopyMicromapInfoEXT;
  17383. typedef struct VkMicromapBuildSizesInfoEXT {
  17384. VkStructureType sType;
  17385. const void* pNext;
  17386. VkDeviceSize micromapSize;
  17387. VkDeviceSize buildScratchSize;
  17388. VkBool32 discardable;
  17389. } VkMicromapBuildSizesInfoEXT;
  17390. typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
  17391. VkStructureType sType;
  17392. void* pNext;
  17393. VkIndexType indexType;
  17394. VkDeviceOrHostAddressConstKHR indexBuffer;
  17395. VkDeviceSize indexStride;
  17396. uint32_t baseTriangle;
  17397. uint32_t usageCountsCount;
  17398. const VkMicromapUsageEXT* pUsageCounts;
  17399. const VkMicromapUsageEXT* const* ppUsageCounts;
  17400. VkMicromapEXT micromap;
  17401. } VkAccelerationStructureTrianglesOpacityMicromapEXT;
  17402. typedef struct VkMicromapTriangleEXT {
  17403. uint32_t dataOffset;
  17404. uint16_t subdivisionLevel;
  17405. uint16_t format;
  17406. } VkMicromapTriangleEXT;
  17407. typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap);
  17408. typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
  17409. typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
  17410. typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
  17411. typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
  17412. typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
  17413. typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
  17414. typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
  17415. typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
  17416. typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
  17417. typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
  17418. typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
  17419. typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
  17420. typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo);
  17421. #ifndef VK_NO_PROTOTYPES
  17422. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17423. VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
  17424. VkDevice device,
  17425. const VkMicromapCreateInfoEXT* pCreateInfo,
  17426. const VkAllocationCallbacks* pAllocator,
  17427. VkMicromapEXT* pMicromap);
  17428. #endif
  17429. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17430. VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
  17431. VkDevice device,
  17432. VkMicromapEXT micromap,
  17433. const VkAllocationCallbacks* pAllocator);
  17434. #endif
  17435. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17436. VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
  17437. VkCommandBuffer commandBuffer,
  17438. uint32_t infoCount,
  17439. const VkMicromapBuildInfoEXT* pInfos);
  17440. #endif
  17441. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17442. VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
  17443. VkDevice device,
  17444. VkDeferredOperationKHR deferredOperation,
  17445. uint32_t infoCount,
  17446. const VkMicromapBuildInfoEXT* pInfos);
  17447. #endif
  17448. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17449. VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
  17450. VkDevice device,
  17451. VkDeferredOperationKHR deferredOperation,
  17452. const VkCopyMicromapInfoEXT* pInfo);
  17453. #endif
  17454. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17455. VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
  17456. VkDevice device,
  17457. VkDeferredOperationKHR deferredOperation,
  17458. const VkCopyMicromapToMemoryInfoEXT* pInfo);
  17459. #endif
  17460. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17461. VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
  17462. VkDevice device,
  17463. VkDeferredOperationKHR deferredOperation,
  17464. const VkCopyMemoryToMicromapInfoEXT* pInfo);
  17465. #endif
  17466. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17467. VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
  17468. VkDevice device,
  17469. uint32_t micromapCount,
  17470. const VkMicromapEXT* pMicromaps,
  17471. VkQueryType queryType,
  17472. size_t dataSize,
  17473. void* pData,
  17474. size_t stride);
  17475. #endif
  17476. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17477. VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
  17478. VkCommandBuffer commandBuffer,
  17479. const VkCopyMicromapInfoEXT* pInfo);
  17480. #endif
  17481. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17482. VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
  17483. VkCommandBuffer commandBuffer,
  17484. const VkCopyMicromapToMemoryInfoEXT* pInfo);
  17485. #endif
  17486. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17487. VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
  17488. VkCommandBuffer commandBuffer,
  17489. const VkCopyMemoryToMicromapInfoEXT* pInfo);
  17490. #endif
  17491. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17492. VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
  17493. VkCommandBuffer commandBuffer,
  17494. uint32_t micromapCount,
  17495. const VkMicromapEXT* pMicromaps,
  17496. VkQueryType queryType,
  17497. VkQueryPool queryPool,
  17498. uint32_t firstQuery);
  17499. #endif
  17500. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17501. VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
  17502. VkDevice device,
  17503. const VkMicromapVersionInfoEXT* pVersionInfo,
  17504. VkAccelerationStructureCompatibilityKHR* pCompatibility);
  17505. #endif
  17506. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17507. VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
  17508. VkDevice device,
  17509. VkAccelerationStructureBuildTypeKHR buildType,
  17510. const VkMicromapBuildInfoEXT* pBuildInfo,
  17511. VkMicromapBuildSizesInfoEXT* pSizeInfo);
  17512. #endif
  17513. #endif
  17514. // VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
  17515. #define VK_EXT_load_store_op_none 1
  17516. #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
  17517. #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
  17518. // VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
  17519. #define VK_HUAWEI_cluster_culling_shader 1
  17520. #define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
  17521. #define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
  17522. typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
  17523. VkStructureType sType;
  17524. void* pNext;
  17525. VkBool32 clustercullingShader;
  17526. VkBool32 multiviewClusterCullingShader;
  17527. } VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
  17528. typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
  17529. VkStructureType sType;
  17530. void* pNext;
  17531. uint32_t maxWorkGroupCount[3];
  17532. uint32_t maxWorkGroupSize[3];
  17533. uint32_t maxOutputClusterCount;
  17534. VkDeviceSize indirectBufferOffsetAlignment;
  17535. } VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
  17536. typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
  17537. VkStructureType sType;
  17538. void* pNext;
  17539. VkBool32 clusterShadingRate;
  17540. } VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
  17541. typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  17542. typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
  17543. #ifndef VK_NO_PROTOTYPES
  17544. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17545. VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
  17546. VkCommandBuffer commandBuffer,
  17547. uint32_t groupCountX,
  17548. uint32_t groupCountY,
  17549. uint32_t groupCountZ);
  17550. #endif
  17551. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17552. VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
  17553. VkCommandBuffer commandBuffer,
  17554. VkBuffer buffer,
  17555. VkDeviceSize offset);
  17556. #endif
  17557. #endif
  17558. // VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
  17559. #define VK_EXT_border_color_swizzle 1
  17560. #define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
  17561. #define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
  17562. typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
  17563. VkStructureType sType;
  17564. void* pNext;
  17565. VkBool32 borderColorSwizzle;
  17566. VkBool32 borderColorSwizzleFromImage;
  17567. } VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
  17568. typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
  17569. VkStructureType sType;
  17570. const void* pNext;
  17571. VkComponentMapping components;
  17572. VkBool32 srgb;
  17573. } VkSamplerBorderColorComponentMappingCreateInfoEXT;
  17574. // VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
  17575. #define VK_EXT_pageable_device_local_memory 1
  17576. #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
  17577. #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
  17578. typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
  17579. VkStructureType sType;
  17580. void* pNext;
  17581. VkBool32 pageableDeviceLocalMemory;
  17582. } VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  17583. typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority);
  17584. #ifndef VK_NO_PROTOTYPES
  17585. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17586. VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
  17587. VkDevice device,
  17588. VkDeviceMemory memory,
  17589. float priority);
  17590. #endif
  17591. #endif
  17592. // VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
  17593. #define VK_ARM_shader_core_properties 1
  17594. #define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
  17595. #define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
  17596. typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
  17597. VkStructureType sType;
  17598. void* pNext;
  17599. uint32_t pixelRate;
  17600. uint32_t texelRate;
  17601. uint32_t fmaRate;
  17602. } VkPhysicalDeviceShaderCorePropertiesARM;
  17603. // VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
  17604. #define VK_ARM_scheduling_controls 1
  17605. #define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
  17606. #define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
  17607. typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
  17608. // Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
  17609. typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
  17610. static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
  17611. typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
  17612. VkStructureType sType;
  17613. void* pNext;
  17614. uint32_t shaderCoreCount;
  17615. } VkDeviceQueueShaderCoreControlCreateInfoARM;
  17616. typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
  17617. VkStructureType sType;
  17618. void* pNext;
  17619. VkBool32 schedulingControls;
  17620. } VkPhysicalDeviceSchedulingControlsFeaturesARM;
  17621. typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
  17622. VkStructureType sType;
  17623. void* pNext;
  17624. VkPhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags;
  17625. } VkPhysicalDeviceSchedulingControlsPropertiesARM;
  17626. // VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
  17627. #define VK_EXT_image_sliced_view_of_3d 1
  17628. #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
  17629. #define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
  17630. #define VK_REMAINING_3D_SLICES_EXT (~0U)
  17631. typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
  17632. VkStructureType sType;
  17633. void* pNext;
  17634. VkBool32 imageSlicedViewOf3D;
  17635. } VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
  17636. typedef struct VkImageViewSlicedCreateInfoEXT {
  17637. VkStructureType sType;
  17638. const void* pNext;
  17639. uint32_t sliceOffset;
  17640. uint32_t sliceCount;
  17641. } VkImageViewSlicedCreateInfoEXT;
  17642. // VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
  17643. #define VK_VALVE_descriptor_set_host_mapping 1
  17644. #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
  17645. #define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
  17646. typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
  17647. VkStructureType sType;
  17648. void* pNext;
  17649. VkBool32 descriptorSetHostMapping;
  17650. } VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
  17651. typedef struct VkDescriptorSetBindingReferenceVALVE {
  17652. VkStructureType sType;
  17653. const void* pNext;
  17654. VkDescriptorSetLayout descriptorSetLayout;
  17655. uint32_t binding;
  17656. } VkDescriptorSetBindingReferenceVALVE;
  17657. typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
  17658. VkStructureType sType;
  17659. void* pNext;
  17660. size_t descriptorOffset;
  17661. uint32_t descriptorSize;
  17662. } VkDescriptorSetLayoutHostMappingInfoVALVE;
  17663. typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
  17664. typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
  17665. #ifndef VK_NO_PROTOTYPES
  17666. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17667. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
  17668. VkDevice device,
  17669. const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
  17670. VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
  17671. #endif
  17672. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17673. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
  17674. VkDevice device,
  17675. VkDescriptorSet descriptorSet,
  17676. void** ppData);
  17677. #endif
  17678. #endif
  17679. // VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
  17680. #define VK_EXT_depth_clamp_zero_one 1
  17681. #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
  17682. #define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
  17683. typedef VkPhysicalDeviceDepthClampZeroOneFeaturesKHR VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
  17684. // VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
  17685. #define VK_EXT_non_seamless_cube_map 1
  17686. #define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
  17687. #define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
  17688. typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
  17689. VkStructureType sType;
  17690. void* pNext;
  17691. VkBool32 nonSeamlessCubeMap;
  17692. } VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
  17693. // VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
  17694. #define VK_ARM_render_pass_striped 1
  17695. #define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
  17696. #define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
  17697. typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
  17698. VkStructureType sType;
  17699. void* pNext;
  17700. VkBool32 renderPassStriped;
  17701. } VkPhysicalDeviceRenderPassStripedFeaturesARM;
  17702. typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
  17703. VkStructureType sType;
  17704. void* pNext;
  17705. VkExtent2D renderPassStripeGranularity;
  17706. uint32_t maxRenderPassStripes;
  17707. } VkPhysicalDeviceRenderPassStripedPropertiesARM;
  17708. typedef struct VkRenderPassStripeInfoARM {
  17709. VkStructureType sType;
  17710. const void* pNext;
  17711. VkRect2D stripeArea;
  17712. } VkRenderPassStripeInfoARM;
  17713. typedef struct VkRenderPassStripeBeginInfoARM {
  17714. VkStructureType sType;
  17715. const void* pNext;
  17716. uint32_t stripeInfoCount;
  17717. const VkRenderPassStripeInfoARM* pStripeInfos;
  17718. } VkRenderPassStripeBeginInfoARM;
  17719. typedef struct VkRenderPassStripeSubmitInfoARM {
  17720. VkStructureType sType;
  17721. const void* pNext;
  17722. uint32_t stripeSemaphoreInfoCount;
  17723. const VkSemaphoreSubmitInfo* pStripeSemaphoreInfos;
  17724. } VkRenderPassStripeSubmitInfoARM;
  17725. // VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
  17726. #define VK_QCOM_fragment_density_map_offset 1
  17727. #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 3
  17728. #define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
  17729. typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
  17730. VkStructureType sType;
  17731. void* pNext;
  17732. VkBool32 fragmentDensityMapOffset;
  17733. } VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT;
  17734. typedef VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
  17735. typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
  17736. VkStructureType sType;
  17737. void* pNext;
  17738. VkExtent2D fragmentDensityOffsetGranularity;
  17739. } VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT;
  17740. typedef VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
  17741. typedef struct VkRenderPassFragmentDensityMapOffsetEndInfoEXT {
  17742. VkStructureType sType;
  17743. const void* pNext;
  17744. uint32_t fragmentDensityOffsetCount;
  17745. const VkOffset2D* pFragmentDensityOffsets;
  17746. } VkRenderPassFragmentDensityMapOffsetEndInfoEXT;
  17747. typedef VkRenderPassFragmentDensityMapOffsetEndInfoEXT VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
  17748. // VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
  17749. #define VK_NV_copy_memory_indirect 1
  17750. #define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
  17751. #define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
  17752. typedef VkCopyMemoryIndirectCommandKHR VkCopyMemoryIndirectCommandNV;
  17753. typedef VkCopyMemoryToImageIndirectCommandKHR VkCopyMemoryToImageIndirectCommandNV;
  17754. typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
  17755. VkStructureType sType;
  17756. void* pNext;
  17757. VkBool32 indirectCopy;
  17758. } VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
  17759. typedef VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
  17760. typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
  17761. typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
  17762. #ifndef VK_NO_PROTOTYPES
  17763. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17764. VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
  17765. VkCommandBuffer commandBuffer,
  17766. VkDeviceAddress copyBufferAddress,
  17767. uint32_t copyCount,
  17768. uint32_t stride);
  17769. #endif
  17770. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17771. VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
  17772. VkCommandBuffer commandBuffer,
  17773. VkDeviceAddress copyBufferAddress,
  17774. uint32_t copyCount,
  17775. uint32_t stride,
  17776. VkImage dstImage,
  17777. VkImageLayout dstImageLayout,
  17778. const VkImageSubresourceLayers* pImageSubresources);
  17779. #endif
  17780. #endif
  17781. // VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
  17782. #define VK_NV_memory_decompression 1
  17783. #define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
  17784. #define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
  17785. // Flag bits for VkMemoryDecompressionMethodFlagBitsEXT
  17786. typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsEXT;
  17787. static const VkMemoryDecompressionMethodFlagBitsEXT VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT = 0x00000001ULL;
  17788. static const VkMemoryDecompressionMethodFlagBitsEXT VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
  17789. typedef VkMemoryDecompressionMethodFlagBitsEXT VkMemoryDecompressionMethodFlagBitsNV;
  17790. typedef VkFlags64 VkMemoryDecompressionMethodFlagsEXT;
  17791. typedef VkMemoryDecompressionMethodFlagsEXT VkMemoryDecompressionMethodFlagsNV;
  17792. typedef struct VkDecompressMemoryRegionNV {
  17793. VkDeviceAddress srcAddress;
  17794. VkDeviceAddress dstAddress;
  17795. VkDeviceSize compressedSize;
  17796. VkDeviceSize decompressedSize;
  17797. VkMemoryDecompressionMethodFlagsNV decompressionMethod;
  17798. } VkDecompressMemoryRegionNV;
  17799. typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesEXT {
  17800. VkStructureType sType;
  17801. void* pNext;
  17802. VkBool32 memoryDecompression;
  17803. } VkPhysicalDeviceMemoryDecompressionFeaturesEXT;
  17804. typedef VkPhysicalDeviceMemoryDecompressionFeaturesEXT VkPhysicalDeviceMemoryDecompressionFeaturesNV;
  17805. typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesEXT {
  17806. VkStructureType sType;
  17807. void* pNext;
  17808. VkMemoryDecompressionMethodFlagsEXT decompressionMethods;
  17809. uint64_t maxDecompressionIndirectCount;
  17810. } VkPhysicalDeviceMemoryDecompressionPropertiesEXT;
  17811. typedef VkPhysicalDeviceMemoryDecompressionPropertiesEXT VkPhysicalDeviceMemoryDecompressionPropertiesNV;
  17812. typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
  17813. typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
  17814. #ifndef VK_NO_PROTOTYPES
  17815. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17816. VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
  17817. VkCommandBuffer commandBuffer,
  17818. uint32_t decompressRegionCount,
  17819. const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
  17820. #endif
  17821. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17822. VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
  17823. VkCommandBuffer commandBuffer,
  17824. VkDeviceAddress indirectCommandsAddress,
  17825. VkDeviceAddress indirectCommandsCountAddress,
  17826. uint32_t stride);
  17827. #endif
  17828. #endif
  17829. // VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
  17830. #define VK_NV_device_generated_commands_compute 1
  17831. #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
  17832. #define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
  17833. typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
  17834. VkStructureType sType;
  17835. void* pNext;
  17836. VkBool32 deviceGeneratedCompute;
  17837. VkBool32 deviceGeneratedComputePipelines;
  17838. VkBool32 deviceGeneratedComputeCaptureReplay;
  17839. } VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
  17840. typedef struct VkComputePipelineIndirectBufferInfoNV {
  17841. VkStructureType sType;
  17842. const void* pNext;
  17843. VkDeviceAddress deviceAddress;
  17844. VkDeviceSize size;
  17845. VkDeviceAddress pipelineDeviceAddressCaptureReplay;
  17846. } VkComputePipelineIndirectBufferInfoNV;
  17847. typedef struct VkPipelineIndirectDeviceAddressInfoNV {
  17848. VkStructureType sType;
  17849. const void* pNext;
  17850. VkPipelineBindPoint pipelineBindPoint;
  17851. VkPipeline pipeline;
  17852. } VkPipelineIndirectDeviceAddressInfoNV;
  17853. typedef struct VkBindPipelineIndirectCommandNV {
  17854. VkDeviceAddress pipelineAddress;
  17855. } VkBindPipelineIndirectCommandNV;
  17856. typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
  17857. typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
  17858. typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
  17859. #ifndef VK_NO_PROTOTYPES
  17860. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17861. VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
  17862. VkDevice device,
  17863. const VkComputePipelineCreateInfo* pCreateInfo,
  17864. VkMemoryRequirements2* pMemoryRequirements);
  17865. #endif
  17866. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17867. VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
  17868. VkCommandBuffer commandBuffer,
  17869. VkPipelineBindPoint pipelineBindPoint,
  17870. VkPipeline pipeline);
  17871. #endif
  17872. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  17873. VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
  17874. VkDevice device,
  17875. const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
  17876. #endif
  17877. #endif
  17878. // VK_NV_ray_tracing_linear_swept_spheres is a preprocessor guard. Do not pass it to API calls.
  17879. #define VK_NV_ray_tracing_linear_swept_spheres 1
  17880. #define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION 1
  17881. #define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME "VK_NV_ray_tracing_linear_swept_spheres"
  17882. typedef enum VkRayTracingLssIndexingModeNV {
  17883. VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV = 0,
  17884. VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV = 1,
  17885. VK_RAY_TRACING_LSS_INDEXING_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  17886. } VkRayTracingLssIndexingModeNV;
  17887. typedef enum VkRayTracingLssPrimitiveEndCapsModeNV {
  17888. VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV = 0,
  17889. VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV = 1,
  17890. VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  17891. } VkRayTracingLssPrimitiveEndCapsModeNV;
  17892. typedef struct VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
  17893. VkStructureType sType;
  17894. void* pNext;
  17895. VkBool32 spheres;
  17896. VkBool32 linearSweptSpheres;
  17897. } VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV;
  17898. typedef struct VkAccelerationStructureGeometryLinearSweptSpheresDataNV {
  17899. VkStructureType sType;
  17900. const void* pNext;
  17901. VkFormat vertexFormat;
  17902. VkDeviceOrHostAddressConstKHR vertexData;
  17903. VkDeviceSize vertexStride;
  17904. VkFormat radiusFormat;
  17905. VkDeviceOrHostAddressConstKHR radiusData;
  17906. VkDeviceSize radiusStride;
  17907. VkIndexType indexType;
  17908. VkDeviceOrHostAddressConstKHR indexData;
  17909. VkDeviceSize indexStride;
  17910. VkRayTracingLssIndexingModeNV indexingMode;
  17911. VkRayTracingLssPrimitiveEndCapsModeNV endCapsMode;
  17912. } VkAccelerationStructureGeometryLinearSweptSpheresDataNV;
  17913. typedef struct VkAccelerationStructureGeometrySpheresDataNV {
  17914. VkStructureType sType;
  17915. const void* pNext;
  17916. VkFormat vertexFormat;
  17917. VkDeviceOrHostAddressConstKHR vertexData;
  17918. VkDeviceSize vertexStride;
  17919. VkFormat radiusFormat;
  17920. VkDeviceOrHostAddressConstKHR radiusData;
  17921. VkDeviceSize radiusStride;
  17922. VkIndexType indexType;
  17923. VkDeviceOrHostAddressConstKHR indexData;
  17924. VkDeviceSize indexStride;
  17925. } VkAccelerationStructureGeometrySpheresDataNV;
  17926. // VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
  17927. #define VK_NV_linear_color_attachment 1
  17928. #define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
  17929. #define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
  17930. typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
  17931. VkStructureType sType;
  17932. void* pNext;
  17933. VkBool32 linearColorAttachment;
  17934. } VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
  17935. // VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
  17936. #define VK_GOOGLE_surfaceless_query 1
  17937. #define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
  17938. #define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
  17939. // VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
  17940. #define VK_EXT_image_compression_control_swapchain 1
  17941. #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
  17942. #define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
  17943. typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
  17944. VkStructureType sType;
  17945. void* pNext;
  17946. VkBool32 imageCompressionControlSwapchain;
  17947. } VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
  17948. // VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
  17949. #define VK_QCOM_image_processing 1
  17950. #define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
  17951. #define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
  17952. typedef struct VkImageViewSampleWeightCreateInfoQCOM {
  17953. VkStructureType sType;
  17954. const void* pNext;
  17955. VkOffset2D filterCenter;
  17956. VkExtent2D filterSize;
  17957. uint32_t numPhases;
  17958. } VkImageViewSampleWeightCreateInfoQCOM;
  17959. typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
  17960. VkStructureType sType;
  17961. void* pNext;
  17962. VkBool32 textureSampleWeighted;
  17963. VkBool32 textureBoxFilter;
  17964. VkBool32 textureBlockMatch;
  17965. } VkPhysicalDeviceImageProcessingFeaturesQCOM;
  17966. typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
  17967. VkStructureType sType;
  17968. void* pNext;
  17969. uint32_t maxWeightFilterPhases;
  17970. VkExtent2D maxWeightFilterDimension;
  17971. VkExtent2D maxBlockMatchRegion;
  17972. VkExtent2D maxBoxFilterBlockSize;
  17973. } VkPhysicalDeviceImageProcessingPropertiesQCOM;
  17974. // VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
  17975. #define VK_EXT_nested_command_buffer 1
  17976. #define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
  17977. #define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
  17978. typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
  17979. VkStructureType sType;
  17980. void* pNext;
  17981. VkBool32 nestedCommandBuffer;
  17982. VkBool32 nestedCommandBufferRendering;
  17983. VkBool32 nestedCommandBufferSimultaneousUse;
  17984. } VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
  17985. typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
  17986. VkStructureType sType;
  17987. void* pNext;
  17988. uint32_t maxCommandBufferNestingLevel;
  17989. } VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
  17990. // VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
  17991. #define VK_EXT_external_memory_acquire_unmodified 1
  17992. #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
  17993. #define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
  17994. typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
  17995. VkStructureType sType;
  17996. const void* pNext;
  17997. VkBool32 acquireUnmodifiedMemory;
  17998. } VkExternalMemoryAcquireUnmodifiedEXT;
  17999. // VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
  18000. #define VK_EXT_extended_dynamic_state3 1
  18001. #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
  18002. #define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
  18003. typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
  18004. VkStructureType sType;
  18005. void* pNext;
  18006. VkBool32 extendedDynamicState3TessellationDomainOrigin;
  18007. VkBool32 extendedDynamicState3DepthClampEnable;
  18008. VkBool32 extendedDynamicState3PolygonMode;
  18009. VkBool32 extendedDynamicState3RasterizationSamples;
  18010. VkBool32 extendedDynamicState3SampleMask;
  18011. VkBool32 extendedDynamicState3AlphaToCoverageEnable;
  18012. VkBool32 extendedDynamicState3AlphaToOneEnable;
  18013. VkBool32 extendedDynamicState3LogicOpEnable;
  18014. VkBool32 extendedDynamicState3ColorBlendEnable;
  18015. VkBool32 extendedDynamicState3ColorBlendEquation;
  18016. VkBool32 extendedDynamicState3ColorWriteMask;
  18017. VkBool32 extendedDynamicState3RasterizationStream;
  18018. VkBool32 extendedDynamicState3ConservativeRasterizationMode;
  18019. VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize;
  18020. VkBool32 extendedDynamicState3DepthClipEnable;
  18021. VkBool32 extendedDynamicState3SampleLocationsEnable;
  18022. VkBool32 extendedDynamicState3ColorBlendAdvanced;
  18023. VkBool32 extendedDynamicState3ProvokingVertexMode;
  18024. VkBool32 extendedDynamicState3LineRasterizationMode;
  18025. VkBool32 extendedDynamicState3LineStippleEnable;
  18026. VkBool32 extendedDynamicState3DepthClipNegativeOneToOne;
  18027. VkBool32 extendedDynamicState3ViewportWScalingEnable;
  18028. VkBool32 extendedDynamicState3ViewportSwizzle;
  18029. VkBool32 extendedDynamicState3CoverageToColorEnable;
  18030. VkBool32 extendedDynamicState3CoverageToColorLocation;
  18031. VkBool32 extendedDynamicState3CoverageModulationMode;
  18032. VkBool32 extendedDynamicState3CoverageModulationTableEnable;
  18033. VkBool32 extendedDynamicState3CoverageModulationTable;
  18034. VkBool32 extendedDynamicState3CoverageReductionMode;
  18035. VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable;
  18036. VkBool32 extendedDynamicState3ShadingRateImageEnable;
  18037. } VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
  18038. typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
  18039. VkStructureType sType;
  18040. void* pNext;
  18041. VkBool32 dynamicPrimitiveTopologyUnrestricted;
  18042. } VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
  18043. typedef struct VkColorBlendEquationEXT {
  18044. VkBlendFactor srcColorBlendFactor;
  18045. VkBlendFactor dstColorBlendFactor;
  18046. VkBlendOp colorBlendOp;
  18047. VkBlendFactor srcAlphaBlendFactor;
  18048. VkBlendFactor dstAlphaBlendFactor;
  18049. VkBlendOp alphaBlendOp;
  18050. } VkColorBlendEquationEXT;
  18051. typedef struct VkColorBlendAdvancedEXT {
  18052. VkBlendOp advancedBlendOp;
  18053. VkBool32 srcPremultiplied;
  18054. VkBool32 dstPremultiplied;
  18055. VkBlendOverlapEXT blendOverlap;
  18056. VkBool32 clampResults;
  18057. } VkColorBlendAdvancedEXT;
  18058. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
  18059. typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
  18060. typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples);
  18061. typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask);
  18062. typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
  18063. typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
  18064. typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
  18065. typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
  18066. typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
  18067. typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
  18068. typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
  18069. typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
  18070. typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
  18071. typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
  18072. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
  18073. typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
  18074. typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
  18075. typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
  18076. typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
  18077. typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
  18078. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
  18079. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
  18080. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
  18081. typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
  18082. typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
  18083. typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
  18084. typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
  18085. typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
  18086. typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
  18087. typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
  18088. typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
  18089. #ifndef VK_NO_PROTOTYPES
  18090. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18091. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
  18092. VkCommandBuffer commandBuffer,
  18093. VkBool32 depthClampEnable);
  18094. #endif
  18095. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18096. VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
  18097. VkCommandBuffer commandBuffer,
  18098. VkPolygonMode polygonMode);
  18099. #endif
  18100. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18101. VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
  18102. VkCommandBuffer commandBuffer,
  18103. VkSampleCountFlagBits rasterizationSamples);
  18104. #endif
  18105. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18106. VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
  18107. VkCommandBuffer commandBuffer,
  18108. VkSampleCountFlagBits samples,
  18109. const VkSampleMask* pSampleMask);
  18110. #endif
  18111. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18112. VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
  18113. VkCommandBuffer commandBuffer,
  18114. VkBool32 alphaToCoverageEnable);
  18115. #endif
  18116. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18117. VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
  18118. VkCommandBuffer commandBuffer,
  18119. VkBool32 alphaToOneEnable);
  18120. #endif
  18121. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18122. VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
  18123. VkCommandBuffer commandBuffer,
  18124. VkBool32 logicOpEnable);
  18125. #endif
  18126. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18127. VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
  18128. VkCommandBuffer commandBuffer,
  18129. uint32_t firstAttachment,
  18130. uint32_t attachmentCount,
  18131. const VkBool32* pColorBlendEnables);
  18132. #endif
  18133. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18134. VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
  18135. VkCommandBuffer commandBuffer,
  18136. uint32_t firstAttachment,
  18137. uint32_t attachmentCount,
  18138. const VkColorBlendEquationEXT* pColorBlendEquations);
  18139. #endif
  18140. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18141. VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
  18142. VkCommandBuffer commandBuffer,
  18143. uint32_t firstAttachment,
  18144. uint32_t attachmentCount,
  18145. const VkColorComponentFlags* pColorWriteMasks);
  18146. #endif
  18147. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18148. VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
  18149. VkCommandBuffer commandBuffer,
  18150. VkTessellationDomainOrigin domainOrigin);
  18151. #endif
  18152. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18153. VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
  18154. VkCommandBuffer commandBuffer,
  18155. uint32_t rasterizationStream);
  18156. #endif
  18157. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18158. VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
  18159. VkCommandBuffer commandBuffer,
  18160. VkConservativeRasterizationModeEXT conservativeRasterizationMode);
  18161. #endif
  18162. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18163. VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
  18164. VkCommandBuffer commandBuffer,
  18165. float extraPrimitiveOverestimationSize);
  18166. #endif
  18167. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18168. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
  18169. VkCommandBuffer commandBuffer,
  18170. VkBool32 depthClipEnable);
  18171. #endif
  18172. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18173. VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
  18174. VkCommandBuffer commandBuffer,
  18175. VkBool32 sampleLocationsEnable);
  18176. #endif
  18177. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18178. VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
  18179. VkCommandBuffer commandBuffer,
  18180. uint32_t firstAttachment,
  18181. uint32_t attachmentCount,
  18182. const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
  18183. #endif
  18184. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18185. VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
  18186. VkCommandBuffer commandBuffer,
  18187. VkProvokingVertexModeEXT provokingVertexMode);
  18188. #endif
  18189. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18190. VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
  18191. VkCommandBuffer commandBuffer,
  18192. VkLineRasterizationModeEXT lineRasterizationMode);
  18193. #endif
  18194. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18195. VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
  18196. VkCommandBuffer commandBuffer,
  18197. VkBool32 stippledLineEnable);
  18198. #endif
  18199. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18200. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
  18201. VkCommandBuffer commandBuffer,
  18202. VkBool32 negativeOneToOne);
  18203. #endif
  18204. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18205. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
  18206. VkCommandBuffer commandBuffer,
  18207. VkBool32 viewportWScalingEnable);
  18208. #endif
  18209. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18210. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
  18211. VkCommandBuffer commandBuffer,
  18212. uint32_t firstViewport,
  18213. uint32_t viewportCount,
  18214. const VkViewportSwizzleNV* pViewportSwizzles);
  18215. #endif
  18216. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18217. VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
  18218. VkCommandBuffer commandBuffer,
  18219. VkBool32 coverageToColorEnable);
  18220. #endif
  18221. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18222. VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
  18223. VkCommandBuffer commandBuffer,
  18224. uint32_t coverageToColorLocation);
  18225. #endif
  18226. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18227. VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
  18228. VkCommandBuffer commandBuffer,
  18229. VkCoverageModulationModeNV coverageModulationMode);
  18230. #endif
  18231. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18232. VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
  18233. VkCommandBuffer commandBuffer,
  18234. VkBool32 coverageModulationTableEnable);
  18235. #endif
  18236. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18237. VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
  18238. VkCommandBuffer commandBuffer,
  18239. uint32_t coverageModulationTableCount,
  18240. const float* pCoverageModulationTable);
  18241. #endif
  18242. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18243. VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
  18244. VkCommandBuffer commandBuffer,
  18245. VkBool32 shadingRateImageEnable);
  18246. #endif
  18247. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18248. VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
  18249. VkCommandBuffer commandBuffer,
  18250. VkBool32 representativeFragmentTestEnable);
  18251. #endif
  18252. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18253. VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
  18254. VkCommandBuffer commandBuffer,
  18255. VkCoverageReductionModeNV coverageReductionMode);
  18256. #endif
  18257. #endif
  18258. // VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
  18259. #define VK_EXT_subpass_merge_feedback 1
  18260. #define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
  18261. #define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
  18262. typedef enum VkSubpassMergeStatusEXT {
  18263. VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
  18264. VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
  18265. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
  18266. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
  18267. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
  18268. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
  18269. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
  18270. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
  18271. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
  18272. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
  18273. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
  18274. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
  18275. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
  18276. VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
  18277. VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
  18278. } VkSubpassMergeStatusEXT;
  18279. typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
  18280. VkStructureType sType;
  18281. void* pNext;
  18282. VkBool32 subpassMergeFeedback;
  18283. } VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
  18284. typedef struct VkRenderPassCreationControlEXT {
  18285. VkStructureType sType;
  18286. const void* pNext;
  18287. VkBool32 disallowMerging;
  18288. } VkRenderPassCreationControlEXT;
  18289. typedef struct VkRenderPassCreationFeedbackInfoEXT {
  18290. uint32_t postMergeSubpassCount;
  18291. } VkRenderPassCreationFeedbackInfoEXT;
  18292. typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
  18293. VkStructureType sType;
  18294. const void* pNext;
  18295. VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback;
  18296. } VkRenderPassCreationFeedbackCreateInfoEXT;
  18297. typedef struct VkRenderPassSubpassFeedbackInfoEXT {
  18298. VkSubpassMergeStatusEXT subpassMergeStatus;
  18299. char description[VK_MAX_DESCRIPTION_SIZE];
  18300. uint32_t postMergeIndex;
  18301. } VkRenderPassSubpassFeedbackInfoEXT;
  18302. typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
  18303. VkStructureType sType;
  18304. const void* pNext;
  18305. VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback;
  18306. } VkRenderPassSubpassFeedbackCreateInfoEXT;
  18307. // VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
  18308. #define VK_LUNARG_direct_driver_loading 1
  18309. #define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
  18310. #define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
  18311. typedef enum VkDirectDriverLoadingModeLUNARG {
  18312. VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
  18313. VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
  18314. VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
  18315. } VkDirectDriverLoadingModeLUNARG;
  18316. typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
  18317. typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
  18318. VkInstance instance, const char* pName);
  18319. typedef struct VkDirectDriverLoadingInfoLUNARG {
  18320. VkStructureType sType;
  18321. void* pNext;
  18322. VkDirectDriverLoadingFlagsLUNARG flags;
  18323. PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr;
  18324. } VkDirectDriverLoadingInfoLUNARG;
  18325. typedef struct VkDirectDriverLoadingListLUNARG {
  18326. VkStructureType sType;
  18327. const void* pNext;
  18328. VkDirectDriverLoadingModeLUNARG mode;
  18329. uint32_t driverCount;
  18330. const VkDirectDriverLoadingInfoLUNARG* pDrivers;
  18331. } VkDirectDriverLoadingListLUNARG;
  18332. // VK_ARM_tensors is a preprocessor guard. Do not pass it to API calls.
  18333. #define VK_ARM_tensors 1
  18334. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorARM)
  18335. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorViewARM)
  18336. #define VK_ARM_TENSORS_SPEC_VERSION 1
  18337. #define VK_ARM_TENSORS_EXTENSION_NAME "VK_ARM_tensors"
  18338. typedef enum VkTensorTilingARM {
  18339. VK_TENSOR_TILING_OPTIMAL_ARM = 0,
  18340. VK_TENSOR_TILING_LINEAR_ARM = 1,
  18341. VK_TENSOR_TILING_MAX_ENUM_ARM = 0x7FFFFFFF
  18342. } VkTensorTilingARM;
  18343. typedef VkFlags64 VkTensorCreateFlagsARM;
  18344. // Flag bits for VkTensorCreateFlagBitsARM
  18345. typedef VkFlags64 VkTensorCreateFlagBitsARM;
  18346. static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM = 0x00000001ULL;
  18347. static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_PROTECTED_BIT_ARM = 0x00000002ULL;
  18348. static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000004ULL;
  18349. typedef VkFlags64 VkTensorViewCreateFlagsARM;
  18350. // Flag bits for VkTensorViewCreateFlagBitsARM
  18351. typedef VkFlags64 VkTensorViewCreateFlagBitsARM;
  18352. static const VkTensorViewCreateFlagBitsARM VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000001ULL;
  18353. typedef VkFlags64 VkTensorUsageFlagsARM;
  18354. // Flag bits for VkTensorUsageFlagBitsARM
  18355. typedef VkFlags64 VkTensorUsageFlagBitsARM;
  18356. static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_SHADER_BIT_ARM = 0x00000002ULL;
  18357. static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM = 0x00000004ULL;
  18358. static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM = 0x00000008ULL;
  18359. static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM = 0x00000010ULL;
  18360. static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM = 0x00000020ULL;
  18361. typedef struct VkTensorDescriptionARM {
  18362. VkStructureType sType;
  18363. const void* pNext;
  18364. VkTensorTilingARM tiling;
  18365. VkFormat format;
  18366. uint32_t dimensionCount;
  18367. const int64_t* pDimensions;
  18368. const int64_t* pStrides;
  18369. VkTensorUsageFlagsARM usage;
  18370. } VkTensorDescriptionARM;
  18371. typedef struct VkTensorCreateInfoARM {
  18372. VkStructureType sType;
  18373. const void* pNext;
  18374. VkTensorCreateFlagsARM flags;
  18375. const VkTensorDescriptionARM* pDescription;
  18376. VkSharingMode sharingMode;
  18377. uint32_t queueFamilyIndexCount;
  18378. const uint32_t* pQueueFamilyIndices;
  18379. } VkTensorCreateInfoARM;
  18380. typedef struct VkTensorViewCreateInfoARM {
  18381. VkStructureType sType;
  18382. const void* pNext;
  18383. VkTensorViewCreateFlagsARM flags;
  18384. VkTensorARM tensor;
  18385. VkFormat format;
  18386. } VkTensorViewCreateInfoARM;
  18387. typedef struct VkTensorMemoryRequirementsInfoARM {
  18388. VkStructureType sType;
  18389. const void* pNext;
  18390. VkTensorARM tensor;
  18391. } VkTensorMemoryRequirementsInfoARM;
  18392. typedef struct VkBindTensorMemoryInfoARM {
  18393. VkStructureType sType;
  18394. const void* pNext;
  18395. VkTensorARM tensor;
  18396. VkDeviceMemory memory;
  18397. VkDeviceSize memoryOffset;
  18398. } VkBindTensorMemoryInfoARM;
  18399. typedef struct VkWriteDescriptorSetTensorARM {
  18400. VkStructureType sType;
  18401. const void* pNext;
  18402. uint32_t tensorViewCount;
  18403. const VkTensorViewARM* pTensorViews;
  18404. } VkWriteDescriptorSetTensorARM;
  18405. typedef struct VkTensorFormatPropertiesARM {
  18406. VkStructureType sType;
  18407. void* pNext;
  18408. VkFormatFeatureFlags2 optimalTilingTensorFeatures;
  18409. VkFormatFeatureFlags2 linearTilingTensorFeatures;
  18410. } VkTensorFormatPropertiesARM;
  18411. typedef struct VkPhysicalDeviceTensorPropertiesARM {
  18412. VkStructureType sType;
  18413. void* pNext;
  18414. uint32_t maxTensorDimensionCount;
  18415. uint64_t maxTensorElements;
  18416. uint64_t maxPerDimensionTensorElements;
  18417. int64_t maxTensorStride;
  18418. uint64_t maxTensorSize;
  18419. uint32_t maxTensorShaderAccessArrayLength;
  18420. uint32_t maxTensorShaderAccessSize;
  18421. uint32_t maxDescriptorSetStorageTensors;
  18422. uint32_t maxPerStageDescriptorSetStorageTensors;
  18423. uint32_t maxDescriptorSetUpdateAfterBindStorageTensors;
  18424. uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors;
  18425. VkBool32 shaderStorageTensorArrayNonUniformIndexingNative;
  18426. VkShaderStageFlags shaderTensorSupportedStages;
  18427. } VkPhysicalDeviceTensorPropertiesARM;
  18428. typedef struct VkTensorMemoryBarrierARM {
  18429. VkStructureType sType;
  18430. const void* pNext;
  18431. VkPipelineStageFlags2 srcStageMask;
  18432. VkAccessFlags2 srcAccessMask;
  18433. VkPipelineStageFlags2 dstStageMask;
  18434. VkAccessFlags2 dstAccessMask;
  18435. uint32_t srcQueueFamilyIndex;
  18436. uint32_t dstQueueFamilyIndex;
  18437. VkTensorARM tensor;
  18438. } VkTensorMemoryBarrierARM;
  18439. typedef struct VkTensorDependencyInfoARM {
  18440. VkStructureType sType;
  18441. const void* pNext;
  18442. uint32_t tensorMemoryBarrierCount;
  18443. const VkTensorMemoryBarrierARM* pTensorMemoryBarriers;
  18444. } VkTensorDependencyInfoARM;
  18445. typedef struct VkPhysicalDeviceTensorFeaturesARM {
  18446. VkStructureType sType;
  18447. void* pNext;
  18448. VkBool32 tensorNonPacked;
  18449. VkBool32 shaderTensorAccess;
  18450. VkBool32 shaderStorageTensorArrayDynamicIndexing;
  18451. VkBool32 shaderStorageTensorArrayNonUniformIndexing;
  18452. VkBool32 descriptorBindingStorageTensorUpdateAfterBind;
  18453. VkBool32 tensors;
  18454. } VkPhysicalDeviceTensorFeaturesARM;
  18455. typedef struct VkDeviceTensorMemoryRequirementsARM {
  18456. VkStructureType sType;
  18457. const void* pNext;
  18458. const VkTensorCreateInfoARM* pCreateInfo;
  18459. } VkDeviceTensorMemoryRequirementsARM;
  18460. typedef struct VkTensorCopyARM {
  18461. VkStructureType sType;
  18462. const void* pNext;
  18463. uint32_t dimensionCount;
  18464. const uint64_t* pSrcOffset;
  18465. const uint64_t* pDstOffset;
  18466. const uint64_t* pExtent;
  18467. } VkTensorCopyARM;
  18468. typedef struct VkCopyTensorInfoARM {
  18469. VkStructureType sType;
  18470. const void* pNext;
  18471. VkTensorARM srcTensor;
  18472. VkTensorARM dstTensor;
  18473. uint32_t regionCount;
  18474. const VkTensorCopyARM* pRegions;
  18475. } VkCopyTensorInfoARM;
  18476. typedef struct VkMemoryDedicatedAllocateInfoTensorARM {
  18477. VkStructureType sType;
  18478. const void* pNext;
  18479. VkTensorARM tensor;
  18480. } VkMemoryDedicatedAllocateInfoTensorARM;
  18481. typedef struct VkPhysicalDeviceExternalTensorInfoARM {
  18482. VkStructureType sType;
  18483. const void* pNext;
  18484. VkTensorCreateFlagsARM flags;
  18485. const VkTensorDescriptionARM* pDescription;
  18486. VkExternalMemoryHandleTypeFlagBits handleType;
  18487. } VkPhysicalDeviceExternalTensorInfoARM;
  18488. typedef struct VkExternalTensorPropertiesARM {
  18489. VkStructureType sType;
  18490. const void* pNext;
  18491. VkExternalMemoryProperties externalMemoryProperties;
  18492. } VkExternalTensorPropertiesARM;
  18493. typedef struct VkExternalMemoryTensorCreateInfoARM {
  18494. VkStructureType sType;
  18495. const void* pNext;
  18496. VkExternalMemoryHandleTypeFlags handleTypes;
  18497. } VkExternalMemoryTensorCreateInfoARM;
  18498. typedef struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM {
  18499. VkStructureType sType;
  18500. void* pNext;
  18501. VkBool32 descriptorBufferTensorDescriptors;
  18502. } VkPhysicalDeviceDescriptorBufferTensorFeaturesARM;
  18503. typedef struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM {
  18504. VkStructureType sType;
  18505. void* pNext;
  18506. size_t tensorCaptureReplayDescriptorDataSize;
  18507. size_t tensorViewCaptureReplayDescriptorDataSize;
  18508. size_t tensorDescriptorSize;
  18509. } VkPhysicalDeviceDescriptorBufferTensorPropertiesARM;
  18510. typedef struct VkDescriptorGetTensorInfoARM {
  18511. VkStructureType sType;
  18512. const void* pNext;
  18513. VkTensorViewARM tensorView;
  18514. } VkDescriptorGetTensorInfoARM;
  18515. typedef struct VkTensorCaptureDescriptorDataInfoARM {
  18516. VkStructureType sType;
  18517. const void* pNext;
  18518. VkTensorARM tensor;
  18519. } VkTensorCaptureDescriptorDataInfoARM;
  18520. typedef struct VkTensorViewCaptureDescriptorDataInfoARM {
  18521. VkStructureType sType;
  18522. const void* pNext;
  18523. VkTensorViewARM tensorView;
  18524. } VkTensorViewCaptureDescriptorDataInfoARM;
  18525. typedef struct VkFrameBoundaryTensorsARM {
  18526. VkStructureType sType;
  18527. const void* pNext;
  18528. uint32_t tensorCount;
  18529. const VkTensorARM* pTensors;
  18530. } VkFrameBoundaryTensorsARM;
  18531. typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorARM)(VkDevice device, const VkTensorCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorARM* pTensor);
  18532. typedef void (VKAPI_PTR *PFN_vkDestroyTensorARM)(VkDevice device, VkTensorARM tensor, const VkAllocationCallbacks* pAllocator);
  18533. typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorViewARM)(VkDevice device, const VkTensorViewCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorViewARM* pView);
  18534. typedef void (VKAPI_PTR *PFN_vkDestroyTensorViewARM)(VkDevice device, VkTensorViewARM tensorView, const VkAllocationCallbacks* pAllocator);
  18535. typedef void (VKAPI_PTR *PFN_vkGetTensorMemoryRequirementsARM)(VkDevice device, const VkTensorMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  18536. typedef VkResult (VKAPI_PTR *PFN_vkBindTensorMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindTensorMemoryInfoARM* pBindInfos);
  18537. typedef void (VKAPI_PTR *PFN_vkGetDeviceTensorMemoryRequirementsARM)(VkDevice device, const VkDeviceTensorMemoryRequirementsARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  18538. typedef void (VKAPI_PTR *PFN_vkCmdCopyTensorARM)(VkCommandBuffer commandBuffer, const VkCopyTensorInfoARM* pCopyTensorInfo);
  18539. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, VkExternalTensorPropertiesARM* pExternalTensorProperties);
  18540. typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorCaptureDescriptorDataInfoARM* pInfo, void* pData);
  18541. typedef VkResult (VKAPI_PTR *PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorViewCaptureDescriptorDataInfoARM* pInfo, void* pData);
  18542. #ifndef VK_NO_PROTOTYPES
  18543. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18544. VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorARM(
  18545. VkDevice device,
  18546. const VkTensorCreateInfoARM* pCreateInfo,
  18547. const VkAllocationCallbacks* pAllocator,
  18548. VkTensorARM* pTensor);
  18549. #endif
  18550. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18551. VKAPI_ATTR void VKAPI_CALL vkDestroyTensorARM(
  18552. VkDevice device,
  18553. VkTensorARM tensor,
  18554. const VkAllocationCallbacks* pAllocator);
  18555. #endif
  18556. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18557. VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorViewARM(
  18558. VkDevice device,
  18559. const VkTensorViewCreateInfoARM* pCreateInfo,
  18560. const VkAllocationCallbacks* pAllocator,
  18561. VkTensorViewARM* pView);
  18562. #endif
  18563. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18564. VKAPI_ATTR void VKAPI_CALL vkDestroyTensorViewARM(
  18565. VkDevice device,
  18566. VkTensorViewARM tensorView,
  18567. const VkAllocationCallbacks* pAllocator);
  18568. #endif
  18569. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18570. VKAPI_ATTR void VKAPI_CALL vkGetTensorMemoryRequirementsARM(
  18571. VkDevice device,
  18572. const VkTensorMemoryRequirementsInfoARM* pInfo,
  18573. VkMemoryRequirements2* pMemoryRequirements);
  18574. #endif
  18575. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18576. VKAPI_ATTR VkResult VKAPI_CALL vkBindTensorMemoryARM(
  18577. VkDevice device,
  18578. uint32_t bindInfoCount,
  18579. const VkBindTensorMemoryInfoARM* pBindInfos);
  18580. #endif
  18581. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18582. VKAPI_ATTR void VKAPI_CALL vkGetDeviceTensorMemoryRequirementsARM(
  18583. VkDevice device,
  18584. const VkDeviceTensorMemoryRequirementsARM* pInfo,
  18585. VkMemoryRequirements2* pMemoryRequirements);
  18586. #endif
  18587. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18588. VKAPI_ATTR void VKAPI_CALL vkCmdCopyTensorARM(
  18589. VkCommandBuffer commandBuffer,
  18590. const VkCopyTensorInfoARM* pCopyTensorInfo);
  18591. #endif
  18592. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18593. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalTensorPropertiesARM(
  18594. VkPhysicalDevice physicalDevice,
  18595. const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
  18596. VkExternalTensorPropertiesARM* pExternalTensorProperties);
  18597. #endif
  18598. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18599. VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorOpaqueCaptureDescriptorDataARM(
  18600. VkDevice device,
  18601. const VkTensorCaptureDescriptorDataInfoARM* pInfo,
  18602. void* pData);
  18603. #endif
  18604. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18605. VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorViewOpaqueCaptureDescriptorDataARM(
  18606. VkDevice device,
  18607. const VkTensorViewCaptureDescriptorDataInfoARM* pInfo,
  18608. void* pData);
  18609. #endif
  18610. #endif
  18611. // VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
  18612. #define VK_EXT_shader_module_identifier 1
  18613. #define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
  18614. #define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
  18615. #define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
  18616. typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
  18617. VkStructureType sType;
  18618. void* pNext;
  18619. VkBool32 shaderModuleIdentifier;
  18620. } VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
  18621. typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
  18622. VkStructureType sType;
  18623. void* pNext;
  18624. uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
  18625. } VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
  18626. typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
  18627. VkStructureType sType;
  18628. const void* pNext;
  18629. uint32_t identifierSize;
  18630. const uint8_t* pIdentifier;
  18631. } VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
  18632. typedef struct VkShaderModuleIdentifierEXT {
  18633. VkStructureType sType;
  18634. void* pNext;
  18635. uint32_t identifierSize;
  18636. uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
  18637. } VkShaderModuleIdentifierEXT;
  18638. typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
  18639. typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
  18640. #ifndef VK_NO_PROTOTYPES
  18641. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18642. VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
  18643. VkDevice device,
  18644. VkShaderModule shaderModule,
  18645. VkShaderModuleIdentifierEXT* pIdentifier);
  18646. #endif
  18647. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18648. VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
  18649. VkDevice device,
  18650. const VkShaderModuleCreateInfo* pCreateInfo,
  18651. VkShaderModuleIdentifierEXT* pIdentifier);
  18652. #endif
  18653. #endif
  18654. // VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
  18655. #define VK_EXT_rasterization_order_attachment_access 1
  18656. #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
  18657. #define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
  18658. // VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
  18659. #define VK_NV_optical_flow 1
  18660. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
  18661. #define VK_NV_OPTICAL_FLOW_SPEC_VERSION 1
  18662. #define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
  18663. typedef enum VkOpticalFlowPerformanceLevelNV {
  18664. VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
  18665. VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
  18666. VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
  18667. VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
  18668. VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
  18669. } VkOpticalFlowPerformanceLevelNV;
  18670. typedef enum VkOpticalFlowSessionBindingPointNV {
  18671. VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
  18672. VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
  18673. VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
  18674. VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
  18675. VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
  18676. VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
  18677. VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
  18678. VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
  18679. VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
  18680. VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
  18681. } VkOpticalFlowSessionBindingPointNV;
  18682. typedef enum VkOpticalFlowGridSizeFlagBitsNV {
  18683. VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
  18684. VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
  18685. VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
  18686. VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
  18687. VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
  18688. VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  18689. } VkOpticalFlowGridSizeFlagBitsNV;
  18690. typedef VkFlags VkOpticalFlowGridSizeFlagsNV;
  18691. typedef enum VkOpticalFlowUsageFlagBitsNV {
  18692. VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
  18693. VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
  18694. VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
  18695. VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
  18696. VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
  18697. VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
  18698. VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  18699. } VkOpticalFlowUsageFlagBitsNV;
  18700. typedef VkFlags VkOpticalFlowUsageFlagsNV;
  18701. typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
  18702. VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
  18703. VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
  18704. VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
  18705. VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
  18706. VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
  18707. VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  18708. } VkOpticalFlowSessionCreateFlagBitsNV;
  18709. typedef VkFlags VkOpticalFlowSessionCreateFlagsNV;
  18710. typedef enum VkOpticalFlowExecuteFlagBitsNV {
  18711. VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
  18712. VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  18713. } VkOpticalFlowExecuteFlagBitsNV;
  18714. typedef VkFlags VkOpticalFlowExecuteFlagsNV;
  18715. typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
  18716. VkStructureType sType;
  18717. void* pNext;
  18718. VkBool32 opticalFlow;
  18719. } VkPhysicalDeviceOpticalFlowFeaturesNV;
  18720. typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
  18721. VkStructureType sType;
  18722. void* pNext;
  18723. VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes;
  18724. VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes;
  18725. VkBool32 hintSupported;
  18726. VkBool32 costSupported;
  18727. VkBool32 bidirectionalFlowSupported;
  18728. VkBool32 globalFlowSupported;
  18729. uint32_t minWidth;
  18730. uint32_t minHeight;
  18731. uint32_t maxWidth;
  18732. uint32_t maxHeight;
  18733. uint32_t maxNumRegionsOfInterest;
  18734. } VkPhysicalDeviceOpticalFlowPropertiesNV;
  18735. typedef struct VkOpticalFlowImageFormatInfoNV {
  18736. VkStructureType sType;
  18737. const void* pNext;
  18738. VkOpticalFlowUsageFlagsNV usage;
  18739. } VkOpticalFlowImageFormatInfoNV;
  18740. typedef struct VkOpticalFlowImageFormatPropertiesNV {
  18741. VkStructureType sType;
  18742. void* pNext;
  18743. VkFormat format;
  18744. } VkOpticalFlowImageFormatPropertiesNV;
  18745. typedef struct VkOpticalFlowSessionCreateInfoNV {
  18746. VkStructureType sType;
  18747. void* pNext;
  18748. uint32_t width;
  18749. uint32_t height;
  18750. VkFormat imageFormat;
  18751. VkFormat flowVectorFormat;
  18752. VkFormat costFormat;
  18753. VkOpticalFlowGridSizeFlagsNV outputGridSize;
  18754. VkOpticalFlowGridSizeFlagsNV hintGridSize;
  18755. VkOpticalFlowPerformanceLevelNV performanceLevel;
  18756. VkOpticalFlowSessionCreateFlagsNV flags;
  18757. } VkOpticalFlowSessionCreateInfoNV;
  18758. typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
  18759. VkStructureType sType;
  18760. void* pNext;
  18761. uint32_t id;
  18762. uint32_t size;
  18763. const void* pPrivateData;
  18764. } VkOpticalFlowSessionCreatePrivateDataInfoNV;
  18765. typedef struct VkOpticalFlowExecuteInfoNV {
  18766. VkStructureType sType;
  18767. void* pNext;
  18768. VkOpticalFlowExecuteFlagsNV flags;
  18769. uint32_t regionCount;
  18770. const VkRect2D* pRegions;
  18771. } VkOpticalFlowExecuteInfoNV;
  18772. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
  18773. typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
  18774. typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
  18775. typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
  18776. typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
  18777. #ifndef VK_NO_PROTOTYPES
  18778. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18779. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
  18780. VkPhysicalDevice physicalDevice,
  18781. const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
  18782. uint32_t* pFormatCount,
  18783. VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
  18784. #endif
  18785. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18786. VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
  18787. VkDevice device,
  18788. const VkOpticalFlowSessionCreateInfoNV* pCreateInfo,
  18789. const VkAllocationCallbacks* pAllocator,
  18790. VkOpticalFlowSessionNV* pSession);
  18791. #endif
  18792. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18793. VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
  18794. VkDevice device,
  18795. VkOpticalFlowSessionNV session,
  18796. const VkAllocationCallbacks* pAllocator);
  18797. #endif
  18798. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18799. VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
  18800. VkDevice device,
  18801. VkOpticalFlowSessionNV session,
  18802. VkOpticalFlowSessionBindingPointNV bindingPoint,
  18803. VkImageView view,
  18804. VkImageLayout layout);
  18805. #endif
  18806. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18807. VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
  18808. VkCommandBuffer commandBuffer,
  18809. VkOpticalFlowSessionNV session,
  18810. const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
  18811. #endif
  18812. #endif
  18813. // VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
  18814. #define VK_EXT_legacy_dithering 1
  18815. #define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
  18816. #define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
  18817. typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
  18818. VkStructureType sType;
  18819. void* pNext;
  18820. VkBool32 legacyDithering;
  18821. } VkPhysicalDeviceLegacyDitheringFeaturesEXT;
  18822. // VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
  18823. #define VK_EXT_pipeline_protected_access 1
  18824. #define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
  18825. #define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
  18826. typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
  18827. // VK_AMD_anti_lag is a preprocessor guard. Do not pass it to API calls.
  18828. #define VK_AMD_anti_lag 1
  18829. #define VK_AMD_ANTI_LAG_SPEC_VERSION 1
  18830. #define VK_AMD_ANTI_LAG_EXTENSION_NAME "VK_AMD_anti_lag"
  18831. typedef enum VkAntiLagModeAMD {
  18832. VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD = 0,
  18833. VK_ANTI_LAG_MODE_ON_AMD = 1,
  18834. VK_ANTI_LAG_MODE_OFF_AMD = 2,
  18835. VK_ANTI_LAG_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
  18836. } VkAntiLagModeAMD;
  18837. typedef enum VkAntiLagStageAMD {
  18838. VK_ANTI_LAG_STAGE_INPUT_AMD = 0,
  18839. VK_ANTI_LAG_STAGE_PRESENT_AMD = 1,
  18840. VK_ANTI_LAG_STAGE_MAX_ENUM_AMD = 0x7FFFFFFF
  18841. } VkAntiLagStageAMD;
  18842. typedef struct VkPhysicalDeviceAntiLagFeaturesAMD {
  18843. VkStructureType sType;
  18844. void* pNext;
  18845. VkBool32 antiLag;
  18846. } VkPhysicalDeviceAntiLagFeaturesAMD;
  18847. typedef struct VkAntiLagPresentationInfoAMD {
  18848. VkStructureType sType;
  18849. void* pNext;
  18850. VkAntiLagStageAMD stage;
  18851. uint64_t frameIndex;
  18852. } VkAntiLagPresentationInfoAMD;
  18853. typedef struct VkAntiLagDataAMD {
  18854. VkStructureType sType;
  18855. const void* pNext;
  18856. VkAntiLagModeAMD mode;
  18857. uint32_t maxFPS;
  18858. const VkAntiLagPresentationInfoAMD* pPresentationInfo;
  18859. } VkAntiLagDataAMD;
  18860. typedef void (VKAPI_PTR *PFN_vkAntiLagUpdateAMD)(VkDevice device, const VkAntiLagDataAMD* pData);
  18861. #ifndef VK_NO_PROTOTYPES
  18862. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18863. VKAPI_ATTR void VKAPI_CALL vkAntiLagUpdateAMD(
  18864. VkDevice device,
  18865. const VkAntiLagDataAMD* pData);
  18866. #endif
  18867. #endif
  18868. // VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
  18869. #define VK_EXT_shader_object 1
  18870. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
  18871. #define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
  18872. #define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
  18873. typedef enum VkShaderCodeTypeEXT {
  18874. VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
  18875. VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
  18876. VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  18877. } VkShaderCodeTypeEXT;
  18878. typedef enum VkDepthClampModeEXT {
  18879. VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT = 0,
  18880. VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT = 1,
  18881. VK_DEPTH_CLAMP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  18882. } VkDepthClampModeEXT;
  18883. typedef enum VkShaderCreateFlagBitsEXT {
  18884. VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
  18885. VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
  18886. VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
  18887. VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
  18888. VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
  18889. VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
  18890. VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
  18891. VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080,
  18892. VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT = 0x00008000,
  18893. VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  18894. } VkShaderCreateFlagBitsEXT;
  18895. typedef VkFlags VkShaderCreateFlagsEXT;
  18896. typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
  18897. VkStructureType sType;
  18898. void* pNext;
  18899. VkBool32 shaderObject;
  18900. } VkPhysicalDeviceShaderObjectFeaturesEXT;
  18901. typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
  18902. VkStructureType sType;
  18903. void* pNext;
  18904. uint8_t shaderBinaryUUID[VK_UUID_SIZE];
  18905. uint32_t shaderBinaryVersion;
  18906. } VkPhysicalDeviceShaderObjectPropertiesEXT;
  18907. typedef struct VkShaderCreateInfoEXT {
  18908. VkStructureType sType;
  18909. const void* pNext;
  18910. VkShaderCreateFlagsEXT flags;
  18911. VkShaderStageFlagBits stage;
  18912. VkShaderStageFlags nextStage;
  18913. VkShaderCodeTypeEXT codeType;
  18914. size_t codeSize;
  18915. const void* pCode;
  18916. const char* pName;
  18917. uint32_t setLayoutCount;
  18918. const VkDescriptorSetLayout* pSetLayouts;
  18919. uint32_t pushConstantRangeCount;
  18920. const VkPushConstantRange* pPushConstantRanges;
  18921. const VkSpecializationInfo* pSpecializationInfo;
  18922. } VkShaderCreateInfoEXT;
  18923. typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
  18924. typedef struct VkDepthClampRangeEXT {
  18925. float minDepthClamp;
  18926. float maxDepthClamp;
  18927. } VkDepthClampRangeEXT;
  18928. typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
  18929. typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
  18930. typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
  18931. typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
  18932. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange);
  18933. #ifndef VK_NO_PROTOTYPES
  18934. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18935. VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
  18936. VkDevice device,
  18937. uint32_t createInfoCount,
  18938. const VkShaderCreateInfoEXT* pCreateInfos,
  18939. const VkAllocationCallbacks* pAllocator,
  18940. VkShaderEXT* pShaders);
  18941. #endif
  18942. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18943. VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
  18944. VkDevice device,
  18945. VkShaderEXT shader,
  18946. const VkAllocationCallbacks* pAllocator);
  18947. #endif
  18948. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18949. VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
  18950. VkDevice device,
  18951. VkShaderEXT shader,
  18952. size_t* pDataSize,
  18953. void* pData);
  18954. #endif
  18955. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18956. VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
  18957. VkCommandBuffer commandBuffer,
  18958. uint32_t stageCount,
  18959. const VkShaderStageFlagBits* pStages,
  18960. const VkShaderEXT* pShaders);
  18961. #endif
  18962. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18963. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampRangeEXT(
  18964. VkCommandBuffer commandBuffer,
  18965. VkDepthClampModeEXT depthClampMode,
  18966. const VkDepthClampRangeEXT* pDepthClampRange);
  18967. #endif
  18968. #endif
  18969. // VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
  18970. #define VK_QCOM_tile_properties 1
  18971. #define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
  18972. #define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
  18973. typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
  18974. VkStructureType sType;
  18975. void* pNext;
  18976. VkBool32 tileProperties;
  18977. } VkPhysicalDeviceTilePropertiesFeaturesQCOM;
  18978. typedef struct VkTilePropertiesQCOM {
  18979. VkStructureType sType;
  18980. void* pNext;
  18981. VkExtent3D tileSize;
  18982. VkExtent2D apronSize;
  18983. VkOffset2D origin;
  18984. } VkTilePropertiesQCOM;
  18985. typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
  18986. typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
  18987. #ifndef VK_NO_PROTOTYPES
  18988. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18989. VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
  18990. VkDevice device,
  18991. VkFramebuffer framebuffer,
  18992. uint32_t* pPropertiesCount,
  18993. VkTilePropertiesQCOM* pProperties);
  18994. #endif
  18995. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  18996. VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
  18997. VkDevice device,
  18998. const VkRenderingInfo* pRenderingInfo,
  18999. VkTilePropertiesQCOM* pProperties);
  19000. #endif
  19001. #endif
  19002. // VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
  19003. #define VK_SEC_amigo_profiling 1
  19004. #define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
  19005. #define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
  19006. typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
  19007. VkStructureType sType;
  19008. void* pNext;
  19009. VkBool32 amigoProfiling;
  19010. } VkPhysicalDeviceAmigoProfilingFeaturesSEC;
  19011. typedef struct VkAmigoProfilingSubmitInfoSEC {
  19012. VkStructureType sType;
  19013. const void* pNext;
  19014. uint64_t firstDrawTimestamp;
  19015. uint64_t swapBufferTimestamp;
  19016. } VkAmigoProfilingSubmitInfoSEC;
  19017. // VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
  19018. #define VK_QCOM_multiview_per_view_viewports 1
  19019. #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
  19020. #define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
  19021. typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
  19022. VkStructureType sType;
  19023. void* pNext;
  19024. VkBool32 multiviewPerViewViewports;
  19025. } VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
  19026. // VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
  19027. #define VK_NV_ray_tracing_invocation_reorder 1
  19028. #define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
  19029. #define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
  19030. typedef enum VkRayTracingInvocationReorderModeEXT {
  19031. VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT = 0,
  19032. VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT = 1,
  19033. VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT,
  19034. VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT,
  19035. VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  19036. } VkRayTracingInvocationReorderModeEXT;
  19037. typedef VkRayTracingInvocationReorderModeEXT VkRayTracingInvocationReorderModeNV;
  19038. typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
  19039. VkStructureType sType;
  19040. void* pNext;
  19041. VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint;
  19042. } VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
  19043. typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
  19044. VkStructureType sType;
  19045. void* pNext;
  19046. VkBool32 rayTracingInvocationReorder;
  19047. } VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
  19048. // VK_NV_cooperative_vector is a preprocessor guard. Do not pass it to API calls.
  19049. #define VK_NV_cooperative_vector 1
  19050. #define VK_NV_COOPERATIVE_VECTOR_SPEC_VERSION 4
  19051. #define VK_NV_COOPERATIVE_VECTOR_EXTENSION_NAME "VK_NV_cooperative_vector"
  19052. typedef enum VkCooperativeVectorMatrixLayoutNV {
  19053. VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV = 0,
  19054. VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV = 1,
  19055. VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV = 2,
  19056. VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV = 3,
  19057. VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_MAX_ENUM_NV = 0x7FFFFFFF
  19058. } VkCooperativeVectorMatrixLayoutNV;
  19059. typedef struct VkPhysicalDeviceCooperativeVectorPropertiesNV {
  19060. VkStructureType sType;
  19061. void* pNext;
  19062. VkShaderStageFlags cooperativeVectorSupportedStages;
  19063. VkBool32 cooperativeVectorTrainingFloat16Accumulation;
  19064. VkBool32 cooperativeVectorTrainingFloat32Accumulation;
  19065. uint32_t maxCooperativeVectorComponents;
  19066. } VkPhysicalDeviceCooperativeVectorPropertiesNV;
  19067. typedef struct VkPhysicalDeviceCooperativeVectorFeaturesNV {
  19068. VkStructureType sType;
  19069. void* pNext;
  19070. VkBool32 cooperativeVector;
  19071. VkBool32 cooperativeVectorTraining;
  19072. } VkPhysicalDeviceCooperativeVectorFeaturesNV;
  19073. typedef struct VkCooperativeVectorPropertiesNV {
  19074. VkStructureType sType;
  19075. void* pNext;
  19076. VkComponentTypeKHR inputType;
  19077. VkComponentTypeKHR inputInterpretation;
  19078. VkComponentTypeKHR matrixInterpretation;
  19079. VkComponentTypeKHR biasInterpretation;
  19080. VkComponentTypeKHR resultType;
  19081. VkBool32 transpose;
  19082. } VkCooperativeVectorPropertiesNV;
  19083. typedef struct VkConvertCooperativeVectorMatrixInfoNV {
  19084. VkStructureType sType;
  19085. const void* pNext;
  19086. size_t srcSize;
  19087. VkDeviceOrHostAddressConstKHR srcData;
  19088. size_t* pDstSize;
  19089. VkDeviceOrHostAddressKHR dstData;
  19090. VkComponentTypeKHR srcComponentType;
  19091. VkComponentTypeKHR dstComponentType;
  19092. uint32_t numRows;
  19093. uint32_t numColumns;
  19094. VkCooperativeVectorMatrixLayoutNV srcLayout;
  19095. size_t srcStride;
  19096. VkCooperativeVectorMatrixLayoutNV dstLayout;
  19097. size_t dstStride;
  19098. } VkConvertCooperativeVectorMatrixInfoNV;
  19099. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeVectorPropertiesNV* pProperties);
  19100. typedef VkResult (VKAPI_PTR *PFN_vkConvertCooperativeVectorMatrixNV)(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
  19101. typedef void (VKAPI_PTR *PFN_vkCmdConvertCooperativeVectorMatrixNV)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
  19102. #ifndef VK_NO_PROTOTYPES
  19103. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19104. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
  19105. VkPhysicalDevice physicalDevice,
  19106. uint32_t* pPropertyCount,
  19107. VkCooperativeVectorPropertiesNV* pProperties);
  19108. #endif
  19109. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19110. VKAPI_ATTR VkResult VKAPI_CALL vkConvertCooperativeVectorMatrixNV(
  19111. VkDevice device,
  19112. const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
  19113. #endif
  19114. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19115. VKAPI_ATTR void VKAPI_CALL vkCmdConvertCooperativeVectorMatrixNV(
  19116. VkCommandBuffer commandBuffer,
  19117. uint32_t infoCount,
  19118. const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
  19119. #endif
  19120. #endif
  19121. // VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
  19122. #define VK_NV_extended_sparse_address_space 1
  19123. #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
  19124. #define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
  19125. typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
  19126. VkStructureType sType;
  19127. void* pNext;
  19128. VkBool32 extendedSparseAddressSpace;
  19129. } VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
  19130. typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
  19131. VkStructureType sType;
  19132. void* pNext;
  19133. VkDeviceSize extendedSparseAddressSpaceSize;
  19134. VkImageUsageFlags extendedSparseImageUsageFlags;
  19135. VkBufferUsageFlags extendedSparseBufferUsageFlags;
  19136. } VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
  19137. // VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
  19138. #define VK_EXT_mutable_descriptor_type 1
  19139. #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
  19140. #define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
  19141. // VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
  19142. #define VK_EXT_legacy_vertex_attributes 1
  19143. #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
  19144. #define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
  19145. typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
  19146. VkStructureType sType;
  19147. void* pNext;
  19148. VkBool32 legacyVertexAttributes;
  19149. } VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
  19150. typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
  19151. VkStructureType sType;
  19152. void* pNext;
  19153. VkBool32 nativeUnalignedPerformance;
  19154. } VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
  19155. // VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
  19156. #define VK_EXT_layer_settings 1
  19157. #define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
  19158. #define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
  19159. typedef enum VkLayerSettingTypeEXT {
  19160. VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
  19161. VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
  19162. VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
  19163. VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
  19164. VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
  19165. VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
  19166. VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
  19167. VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
  19168. VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  19169. } VkLayerSettingTypeEXT;
  19170. typedef struct VkLayerSettingEXT {
  19171. const char* pLayerName;
  19172. const char* pSettingName;
  19173. VkLayerSettingTypeEXT type;
  19174. uint32_t valueCount;
  19175. const void* pValues;
  19176. } VkLayerSettingEXT;
  19177. typedef struct VkLayerSettingsCreateInfoEXT {
  19178. VkStructureType sType;
  19179. const void* pNext;
  19180. uint32_t settingCount;
  19181. const VkLayerSettingEXT* pSettings;
  19182. } VkLayerSettingsCreateInfoEXT;
  19183. // VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
  19184. #define VK_ARM_shader_core_builtins 1
  19185. #define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
  19186. #define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
  19187. typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
  19188. VkStructureType sType;
  19189. void* pNext;
  19190. VkBool32 shaderCoreBuiltins;
  19191. } VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
  19192. typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
  19193. VkStructureType sType;
  19194. void* pNext;
  19195. uint64_t shaderCoreMask;
  19196. uint32_t shaderCoreCount;
  19197. uint32_t shaderWarpsPerCore;
  19198. } VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
  19199. // VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
  19200. #define VK_EXT_pipeline_library_group_handles 1
  19201. #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
  19202. #define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
  19203. typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
  19204. VkStructureType sType;
  19205. void* pNext;
  19206. VkBool32 pipelineLibraryGroupHandles;
  19207. } VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
  19208. // VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
  19209. #define VK_EXT_dynamic_rendering_unused_attachments 1
  19210. #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
  19211. #define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
  19212. typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
  19213. VkStructureType sType;
  19214. void* pNext;
  19215. VkBool32 dynamicRenderingUnusedAttachments;
  19216. } VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
  19217. // VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
  19218. #define VK_NV_low_latency2 1
  19219. #define VK_NV_LOW_LATENCY_2_SPEC_VERSION 2
  19220. #define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
  19221. typedef enum VkLatencyMarkerNV {
  19222. VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
  19223. VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
  19224. VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
  19225. VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
  19226. VK_LATENCY_MARKER_PRESENT_START_NV = 4,
  19227. VK_LATENCY_MARKER_PRESENT_END_NV = 5,
  19228. VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
  19229. VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
  19230. VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
  19231. VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
  19232. VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
  19233. VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
  19234. VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
  19235. } VkLatencyMarkerNV;
  19236. typedef enum VkOutOfBandQueueTypeNV {
  19237. VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
  19238. VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
  19239. VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  19240. } VkOutOfBandQueueTypeNV;
  19241. typedef struct VkLatencySleepModeInfoNV {
  19242. VkStructureType sType;
  19243. const void* pNext;
  19244. VkBool32 lowLatencyMode;
  19245. VkBool32 lowLatencyBoost;
  19246. uint32_t minimumIntervalUs;
  19247. } VkLatencySleepModeInfoNV;
  19248. typedef struct VkLatencySleepInfoNV {
  19249. VkStructureType sType;
  19250. const void* pNext;
  19251. VkSemaphore signalSemaphore;
  19252. uint64_t value;
  19253. } VkLatencySleepInfoNV;
  19254. typedef struct VkSetLatencyMarkerInfoNV {
  19255. VkStructureType sType;
  19256. const void* pNext;
  19257. uint64_t presentID;
  19258. VkLatencyMarkerNV marker;
  19259. } VkSetLatencyMarkerInfoNV;
  19260. typedef struct VkLatencyTimingsFrameReportNV {
  19261. VkStructureType sType;
  19262. void* pNext;
  19263. uint64_t presentID;
  19264. uint64_t inputSampleTimeUs;
  19265. uint64_t simStartTimeUs;
  19266. uint64_t simEndTimeUs;
  19267. uint64_t renderSubmitStartTimeUs;
  19268. uint64_t renderSubmitEndTimeUs;
  19269. uint64_t presentStartTimeUs;
  19270. uint64_t presentEndTimeUs;
  19271. uint64_t driverStartTimeUs;
  19272. uint64_t driverEndTimeUs;
  19273. uint64_t osRenderQueueStartTimeUs;
  19274. uint64_t osRenderQueueEndTimeUs;
  19275. uint64_t gpuRenderStartTimeUs;
  19276. uint64_t gpuRenderEndTimeUs;
  19277. } VkLatencyTimingsFrameReportNV;
  19278. typedef struct VkGetLatencyMarkerInfoNV {
  19279. VkStructureType sType;
  19280. const void* pNext;
  19281. uint32_t timingCount;
  19282. VkLatencyTimingsFrameReportNV* pTimings;
  19283. } VkGetLatencyMarkerInfoNV;
  19284. typedef struct VkLatencySubmissionPresentIdNV {
  19285. VkStructureType sType;
  19286. const void* pNext;
  19287. uint64_t presentID;
  19288. } VkLatencySubmissionPresentIdNV;
  19289. typedef struct VkSwapchainLatencyCreateInfoNV {
  19290. VkStructureType sType;
  19291. const void* pNext;
  19292. VkBool32 latencyModeEnable;
  19293. } VkSwapchainLatencyCreateInfoNV;
  19294. typedef struct VkOutOfBandQueueTypeInfoNV {
  19295. VkStructureType sType;
  19296. const void* pNext;
  19297. VkOutOfBandQueueTypeNV queueType;
  19298. } VkOutOfBandQueueTypeInfoNV;
  19299. typedef struct VkLatencySurfaceCapabilitiesNV {
  19300. VkStructureType sType;
  19301. const void* pNext;
  19302. uint32_t presentModeCount;
  19303. VkPresentModeKHR* pPresentModes;
  19304. } VkLatencySurfaceCapabilitiesNV;
  19305. typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
  19306. typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
  19307. typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
  19308. typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
  19309. typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
  19310. #ifndef VK_NO_PROTOTYPES
  19311. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19312. VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
  19313. VkDevice device,
  19314. VkSwapchainKHR swapchain,
  19315. const VkLatencySleepModeInfoNV* pSleepModeInfo);
  19316. #endif
  19317. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19318. VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
  19319. VkDevice device,
  19320. VkSwapchainKHR swapchain,
  19321. const VkLatencySleepInfoNV* pSleepInfo);
  19322. #endif
  19323. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19324. VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
  19325. VkDevice device,
  19326. VkSwapchainKHR swapchain,
  19327. const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
  19328. #endif
  19329. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19330. VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
  19331. VkDevice device,
  19332. VkSwapchainKHR swapchain,
  19333. VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
  19334. #endif
  19335. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19336. VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
  19337. VkQueue queue,
  19338. const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
  19339. #endif
  19340. #endif
  19341. // VK_ARM_data_graph is a preprocessor guard. Do not pass it to API calls.
  19342. #define VK_ARM_data_graph 1
  19343. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDataGraphPipelineSessionARM)
  19344. #define VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM 128U
  19345. #define VK_ARM_DATA_GRAPH_SPEC_VERSION 1
  19346. #define VK_ARM_DATA_GRAPH_EXTENSION_NAME "VK_ARM_data_graph"
  19347. typedef enum VkDataGraphPipelineSessionBindPointARM {
  19348. VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TRANSIENT_ARM = 0,
  19349. VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_MAX_ENUM_ARM = 0x7FFFFFFF
  19350. } VkDataGraphPipelineSessionBindPointARM;
  19351. typedef enum VkDataGraphPipelineSessionBindPointTypeARM {
  19352. VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MEMORY_ARM = 0,
  19353. VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
  19354. } VkDataGraphPipelineSessionBindPointTypeARM;
  19355. typedef enum VkDataGraphPipelinePropertyARM {
  19356. VK_DATA_GRAPH_PIPELINE_PROPERTY_CREATION_LOG_ARM = 0,
  19357. VK_DATA_GRAPH_PIPELINE_PROPERTY_IDENTIFIER_ARM = 1,
  19358. VK_DATA_GRAPH_PIPELINE_PROPERTY_MAX_ENUM_ARM = 0x7FFFFFFF
  19359. } VkDataGraphPipelinePropertyARM;
  19360. typedef enum VkPhysicalDeviceDataGraphProcessingEngineTypeARM {
  19361. VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM = 0,
  19362. VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOM = 1000629000,
  19363. VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOM = 1000629001,
  19364. VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
  19365. } VkPhysicalDeviceDataGraphProcessingEngineTypeARM;
  19366. typedef enum VkPhysicalDeviceDataGraphOperationTypeARM {
  19367. VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM = 0,
  19368. VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOM = 1000629000,
  19369. VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOM = 1000629001,
  19370. VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
  19371. } VkPhysicalDeviceDataGraphOperationTypeARM;
  19372. typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagsARM;
  19373. // Flag bits for VkDataGraphPipelineSessionCreateFlagBitsARM
  19374. typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagBitsARM;
  19375. static const VkDataGraphPipelineSessionCreateFlagBitsARM VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_PROTECTED_BIT_ARM = 0x00000001ULL;
  19376. typedef VkFlags64 VkDataGraphPipelineDispatchFlagsARM;
  19377. // Flag bits for VkDataGraphPipelineDispatchFlagBitsARM
  19378. typedef VkFlags64 VkDataGraphPipelineDispatchFlagBitsARM;
  19379. typedef struct VkPhysicalDeviceDataGraphFeaturesARM {
  19380. VkStructureType sType;
  19381. void* pNext;
  19382. VkBool32 dataGraph;
  19383. VkBool32 dataGraphUpdateAfterBind;
  19384. VkBool32 dataGraphSpecializationConstants;
  19385. VkBool32 dataGraphDescriptorBuffer;
  19386. VkBool32 dataGraphShaderModule;
  19387. } VkPhysicalDeviceDataGraphFeaturesARM;
  19388. typedef struct VkDataGraphPipelineConstantARM {
  19389. VkStructureType sType;
  19390. const void* pNext;
  19391. uint32_t id;
  19392. const void* pConstantData;
  19393. } VkDataGraphPipelineConstantARM;
  19394. typedef struct VkDataGraphPipelineResourceInfoARM {
  19395. VkStructureType sType;
  19396. const void* pNext;
  19397. uint32_t descriptorSet;
  19398. uint32_t binding;
  19399. uint32_t arrayElement;
  19400. } VkDataGraphPipelineResourceInfoARM;
  19401. typedef struct VkDataGraphPipelineCompilerControlCreateInfoARM {
  19402. VkStructureType sType;
  19403. const void* pNext;
  19404. const char* pVendorOptions;
  19405. } VkDataGraphPipelineCompilerControlCreateInfoARM;
  19406. typedef struct VkDataGraphPipelineCreateInfoARM {
  19407. VkStructureType sType;
  19408. const void* pNext;
  19409. VkPipelineCreateFlags2KHR flags;
  19410. VkPipelineLayout layout;
  19411. uint32_t resourceInfoCount;
  19412. const VkDataGraphPipelineResourceInfoARM* pResourceInfos;
  19413. } VkDataGraphPipelineCreateInfoARM;
  19414. typedef struct VkDataGraphPipelineShaderModuleCreateInfoARM {
  19415. VkStructureType sType;
  19416. const void* pNext;
  19417. VkShaderModule module;
  19418. const char* pName;
  19419. const VkSpecializationInfo* pSpecializationInfo;
  19420. uint32_t constantCount;
  19421. const VkDataGraphPipelineConstantARM* pConstants;
  19422. } VkDataGraphPipelineShaderModuleCreateInfoARM;
  19423. typedef struct VkDataGraphPipelineSessionCreateInfoARM {
  19424. VkStructureType sType;
  19425. const void* pNext;
  19426. VkDataGraphPipelineSessionCreateFlagsARM flags;
  19427. VkPipeline dataGraphPipeline;
  19428. } VkDataGraphPipelineSessionCreateInfoARM;
  19429. typedef struct VkDataGraphPipelineSessionBindPointRequirementsInfoARM {
  19430. VkStructureType sType;
  19431. const void* pNext;
  19432. VkDataGraphPipelineSessionARM session;
  19433. } VkDataGraphPipelineSessionBindPointRequirementsInfoARM;
  19434. typedef struct VkDataGraphPipelineSessionBindPointRequirementARM {
  19435. VkStructureType sType;
  19436. const void* pNext;
  19437. VkDataGraphPipelineSessionBindPointARM bindPoint;
  19438. VkDataGraphPipelineSessionBindPointTypeARM bindPointType;
  19439. uint32_t numObjects;
  19440. } VkDataGraphPipelineSessionBindPointRequirementARM;
  19441. typedef struct VkDataGraphPipelineSessionMemoryRequirementsInfoARM {
  19442. VkStructureType sType;
  19443. const void* pNext;
  19444. VkDataGraphPipelineSessionARM session;
  19445. VkDataGraphPipelineSessionBindPointARM bindPoint;
  19446. uint32_t objectIndex;
  19447. } VkDataGraphPipelineSessionMemoryRequirementsInfoARM;
  19448. typedef struct VkBindDataGraphPipelineSessionMemoryInfoARM {
  19449. VkStructureType sType;
  19450. const void* pNext;
  19451. VkDataGraphPipelineSessionARM session;
  19452. VkDataGraphPipelineSessionBindPointARM bindPoint;
  19453. uint32_t objectIndex;
  19454. VkDeviceMemory memory;
  19455. VkDeviceSize memoryOffset;
  19456. } VkBindDataGraphPipelineSessionMemoryInfoARM;
  19457. typedef struct VkDataGraphPipelineInfoARM {
  19458. VkStructureType sType;
  19459. const void* pNext;
  19460. VkPipeline dataGraphPipeline;
  19461. } VkDataGraphPipelineInfoARM;
  19462. typedef struct VkDataGraphPipelinePropertyQueryResultARM {
  19463. VkStructureType sType;
  19464. const void* pNext;
  19465. VkDataGraphPipelinePropertyARM property;
  19466. VkBool32 isText;
  19467. size_t dataSize;
  19468. void* pData;
  19469. } VkDataGraphPipelinePropertyQueryResultARM;
  19470. typedef struct VkDataGraphPipelineIdentifierCreateInfoARM {
  19471. VkStructureType sType;
  19472. const void* pNext;
  19473. uint32_t identifierSize;
  19474. const uint8_t* pIdentifier;
  19475. } VkDataGraphPipelineIdentifierCreateInfoARM;
  19476. typedef struct VkDataGraphPipelineDispatchInfoARM {
  19477. VkStructureType sType;
  19478. void* pNext;
  19479. VkDataGraphPipelineDispatchFlagsARM flags;
  19480. } VkDataGraphPipelineDispatchInfoARM;
  19481. typedef struct VkPhysicalDeviceDataGraphProcessingEngineARM {
  19482. VkPhysicalDeviceDataGraphProcessingEngineTypeARM type;
  19483. VkBool32 isForeign;
  19484. } VkPhysicalDeviceDataGraphProcessingEngineARM;
  19485. typedef struct VkPhysicalDeviceDataGraphOperationSupportARM {
  19486. VkPhysicalDeviceDataGraphOperationTypeARM operationType;
  19487. char name[VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM];
  19488. uint32_t version;
  19489. } VkPhysicalDeviceDataGraphOperationSupportARM;
  19490. typedef struct VkQueueFamilyDataGraphPropertiesARM {
  19491. VkStructureType sType;
  19492. const void* pNext;
  19493. VkPhysicalDeviceDataGraphProcessingEngineARM engine;
  19494. VkPhysicalDeviceDataGraphOperationSupportARM operation;
  19495. } VkQueueFamilyDataGraphPropertiesARM;
  19496. typedef struct VkDataGraphProcessingEngineCreateInfoARM {
  19497. VkStructureType sType;
  19498. const void* pNext;
  19499. uint32_t processingEngineCount;
  19500. VkPhysicalDeviceDataGraphProcessingEngineARM* pProcessingEngines;
  19501. } VkDataGraphProcessingEngineCreateInfoARM;
  19502. typedef struct VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
  19503. VkStructureType sType;
  19504. const void* pNext;
  19505. uint32_t queueFamilyIndex;
  19506. VkPhysicalDeviceDataGraphProcessingEngineTypeARM engineType;
  19507. } VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM;
  19508. typedef struct VkQueueFamilyDataGraphProcessingEnginePropertiesARM {
  19509. VkStructureType sType;
  19510. const void* pNext;
  19511. VkExternalSemaphoreHandleTypeFlags foreignSemaphoreHandleTypes;
  19512. VkExternalMemoryHandleTypeFlags foreignMemoryHandleTypes;
  19513. } VkQueueFamilyDataGraphProcessingEnginePropertiesARM;
  19514. typedef struct VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
  19515. VkStructureType sType;
  19516. const void* pNext;
  19517. uint32_t dimension;
  19518. uint32_t zeroCount;
  19519. uint32_t groupSize;
  19520. } VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM;
  19521. typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelinesARM)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkDataGraphPipelineCreateInfoARM* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  19522. typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelineSessionARM)(VkDevice device, const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDataGraphPipelineSessionARM* pSession);
  19523. typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo, uint32_t* pBindPointRequirementCount, VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
  19524. typedef void (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  19525. typedef VkResult (VKAPI_PTR *PFN_vkBindDataGraphPipelineSessionMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
  19526. typedef void (VKAPI_PTR *PFN_vkDestroyDataGraphPipelineSessionARM)(VkDevice device, VkDataGraphPipelineSessionARM session, const VkAllocationCallbacks* pAllocator);
  19527. typedef void (VKAPI_PTR *PFN_vkCmdDispatchDataGraphARM)(VkCommandBuffer commandBuffer, VkDataGraphPipelineSessionARM session, const VkDataGraphPipelineDispatchInfoARM* pInfo);
  19528. typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineAvailablePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t* pPropertiesCount, VkDataGraphPipelinePropertyARM* pProperties);
  19529. typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelinePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t propertiesCount, VkDataGraphPipelinePropertyQueryResultARM* pProperties);
  19530. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pQueueFamilyDataGraphPropertyCount, VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
  19531. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo, VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
  19532. #ifndef VK_NO_PROTOTYPES
  19533. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19534. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelinesARM(
  19535. VkDevice device,
  19536. VkDeferredOperationKHR deferredOperation,
  19537. VkPipelineCache pipelineCache,
  19538. uint32_t createInfoCount,
  19539. const VkDataGraphPipelineCreateInfoARM* pCreateInfos,
  19540. const VkAllocationCallbacks* pAllocator,
  19541. VkPipeline* pPipelines);
  19542. #endif
  19543. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19544. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelineSessionARM(
  19545. VkDevice device,
  19546. const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo,
  19547. const VkAllocationCallbacks* pAllocator,
  19548. VkDataGraphPipelineSessionARM* pSession);
  19549. #endif
  19550. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19551. VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineSessionBindPointRequirementsARM(
  19552. VkDevice device,
  19553. const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo,
  19554. uint32_t* pBindPointRequirementCount,
  19555. VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
  19556. #endif
  19557. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19558. VKAPI_ATTR void VKAPI_CALL vkGetDataGraphPipelineSessionMemoryRequirementsARM(
  19559. VkDevice device,
  19560. const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo,
  19561. VkMemoryRequirements2* pMemoryRequirements);
  19562. #endif
  19563. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19564. VKAPI_ATTR VkResult VKAPI_CALL vkBindDataGraphPipelineSessionMemoryARM(
  19565. VkDevice device,
  19566. uint32_t bindInfoCount,
  19567. const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
  19568. #endif
  19569. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19570. VKAPI_ATTR void VKAPI_CALL vkDestroyDataGraphPipelineSessionARM(
  19571. VkDevice device,
  19572. VkDataGraphPipelineSessionARM session,
  19573. const VkAllocationCallbacks* pAllocator);
  19574. #endif
  19575. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19576. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchDataGraphARM(
  19577. VkCommandBuffer commandBuffer,
  19578. VkDataGraphPipelineSessionARM session,
  19579. const VkDataGraphPipelineDispatchInfoARM* pInfo);
  19580. #endif
  19581. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19582. VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineAvailablePropertiesARM(
  19583. VkDevice device,
  19584. const VkDataGraphPipelineInfoARM* pPipelineInfo,
  19585. uint32_t* pPropertiesCount,
  19586. VkDataGraphPipelinePropertyARM* pProperties);
  19587. #endif
  19588. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19589. VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelinePropertiesARM(
  19590. VkDevice device,
  19591. const VkDataGraphPipelineInfoARM* pPipelineInfo,
  19592. uint32_t propertiesCount,
  19593. VkDataGraphPipelinePropertyQueryResultARM* pProperties);
  19594. #endif
  19595. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19596. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
  19597. VkPhysicalDevice physicalDevice,
  19598. uint32_t queueFamilyIndex,
  19599. uint32_t* pQueueFamilyDataGraphPropertyCount,
  19600. VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
  19601. #endif
  19602. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19603. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
  19604. VkPhysicalDevice physicalDevice,
  19605. const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
  19606. VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
  19607. #endif
  19608. #endif
  19609. // VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
  19610. #define VK_QCOM_multiview_per_view_render_areas 1
  19611. #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
  19612. #define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
  19613. typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
  19614. VkStructureType sType;
  19615. void* pNext;
  19616. VkBool32 multiviewPerViewRenderAreas;
  19617. } VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
  19618. typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
  19619. VkStructureType sType;
  19620. const void* pNext;
  19621. uint32_t perViewRenderAreaCount;
  19622. const VkRect2D* pPerViewRenderAreas;
  19623. } VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
  19624. // VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
  19625. #define VK_NV_per_stage_descriptor_set 1
  19626. #define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
  19627. #define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
  19628. typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
  19629. VkStructureType sType;
  19630. void* pNext;
  19631. VkBool32 perStageDescriptorSet;
  19632. VkBool32 dynamicPipelineLayout;
  19633. } VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
  19634. // VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
  19635. #define VK_QCOM_image_processing2 1
  19636. #define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
  19637. #define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
  19638. typedef enum VkBlockMatchWindowCompareModeQCOM {
  19639. VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
  19640. VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
  19641. VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
  19642. } VkBlockMatchWindowCompareModeQCOM;
  19643. typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
  19644. VkStructureType sType;
  19645. void* pNext;
  19646. VkBool32 textureBlockMatch2;
  19647. } VkPhysicalDeviceImageProcessing2FeaturesQCOM;
  19648. typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
  19649. VkStructureType sType;
  19650. void* pNext;
  19651. VkExtent2D maxBlockMatchWindow;
  19652. } VkPhysicalDeviceImageProcessing2PropertiesQCOM;
  19653. typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
  19654. VkStructureType sType;
  19655. const void* pNext;
  19656. VkExtent2D windowExtent;
  19657. VkBlockMatchWindowCompareModeQCOM windowCompareMode;
  19658. } VkSamplerBlockMatchWindowCreateInfoQCOM;
  19659. // VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
  19660. #define VK_QCOM_filter_cubic_weights 1
  19661. #define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
  19662. #define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
  19663. typedef enum VkCubicFilterWeightsQCOM {
  19664. VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
  19665. VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
  19666. VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
  19667. VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
  19668. VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
  19669. } VkCubicFilterWeightsQCOM;
  19670. typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
  19671. VkStructureType sType;
  19672. void* pNext;
  19673. VkBool32 selectableCubicWeights;
  19674. } VkPhysicalDeviceCubicWeightsFeaturesQCOM;
  19675. typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
  19676. VkStructureType sType;
  19677. const void* pNext;
  19678. VkCubicFilterWeightsQCOM cubicWeights;
  19679. } VkSamplerCubicWeightsCreateInfoQCOM;
  19680. typedef struct VkBlitImageCubicWeightsInfoQCOM {
  19681. VkStructureType sType;
  19682. const void* pNext;
  19683. VkCubicFilterWeightsQCOM cubicWeights;
  19684. } VkBlitImageCubicWeightsInfoQCOM;
  19685. // VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
  19686. #define VK_QCOM_ycbcr_degamma 1
  19687. #define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
  19688. #define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
  19689. typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
  19690. VkStructureType sType;
  19691. void* pNext;
  19692. VkBool32 ycbcrDegamma;
  19693. } VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
  19694. typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
  19695. VkStructureType sType;
  19696. void* pNext;
  19697. VkBool32 enableYDegamma;
  19698. VkBool32 enableCbCrDegamma;
  19699. } VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
  19700. // VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
  19701. #define VK_QCOM_filter_cubic_clamp 1
  19702. #define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
  19703. #define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
  19704. typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
  19705. VkStructureType sType;
  19706. void* pNext;
  19707. VkBool32 cubicRangeClamp;
  19708. } VkPhysicalDeviceCubicClampFeaturesQCOM;
  19709. // VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
  19710. #define VK_EXT_attachment_feedback_loop_dynamic_state 1
  19711. #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
  19712. #define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
  19713. typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
  19714. VkStructureType sType;
  19715. void* pNext;
  19716. VkBool32 attachmentFeedbackLoopDynamicState;
  19717. } VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
  19718. typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
  19719. #ifndef VK_NO_PROTOTYPES
  19720. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19721. VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
  19722. VkCommandBuffer commandBuffer,
  19723. VkImageAspectFlags aspectMask);
  19724. #endif
  19725. #endif
  19726. // VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
  19727. #define VK_MSFT_layered_driver 1
  19728. #define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
  19729. #define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
  19730. typedef enum VkLayeredDriverUnderlyingApiMSFT {
  19731. VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
  19732. VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
  19733. VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
  19734. } VkLayeredDriverUnderlyingApiMSFT;
  19735. typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
  19736. VkStructureType sType;
  19737. void* pNext;
  19738. VkLayeredDriverUnderlyingApiMSFT underlyingAPI;
  19739. } VkPhysicalDeviceLayeredDriverPropertiesMSFT;
  19740. // VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
  19741. #define VK_NV_descriptor_pool_overallocation 1
  19742. #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
  19743. #define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
  19744. typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
  19745. VkStructureType sType;
  19746. void* pNext;
  19747. VkBool32 descriptorPoolOverallocation;
  19748. } VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
  19749. // VK_QCOM_tile_memory_heap is a preprocessor guard. Do not pass it to API calls.
  19750. #define VK_QCOM_tile_memory_heap 1
  19751. #define VK_QCOM_TILE_MEMORY_HEAP_SPEC_VERSION 1
  19752. #define VK_QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME "VK_QCOM_tile_memory_heap"
  19753. typedef struct VkPhysicalDeviceTileMemoryHeapFeaturesQCOM {
  19754. VkStructureType sType;
  19755. void* pNext;
  19756. VkBool32 tileMemoryHeap;
  19757. } VkPhysicalDeviceTileMemoryHeapFeaturesQCOM;
  19758. typedef struct VkPhysicalDeviceTileMemoryHeapPropertiesQCOM {
  19759. VkStructureType sType;
  19760. void* pNext;
  19761. VkBool32 queueSubmitBoundary;
  19762. VkBool32 tileBufferTransfers;
  19763. } VkPhysicalDeviceTileMemoryHeapPropertiesQCOM;
  19764. typedef struct VkTileMemoryRequirementsQCOM {
  19765. VkStructureType sType;
  19766. void* pNext;
  19767. VkDeviceSize size;
  19768. VkDeviceSize alignment;
  19769. } VkTileMemoryRequirementsQCOM;
  19770. typedef struct VkTileMemoryBindInfoQCOM {
  19771. VkStructureType sType;
  19772. const void* pNext;
  19773. VkDeviceMemory memory;
  19774. } VkTileMemoryBindInfoQCOM;
  19775. typedef struct VkTileMemorySizeInfoQCOM {
  19776. VkStructureType sType;
  19777. const void* pNext;
  19778. VkDeviceSize size;
  19779. } VkTileMemorySizeInfoQCOM;
  19780. typedef void (VKAPI_PTR *PFN_vkCmdBindTileMemoryQCOM)(VkCommandBuffer commandBuffer, const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
  19781. #ifndef VK_NO_PROTOTYPES
  19782. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19783. VKAPI_ATTR void VKAPI_CALL vkCmdBindTileMemoryQCOM(
  19784. VkCommandBuffer commandBuffer,
  19785. const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
  19786. #endif
  19787. #endif
  19788. // VK_EXT_memory_decompression is a preprocessor guard. Do not pass it to API calls.
  19789. #define VK_EXT_memory_decompression 1
  19790. #define VK_EXT_MEMORY_DECOMPRESSION_SPEC_VERSION 1
  19791. #define VK_EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_EXT_memory_decompression"
  19792. typedef struct VkDecompressMemoryRegionEXT {
  19793. VkDeviceAddress srcAddress;
  19794. VkDeviceAddress dstAddress;
  19795. VkDeviceSize compressedSize;
  19796. VkDeviceSize decompressedSize;
  19797. } VkDecompressMemoryRegionEXT;
  19798. typedef struct VkDecompressMemoryInfoEXT {
  19799. VkStructureType sType;
  19800. const void* pNext;
  19801. VkMemoryDecompressionMethodFlagsEXT decompressionMethod;
  19802. uint32_t regionCount;
  19803. const VkDecompressMemoryRegionEXT* pRegions;
  19804. } VkDecompressMemoryInfoEXT;
  19805. typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryEXT)(VkCommandBuffer commandBuffer, const VkDecompressMemoryInfoEXT* pDecompressMemoryInfoEXT);
  19806. typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountEXT)(VkCommandBuffer commandBuffer, VkMemoryDecompressionMethodFlagsEXT decompressionMethod, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t maxDecompressionCount, uint32_t stride);
  19807. #ifndef VK_NO_PROTOTYPES
  19808. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19809. VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryEXT(
  19810. VkCommandBuffer commandBuffer,
  19811. const VkDecompressMemoryInfoEXT* pDecompressMemoryInfoEXT);
  19812. #endif
  19813. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19814. VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountEXT(
  19815. VkCommandBuffer commandBuffer,
  19816. VkMemoryDecompressionMethodFlagsEXT decompressionMethod,
  19817. VkDeviceAddress indirectCommandsAddress,
  19818. VkDeviceAddress indirectCommandsCountAddress,
  19819. uint32_t maxDecompressionCount,
  19820. uint32_t stride);
  19821. #endif
  19822. #endif
  19823. // VK_NV_display_stereo is a preprocessor guard. Do not pass it to API calls.
  19824. #define VK_NV_display_stereo 1
  19825. #define VK_NV_DISPLAY_STEREO_SPEC_VERSION 1
  19826. #define VK_NV_DISPLAY_STEREO_EXTENSION_NAME "VK_NV_display_stereo"
  19827. typedef enum VkDisplaySurfaceStereoTypeNV {
  19828. VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV = 0,
  19829. VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV = 1,
  19830. VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV = 2,
  19831. VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV = 3,
  19832. VK_DISPLAY_SURFACE_STEREO_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  19833. } VkDisplaySurfaceStereoTypeNV;
  19834. typedef struct VkDisplaySurfaceStereoCreateInfoNV {
  19835. VkStructureType sType;
  19836. const void* pNext;
  19837. VkDisplaySurfaceStereoTypeNV stereoType;
  19838. } VkDisplaySurfaceStereoCreateInfoNV;
  19839. typedef struct VkDisplayModeStereoPropertiesNV {
  19840. VkStructureType sType;
  19841. void* pNext;
  19842. VkBool32 hdmi3DSupported;
  19843. } VkDisplayModeStereoPropertiesNV;
  19844. // VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
  19845. #define VK_NV_raw_access_chains 1
  19846. #define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
  19847. #define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
  19848. typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
  19849. VkStructureType sType;
  19850. void* pNext;
  19851. VkBool32 shaderRawAccessChains;
  19852. } VkPhysicalDeviceRawAccessChainsFeaturesNV;
  19853. // VK_NV_external_compute_queue is a preprocessor guard. Do not pass it to API calls.
  19854. #define VK_NV_external_compute_queue 1
  19855. VK_DEFINE_HANDLE(VkExternalComputeQueueNV)
  19856. #define VK_NV_EXTERNAL_COMPUTE_QUEUE_SPEC_VERSION 1
  19857. #define VK_NV_EXTERNAL_COMPUTE_QUEUE_EXTENSION_NAME "VK_NV_external_compute_queue"
  19858. typedef struct VkExternalComputeQueueDeviceCreateInfoNV {
  19859. VkStructureType sType;
  19860. const void* pNext;
  19861. uint32_t reservedExternalQueues;
  19862. } VkExternalComputeQueueDeviceCreateInfoNV;
  19863. typedef struct VkExternalComputeQueueCreateInfoNV {
  19864. VkStructureType sType;
  19865. const void* pNext;
  19866. VkQueue preferredQueue;
  19867. } VkExternalComputeQueueCreateInfoNV;
  19868. typedef struct VkExternalComputeQueueDataParamsNV {
  19869. VkStructureType sType;
  19870. const void* pNext;
  19871. uint32_t deviceIndex;
  19872. } VkExternalComputeQueueDataParamsNV;
  19873. typedef struct VkPhysicalDeviceExternalComputeQueuePropertiesNV {
  19874. VkStructureType sType;
  19875. void* pNext;
  19876. uint32_t externalDataSize;
  19877. uint32_t maxExternalQueues;
  19878. } VkPhysicalDeviceExternalComputeQueuePropertiesNV;
  19879. typedef VkResult (VKAPI_PTR *PFN_vkCreateExternalComputeQueueNV)(VkDevice device, const VkExternalComputeQueueCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkExternalComputeQueueNV* pExternalQueue);
  19880. typedef void (VKAPI_PTR *PFN_vkDestroyExternalComputeQueueNV)(VkDevice device, VkExternalComputeQueueNV externalQueue, const VkAllocationCallbacks* pAllocator);
  19881. typedef void (VKAPI_PTR *PFN_vkGetExternalComputeQueueDataNV)(VkExternalComputeQueueNV externalQueue, VkExternalComputeQueueDataParamsNV* params, void* pData);
  19882. #ifndef VK_NO_PROTOTYPES
  19883. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19884. VKAPI_ATTR VkResult VKAPI_CALL vkCreateExternalComputeQueueNV(
  19885. VkDevice device,
  19886. const VkExternalComputeQueueCreateInfoNV* pCreateInfo,
  19887. const VkAllocationCallbacks* pAllocator,
  19888. VkExternalComputeQueueNV* pExternalQueue);
  19889. #endif
  19890. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19891. VKAPI_ATTR void VKAPI_CALL vkDestroyExternalComputeQueueNV(
  19892. VkDevice device,
  19893. VkExternalComputeQueueNV externalQueue,
  19894. const VkAllocationCallbacks* pAllocator);
  19895. #endif
  19896. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  19897. VKAPI_ATTR void VKAPI_CALL vkGetExternalComputeQueueDataNV(
  19898. VkExternalComputeQueueNV externalQueue,
  19899. VkExternalComputeQueueDataParamsNV* params,
  19900. void* pData);
  19901. #endif
  19902. #endif
  19903. // VK_NV_command_buffer_inheritance is a preprocessor guard. Do not pass it to API calls.
  19904. #define VK_NV_command_buffer_inheritance 1
  19905. #define VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION 1
  19906. #define VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME "VK_NV_command_buffer_inheritance"
  19907. typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV {
  19908. VkStructureType sType;
  19909. void* pNext;
  19910. VkBool32 commandBufferInheritance;
  19911. } VkPhysicalDeviceCommandBufferInheritanceFeaturesNV;
  19912. // VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
  19913. #define VK_NV_shader_atomic_float16_vector 1
  19914. #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
  19915. #define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
  19916. typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
  19917. VkStructureType sType;
  19918. void* pNext;
  19919. VkBool32 shaderFloat16VectorAtomics;
  19920. } VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
  19921. // VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
  19922. #define VK_EXT_shader_replicated_composites 1
  19923. #define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
  19924. #define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
  19925. typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
  19926. VkStructureType sType;
  19927. void* pNext;
  19928. VkBool32 shaderReplicatedComposites;
  19929. } VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
  19930. // VK_EXT_shader_float8 is a preprocessor guard. Do not pass it to API calls.
  19931. #define VK_EXT_shader_float8 1
  19932. #define VK_EXT_SHADER_FLOAT8_SPEC_VERSION 1
  19933. #define VK_EXT_SHADER_FLOAT8_EXTENSION_NAME "VK_EXT_shader_float8"
  19934. typedef struct VkPhysicalDeviceShaderFloat8FeaturesEXT {
  19935. VkStructureType sType;
  19936. void* pNext;
  19937. VkBool32 shaderFloat8;
  19938. VkBool32 shaderFloat8CooperativeMatrix;
  19939. } VkPhysicalDeviceShaderFloat8FeaturesEXT;
  19940. // VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
  19941. #define VK_NV_ray_tracing_validation 1
  19942. #define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
  19943. #define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
  19944. typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
  19945. VkStructureType sType;
  19946. void* pNext;
  19947. VkBool32 rayTracingValidation;
  19948. } VkPhysicalDeviceRayTracingValidationFeaturesNV;
  19949. // VK_NV_cluster_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
  19950. #define VK_NV_cluster_acceleration_structure 1
  19951. #define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION 4
  19952. #define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_cluster_acceleration_structure"
  19953. typedef enum VkClusterAccelerationStructureTypeNV {
  19954. VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV = 0,
  19955. VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV = 1,
  19956. VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV = 2,
  19957. VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  19958. } VkClusterAccelerationStructureTypeNV;
  19959. typedef enum VkClusterAccelerationStructureOpTypeNV {
  19960. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV = 0,
  19961. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV = 1,
  19962. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV = 2,
  19963. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV = 3,
  19964. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV = 4,
  19965. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_GET_CLUSTER_TEMPLATE_INDICES_NV = 5,
  19966. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  19967. } VkClusterAccelerationStructureOpTypeNV;
  19968. typedef enum VkClusterAccelerationStructureOpModeNV {
  19969. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV = 0,
  19970. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV = 1,
  19971. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV = 2,
  19972. VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  19973. } VkClusterAccelerationStructureOpModeNV;
  19974. typedef enum VkClusterAccelerationStructureAddressResolutionFlagBitsNV {
  19975. VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_NONE_NV = 0,
  19976. VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV = 0x00000001,
  19977. VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV = 0x00000002,
  19978. VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV = 0x00000004,
  19979. VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV = 0x00000008,
  19980. VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV = 0x00000010,
  19981. VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV = 0x00000020,
  19982. VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  19983. } VkClusterAccelerationStructureAddressResolutionFlagBitsNV;
  19984. typedef VkFlags VkClusterAccelerationStructureAddressResolutionFlagsNV;
  19985. typedef enum VkClusterAccelerationStructureClusterFlagBitsNV {
  19986. VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV = 0x00000001,
  19987. VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  19988. } VkClusterAccelerationStructureClusterFlagBitsNV;
  19989. typedef VkFlags VkClusterAccelerationStructureClusterFlagsNV;
  19990. typedef enum VkClusterAccelerationStructureGeometryFlagBitsNV {
  19991. VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV = 0x00000001,
  19992. VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV = 0x00000002,
  19993. VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV = 0x00000004,
  19994. VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  19995. } VkClusterAccelerationStructureGeometryFlagBitsNV;
  19996. typedef VkFlags VkClusterAccelerationStructureGeometryFlagsNV;
  19997. typedef enum VkClusterAccelerationStructureIndexFormatFlagBitsNV {
  19998. VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV = 0x00000001,
  19999. VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV = 0x00000002,
  20000. VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV = 0x00000004,
  20001. VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  20002. } VkClusterAccelerationStructureIndexFormatFlagBitsNV;
  20003. typedef VkFlags VkClusterAccelerationStructureIndexFormatFlagsNV;
  20004. typedef struct VkPhysicalDeviceClusterAccelerationStructureFeaturesNV {
  20005. VkStructureType sType;
  20006. void* pNext;
  20007. VkBool32 clusterAccelerationStructure;
  20008. } VkPhysicalDeviceClusterAccelerationStructureFeaturesNV;
  20009. typedef struct VkPhysicalDeviceClusterAccelerationStructurePropertiesNV {
  20010. VkStructureType sType;
  20011. void* pNext;
  20012. uint32_t maxVerticesPerCluster;
  20013. uint32_t maxTrianglesPerCluster;
  20014. uint32_t clusterScratchByteAlignment;
  20015. uint32_t clusterByteAlignment;
  20016. uint32_t clusterTemplateByteAlignment;
  20017. uint32_t clusterBottomLevelByteAlignment;
  20018. uint32_t clusterTemplateBoundsByteAlignment;
  20019. uint32_t maxClusterGeometryIndex;
  20020. } VkPhysicalDeviceClusterAccelerationStructurePropertiesNV;
  20021. typedef struct VkClusterAccelerationStructureClustersBottomLevelInputNV {
  20022. VkStructureType sType;
  20023. void* pNext;
  20024. uint32_t maxTotalClusterCount;
  20025. uint32_t maxClusterCountPerAccelerationStructure;
  20026. } VkClusterAccelerationStructureClustersBottomLevelInputNV;
  20027. typedef struct VkClusterAccelerationStructureTriangleClusterInputNV {
  20028. VkStructureType sType;
  20029. void* pNext;
  20030. VkFormat vertexFormat;
  20031. uint32_t maxGeometryIndexValue;
  20032. uint32_t maxClusterUniqueGeometryCount;
  20033. uint32_t maxClusterTriangleCount;
  20034. uint32_t maxClusterVertexCount;
  20035. uint32_t maxTotalTriangleCount;
  20036. uint32_t maxTotalVertexCount;
  20037. uint32_t minPositionTruncateBitCount;
  20038. } VkClusterAccelerationStructureTriangleClusterInputNV;
  20039. typedef struct VkClusterAccelerationStructureMoveObjectsInputNV {
  20040. VkStructureType sType;
  20041. void* pNext;
  20042. VkClusterAccelerationStructureTypeNV type;
  20043. VkBool32 noMoveOverlap;
  20044. VkDeviceSize maxMovedBytes;
  20045. } VkClusterAccelerationStructureMoveObjectsInputNV;
  20046. typedef union VkClusterAccelerationStructureOpInputNV {
  20047. VkClusterAccelerationStructureClustersBottomLevelInputNV* pClustersBottomLevel;
  20048. VkClusterAccelerationStructureTriangleClusterInputNV* pTriangleClusters;
  20049. VkClusterAccelerationStructureMoveObjectsInputNV* pMoveObjects;
  20050. } VkClusterAccelerationStructureOpInputNV;
  20051. typedef struct VkClusterAccelerationStructureInputInfoNV {
  20052. VkStructureType sType;
  20053. void* pNext;
  20054. uint32_t maxAccelerationStructureCount;
  20055. VkBuildAccelerationStructureFlagsKHR flags;
  20056. VkClusterAccelerationStructureOpTypeNV opType;
  20057. VkClusterAccelerationStructureOpModeNV opMode;
  20058. VkClusterAccelerationStructureOpInputNV opInput;
  20059. } VkClusterAccelerationStructureInputInfoNV;
  20060. typedef struct VkStridedDeviceAddressRegionKHR {
  20061. VkDeviceAddress deviceAddress;
  20062. VkDeviceSize stride;
  20063. VkDeviceSize size;
  20064. } VkStridedDeviceAddressRegionKHR;
  20065. typedef struct VkClusterAccelerationStructureCommandsInfoNV {
  20066. VkStructureType sType;
  20067. void* pNext;
  20068. VkClusterAccelerationStructureInputInfoNV input;
  20069. VkDeviceAddress dstImplicitData;
  20070. VkDeviceAddress scratchData;
  20071. VkStridedDeviceAddressRegionKHR dstAddressesArray;
  20072. VkStridedDeviceAddressRegionKHR dstSizesArray;
  20073. VkStridedDeviceAddressRegionKHR srcInfosArray;
  20074. VkDeviceAddress srcInfosCount;
  20075. VkClusterAccelerationStructureAddressResolutionFlagsNV addressResolutionFlags;
  20076. } VkClusterAccelerationStructureCommandsInfoNV;
  20077. typedef struct VkStridedDeviceAddressNV {
  20078. VkDeviceAddress startAddress;
  20079. VkDeviceSize strideInBytes;
  20080. } VkStridedDeviceAddressNV;
  20081. typedef struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
  20082. uint32_t geometryIndex:24;
  20083. uint32_t reserved:5;
  20084. uint32_t geometryFlags:3;
  20085. } VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV;
  20086. typedef struct VkClusterAccelerationStructureMoveObjectsInfoNV {
  20087. VkDeviceAddress srcAccelerationStructure;
  20088. } VkClusterAccelerationStructureMoveObjectsInfoNV;
  20089. typedef struct VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
  20090. uint32_t clusterReferencesCount;
  20091. uint32_t clusterReferencesStride;
  20092. VkDeviceAddress clusterReferences;
  20093. } VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV;
  20094. typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV {
  20095. uint32_t clusterID;
  20096. VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
  20097. uint32_t triangleCount:9;
  20098. uint32_t vertexCount:9;
  20099. uint32_t positionTruncateBitCount:6;
  20100. uint32_t indexType:4;
  20101. uint32_t opacityMicromapIndexType:4;
  20102. VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
  20103. uint16_t indexBufferStride;
  20104. uint16_t vertexBufferStride;
  20105. uint16_t geometryIndexAndFlagsBufferStride;
  20106. uint16_t opacityMicromapIndexBufferStride;
  20107. VkDeviceAddress indexBuffer;
  20108. VkDeviceAddress vertexBuffer;
  20109. VkDeviceAddress geometryIndexAndFlagsBuffer;
  20110. VkDeviceAddress opacityMicromapArray;
  20111. VkDeviceAddress opacityMicromapIndexBuffer;
  20112. } VkClusterAccelerationStructureBuildTriangleClusterInfoNV;
  20113. typedef struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
  20114. uint32_t clusterID;
  20115. VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
  20116. uint32_t triangleCount:9;
  20117. uint32_t vertexCount:9;
  20118. uint32_t positionTruncateBitCount:6;
  20119. uint32_t indexType:4;
  20120. uint32_t opacityMicromapIndexType:4;
  20121. VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
  20122. uint16_t indexBufferStride;
  20123. uint16_t vertexBufferStride;
  20124. uint16_t geometryIndexAndFlagsBufferStride;
  20125. uint16_t opacityMicromapIndexBufferStride;
  20126. VkDeviceAddress indexBuffer;
  20127. VkDeviceAddress vertexBuffer;
  20128. VkDeviceAddress geometryIndexAndFlagsBuffer;
  20129. VkDeviceAddress opacityMicromapArray;
  20130. VkDeviceAddress opacityMicromapIndexBuffer;
  20131. VkDeviceAddress instantiationBoundingBoxLimit;
  20132. } VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV;
  20133. typedef struct VkClusterAccelerationStructureInstantiateClusterInfoNV {
  20134. uint32_t clusterIdOffset;
  20135. uint32_t geometryIndexOffset:24;
  20136. uint32_t reserved:8;
  20137. VkDeviceAddress clusterTemplateAddress;
  20138. VkStridedDeviceAddressNV vertexBuffer;
  20139. } VkClusterAccelerationStructureInstantiateClusterInfoNV;
  20140. typedef struct VkClusterAccelerationStructureGetTemplateIndicesInfoNV {
  20141. VkDeviceAddress clusterTemplateAddress;
  20142. } VkClusterAccelerationStructureGetTemplateIndicesInfoNV;
  20143. typedef struct VkAccelerationStructureBuildSizesInfoKHR {
  20144. VkStructureType sType;
  20145. void* pNext;
  20146. VkDeviceSize accelerationStructureSize;
  20147. VkDeviceSize updateScratchSize;
  20148. VkDeviceSize buildScratchSize;
  20149. } VkAccelerationStructureBuildSizesInfoKHR;
  20150. typedef struct VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV {
  20151. VkStructureType sType;
  20152. void* pNext;
  20153. VkBool32 allowClusterAccelerationStructure;
  20154. } VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV;
  20155. typedef void (VKAPI_PTR *PFN_vkGetClusterAccelerationStructureBuildSizesNV)(VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
  20156. typedef void (VKAPI_PTR *PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)(VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
  20157. #ifndef VK_NO_PROTOTYPES
  20158. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20159. VKAPI_ATTR void VKAPI_CALL vkGetClusterAccelerationStructureBuildSizesNV(
  20160. VkDevice device,
  20161. const VkClusterAccelerationStructureInputInfoNV* pInfo,
  20162. VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
  20163. #endif
  20164. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20165. VKAPI_ATTR void VKAPI_CALL vkCmdBuildClusterAccelerationStructureIndirectNV(
  20166. VkCommandBuffer commandBuffer,
  20167. const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
  20168. #endif
  20169. #endif
  20170. // VK_NV_partitioned_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
  20171. #define VK_NV_partitioned_acceleration_structure 1
  20172. #define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION 1
  20173. #define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_partitioned_acceleration_structure"
  20174. #define VK_PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV (~0U)
  20175. typedef enum VkPartitionedAccelerationStructureOpTypeNV {
  20176. VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV = 0,
  20177. VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV = 1,
  20178. VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV = 2,
  20179. VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  20180. } VkPartitionedAccelerationStructureOpTypeNV;
  20181. typedef enum VkPartitionedAccelerationStructureInstanceFlagBitsNV {
  20182. VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV = 0x00000001,
  20183. VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV = 0x00000002,
  20184. VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV = 0x00000004,
  20185. VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
  20186. VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV = 0x00000010,
  20187. VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  20188. } VkPartitionedAccelerationStructureInstanceFlagBitsNV;
  20189. typedef VkFlags VkPartitionedAccelerationStructureInstanceFlagsNV;
  20190. typedef struct VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV {
  20191. VkStructureType sType;
  20192. void* pNext;
  20193. VkBool32 partitionedAccelerationStructure;
  20194. } VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV;
  20195. typedef struct VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV {
  20196. VkStructureType sType;
  20197. void* pNext;
  20198. uint32_t maxPartitionCount;
  20199. } VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV;
  20200. typedef struct VkPartitionedAccelerationStructureFlagsNV {
  20201. VkStructureType sType;
  20202. void* pNext;
  20203. VkBool32 enablePartitionTranslation;
  20204. } VkPartitionedAccelerationStructureFlagsNV;
  20205. typedef struct VkBuildPartitionedAccelerationStructureIndirectCommandNV {
  20206. VkPartitionedAccelerationStructureOpTypeNV opType;
  20207. uint32_t argCount;
  20208. VkStridedDeviceAddressNV argData;
  20209. } VkBuildPartitionedAccelerationStructureIndirectCommandNV;
  20210. typedef struct VkPartitionedAccelerationStructureWriteInstanceDataNV {
  20211. VkTransformMatrixKHR transform;
  20212. float explicitAABB[6];
  20213. uint32_t instanceID;
  20214. uint32_t instanceMask;
  20215. uint32_t instanceContributionToHitGroupIndex;
  20216. VkPartitionedAccelerationStructureInstanceFlagsNV instanceFlags;
  20217. uint32_t instanceIndex;
  20218. uint32_t partitionIndex;
  20219. VkDeviceAddress accelerationStructure;
  20220. } VkPartitionedAccelerationStructureWriteInstanceDataNV;
  20221. typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV {
  20222. uint32_t instanceIndex;
  20223. uint32_t instanceContributionToHitGroupIndex;
  20224. VkDeviceAddress accelerationStructure;
  20225. } VkPartitionedAccelerationStructureUpdateInstanceDataNV;
  20226. typedef struct VkPartitionedAccelerationStructureWritePartitionTranslationDataNV {
  20227. uint32_t partitionIndex;
  20228. float partitionTranslation[3];
  20229. } VkPartitionedAccelerationStructureWritePartitionTranslationDataNV;
  20230. typedef struct VkWriteDescriptorSetPartitionedAccelerationStructureNV {
  20231. VkStructureType sType;
  20232. void* pNext;
  20233. uint32_t accelerationStructureCount;
  20234. const VkDeviceAddress* pAccelerationStructures;
  20235. } VkWriteDescriptorSetPartitionedAccelerationStructureNV;
  20236. typedef struct VkPartitionedAccelerationStructureInstancesInputNV {
  20237. VkStructureType sType;
  20238. void* pNext;
  20239. VkBuildAccelerationStructureFlagsKHR flags;
  20240. uint32_t instanceCount;
  20241. uint32_t maxInstancePerPartitionCount;
  20242. uint32_t partitionCount;
  20243. uint32_t maxInstanceInGlobalPartitionCount;
  20244. } VkPartitionedAccelerationStructureInstancesInputNV;
  20245. typedef struct VkBuildPartitionedAccelerationStructureInfoNV {
  20246. VkStructureType sType;
  20247. void* pNext;
  20248. VkPartitionedAccelerationStructureInstancesInputNV input;
  20249. VkDeviceAddress srcAccelerationStructureData;
  20250. VkDeviceAddress dstAccelerationStructureData;
  20251. VkDeviceAddress scratchData;
  20252. VkDeviceAddress srcInfos;
  20253. VkDeviceAddress srcInfosCount;
  20254. } VkBuildPartitionedAccelerationStructureInfoNV;
  20255. typedef void (VKAPI_PTR *PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
  20256. typedef void (VKAPI_PTR *PFN_vkCmdBuildPartitionedAccelerationStructuresNV)(VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
  20257. #ifndef VK_NO_PROTOTYPES
  20258. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20259. VKAPI_ATTR void VKAPI_CALL vkGetPartitionedAccelerationStructuresBuildSizesNV(
  20260. VkDevice device,
  20261. const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
  20262. VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
  20263. #endif
  20264. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20265. VKAPI_ATTR void VKAPI_CALL vkCmdBuildPartitionedAccelerationStructuresNV(
  20266. VkCommandBuffer commandBuffer,
  20267. const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
  20268. #endif
  20269. #endif
  20270. // VK_EXT_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
  20271. #define VK_EXT_device_generated_commands 1
  20272. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)
  20273. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)
  20274. #define VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
  20275. #define VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_EXT_device_generated_commands"
  20276. typedef enum VkIndirectExecutionSetInfoTypeEXT {
  20277. VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = 0,
  20278. VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = 1,
  20279. VK_INDIRECT_EXECUTION_SET_INFO_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  20280. } VkIndirectExecutionSetInfoTypeEXT;
  20281. typedef enum VkIndirectCommandsTokenTypeEXT {
  20282. VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT = 0,
  20283. VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT = 1,
  20284. VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT = 2,
  20285. VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT = 3,
  20286. VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT = 4,
  20287. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT = 5,
  20288. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT = 6,
  20289. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT = 7,
  20290. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT = 8,
  20291. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT = 9,
  20292. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT = 1000202002,
  20293. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT = 1000202003,
  20294. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT = 1000328000,
  20295. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT = 1000328001,
  20296. VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT = 1000386004,
  20297. VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  20298. } VkIndirectCommandsTokenTypeEXT;
  20299. typedef enum VkIndirectCommandsInputModeFlagBitsEXT {
  20300. VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x00000001,
  20301. VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x00000002,
  20302. VK_INDIRECT_COMMANDS_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  20303. } VkIndirectCommandsInputModeFlagBitsEXT;
  20304. typedef VkFlags VkIndirectCommandsInputModeFlagsEXT;
  20305. typedef enum VkIndirectCommandsLayoutUsageFlagBitsEXT {
  20306. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = 0x00000001,
  20307. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = 0x00000002,
  20308. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  20309. } VkIndirectCommandsLayoutUsageFlagBitsEXT;
  20310. typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;
  20311. typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
  20312. VkStructureType sType;
  20313. void* pNext;
  20314. VkBool32 deviceGeneratedCommands;
  20315. VkBool32 dynamicGeneratedPipelineLayout;
  20316. } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
  20317. typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
  20318. VkStructureType sType;
  20319. void* pNext;
  20320. uint32_t maxIndirectPipelineCount;
  20321. uint32_t maxIndirectShaderObjectCount;
  20322. uint32_t maxIndirectSequenceCount;
  20323. uint32_t maxIndirectCommandsTokenCount;
  20324. uint32_t maxIndirectCommandsTokenOffset;
  20325. uint32_t maxIndirectCommandsIndirectStride;
  20326. VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes;
  20327. VkShaderStageFlags supportedIndirectCommandsShaderStages;
  20328. VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding;
  20329. VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding;
  20330. VkBool32 deviceGeneratedCommandsTransformFeedback;
  20331. VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount;
  20332. } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
  20333. typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
  20334. VkStructureType sType;
  20335. const void* pNext;
  20336. VkIndirectExecutionSetEXT indirectExecutionSet;
  20337. VkIndirectCommandsLayoutEXT indirectCommandsLayout;
  20338. uint32_t maxSequenceCount;
  20339. uint32_t maxDrawCount;
  20340. } VkGeneratedCommandsMemoryRequirementsInfoEXT;
  20341. typedef struct VkIndirectExecutionSetPipelineInfoEXT {
  20342. VkStructureType sType;
  20343. const void* pNext;
  20344. VkPipeline initialPipeline;
  20345. uint32_t maxPipelineCount;
  20346. } VkIndirectExecutionSetPipelineInfoEXT;
  20347. typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {
  20348. VkStructureType sType;
  20349. const void* pNext;
  20350. uint32_t setLayoutCount;
  20351. const VkDescriptorSetLayout* pSetLayouts;
  20352. } VkIndirectExecutionSetShaderLayoutInfoEXT;
  20353. typedef struct VkIndirectExecutionSetShaderInfoEXT {
  20354. VkStructureType sType;
  20355. const void* pNext;
  20356. uint32_t shaderCount;
  20357. const VkShaderEXT* pInitialShaders;
  20358. const VkIndirectExecutionSetShaderLayoutInfoEXT* pSetLayoutInfos;
  20359. uint32_t maxShaderCount;
  20360. uint32_t pushConstantRangeCount;
  20361. const VkPushConstantRange* pPushConstantRanges;
  20362. } VkIndirectExecutionSetShaderInfoEXT;
  20363. typedef union VkIndirectExecutionSetInfoEXT {
  20364. const VkIndirectExecutionSetPipelineInfoEXT* pPipelineInfo;
  20365. const VkIndirectExecutionSetShaderInfoEXT* pShaderInfo;
  20366. } VkIndirectExecutionSetInfoEXT;
  20367. typedef struct VkIndirectExecutionSetCreateInfoEXT {
  20368. VkStructureType sType;
  20369. const void* pNext;
  20370. VkIndirectExecutionSetInfoTypeEXT type;
  20371. VkIndirectExecutionSetInfoEXT info;
  20372. } VkIndirectExecutionSetCreateInfoEXT;
  20373. typedef struct VkGeneratedCommandsInfoEXT {
  20374. VkStructureType sType;
  20375. const void* pNext;
  20376. VkShaderStageFlags shaderStages;
  20377. VkIndirectExecutionSetEXT indirectExecutionSet;
  20378. VkIndirectCommandsLayoutEXT indirectCommandsLayout;
  20379. VkDeviceAddress indirectAddress;
  20380. VkDeviceSize indirectAddressSize;
  20381. VkDeviceAddress preprocessAddress;
  20382. VkDeviceSize preprocessSize;
  20383. uint32_t maxSequenceCount;
  20384. VkDeviceAddress sequenceCountAddress;
  20385. uint32_t maxDrawCount;
  20386. } VkGeneratedCommandsInfoEXT;
  20387. typedef struct VkWriteIndirectExecutionSetPipelineEXT {
  20388. VkStructureType sType;
  20389. const void* pNext;
  20390. uint32_t index;
  20391. VkPipeline pipeline;
  20392. } VkWriteIndirectExecutionSetPipelineEXT;
  20393. typedef struct VkIndirectCommandsPushConstantTokenEXT {
  20394. VkPushConstantRange updateRange;
  20395. } VkIndirectCommandsPushConstantTokenEXT;
  20396. typedef struct VkIndirectCommandsVertexBufferTokenEXT {
  20397. uint32_t vertexBindingUnit;
  20398. } VkIndirectCommandsVertexBufferTokenEXT;
  20399. typedef struct VkIndirectCommandsIndexBufferTokenEXT {
  20400. VkIndirectCommandsInputModeFlagBitsEXT mode;
  20401. } VkIndirectCommandsIndexBufferTokenEXT;
  20402. typedef struct VkIndirectCommandsExecutionSetTokenEXT {
  20403. VkIndirectExecutionSetInfoTypeEXT type;
  20404. VkShaderStageFlags shaderStages;
  20405. } VkIndirectCommandsExecutionSetTokenEXT;
  20406. typedef union VkIndirectCommandsTokenDataEXT {
  20407. const VkIndirectCommandsPushConstantTokenEXT* pPushConstant;
  20408. const VkIndirectCommandsVertexBufferTokenEXT* pVertexBuffer;
  20409. const VkIndirectCommandsIndexBufferTokenEXT* pIndexBuffer;
  20410. const VkIndirectCommandsExecutionSetTokenEXT* pExecutionSet;
  20411. } VkIndirectCommandsTokenDataEXT;
  20412. typedef struct VkIndirectCommandsLayoutTokenEXT {
  20413. VkStructureType sType;
  20414. const void* pNext;
  20415. VkIndirectCommandsTokenTypeEXT type;
  20416. VkIndirectCommandsTokenDataEXT data;
  20417. uint32_t offset;
  20418. } VkIndirectCommandsLayoutTokenEXT;
  20419. typedef struct VkIndirectCommandsLayoutCreateInfoEXT {
  20420. VkStructureType sType;
  20421. const void* pNext;
  20422. VkIndirectCommandsLayoutUsageFlagsEXT flags;
  20423. VkShaderStageFlags shaderStages;
  20424. uint32_t indirectStride;
  20425. VkPipelineLayout pipelineLayout;
  20426. uint32_t tokenCount;
  20427. const VkIndirectCommandsLayoutTokenEXT* pTokens;
  20428. } VkIndirectCommandsLayoutCreateInfoEXT;
  20429. typedef struct VkDrawIndirectCountIndirectCommandEXT {
  20430. VkDeviceAddress bufferAddress;
  20431. uint32_t stride;
  20432. uint32_t commandCount;
  20433. } VkDrawIndirectCountIndirectCommandEXT;
  20434. typedef struct VkBindVertexBufferIndirectCommandEXT {
  20435. VkDeviceAddress bufferAddress;
  20436. uint32_t size;
  20437. uint32_t stride;
  20438. } VkBindVertexBufferIndirectCommandEXT;
  20439. typedef struct VkBindIndexBufferIndirectCommandEXT {
  20440. VkDeviceAddress bufferAddress;
  20441. uint32_t size;
  20442. VkIndexType indexType;
  20443. } VkBindIndexBufferIndirectCommandEXT;
  20444. typedef struct VkGeneratedCommandsPipelineInfoEXT {
  20445. VkStructureType sType;
  20446. void* pNext;
  20447. VkPipeline pipeline;
  20448. } VkGeneratedCommandsPipelineInfoEXT;
  20449. typedef struct VkGeneratedCommandsShaderInfoEXT {
  20450. VkStructureType sType;
  20451. void* pNext;
  20452. uint32_t shaderCount;
  20453. const VkShaderEXT* pShaders;
  20454. } VkGeneratedCommandsShaderInfoEXT;
  20455. typedef struct VkWriteIndirectExecutionSetShaderEXT {
  20456. VkStructureType sType;
  20457. const void* pNext;
  20458. uint32_t index;
  20459. VkShaderEXT shader;
  20460. } VkWriteIndirectExecutionSetShaderEXT;
  20461. typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  20462. typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, VkCommandBuffer stateCommandBuffer);
  20463. typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
  20464. typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutEXT)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
  20465. typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutEXT)(VkDevice device, VkIndirectCommandsLayoutEXT indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
  20466. typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectExecutionSetEXT)(VkDevice device, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectExecutionSetEXT* pIndirectExecutionSet);
  20467. typedef void (VKAPI_PTR *PFN_vkDestroyIndirectExecutionSetEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, const VkAllocationCallbacks* pAllocator);
  20468. typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
  20469. typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
  20470. #ifndef VK_NO_PROTOTYPES
  20471. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20472. VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(
  20473. VkDevice device,
  20474. const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
  20475. VkMemoryRequirements2* pMemoryRequirements);
  20476. #endif
  20477. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20478. VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(
  20479. VkCommandBuffer commandBuffer,
  20480. const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,
  20481. VkCommandBuffer stateCommandBuffer);
  20482. #endif
  20483. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20484. VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(
  20485. VkCommandBuffer commandBuffer,
  20486. VkBool32 isPreprocessed,
  20487. const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
  20488. #endif
  20489. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20490. VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(
  20491. VkDevice device,
  20492. const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
  20493. const VkAllocationCallbacks* pAllocator,
  20494. VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
  20495. #endif
  20496. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20497. VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(
  20498. VkDevice device,
  20499. VkIndirectCommandsLayoutEXT indirectCommandsLayout,
  20500. const VkAllocationCallbacks* pAllocator);
  20501. #endif
  20502. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20503. VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(
  20504. VkDevice device,
  20505. const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo,
  20506. const VkAllocationCallbacks* pAllocator,
  20507. VkIndirectExecutionSetEXT* pIndirectExecutionSet);
  20508. #endif
  20509. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20510. VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(
  20511. VkDevice device,
  20512. VkIndirectExecutionSetEXT indirectExecutionSet,
  20513. const VkAllocationCallbacks* pAllocator);
  20514. #endif
  20515. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20516. VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetPipelineEXT(
  20517. VkDevice device,
  20518. VkIndirectExecutionSetEXT indirectExecutionSet,
  20519. uint32_t executionSetWriteCount,
  20520. const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
  20521. #endif
  20522. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20523. VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetShaderEXT(
  20524. VkDevice device,
  20525. VkIndirectExecutionSetEXT indirectExecutionSet,
  20526. uint32_t executionSetWriteCount,
  20527. const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
  20528. #endif
  20529. #endif
  20530. // VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
  20531. #define VK_MESA_image_alignment_control 1
  20532. #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
  20533. #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
  20534. typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
  20535. VkStructureType sType;
  20536. void* pNext;
  20537. VkBool32 imageAlignmentControl;
  20538. } VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
  20539. typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
  20540. VkStructureType sType;
  20541. void* pNext;
  20542. uint32_t supportedImageAlignmentMask;
  20543. } VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
  20544. typedef struct VkImageAlignmentControlCreateInfoMESA {
  20545. VkStructureType sType;
  20546. const void* pNext;
  20547. uint32_t maximumRequestedAlignment;
  20548. } VkImageAlignmentControlCreateInfoMESA;
  20549. // VK_EXT_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
  20550. #define VK_EXT_ray_tracing_invocation_reorder 1
  20551. #define VK_EXT_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
  20552. #define VK_EXT_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_EXT_ray_tracing_invocation_reorder"
  20553. typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
  20554. VkStructureType sType;
  20555. void* pNext;
  20556. VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint;
  20557. uint32_t maxShaderBindingTableRecordIndex;
  20558. } VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT;
  20559. typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
  20560. VkStructureType sType;
  20561. void* pNext;
  20562. VkBool32 rayTracingInvocationReorder;
  20563. } VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT;
  20564. // VK_EXT_depth_clamp_control is a preprocessor guard. Do not pass it to API calls.
  20565. #define VK_EXT_depth_clamp_control 1
  20566. #define VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION 1
  20567. #define VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clamp_control"
  20568. typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT {
  20569. VkStructureType sType;
  20570. void* pNext;
  20571. VkBool32 depthClampControl;
  20572. } VkPhysicalDeviceDepthClampControlFeaturesEXT;
  20573. typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT {
  20574. VkStructureType sType;
  20575. const void* pNext;
  20576. VkDepthClampModeEXT depthClampMode;
  20577. const VkDepthClampRangeEXT* pDepthClampRange;
  20578. } VkPipelineViewportDepthClampControlCreateInfoEXT;
  20579. // VK_HUAWEI_hdr_vivid is a preprocessor guard. Do not pass it to API calls.
  20580. #define VK_HUAWEI_hdr_vivid 1
  20581. #define VK_HUAWEI_HDR_VIVID_SPEC_VERSION 1
  20582. #define VK_HUAWEI_HDR_VIVID_EXTENSION_NAME "VK_HUAWEI_hdr_vivid"
  20583. typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI {
  20584. VkStructureType sType;
  20585. void* pNext;
  20586. VkBool32 hdrVivid;
  20587. } VkPhysicalDeviceHdrVividFeaturesHUAWEI;
  20588. typedef struct VkHdrVividDynamicMetadataHUAWEI {
  20589. VkStructureType sType;
  20590. const void* pNext;
  20591. size_t dynamicMetadataSize;
  20592. const void* pDynamicMetadata;
  20593. } VkHdrVividDynamicMetadataHUAWEI;
  20594. // VK_NV_cooperative_matrix2 is a preprocessor guard. Do not pass it to API calls.
  20595. #define VK_NV_cooperative_matrix2 1
  20596. #define VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION 1
  20597. #define VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME "VK_NV_cooperative_matrix2"
  20598. typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
  20599. VkStructureType sType;
  20600. void* pNext;
  20601. uint32_t MGranularity;
  20602. uint32_t NGranularity;
  20603. uint32_t KGranularity;
  20604. VkComponentTypeKHR AType;
  20605. VkComponentTypeKHR BType;
  20606. VkComponentTypeKHR CType;
  20607. VkComponentTypeKHR ResultType;
  20608. VkBool32 saturatingAccumulation;
  20609. VkScopeKHR scope;
  20610. uint32_t workgroupInvocations;
  20611. } VkCooperativeMatrixFlexibleDimensionsPropertiesNV;
  20612. typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
  20613. VkStructureType sType;
  20614. void* pNext;
  20615. VkBool32 cooperativeMatrixWorkgroupScope;
  20616. VkBool32 cooperativeMatrixFlexibleDimensions;
  20617. VkBool32 cooperativeMatrixReductions;
  20618. VkBool32 cooperativeMatrixConversions;
  20619. VkBool32 cooperativeMatrixPerElementOperations;
  20620. VkBool32 cooperativeMatrixTensorAddressing;
  20621. VkBool32 cooperativeMatrixBlockLoads;
  20622. } VkPhysicalDeviceCooperativeMatrix2FeaturesNV;
  20623. typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV {
  20624. VkStructureType sType;
  20625. void* pNext;
  20626. uint32_t cooperativeMatrixWorkgroupScopeMaxWorkgroupSize;
  20627. uint32_t cooperativeMatrixFlexibleDimensionsMaxDimension;
  20628. uint32_t cooperativeMatrixWorkgroupScopeReservedSharedMemory;
  20629. } VkPhysicalDeviceCooperativeMatrix2PropertiesNV;
  20630. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
  20631. #ifndef VK_NO_PROTOTYPES
  20632. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20633. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
  20634. VkPhysicalDevice physicalDevice,
  20635. uint32_t* pPropertyCount,
  20636. VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
  20637. #endif
  20638. #endif
  20639. // VK_ARM_pipeline_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
  20640. #define VK_ARM_pipeline_opacity_micromap 1
  20641. #define VK_ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION 1
  20642. #define VK_ARM_PIPELINE_OPACITY_MICROMAP_EXTENSION_NAME "VK_ARM_pipeline_opacity_micromap"
  20643. typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM {
  20644. VkStructureType sType;
  20645. void* pNext;
  20646. VkBool32 pipelineOpacityMicromap;
  20647. } VkPhysicalDevicePipelineOpacityMicromapFeaturesARM;
  20648. // VK_ARM_performance_counters_by_region is a preprocessor guard. Do not pass it to API calls.
  20649. #define VK_ARM_performance_counters_by_region 1
  20650. #define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_SPEC_VERSION 1
  20651. #define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_EXTENSION_NAME "VK_ARM_performance_counters_by_region"
  20652. typedef VkFlags VkPerformanceCounterDescriptionFlagsARM;
  20653. typedef struct VkPhysicalDevicePerformanceCountersByRegionFeaturesARM {
  20654. VkStructureType sType;
  20655. void* pNext;
  20656. VkBool32 performanceCountersByRegion;
  20657. } VkPhysicalDevicePerformanceCountersByRegionFeaturesARM;
  20658. typedef struct VkPhysicalDevicePerformanceCountersByRegionPropertiesARM {
  20659. VkStructureType sType;
  20660. void* pNext;
  20661. uint32_t maxPerRegionPerformanceCounters;
  20662. VkExtent2D performanceCounterRegionSize;
  20663. uint32_t rowStrideAlignment;
  20664. uint32_t regionAlignment;
  20665. VkBool32 identityTransformOrder;
  20666. } VkPhysicalDevicePerformanceCountersByRegionPropertiesARM;
  20667. typedef struct VkPerformanceCounterARM {
  20668. VkStructureType sType;
  20669. void* pNext;
  20670. uint32_t counterID;
  20671. } VkPerformanceCounterARM;
  20672. typedef struct VkPerformanceCounterDescriptionARM {
  20673. VkStructureType sType;
  20674. void* pNext;
  20675. VkPerformanceCounterDescriptionFlagsARM flags;
  20676. char name[VK_MAX_DESCRIPTION_SIZE];
  20677. } VkPerformanceCounterDescriptionARM;
  20678. typedef struct VkRenderPassPerformanceCountersByRegionBeginInfoARM {
  20679. VkStructureType sType;
  20680. void* pNext;
  20681. uint32_t counterAddressCount;
  20682. const VkDeviceAddress* pCounterAddresses;
  20683. VkBool32 serializeRegions;
  20684. uint32_t counterIndexCount;
  20685. uint32_t* pCounterIndices;
  20686. } VkRenderPassPerformanceCountersByRegionBeginInfoARM;
  20687. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterARM* pCounters, VkPerformanceCounterDescriptionARM* pCounterDescriptions);
  20688. #ifndef VK_NO_PROTOTYPES
  20689. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20690. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
  20691. VkPhysicalDevice physicalDevice,
  20692. uint32_t queueFamilyIndex,
  20693. uint32_t* pCounterCount,
  20694. VkPerformanceCounterARM* pCounters,
  20695. VkPerformanceCounterDescriptionARM* pCounterDescriptions);
  20696. #endif
  20697. #endif
  20698. // VK_EXT_vertex_attribute_robustness is a preprocessor guard. Do not pass it to API calls.
  20699. #define VK_EXT_vertex_attribute_robustness 1
  20700. #define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION 1
  20701. #define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_vertex_attribute_robustness"
  20702. typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
  20703. VkStructureType sType;
  20704. void* pNext;
  20705. VkBool32 vertexAttributeRobustness;
  20706. } VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT;
  20707. // VK_ARM_format_pack is a preprocessor guard. Do not pass it to API calls.
  20708. #define VK_ARM_format_pack 1
  20709. #define VK_ARM_FORMAT_PACK_SPEC_VERSION 1
  20710. #define VK_ARM_FORMAT_PACK_EXTENSION_NAME "VK_ARM_format_pack"
  20711. typedef struct VkPhysicalDeviceFormatPackFeaturesARM {
  20712. VkStructureType sType;
  20713. void* pNext;
  20714. VkBool32 formatPack;
  20715. } VkPhysicalDeviceFormatPackFeaturesARM;
  20716. // VK_VALVE_fragment_density_map_layered is a preprocessor guard. Do not pass it to API calls.
  20717. #define VK_VALVE_fragment_density_map_layered 1
  20718. #define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION 1
  20719. #define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_EXTENSION_NAME "VK_VALVE_fragment_density_map_layered"
  20720. typedef struct VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
  20721. VkStructureType sType;
  20722. void* pNext;
  20723. VkBool32 fragmentDensityMapLayered;
  20724. } VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE;
  20725. typedef struct VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
  20726. VkStructureType sType;
  20727. void* pNext;
  20728. uint32_t maxFragmentDensityMapLayers;
  20729. } VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE;
  20730. typedef struct VkPipelineFragmentDensityMapLayeredCreateInfoVALVE {
  20731. VkStructureType sType;
  20732. const void* pNext;
  20733. uint32_t maxFragmentDensityMapLayers;
  20734. } VkPipelineFragmentDensityMapLayeredCreateInfoVALVE;
  20735. // VK_NV_present_metering is a preprocessor guard. Do not pass it to API calls.
  20736. #define VK_NV_present_metering 1
  20737. #define VK_NV_PRESENT_METERING_SPEC_VERSION 1
  20738. #define VK_NV_PRESENT_METERING_EXTENSION_NAME "VK_NV_present_metering"
  20739. typedef struct VkSetPresentConfigNV {
  20740. VkStructureType sType;
  20741. const void* pNext;
  20742. uint32_t numFramesPerBatch;
  20743. uint32_t presentConfigFeedback;
  20744. } VkSetPresentConfigNV;
  20745. typedef struct VkPhysicalDevicePresentMeteringFeaturesNV {
  20746. VkStructureType sType;
  20747. void* pNext;
  20748. VkBool32 presentMetering;
  20749. } VkPhysicalDevicePresentMeteringFeaturesNV;
  20750. // VK_EXT_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
  20751. #define VK_EXT_fragment_density_map_offset 1
  20752. #define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
  20753. #define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_EXT_fragment_density_map_offset"
  20754. typedef VkRenderingEndInfoKHR VkRenderingEndInfoEXT;
  20755. typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2EXT)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo);
  20756. #ifndef VK_NO_PROTOTYPES
  20757. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20758. VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2EXT(
  20759. VkCommandBuffer commandBuffer,
  20760. const VkRenderingEndInfoKHR* pRenderingEndInfo);
  20761. #endif
  20762. #endif
  20763. // VK_EXT_zero_initialize_device_memory is a preprocessor guard. Do not pass it to API calls.
  20764. #define VK_EXT_zero_initialize_device_memory 1
  20765. #define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_SPEC_VERSION 1
  20766. #define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_EXTENSION_NAME "VK_EXT_zero_initialize_device_memory"
  20767. typedef struct VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
  20768. VkStructureType sType;
  20769. void* pNext;
  20770. VkBool32 zeroInitializeDeviceMemory;
  20771. } VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT;
  20772. // VK_EXT_shader_64bit_indexing is a preprocessor guard. Do not pass it to API calls.
  20773. #define VK_EXT_shader_64bit_indexing 1
  20774. #define VK_EXT_SHADER_64BIT_INDEXING_SPEC_VERSION 1
  20775. #define VK_EXT_SHADER_64BIT_INDEXING_EXTENSION_NAME "VK_EXT_shader_64bit_indexing"
  20776. typedef struct VkPhysicalDeviceShader64BitIndexingFeaturesEXT {
  20777. VkStructureType sType;
  20778. void* pNext;
  20779. VkBool32 shader64BitIndexing;
  20780. } VkPhysicalDeviceShader64BitIndexingFeaturesEXT;
  20781. // VK_EXT_custom_resolve is a preprocessor guard. Do not pass it to API calls.
  20782. #define VK_EXT_custom_resolve 1
  20783. #define VK_EXT_CUSTOM_RESOLVE_SPEC_VERSION 1
  20784. #define VK_EXT_CUSTOM_RESOLVE_EXTENSION_NAME "VK_EXT_custom_resolve"
  20785. typedef struct VkPhysicalDeviceCustomResolveFeaturesEXT {
  20786. VkStructureType sType;
  20787. void* pNext;
  20788. VkBool32 customResolve;
  20789. } VkPhysicalDeviceCustomResolveFeaturesEXT;
  20790. typedef struct VkBeginCustomResolveInfoEXT {
  20791. VkStructureType sType;
  20792. void* pNext;
  20793. } VkBeginCustomResolveInfoEXT;
  20794. typedef struct VkCustomResolveCreateInfoEXT {
  20795. VkStructureType sType;
  20796. const void* pNext;
  20797. VkBool32 customResolve;
  20798. uint32_t colorAttachmentCount;
  20799. const VkFormat* pColorAttachmentFormats;
  20800. VkFormat depthAttachmentFormat;
  20801. VkFormat stencilAttachmentFormat;
  20802. } VkCustomResolveCreateInfoEXT;
  20803. typedef void (VKAPI_PTR *PFN_vkCmdBeginCustomResolveEXT)(VkCommandBuffer commandBuffer, const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);
  20804. #ifndef VK_NO_PROTOTYPES
  20805. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20806. VKAPI_ATTR void VKAPI_CALL vkCmdBeginCustomResolveEXT(
  20807. VkCommandBuffer commandBuffer,
  20808. const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);
  20809. #endif
  20810. #endif
  20811. // VK_QCOM_data_graph_model is a preprocessor guard. Do not pass it to API calls.
  20812. #define VK_QCOM_data_graph_model 1
  20813. #define VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM 3U
  20814. #define VK_QCOM_DATA_GRAPH_MODEL_SPEC_VERSION 1
  20815. #define VK_QCOM_DATA_GRAPH_MODEL_EXTENSION_NAME "VK_QCOM_data_graph_model"
  20816. typedef enum VkDataGraphModelCacheTypeQCOM {
  20817. VK_DATA_GRAPH_MODEL_CACHE_TYPE_GENERIC_BINARY_QCOM = 0,
  20818. VK_DATA_GRAPH_MODEL_CACHE_TYPE_MAX_ENUM_QCOM = 0x7FFFFFFF
  20819. } VkDataGraphModelCacheTypeQCOM;
  20820. typedef struct VkPipelineCacheHeaderVersionDataGraphQCOM {
  20821. uint32_t headerSize;
  20822. VkPipelineCacheHeaderVersion headerVersion;
  20823. VkDataGraphModelCacheTypeQCOM cacheType;
  20824. uint32_t cacheVersion;
  20825. uint32_t toolchainVersion[VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM];
  20826. } VkPipelineCacheHeaderVersionDataGraphQCOM;
  20827. typedef struct VkDataGraphPipelineBuiltinModelCreateInfoQCOM {
  20828. VkStructureType sType;
  20829. const void* pNext;
  20830. const VkPhysicalDeviceDataGraphOperationSupportARM* pOperation;
  20831. } VkDataGraphPipelineBuiltinModelCreateInfoQCOM;
  20832. typedef struct VkPhysicalDeviceDataGraphModelFeaturesQCOM {
  20833. VkStructureType sType;
  20834. void* pNext;
  20835. VkBool32 dataGraphModel;
  20836. } VkPhysicalDeviceDataGraphModelFeaturesQCOM;
  20837. // VK_EXT_shader_long_vector is a preprocessor guard. Do not pass it to API calls.
  20838. #define VK_EXT_shader_long_vector 1
  20839. #define VK_EXT_SHADER_LONG_VECTOR_SPEC_VERSION 1
  20840. #define VK_EXT_SHADER_LONG_VECTOR_EXTENSION_NAME "VK_EXT_shader_long_vector"
  20841. typedef struct VkPhysicalDeviceShaderLongVectorFeaturesEXT {
  20842. VkStructureType sType;
  20843. void* pNext;
  20844. VkBool32 longVector;
  20845. } VkPhysicalDeviceShaderLongVectorFeaturesEXT;
  20846. typedef struct VkPhysicalDeviceShaderLongVectorPropertiesEXT {
  20847. VkStructureType sType;
  20848. void* pNext;
  20849. uint32_t maxVectorComponents;
  20850. } VkPhysicalDeviceShaderLongVectorPropertiesEXT;
  20851. // VK_SEC_pipeline_cache_incremental_mode is a preprocessor guard. Do not pass it to API calls.
  20852. #define VK_SEC_pipeline_cache_incremental_mode 1
  20853. #define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_SPEC_VERSION 1
  20854. #define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_EXTENSION_NAME "VK_SEC_pipeline_cache_incremental_mode"
  20855. typedef struct VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
  20856. VkStructureType sType;
  20857. void* pNext;
  20858. VkBool32 pipelineCacheIncrementalMode;
  20859. } VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC;
  20860. // VK_EXT_shader_uniform_buffer_unsized_array is a preprocessor guard. Do not pass it to API calls.
  20861. #define VK_EXT_shader_uniform_buffer_unsized_array 1
  20862. #define VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_SPEC_VERSION 1
  20863. #define VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_EXTENSION_NAME "VK_EXT_shader_uniform_buffer_unsized_array"
  20864. typedef struct VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
  20865. VkStructureType sType;
  20866. void* pNext;
  20867. VkBool32 shaderUniformBufferUnsizedArray;
  20868. } VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT;
  20869. // VK_NV_compute_occupancy_priority is a preprocessor guard. Do not pass it to API calls.
  20870. #define VK_NV_compute_occupancy_priority 1
  20871. #define VK_NV_COMPUTE_OCCUPANCY_PRIORITY_SPEC_VERSION 1
  20872. #define VK_NV_COMPUTE_OCCUPANCY_PRIORITY_EXTENSION_NAME "VK_NV_compute_occupancy_priority"
  20873. #define VK_COMPUTE_OCCUPANCY_PRIORITY_LOW_NV 0.25f
  20874. #define VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV 0.50f
  20875. #define VK_COMPUTE_OCCUPANCY_PRIORITY_HIGH_NV 0.75f
  20876. typedef struct VkComputeOccupancyPriorityParametersNV {
  20877. VkStructureType sType;
  20878. const void* pNext;
  20879. float occupancyPriority;
  20880. float occupancyThrottling;
  20881. } VkComputeOccupancyPriorityParametersNV;
  20882. typedef struct VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV {
  20883. VkStructureType sType;
  20884. void* pNext;
  20885. VkBool32 computeOccupancyPriority;
  20886. } VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV;
  20887. typedef void (VKAPI_PTR *PFN_vkCmdSetComputeOccupancyPriorityNV)(VkCommandBuffer commandBuffer, const VkComputeOccupancyPriorityParametersNV* pParameters);
  20888. #ifndef VK_NO_PROTOTYPES
  20889. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  20890. VKAPI_ATTR void VKAPI_CALL vkCmdSetComputeOccupancyPriorityNV(
  20891. VkCommandBuffer commandBuffer,
  20892. const VkComputeOccupancyPriorityParametersNV* pParameters);
  20893. #endif
  20894. #endif
  20895. // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
  20896. #define VK_KHR_acceleration_structure 1
  20897. #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
  20898. #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
  20899. typedef enum VkBuildAccelerationStructureModeKHR {
  20900. VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
  20901. VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
  20902. VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  20903. } VkBuildAccelerationStructureModeKHR;
  20904. typedef enum VkAccelerationStructureCreateFlagBitsKHR {
  20905. VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
  20906. VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
  20907. VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
  20908. VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  20909. } VkAccelerationStructureCreateFlagBitsKHR;
  20910. typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
  20911. typedef struct VkAccelerationStructureBuildRangeInfoKHR {
  20912. uint32_t primitiveCount;
  20913. uint32_t primitiveOffset;
  20914. uint32_t firstVertex;
  20915. uint32_t transformOffset;
  20916. } VkAccelerationStructureBuildRangeInfoKHR;
  20917. typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
  20918. VkStructureType sType;
  20919. const void* pNext;
  20920. VkFormat vertexFormat;
  20921. VkDeviceOrHostAddressConstKHR vertexData;
  20922. VkDeviceSize vertexStride;
  20923. uint32_t maxVertex;
  20924. VkIndexType indexType;
  20925. VkDeviceOrHostAddressConstKHR indexData;
  20926. VkDeviceOrHostAddressConstKHR transformData;
  20927. } VkAccelerationStructureGeometryTrianglesDataKHR;
  20928. typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
  20929. VkStructureType sType;
  20930. const void* pNext;
  20931. VkDeviceOrHostAddressConstKHR data;
  20932. VkDeviceSize stride;
  20933. } VkAccelerationStructureGeometryAabbsDataKHR;
  20934. typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
  20935. VkStructureType sType;
  20936. const void* pNext;
  20937. VkBool32 arrayOfPointers;
  20938. VkDeviceOrHostAddressConstKHR data;
  20939. } VkAccelerationStructureGeometryInstancesDataKHR;
  20940. typedef union VkAccelerationStructureGeometryDataKHR {
  20941. VkAccelerationStructureGeometryTrianglesDataKHR triangles;
  20942. VkAccelerationStructureGeometryAabbsDataKHR aabbs;
  20943. VkAccelerationStructureGeometryInstancesDataKHR instances;
  20944. } VkAccelerationStructureGeometryDataKHR;
  20945. typedef struct VkAccelerationStructureGeometryKHR {
  20946. VkStructureType sType;
  20947. const void* pNext;
  20948. VkGeometryTypeKHR geometryType;
  20949. VkAccelerationStructureGeometryDataKHR geometry;
  20950. VkGeometryFlagsKHR flags;
  20951. } VkAccelerationStructureGeometryKHR;
  20952. typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
  20953. VkStructureType sType;
  20954. const void* pNext;
  20955. VkAccelerationStructureTypeKHR type;
  20956. VkBuildAccelerationStructureFlagsKHR flags;
  20957. VkBuildAccelerationStructureModeKHR mode;
  20958. VkAccelerationStructureKHR srcAccelerationStructure;
  20959. VkAccelerationStructureKHR dstAccelerationStructure;
  20960. uint32_t geometryCount;
  20961. const VkAccelerationStructureGeometryKHR* pGeometries;
  20962. const VkAccelerationStructureGeometryKHR* const* ppGeometries;
  20963. VkDeviceOrHostAddressKHR scratchData;
  20964. } VkAccelerationStructureBuildGeometryInfoKHR;
  20965. typedef struct VkAccelerationStructureCreateInfoKHR {
  20966. VkStructureType sType;
  20967. const void* pNext;
  20968. VkAccelerationStructureCreateFlagsKHR createFlags;
  20969. VkBuffer buffer;
  20970. VkDeviceSize offset;
  20971. VkDeviceSize size;
  20972. VkAccelerationStructureTypeKHR type;
  20973. VkDeviceAddress deviceAddress;
  20974. } VkAccelerationStructureCreateInfoKHR;
  20975. typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
  20976. VkStructureType sType;
  20977. const void* pNext;
  20978. uint32_t accelerationStructureCount;
  20979. const VkAccelerationStructureKHR* pAccelerationStructures;
  20980. } VkWriteDescriptorSetAccelerationStructureKHR;
  20981. typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
  20982. VkStructureType sType;
  20983. void* pNext;
  20984. VkBool32 accelerationStructure;
  20985. VkBool32 accelerationStructureCaptureReplay;
  20986. VkBool32 accelerationStructureIndirectBuild;
  20987. VkBool32 accelerationStructureHostCommands;
  20988. VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind;
  20989. } VkPhysicalDeviceAccelerationStructureFeaturesKHR;
  20990. typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
  20991. VkStructureType sType;
  20992. void* pNext;
  20993. uint64_t maxGeometryCount;
  20994. uint64_t maxInstanceCount;
  20995. uint64_t maxPrimitiveCount;
  20996. uint32_t maxPerStageDescriptorAccelerationStructures;
  20997. uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
  20998. uint32_t maxDescriptorSetAccelerationStructures;
  20999. uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures;
  21000. uint32_t minAccelerationStructureScratchOffsetAlignment;
  21001. } VkPhysicalDeviceAccelerationStructurePropertiesKHR;
  21002. typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
  21003. VkStructureType sType;
  21004. const void* pNext;
  21005. VkAccelerationStructureKHR accelerationStructure;
  21006. } VkAccelerationStructureDeviceAddressInfoKHR;
  21007. typedef struct VkAccelerationStructureVersionInfoKHR {
  21008. VkStructureType sType;
  21009. const void* pNext;
  21010. const uint8_t* pVersionData;
  21011. } VkAccelerationStructureVersionInfoKHR;
  21012. typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
  21013. VkStructureType sType;
  21014. const void* pNext;
  21015. VkAccelerationStructureKHR src;
  21016. VkDeviceOrHostAddressKHR dst;
  21017. VkCopyAccelerationStructureModeKHR mode;
  21018. } VkCopyAccelerationStructureToMemoryInfoKHR;
  21019. typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
  21020. VkStructureType sType;
  21021. const void* pNext;
  21022. VkDeviceOrHostAddressConstKHR src;
  21023. VkAccelerationStructureKHR dst;
  21024. VkCopyAccelerationStructureModeKHR mode;
  21025. } VkCopyMemoryToAccelerationStructureInfoKHR;
  21026. typedef struct VkCopyAccelerationStructureInfoKHR {
  21027. VkStructureType sType;
  21028. const void* pNext;
  21029. VkAccelerationStructureKHR src;
  21030. VkAccelerationStructureKHR dst;
  21031. VkCopyAccelerationStructureModeKHR mode;
  21032. } VkCopyAccelerationStructureInfoKHR;
  21033. typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
  21034. typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
  21035. typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  21036. typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts);
  21037. typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  21038. typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
  21039. typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  21040. typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  21041. typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
  21042. typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
  21043. typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  21044. typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  21045. typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
  21046. typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
  21047. typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
  21048. typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
  21049. #ifndef VK_NO_PROTOTYPES
  21050. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21051. VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
  21052. VkDevice device,
  21053. const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
  21054. const VkAllocationCallbacks* pAllocator,
  21055. VkAccelerationStructureKHR* pAccelerationStructure);
  21056. #endif
  21057. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21058. VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
  21059. VkDevice device,
  21060. VkAccelerationStructureKHR accelerationStructure,
  21061. const VkAllocationCallbacks* pAllocator);
  21062. #endif
  21063. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21064. VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
  21065. VkCommandBuffer commandBuffer,
  21066. uint32_t infoCount,
  21067. const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
  21068. const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  21069. #endif
  21070. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21071. VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
  21072. VkCommandBuffer commandBuffer,
  21073. uint32_t infoCount,
  21074. const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
  21075. const VkDeviceAddress* pIndirectDeviceAddresses,
  21076. const uint32_t* pIndirectStrides,
  21077. const uint32_t* const* ppMaxPrimitiveCounts);
  21078. #endif
  21079. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21080. VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
  21081. VkDevice device,
  21082. VkDeferredOperationKHR deferredOperation,
  21083. uint32_t infoCount,
  21084. const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
  21085. const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  21086. #endif
  21087. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21088. VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
  21089. VkDevice device,
  21090. VkDeferredOperationKHR deferredOperation,
  21091. const VkCopyAccelerationStructureInfoKHR* pInfo);
  21092. #endif
  21093. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21094. VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
  21095. VkDevice device,
  21096. VkDeferredOperationKHR deferredOperation,
  21097. const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  21098. #endif
  21099. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21100. VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
  21101. VkDevice device,
  21102. VkDeferredOperationKHR deferredOperation,
  21103. const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  21104. #endif
  21105. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21106. VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
  21107. VkDevice device,
  21108. uint32_t accelerationStructureCount,
  21109. const VkAccelerationStructureKHR* pAccelerationStructures,
  21110. VkQueryType queryType,
  21111. size_t dataSize,
  21112. void* pData,
  21113. size_t stride);
  21114. #endif
  21115. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21116. VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
  21117. VkCommandBuffer commandBuffer,
  21118. const VkCopyAccelerationStructureInfoKHR* pInfo);
  21119. #endif
  21120. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21121. VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
  21122. VkCommandBuffer commandBuffer,
  21123. const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  21124. #endif
  21125. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21126. VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
  21127. VkCommandBuffer commandBuffer,
  21128. const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  21129. #endif
  21130. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21131. VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
  21132. VkDevice device,
  21133. const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
  21134. #endif
  21135. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21136. VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
  21137. VkCommandBuffer commandBuffer,
  21138. uint32_t accelerationStructureCount,
  21139. const VkAccelerationStructureKHR* pAccelerationStructures,
  21140. VkQueryType queryType,
  21141. VkQueryPool queryPool,
  21142. uint32_t firstQuery);
  21143. #endif
  21144. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21145. VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
  21146. VkDevice device,
  21147. const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
  21148. VkAccelerationStructureCompatibilityKHR* pCompatibility);
  21149. #endif
  21150. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21151. VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
  21152. VkDevice device,
  21153. VkAccelerationStructureBuildTypeKHR buildType,
  21154. const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
  21155. const uint32_t* pMaxPrimitiveCounts,
  21156. VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
  21157. #endif
  21158. #endif
  21159. // VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
  21160. #define VK_KHR_ray_tracing_pipeline 1
  21161. #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
  21162. #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
  21163. typedef enum VkShaderGroupShaderKHR {
  21164. VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
  21165. VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
  21166. VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
  21167. VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
  21168. VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
  21169. } VkShaderGroupShaderKHR;
  21170. typedef struct VkRayTracingShaderGroupCreateInfoKHR {
  21171. VkStructureType sType;
  21172. const void* pNext;
  21173. VkRayTracingShaderGroupTypeKHR type;
  21174. uint32_t generalShader;
  21175. uint32_t closestHitShader;
  21176. uint32_t anyHitShader;
  21177. uint32_t intersectionShader;
  21178. const void* pShaderGroupCaptureReplayHandle;
  21179. } VkRayTracingShaderGroupCreateInfoKHR;
  21180. typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
  21181. VkStructureType sType;
  21182. const void* pNext;
  21183. uint32_t maxPipelineRayPayloadSize;
  21184. uint32_t maxPipelineRayHitAttributeSize;
  21185. } VkRayTracingPipelineInterfaceCreateInfoKHR;
  21186. typedef struct VkRayTracingPipelineCreateInfoKHR {
  21187. VkStructureType sType;
  21188. const void* pNext;
  21189. VkPipelineCreateFlags flags;
  21190. uint32_t stageCount;
  21191. const VkPipelineShaderStageCreateInfo* pStages;
  21192. uint32_t groupCount;
  21193. const VkRayTracingShaderGroupCreateInfoKHR* pGroups;
  21194. uint32_t maxPipelineRayRecursionDepth;
  21195. const VkPipelineLibraryCreateInfoKHR* pLibraryInfo;
  21196. const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface;
  21197. const VkPipelineDynamicStateCreateInfo* pDynamicState;
  21198. VkPipelineLayout layout;
  21199. VkPipeline basePipelineHandle;
  21200. int32_t basePipelineIndex;
  21201. } VkRayTracingPipelineCreateInfoKHR;
  21202. typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
  21203. VkStructureType sType;
  21204. void* pNext;
  21205. VkBool32 rayTracingPipeline;
  21206. VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay;
  21207. VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
  21208. VkBool32 rayTracingPipelineTraceRaysIndirect;
  21209. VkBool32 rayTraversalPrimitiveCulling;
  21210. } VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
  21211. typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
  21212. VkStructureType sType;
  21213. void* pNext;
  21214. uint32_t shaderGroupHandleSize;
  21215. uint32_t maxRayRecursionDepth;
  21216. uint32_t maxShaderGroupStride;
  21217. uint32_t shaderGroupBaseAlignment;
  21218. uint32_t shaderGroupHandleCaptureReplaySize;
  21219. uint32_t maxRayDispatchInvocationCount;
  21220. uint32_t shaderGroupHandleAlignment;
  21221. uint32_t maxRayHitAttributeSize;
  21222. } VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
  21223. typedef struct VkTraceRaysIndirectCommandKHR {
  21224. uint32_t width;
  21225. uint32_t height;
  21226. uint32_t depth;
  21227. } VkTraceRaysIndirectCommandKHR;
  21228. typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth);
  21229. typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  21230. typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
  21231. typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
  21232. typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
  21233. typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
  21234. #ifndef VK_NO_PROTOTYPES
  21235. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21236. VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
  21237. VkCommandBuffer commandBuffer,
  21238. const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
  21239. const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
  21240. const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
  21241. const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
  21242. uint32_t width,
  21243. uint32_t height,
  21244. uint32_t depth);
  21245. #endif
  21246. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21247. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
  21248. VkDevice device,
  21249. VkDeferredOperationKHR deferredOperation,
  21250. VkPipelineCache pipelineCache,
  21251. uint32_t createInfoCount,
  21252. const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
  21253. const VkAllocationCallbacks* pAllocator,
  21254. VkPipeline* pPipelines);
  21255. #endif
  21256. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21257. VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
  21258. VkDevice device,
  21259. VkPipeline pipeline,
  21260. uint32_t firstGroup,
  21261. uint32_t groupCount,
  21262. size_t dataSize,
  21263. void* pData);
  21264. #endif
  21265. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21266. VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
  21267. VkCommandBuffer commandBuffer,
  21268. const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
  21269. const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
  21270. const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
  21271. const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
  21272. VkDeviceAddress indirectDeviceAddress);
  21273. #endif
  21274. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21275. VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
  21276. VkDevice device,
  21277. VkPipeline pipeline,
  21278. uint32_t group,
  21279. VkShaderGroupShaderKHR groupShader);
  21280. #endif
  21281. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21282. VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
  21283. VkCommandBuffer commandBuffer,
  21284. uint32_t pipelineStackSize);
  21285. #endif
  21286. #endif
  21287. // VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
  21288. #define VK_KHR_ray_query 1
  21289. #define VK_KHR_RAY_QUERY_SPEC_VERSION 1
  21290. #define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query"
  21291. typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
  21292. VkStructureType sType;
  21293. void* pNext;
  21294. VkBool32 rayQuery;
  21295. } VkPhysicalDeviceRayQueryFeaturesKHR;
  21296. // VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
  21297. #define VK_EXT_mesh_shader 1
  21298. #define VK_EXT_MESH_SHADER_SPEC_VERSION 1
  21299. #define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
  21300. typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
  21301. VkStructureType sType;
  21302. void* pNext;
  21303. VkBool32 taskShader;
  21304. VkBool32 meshShader;
  21305. VkBool32 multiviewMeshShader;
  21306. VkBool32 primitiveFragmentShadingRateMeshShader;
  21307. VkBool32 meshShaderQueries;
  21308. } VkPhysicalDeviceMeshShaderFeaturesEXT;
  21309. typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
  21310. VkStructureType sType;
  21311. void* pNext;
  21312. uint32_t maxTaskWorkGroupTotalCount;
  21313. uint32_t maxTaskWorkGroupCount[3];
  21314. uint32_t maxTaskWorkGroupInvocations;
  21315. uint32_t maxTaskWorkGroupSize[3];
  21316. uint32_t maxTaskPayloadSize;
  21317. uint32_t maxTaskSharedMemorySize;
  21318. uint32_t maxTaskPayloadAndSharedMemorySize;
  21319. uint32_t maxMeshWorkGroupTotalCount;
  21320. uint32_t maxMeshWorkGroupCount[3];
  21321. uint32_t maxMeshWorkGroupInvocations;
  21322. uint32_t maxMeshWorkGroupSize[3];
  21323. uint32_t maxMeshSharedMemorySize;
  21324. uint32_t maxMeshPayloadAndSharedMemorySize;
  21325. uint32_t maxMeshOutputMemorySize;
  21326. uint32_t maxMeshPayloadAndOutputMemorySize;
  21327. uint32_t maxMeshOutputComponents;
  21328. uint32_t maxMeshOutputVertices;
  21329. uint32_t maxMeshOutputPrimitives;
  21330. uint32_t maxMeshOutputLayers;
  21331. uint32_t maxMeshMultiviewViewCount;
  21332. uint32_t meshOutputPerVertexGranularity;
  21333. uint32_t meshOutputPerPrimitiveGranularity;
  21334. uint32_t maxPreferredTaskWorkGroupInvocations;
  21335. uint32_t maxPreferredMeshWorkGroupInvocations;
  21336. VkBool32 prefersLocalInvocationVertexOutput;
  21337. VkBool32 prefersLocalInvocationPrimitiveOutput;
  21338. VkBool32 prefersCompactVertexOutput;
  21339. VkBool32 prefersCompactPrimitiveOutput;
  21340. } VkPhysicalDeviceMeshShaderPropertiesEXT;
  21341. typedef struct VkDrawMeshTasksIndirectCommandEXT {
  21342. uint32_t groupCountX;
  21343. uint32_t groupCountY;
  21344. uint32_t groupCountZ;
  21345. } VkDrawMeshTasksIndirectCommandEXT;
  21346. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  21347. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  21348. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  21349. #ifndef VK_NO_PROTOTYPES
  21350. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21351. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
  21352. VkCommandBuffer commandBuffer,
  21353. uint32_t groupCountX,
  21354. uint32_t groupCountY,
  21355. uint32_t groupCountZ);
  21356. #endif
  21357. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21358. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
  21359. VkCommandBuffer commandBuffer,
  21360. VkBuffer buffer,
  21361. VkDeviceSize offset,
  21362. uint32_t drawCount,
  21363. uint32_t stride);
  21364. #endif
  21365. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  21366. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
  21367. VkCommandBuffer commandBuffer,
  21368. VkBuffer buffer,
  21369. VkDeviceSize offset,
  21370. VkBuffer countBuffer,
  21371. VkDeviceSize countBufferOffset,
  21372. uint32_t maxDrawCount,
  21373. uint32_t stride);
  21374. #endif
  21375. #endif
  21376. #ifdef __cplusplus
  21377. }
  21378. #endif
  21379. #endif