vulkan_core.h 636 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198
  1. #ifndef VULKAN_CORE_H_
  2. #define VULKAN_CORE_H_ 1
  3. /*
  4. ** Copyright 2015-2021 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. #define VK_VERSION_1_0 1
  16. #include "vk_platform.h"
  17. #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
  18. #ifndef VK_USE_64_BIT_PTR_DEFINES
  19. #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
  20. #define VK_USE_64_BIT_PTR_DEFINES 1
  21. #else
  22. #define VK_USE_64_BIT_PTR_DEFINES 0
  23. #endif
  24. #endif
  25. #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
  26. #if (VK_USE_64_BIT_PTR_DEFINES==1)
  27. #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
  28. #define VK_NULL_HANDLE nullptr
  29. #else
  30. #define VK_NULL_HANDLE ((void*)0)
  31. #endif
  32. #else
  33. #define VK_NULL_HANDLE 0ULL
  34. #endif
  35. #endif
  36. #ifndef VK_NULL_HANDLE
  37. #define VK_NULL_HANDLE 0
  38. #endif
  39. #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
  40. #if (VK_USE_64_BIT_PTR_DEFINES==1)
  41. #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
  42. #else
  43. #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
  44. #endif
  45. #endif
  46. // DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
  47. #define VK_MAKE_VERSION(major, minor, patch) \
  48. ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
  49. // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
  50. //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
  51. #define VK_MAKE_API_VERSION(variant, major, minor, patch) \
  52. ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
  53. // Vulkan 1.0 version number
  54. #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
  55. // Version of this file
  56. #define VK_HEADER_VERSION 191
  57. // Complete version of this file
  58. #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)
  59. // DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
  60. #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
  61. // DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
  62. #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
  63. // DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
  64. #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
  65. #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29)
  66. #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU)
  67. #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU)
  68. #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
  69. typedef uint32_t VkBool32;
  70. typedef uint64_t VkDeviceAddress;
  71. typedef uint64_t VkDeviceSize;
  72. typedef uint32_t VkFlags;
  73. typedef uint32_t VkSampleMask;
  74. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
  75. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
  76. VK_DEFINE_HANDLE(VkInstance)
  77. VK_DEFINE_HANDLE(VkPhysicalDevice)
  78. VK_DEFINE_HANDLE(VkDevice)
  79. VK_DEFINE_HANDLE(VkQueue)
  80. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
  81. VK_DEFINE_HANDLE(VkCommandBuffer)
  82. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
  83. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
  84. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
  85. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
  86. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
  87. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
  88. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
  89. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
  90. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
  91. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
  92. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
  93. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
  94. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
  95. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
  96. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
  97. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
  98. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
  99. #define VK_UUID_SIZE 16U
  100. #define VK_ATTACHMENT_UNUSED (~0U)
  101. #define VK_FALSE 0U
  102. #define VK_LOD_CLAMP_NONE 1000.0F
  103. #define VK_QUEUE_FAMILY_IGNORED (~0U)
  104. #define VK_REMAINING_ARRAY_LAYERS (~0U)
  105. #define VK_REMAINING_MIP_LEVELS (~0U)
  106. #define VK_SUBPASS_EXTERNAL (~0U)
  107. #define VK_TRUE 1U
  108. #define VK_WHOLE_SIZE (~0ULL)
  109. #define VK_MAX_MEMORY_TYPES 32U
  110. #define VK_MAX_MEMORY_HEAPS 16U
  111. #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U
  112. #define VK_MAX_EXTENSION_NAME_SIZE 256U
  113. #define VK_MAX_DESCRIPTION_SIZE 256U
  114. typedef enum VkResult {
  115. VK_SUCCESS = 0,
  116. VK_NOT_READY = 1,
  117. VK_TIMEOUT = 2,
  118. VK_EVENT_SET = 3,
  119. VK_EVENT_RESET = 4,
  120. VK_INCOMPLETE = 5,
  121. VK_ERROR_OUT_OF_HOST_MEMORY = -1,
  122. VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
  123. VK_ERROR_INITIALIZATION_FAILED = -3,
  124. VK_ERROR_DEVICE_LOST = -4,
  125. VK_ERROR_MEMORY_MAP_FAILED = -5,
  126. VK_ERROR_LAYER_NOT_PRESENT = -6,
  127. VK_ERROR_EXTENSION_NOT_PRESENT = -7,
  128. VK_ERROR_FEATURE_NOT_PRESENT = -8,
  129. VK_ERROR_INCOMPATIBLE_DRIVER = -9,
  130. VK_ERROR_TOO_MANY_OBJECTS = -10,
  131. VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
  132. VK_ERROR_FRAGMENTED_POOL = -12,
  133. VK_ERROR_UNKNOWN = -13,
  134. VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
  135. VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
  136. VK_ERROR_FRAGMENTATION = -1000161000,
  137. VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
  138. VK_ERROR_SURFACE_LOST_KHR = -1000000000,
  139. VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
  140. VK_SUBOPTIMAL_KHR = 1000001003,
  141. VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
  142. VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
  143. VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
  144. VK_ERROR_INVALID_SHADER_NV = -1000012000,
  145. VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
  146. VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
  147. VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
  148. VK_THREAD_IDLE_KHR = 1000268000,
  149. VK_THREAD_DONE_KHR = 1000268001,
  150. VK_OPERATION_DEFERRED_KHR = 1000268002,
  151. VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
  152. VK_PIPELINE_COMPILE_REQUIRED_EXT = 1000297000,
  153. VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
  154. VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
  155. VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
  156. VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
  157. VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
  158. VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED_EXT,
  159. VK_RESULT_MAX_ENUM = 0x7FFFFFFF
  160. } VkResult;
  161. typedef enum VkStructureType {
  162. VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
  163. VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
  164. VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
  165. VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
  166. VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
  167. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
  168. VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
  169. VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
  170. VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
  171. VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
  172. VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
  173. VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
  174. VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
  175. VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
  176. VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
  177. VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
  178. VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
  179. VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
  180. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
  181. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
  182. VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
  183. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
  184. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
  185. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
  186. VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
  187. VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
  188. VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
  189. VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
  190. VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
  191. VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
  192. VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
  193. VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
  194. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
  195. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
  196. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
  197. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
  198. VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
  199. VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
  200. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
  201. VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
  202. VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
  203. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
  204. VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
  205. VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
  206. VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
  207. VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
  208. VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
  209. VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
  210. VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
  211. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
  212. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
  213. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
  214. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
  215. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
  216. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
  217. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
  218. VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
  219. VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
  220. VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
  221. VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
  222. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
  223. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
  224. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
  225. VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
  226. VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
  227. VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
  228. VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
  229. VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
  230. VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
  231. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
  232. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
  233. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
  234. VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
  235. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
  236. VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
  237. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
  238. VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
  239. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
  240. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
  241. VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
  242. VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
  243. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
  244. VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
  245. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
  246. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
  247. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
  248. VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
  249. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
  250. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
  251. VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
  252. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
  253. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
  254. VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
  255. VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
  256. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
  257. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
  258. VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
  259. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
  260. VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
  261. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
  262. VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
  263. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
  264. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
  265. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
  266. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
  267. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
  268. VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
  269. VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
  270. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
  271. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
  272. VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
  273. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
  274. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
  275. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
  276. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
  277. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
  278. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
  279. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
  280. VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
  281. VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
  282. VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
  283. VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
  284. VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
  285. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
  286. VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
  287. VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
  288. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
  289. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
  290. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
  291. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
  292. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
  293. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
  294. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
  295. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
  296. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
  297. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
  298. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
  299. VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
  300. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
  301. VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
  302. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
  303. VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
  304. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
  305. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
  306. VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
  307. VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
  308. VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
  309. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
  310. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
  311. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
  312. VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
  313. VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
  314. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
  315. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
  316. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
  317. VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
  318. VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
  319. VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
  320. VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
  321. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
  322. VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
  323. VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
  324. VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
  325. VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
  326. VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
  327. VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
  328. VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
  329. VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
  330. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
  331. VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
  332. VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
  333. VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
  334. VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
  335. VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
  336. VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
  337. VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
  338. VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
  339. VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
  340. VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
  341. VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
  342. VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
  343. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
  344. VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
  345. VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
  346. VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
  347. #ifdef VK_ENABLE_BETA_EXTENSIONS
  348. VK_STRUCTURE_TYPE_VIDEO_PROFILE_KHR = 1000023000,
  349. #endif
  350. #ifdef VK_ENABLE_BETA_EXTENSIONS
  351. VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
  352. #endif
  353. #ifdef VK_ENABLE_BETA_EXTENSIONS
  354. VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_KHR = 1000023002,
  355. #endif
  356. #ifdef VK_ENABLE_BETA_EXTENSIONS
  357. VK_STRUCTURE_TYPE_VIDEO_GET_MEMORY_PROPERTIES_KHR = 1000023003,
  358. #endif
  359. #ifdef VK_ENABLE_BETA_EXTENSIONS
  360. VK_STRUCTURE_TYPE_VIDEO_BIND_MEMORY_KHR = 1000023004,
  361. #endif
  362. #ifdef VK_ENABLE_BETA_EXTENSIONS
  363. VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
  364. #endif
  365. #ifdef VK_ENABLE_BETA_EXTENSIONS
  366. VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
  367. #endif
  368. #ifdef VK_ENABLE_BETA_EXTENSIONS
  369. VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
  370. #endif
  371. #ifdef VK_ENABLE_BETA_EXTENSIONS
  372. VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
  373. #endif
  374. #ifdef VK_ENABLE_BETA_EXTENSIONS
  375. VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
  376. #endif
  377. #ifdef VK_ENABLE_BETA_EXTENSIONS
  378. VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
  379. #endif
  380. #ifdef VK_ENABLE_BETA_EXTENSIONS
  381. VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_KHR = 1000023011,
  382. #endif
  383. #ifdef VK_ENABLE_BETA_EXTENSIONS
  384. VK_STRUCTURE_TYPE_VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000023012,
  385. #endif
  386. #ifdef VK_ENABLE_BETA_EXTENSIONS
  387. VK_STRUCTURE_TYPE_VIDEO_PROFILES_KHR = 1000023013,
  388. #endif
  389. #ifdef VK_ENABLE_BETA_EXTENSIONS
  390. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
  391. #endif
  392. #ifdef VK_ENABLE_BETA_EXTENSIONS
  393. VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
  394. #endif
  395. #ifdef VK_ENABLE_BETA_EXTENSIONS
  396. VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
  397. #endif
  398. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
  399. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
  400. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
  401. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
  402. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
  403. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
  404. VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
  405. VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
  406. VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
  407. VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
  408. VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
  409. #ifdef VK_ENABLE_BETA_EXTENSIONS
  410. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT = 1000038000,
  411. #endif
  412. #ifdef VK_ENABLE_BETA_EXTENSIONS
  413. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT = 1000038001,
  414. #endif
  415. #ifdef VK_ENABLE_BETA_EXTENSIONS
  416. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000038002,
  417. #endif
  418. #ifdef VK_ENABLE_BETA_EXTENSIONS
  419. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000038003,
  420. #endif
  421. #ifdef VK_ENABLE_BETA_EXTENSIONS
  422. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT = 1000038004,
  423. #endif
  424. #ifdef VK_ENABLE_BETA_EXTENSIONS
  425. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT = 1000038005,
  426. #endif
  427. #ifdef VK_ENABLE_BETA_EXTENSIONS
  428. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_EXT = 1000038006,
  429. #endif
  430. #ifdef VK_ENABLE_BETA_EXTENSIONS
  431. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT = 1000038007,
  432. #endif
  433. #ifdef VK_ENABLE_BETA_EXTENSIONS
  434. VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT = 1000038008,
  435. #endif
  436. #ifdef VK_ENABLE_BETA_EXTENSIONS
  437. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_EXT = 1000040000,
  438. #endif
  439. #ifdef VK_ENABLE_BETA_EXTENSIONS
  440. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT = 1000040001,
  441. #endif
  442. #ifdef VK_ENABLE_BETA_EXTENSIONS
  443. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_EXT = 1000040002,
  444. #endif
  445. #ifdef VK_ENABLE_BETA_EXTENSIONS
  446. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_MVC_EXT = 1000040003,
  447. #endif
  448. #ifdef VK_ENABLE_BETA_EXTENSIONS
  449. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT = 1000040004,
  450. #endif
  451. #ifdef VK_ENABLE_BETA_EXTENSIONS
  452. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000040005,
  453. #endif
  454. #ifdef VK_ENABLE_BETA_EXTENSIONS
  455. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT = 1000040006,
  456. #endif
  457. #ifdef VK_ENABLE_BETA_EXTENSIONS
  458. VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040007,
  459. #endif
  460. VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
  461. VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
  462. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
  463. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
  464. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
  465. VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
  466. VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
  467. VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
  468. VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
  469. VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
  470. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000,
  471. VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
  472. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
  473. VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
  474. VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
  475. VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
  476. VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
  477. VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
  478. VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
  479. VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
  480. VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
  481. VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
  482. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
  483. VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
  484. VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
  485. VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
  486. VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
  487. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
  488. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
  489. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
  490. VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
  491. VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
  492. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
  493. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
  494. VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
  495. VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
  496. VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
  497. VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
  498. VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
  499. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
  500. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
  501. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
  502. VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
  503. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
  504. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
  505. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
  506. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
  507. VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
  508. VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
  509. VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
  510. VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
  511. VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
  512. VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
  513. VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
  514. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
  515. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
  516. VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
  517. VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
  518. VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
  519. VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
  520. VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
  521. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
  522. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
  523. VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
  524. VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
  525. VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
  526. VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
  527. VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
  528. VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
  529. VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
  530. VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
  531. VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
  532. VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
  533. VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
  534. VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
  535. VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
  536. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
  537. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
  538. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
  539. VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
  540. VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
  541. VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
  542. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
  543. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
  544. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
  545. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
  546. VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
  547. VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
  548. VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
  549. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
  550. VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
  551. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
  552. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
  553. VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
  554. VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
  555. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
  556. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
  557. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
  558. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
  559. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
  560. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
  561. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
  562. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
  563. VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
  564. VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
  565. VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
  566. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
  567. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
  568. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
  569. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
  570. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
  571. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
  572. VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
  573. VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
  574. VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
  575. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
  576. VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
  577. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
  578. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
  579. VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
  580. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
  581. VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
  582. VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
  583. VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
  584. VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
  585. VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
  586. #ifdef VK_ENABLE_BETA_EXTENSIONS
  587. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
  588. #endif
  589. #ifdef VK_ENABLE_BETA_EXTENSIONS
  590. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
  591. #endif
  592. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
  593. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
  594. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
  595. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
  596. VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
  597. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
  598. VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
  599. VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
  600. VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
  601. VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
  602. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
  603. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
  604. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
  605. VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
  606. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
  607. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
  608. VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
  609. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
  610. VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
  611. VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
  612. VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
  613. VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
  614. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
  615. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
  616. VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
  617. VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
  618. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
  619. #ifdef VK_ENABLE_BETA_EXTENSIONS
  620. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_EXT = 1000187000,
  621. #endif
  622. #ifdef VK_ENABLE_BETA_EXTENSIONS
  623. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT = 1000187001,
  624. #endif
  625. #ifdef VK_ENABLE_BETA_EXTENSIONS
  626. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT = 1000187002,
  627. #endif
  628. #ifdef VK_ENABLE_BETA_EXTENSIONS
  629. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT = 1000187003,
  630. #endif
  631. #ifdef VK_ENABLE_BETA_EXTENSIONS
  632. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT = 1000187004,
  633. #endif
  634. #ifdef VK_ENABLE_BETA_EXTENSIONS
  635. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_EXT = 1000187005,
  636. #endif
  637. #ifdef VK_ENABLE_BETA_EXTENSIONS
  638. VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT = 1000187006,
  639. #endif
  640. VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
  641. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
  642. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
  643. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
  644. VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
  645. VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000,
  646. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
  647. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
  648. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
  649. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000,
  650. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
  651. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
  652. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
  653. VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
  654. VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
  655. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
  656. VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
  657. VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
  658. VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
  659. VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
  660. VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
  661. VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
  662. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
  663. VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
  664. VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
  665. VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
  666. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = 1000215000,
  667. VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
  668. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
  669. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
  670. VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
  671. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000,
  672. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001,
  673. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002,
  674. VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
  675. VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
  676. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
  677. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
  678. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
  679. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
  680. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
  681. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
  682. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
  683. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
  684. VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
  685. VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
  686. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
  687. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
  688. VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
  689. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = 1000245000,
  690. VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
  691. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
  692. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
  693. VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
  694. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
  695. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
  696. VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
  697. VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
  698. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
  699. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
  700. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
  701. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
  702. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
  703. VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
  704. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
  705. VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
  706. VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
  707. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000,
  708. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001,
  709. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002,
  710. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
  711. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
  712. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
  713. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
  714. VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
  715. VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
  716. VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
  717. VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
  718. VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
  719. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
  720. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000,
  721. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
  722. VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
  723. VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
  724. VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
  725. VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
  726. VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
  727. VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
  728. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
  729. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
  730. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
  731. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = 1000280000,
  732. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = 1000280001,
  733. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
  734. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
  735. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
  736. VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
  737. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
  738. VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
  739. VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
  740. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
  741. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
  742. VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
  743. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
  744. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
  745. VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
  746. VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
  747. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
  748. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000,
  749. VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001,
  750. VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002,
  751. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000,
  752. #ifdef VK_ENABLE_BETA_EXTENSIONS
  753. VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
  754. #endif
  755. #ifdef VK_ENABLE_BETA_EXTENSIONS
  756. VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
  757. #endif
  758. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
  759. VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
  760. VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = 1000314000,
  761. VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = 1000314001,
  762. VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = 1000314002,
  763. VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = 1000314003,
  764. VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = 1000314004,
  765. VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = 1000314005,
  766. VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = 1000314006,
  767. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = 1000314007,
  768. VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
  769. VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
  770. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
  771. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = 1000325000,
  772. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
  773. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
  774. VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
  775. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
  776. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
  777. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
  778. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
  779. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
  780. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
  781. VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
  782. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = 1000335000,
  783. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
  784. VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = 1000337000,
  785. VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = 1000337001,
  786. VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = 1000337002,
  787. VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = 1000337003,
  788. VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = 1000337004,
  789. VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = 1000337005,
  790. VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = 1000337006,
  791. VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = 1000337007,
  792. VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008,
  793. VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009,
  794. VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010,
  795. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
  796. VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
  797. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000,
  798. VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002,
  799. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
  800. VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
  801. VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
  802. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
  803. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
  804. VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
  805. VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
  806. VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
  807. VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
  808. VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
  809. VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
  810. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
  811. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
  812. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
  813. VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
  814. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
  815. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
  816. VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
  817. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
  818. VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
  819. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = 1000388000,
  820. VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = 1000388001,
  821. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
  822. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
  823. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
  824. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
  825. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
  826. VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
  827. VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
  828. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
  829. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
  830. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
  831. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
  832. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
  833. VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
  834. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
  835. VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
  836. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
  837. VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
  838. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
  839. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
  840. VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
  841. VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
  842. VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
  843. VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
  844. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
  845. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
  846. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
  847. VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
  848. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
  849. VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
  850. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
  851. VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
  852. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
  853. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
  854. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
  855. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
  856. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
  857. VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
  858. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
  859. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
  860. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
  861. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
  862. VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
  863. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
  864. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
  865. VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
  866. VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
  867. VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
  868. VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
  869. VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
  870. VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
  871. VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
  872. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
  873. VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
  874. VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
  875. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
  876. VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
  877. VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
  878. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
  879. VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
  880. VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
  881. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
  882. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
  883. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
  884. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
  885. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
  886. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
  887. VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
  888. VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
  889. VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
  890. VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
  891. VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
  892. VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
  893. VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
  894. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
  895. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
  896. VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
  897. VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
  898. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
  899. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
  900. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
  901. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
  902. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
  903. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
  904. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
  905. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
  906. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
  907. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
  908. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
  909. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
  910. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
  911. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
  912. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
  913. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
  914. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
  915. VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
  916. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
  917. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
  918. VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
  919. VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
  920. VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
  921. VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
  922. VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
  923. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
  924. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
  925. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
  926. VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
  927. VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
  928. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
  929. VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
  930. VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
  931. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
  932. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
  933. VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
  934. VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
  935. VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
  936. VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
  937. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
  938. VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
  939. } VkStructureType;
  940. typedef enum VkImageLayout {
  941. VK_IMAGE_LAYOUT_UNDEFINED = 0,
  942. VK_IMAGE_LAYOUT_GENERAL = 1,
  943. VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
  944. VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
  945. VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
  946. VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
  947. VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
  948. VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
  949. VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
  950. VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
  951. VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
  952. VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
  953. VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
  954. VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
  955. VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
  956. VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
  957. #ifdef VK_ENABLE_BETA_EXTENSIONS
  958. VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
  959. #endif
  960. #ifdef VK_ENABLE_BETA_EXTENSIONS
  961. VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
  962. #endif
  963. #ifdef VK_ENABLE_BETA_EXTENSIONS
  964. VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
  965. #endif
  966. VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
  967. VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
  968. VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
  969. #ifdef VK_ENABLE_BETA_EXTENSIONS
  970. VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
  971. #endif
  972. #ifdef VK_ENABLE_BETA_EXTENSIONS
  973. VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
  974. #endif
  975. #ifdef VK_ENABLE_BETA_EXTENSIONS
  976. VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
  977. #endif
  978. VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = 1000314000,
  979. VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = 1000314001,
  980. VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
  981. VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
  982. VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
  983. VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
  984. VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
  985. VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
  986. VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
  987. VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
  988. } VkImageLayout;
  989. typedef enum VkObjectType {
  990. VK_OBJECT_TYPE_UNKNOWN = 0,
  991. VK_OBJECT_TYPE_INSTANCE = 1,
  992. VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
  993. VK_OBJECT_TYPE_DEVICE = 3,
  994. VK_OBJECT_TYPE_QUEUE = 4,
  995. VK_OBJECT_TYPE_SEMAPHORE = 5,
  996. VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
  997. VK_OBJECT_TYPE_FENCE = 7,
  998. VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
  999. VK_OBJECT_TYPE_BUFFER = 9,
  1000. VK_OBJECT_TYPE_IMAGE = 10,
  1001. VK_OBJECT_TYPE_EVENT = 11,
  1002. VK_OBJECT_TYPE_QUERY_POOL = 12,
  1003. VK_OBJECT_TYPE_BUFFER_VIEW = 13,
  1004. VK_OBJECT_TYPE_IMAGE_VIEW = 14,
  1005. VK_OBJECT_TYPE_SHADER_MODULE = 15,
  1006. VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
  1007. VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
  1008. VK_OBJECT_TYPE_RENDER_PASS = 18,
  1009. VK_OBJECT_TYPE_PIPELINE = 19,
  1010. VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
  1011. VK_OBJECT_TYPE_SAMPLER = 21,
  1012. VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
  1013. VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
  1014. VK_OBJECT_TYPE_FRAMEBUFFER = 24,
  1015. VK_OBJECT_TYPE_COMMAND_POOL = 25,
  1016. VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
  1017. VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
  1018. VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
  1019. VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
  1020. VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
  1021. VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
  1022. VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
  1023. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1024. VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
  1025. #endif
  1026. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1027. VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
  1028. #endif
  1029. VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
  1030. VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
  1031. VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
  1032. VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
  1033. VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
  1034. VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
  1035. VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
  1036. VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
  1037. VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
  1038. VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000,
  1039. VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
  1040. VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
  1041. VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
  1042. } VkObjectType;
  1043. typedef enum VkPipelineCacheHeaderVersion {
  1044. VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
  1045. VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
  1046. } VkPipelineCacheHeaderVersion;
  1047. typedef enum VkVendorId {
  1048. VK_VENDOR_ID_VIV = 0x10001,
  1049. VK_VENDOR_ID_VSI = 0x10002,
  1050. VK_VENDOR_ID_KAZAN = 0x10003,
  1051. VK_VENDOR_ID_CODEPLAY = 0x10004,
  1052. VK_VENDOR_ID_MESA = 0x10005,
  1053. VK_VENDOR_ID_POCL = 0x10006,
  1054. VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
  1055. } VkVendorId;
  1056. typedef enum VkSystemAllocationScope {
  1057. VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
  1058. VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
  1059. VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
  1060. VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
  1061. VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
  1062. VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
  1063. } VkSystemAllocationScope;
  1064. typedef enum VkInternalAllocationType {
  1065. VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
  1066. VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
  1067. } VkInternalAllocationType;
  1068. typedef enum VkFormat {
  1069. VK_FORMAT_UNDEFINED = 0,
  1070. VK_FORMAT_R4G4_UNORM_PACK8 = 1,
  1071. VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
  1072. VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
  1073. VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
  1074. VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
  1075. VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
  1076. VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
  1077. VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
  1078. VK_FORMAT_R8_UNORM = 9,
  1079. VK_FORMAT_R8_SNORM = 10,
  1080. VK_FORMAT_R8_USCALED = 11,
  1081. VK_FORMAT_R8_SSCALED = 12,
  1082. VK_FORMAT_R8_UINT = 13,
  1083. VK_FORMAT_R8_SINT = 14,
  1084. VK_FORMAT_R8_SRGB = 15,
  1085. VK_FORMAT_R8G8_UNORM = 16,
  1086. VK_FORMAT_R8G8_SNORM = 17,
  1087. VK_FORMAT_R8G8_USCALED = 18,
  1088. VK_FORMAT_R8G8_SSCALED = 19,
  1089. VK_FORMAT_R8G8_UINT = 20,
  1090. VK_FORMAT_R8G8_SINT = 21,
  1091. VK_FORMAT_R8G8_SRGB = 22,
  1092. VK_FORMAT_R8G8B8_UNORM = 23,
  1093. VK_FORMAT_R8G8B8_SNORM = 24,
  1094. VK_FORMAT_R8G8B8_USCALED = 25,
  1095. VK_FORMAT_R8G8B8_SSCALED = 26,
  1096. VK_FORMAT_R8G8B8_UINT = 27,
  1097. VK_FORMAT_R8G8B8_SINT = 28,
  1098. VK_FORMAT_R8G8B8_SRGB = 29,
  1099. VK_FORMAT_B8G8R8_UNORM = 30,
  1100. VK_FORMAT_B8G8R8_SNORM = 31,
  1101. VK_FORMAT_B8G8R8_USCALED = 32,
  1102. VK_FORMAT_B8G8R8_SSCALED = 33,
  1103. VK_FORMAT_B8G8R8_UINT = 34,
  1104. VK_FORMAT_B8G8R8_SINT = 35,
  1105. VK_FORMAT_B8G8R8_SRGB = 36,
  1106. VK_FORMAT_R8G8B8A8_UNORM = 37,
  1107. VK_FORMAT_R8G8B8A8_SNORM = 38,
  1108. VK_FORMAT_R8G8B8A8_USCALED = 39,
  1109. VK_FORMAT_R8G8B8A8_SSCALED = 40,
  1110. VK_FORMAT_R8G8B8A8_UINT = 41,
  1111. VK_FORMAT_R8G8B8A8_SINT = 42,
  1112. VK_FORMAT_R8G8B8A8_SRGB = 43,
  1113. VK_FORMAT_B8G8R8A8_UNORM = 44,
  1114. VK_FORMAT_B8G8R8A8_SNORM = 45,
  1115. VK_FORMAT_B8G8R8A8_USCALED = 46,
  1116. VK_FORMAT_B8G8R8A8_SSCALED = 47,
  1117. VK_FORMAT_B8G8R8A8_UINT = 48,
  1118. VK_FORMAT_B8G8R8A8_SINT = 49,
  1119. VK_FORMAT_B8G8R8A8_SRGB = 50,
  1120. VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
  1121. VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
  1122. VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
  1123. VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
  1124. VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
  1125. VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
  1126. VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
  1127. VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
  1128. VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
  1129. VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
  1130. VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
  1131. VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
  1132. VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
  1133. VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
  1134. VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
  1135. VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
  1136. VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
  1137. VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
  1138. VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
  1139. VK_FORMAT_R16_UNORM = 70,
  1140. VK_FORMAT_R16_SNORM = 71,
  1141. VK_FORMAT_R16_USCALED = 72,
  1142. VK_FORMAT_R16_SSCALED = 73,
  1143. VK_FORMAT_R16_UINT = 74,
  1144. VK_FORMAT_R16_SINT = 75,
  1145. VK_FORMAT_R16_SFLOAT = 76,
  1146. VK_FORMAT_R16G16_UNORM = 77,
  1147. VK_FORMAT_R16G16_SNORM = 78,
  1148. VK_FORMAT_R16G16_USCALED = 79,
  1149. VK_FORMAT_R16G16_SSCALED = 80,
  1150. VK_FORMAT_R16G16_UINT = 81,
  1151. VK_FORMAT_R16G16_SINT = 82,
  1152. VK_FORMAT_R16G16_SFLOAT = 83,
  1153. VK_FORMAT_R16G16B16_UNORM = 84,
  1154. VK_FORMAT_R16G16B16_SNORM = 85,
  1155. VK_FORMAT_R16G16B16_USCALED = 86,
  1156. VK_FORMAT_R16G16B16_SSCALED = 87,
  1157. VK_FORMAT_R16G16B16_UINT = 88,
  1158. VK_FORMAT_R16G16B16_SINT = 89,
  1159. VK_FORMAT_R16G16B16_SFLOAT = 90,
  1160. VK_FORMAT_R16G16B16A16_UNORM = 91,
  1161. VK_FORMAT_R16G16B16A16_SNORM = 92,
  1162. VK_FORMAT_R16G16B16A16_USCALED = 93,
  1163. VK_FORMAT_R16G16B16A16_SSCALED = 94,
  1164. VK_FORMAT_R16G16B16A16_UINT = 95,
  1165. VK_FORMAT_R16G16B16A16_SINT = 96,
  1166. VK_FORMAT_R16G16B16A16_SFLOAT = 97,
  1167. VK_FORMAT_R32_UINT = 98,
  1168. VK_FORMAT_R32_SINT = 99,
  1169. VK_FORMAT_R32_SFLOAT = 100,
  1170. VK_FORMAT_R32G32_UINT = 101,
  1171. VK_FORMAT_R32G32_SINT = 102,
  1172. VK_FORMAT_R32G32_SFLOAT = 103,
  1173. VK_FORMAT_R32G32B32_UINT = 104,
  1174. VK_FORMAT_R32G32B32_SINT = 105,
  1175. VK_FORMAT_R32G32B32_SFLOAT = 106,
  1176. VK_FORMAT_R32G32B32A32_UINT = 107,
  1177. VK_FORMAT_R32G32B32A32_SINT = 108,
  1178. VK_FORMAT_R32G32B32A32_SFLOAT = 109,
  1179. VK_FORMAT_R64_UINT = 110,
  1180. VK_FORMAT_R64_SINT = 111,
  1181. VK_FORMAT_R64_SFLOAT = 112,
  1182. VK_FORMAT_R64G64_UINT = 113,
  1183. VK_FORMAT_R64G64_SINT = 114,
  1184. VK_FORMAT_R64G64_SFLOAT = 115,
  1185. VK_FORMAT_R64G64B64_UINT = 116,
  1186. VK_FORMAT_R64G64B64_SINT = 117,
  1187. VK_FORMAT_R64G64B64_SFLOAT = 118,
  1188. VK_FORMAT_R64G64B64A64_UINT = 119,
  1189. VK_FORMAT_R64G64B64A64_SINT = 120,
  1190. VK_FORMAT_R64G64B64A64_SFLOAT = 121,
  1191. VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
  1192. VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
  1193. VK_FORMAT_D16_UNORM = 124,
  1194. VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
  1195. VK_FORMAT_D32_SFLOAT = 126,
  1196. VK_FORMAT_S8_UINT = 127,
  1197. VK_FORMAT_D16_UNORM_S8_UINT = 128,
  1198. VK_FORMAT_D24_UNORM_S8_UINT = 129,
  1199. VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
  1200. VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
  1201. VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
  1202. VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
  1203. VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
  1204. VK_FORMAT_BC2_UNORM_BLOCK = 135,
  1205. VK_FORMAT_BC2_SRGB_BLOCK = 136,
  1206. VK_FORMAT_BC3_UNORM_BLOCK = 137,
  1207. VK_FORMAT_BC3_SRGB_BLOCK = 138,
  1208. VK_FORMAT_BC4_UNORM_BLOCK = 139,
  1209. VK_FORMAT_BC4_SNORM_BLOCK = 140,
  1210. VK_FORMAT_BC5_UNORM_BLOCK = 141,
  1211. VK_FORMAT_BC5_SNORM_BLOCK = 142,
  1212. VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
  1213. VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
  1214. VK_FORMAT_BC7_UNORM_BLOCK = 145,
  1215. VK_FORMAT_BC7_SRGB_BLOCK = 146,
  1216. VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
  1217. VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
  1218. VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
  1219. VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
  1220. VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
  1221. VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
  1222. VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
  1223. VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
  1224. VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
  1225. VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
  1226. VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
  1227. VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
  1228. VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
  1229. VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
  1230. VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
  1231. VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
  1232. VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
  1233. VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
  1234. VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
  1235. VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
  1236. VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
  1237. VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
  1238. VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
  1239. VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
  1240. VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
  1241. VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
  1242. VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
  1243. VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
  1244. VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
  1245. VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
  1246. VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
  1247. VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
  1248. VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
  1249. VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
  1250. VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
  1251. VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
  1252. VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
  1253. VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
  1254. VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
  1255. VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
  1256. VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
  1257. VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
  1258. VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
  1259. VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
  1260. VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
  1261. VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
  1262. VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
  1263. VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
  1264. VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
  1265. VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
  1266. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
  1267. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
  1268. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
  1269. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
  1270. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
  1271. VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
  1272. VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
  1273. VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
  1274. VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
  1275. VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
  1276. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
  1277. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
  1278. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
  1279. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
  1280. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
  1281. VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
  1282. VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
  1283. VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
  1284. VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
  1285. VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
  1286. VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
  1287. VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
  1288. VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
  1289. VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
  1290. VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
  1291. VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
  1292. VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
  1293. VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
  1294. VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
  1295. VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
  1296. VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000,
  1297. VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001,
  1298. VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002,
  1299. VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003,
  1300. VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004,
  1301. VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005,
  1302. VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006,
  1303. VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007,
  1304. VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008,
  1305. VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009,
  1306. VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010,
  1307. VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011,
  1308. VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012,
  1309. VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013,
  1310. VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = 1000330000,
  1311. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = 1000330001,
  1312. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = 1000330002,
  1313. VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = 1000330003,
  1314. VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000,
  1315. VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001,
  1316. VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
  1317. VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
  1318. VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
  1319. VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
  1320. VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
  1321. VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
  1322. VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
  1323. VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
  1324. VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
  1325. VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
  1326. VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
  1327. VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
  1328. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
  1329. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
  1330. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
  1331. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
  1332. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
  1333. VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
  1334. VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
  1335. VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
  1336. VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
  1337. VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
  1338. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
  1339. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
  1340. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
  1341. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
  1342. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
  1343. VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
  1344. VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
  1345. VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
  1346. VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
  1347. VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
  1348. VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
  1349. VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
  1350. VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
  1351. } VkFormat;
  1352. typedef enum VkImageTiling {
  1353. VK_IMAGE_TILING_OPTIMAL = 0,
  1354. VK_IMAGE_TILING_LINEAR = 1,
  1355. VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
  1356. VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
  1357. } VkImageTiling;
  1358. typedef enum VkImageType {
  1359. VK_IMAGE_TYPE_1D = 0,
  1360. VK_IMAGE_TYPE_2D = 1,
  1361. VK_IMAGE_TYPE_3D = 2,
  1362. VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
  1363. } VkImageType;
  1364. typedef enum VkPhysicalDeviceType {
  1365. VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
  1366. VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
  1367. VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
  1368. VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
  1369. VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
  1370. VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
  1371. } VkPhysicalDeviceType;
  1372. typedef enum VkQueryType {
  1373. VK_QUERY_TYPE_OCCLUSION = 0,
  1374. VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
  1375. VK_QUERY_TYPE_TIMESTAMP = 2,
  1376. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1377. VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
  1378. #endif
  1379. VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
  1380. VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
  1381. VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
  1382. VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
  1383. VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
  1384. VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
  1385. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1386. VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000,
  1387. #endif
  1388. VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
  1389. } VkQueryType;
  1390. typedef enum VkSharingMode {
  1391. VK_SHARING_MODE_EXCLUSIVE = 0,
  1392. VK_SHARING_MODE_CONCURRENT = 1,
  1393. VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
  1394. } VkSharingMode;
  1395. typedef enum VkComponentSwizzle {
  1396. VK_COMPONENT_SWIZZLE_IDENTITY = 0,
  1397. VK_COMPONENT_SWIZZLE_ZERO = 1,
  1398. VK_COMPONENT_SWIZZLE_ONE = 2,
  1399. VK_COMPONENT_SWIZZLE_R = 3,
  1400. VK_COMPONENT_SWIZZLE_G = 4,
  1401. VK_COMPONENT_SWIZZLE_B = 5,
  1402. VK_COMPONENT_SWIZZLE_A = 6,
  1403. VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
  1404. } VkComponentSwizzle;
  1405. typedef enum VkImageViewType {
  1406. VK_IMAGE_VIEW_TYPE_1D = 0,
  1407. VK_IMAGE_VIEW_TYPE_2D = 1,
  1408. VK_IMAGE_VIEW_TYPE_3D = 2,
  1409. VK_IMAGE_VIEW_TYPE_CUBE = 3,
  1410. VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
  1411. VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
  1412. VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
  1413. VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
  1414. } VkImageViewType;
  1415. typedef enum VkBlendFactor {
  1416. VK_BLEND_FACTOR_ZERO = 0,
  1417. VK_BLEND_FACTOR_ONE = 1,
  1418. VK_BLEND_FACTOR_SRC_COLOR = 2,
  1419. VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
  1420. VK_BLEND_FACTOR_DST_COLOR = 4,
  1421. VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
  1422. VK_BLEND_FACTOR_SRC_ALPHA = 6,
  1423. VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
  1424. VK_BLEND_FACTOR_DST_ALPHA = 8,
  1425. VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
  1426. VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
  1427. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
  1428. VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
  1429. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
  1430. VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
  1431. VK_BLEND_FACTOR_SRC1_COLOR = 15,
  1432. VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
  1433. VK_BLEND_FACTOR_SRC1_ALPHA = 17,
  1434. VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
  1435. VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
  1436. } VkBlendFactor;
  1437. typedef enum VkBlendOp {
  1438. VK_BLEND_OP_ADD = 0,
  1439. VK_BLEND_OP_SUBTRACT = 1,
  1440. VK_BLEND_OP_REVERSE_SUBTRACT = 2,
  1441. VK_BLEND_OP_MIN = 3,
  1442. VK_BLEND_OP_MAX = 4,
  1443. VK_BLEND_OP_ZERO_EXT = 1000148000,
  1444. VK_BLEND_OP_SRC_EXT = 1000148001,
  1445. VK_BLEND_OP_DST_EXT = 1000148002,
  1446. VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
  1447. VK_BLEND_OP_DST_OVER_EXT = 1000148004,
  1448. VK_BLEND_OP_SRC_IN_EXT = 1000148005,
  1449. VK_BLEND_OP_DST_IN_EXT = 1000148006,
  1450. VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
  1451. VK_BLEND_OP_DST_OUT_EXT = 1000148008,
  1452. VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
  1453. VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
  1454. VK_BLEND_OP_XOR_EXT = 1000148011,
  1455. VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
  1456. VK_BLEND_OP_SCREEN_EXT = 1000148013,
  1457. VK_BLEND_OP_OVERLAY_EXT = 1000148014,
  1458. VK_BLEND_OP_DARKEN_EXT = 1000148015,
  1459. VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
  1460. VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
  1461. VK_BLEND_OP_COLORBURN_EXT = 1000148018,
  1462. VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
  1463. VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
  1464. VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
  1465. VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
  1466. VK_BLEND_OP_INVERT_EXT = 1000148023,
  1467. VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
  1468. VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
  1469. VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
  1470. VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
  1471. VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
  1472. VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
  1473. VK_BLEND_OP_HARDMIX_EXT = 1000148030,
  1474. VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
  1475. VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
  1476. VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
  1477. VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
  1478. VK_BLEND_OP_PLUS_EXT = 1000148035,
  1479. VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
  1480. VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
  1481. VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
  1482. VK_BLEND_OP_MINUS_EXT = 1000148039,
  1483. VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
  1484. VK_BLEND_OP_CONTRAST_EXT = 1000148041,
  1485. VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
  1486. VK_BLEND_OP_RED_EXT = 1000148043,
  1487. VK_BLEND_OP_GREEN_EXT = 1000148044,
  1488. VK_BLEND_OP_BLUE_EXT = 1000148045,
  1489. VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
  1490. } VkBlendOp;
  1491. typedef enum VkCompareOp {
  1492. VK_COMPARE_OP_NEVER = 0,
  1493. VK_COMPARE_OP_LESS = 1,
  1494. VK_COMPARE_OP_EQUAL = 2,
  1495. VK_COMPARE_OP_LESS_OR_EQUAL = 3,
  1496. VK_COMPARE_OP_GREATER = 4,
  1497. VK_COMPARE_OP_NOT_EQUAL = 5,
  1498. VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
  1499. VK_COMPARE_OP_ALWAYS = 7,
  1500. VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
  1501. } VkCompareOp;
  1502. typedef enum VkDynamicState {
  1503. VK_DYNAMIC_STATE_VIEWPORT = 0,
  1504. VK_DYNAMIC_STATE_SCISSOR = 1,
  1505. VK_DYNAMIC_STATE_LINE_WIDTH = 2,
  1506. VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
  1507. VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
  1508. VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
  1509. VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
  1510. VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
  1511. VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
  1512. VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
  1513. VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
  1514. VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
  1515. VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
  1516. VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
  1517. VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
  1518. VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
  1519. VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
  1520. VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
  1521. VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000,
  1522. VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001,
  1523. VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002,
  1524. VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = 1000267003,
  1525. VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = 1000267004,
  1526. VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = 1000267005,
  1527. VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = 1000267006,
  1528. VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007,
  1529. VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008,
  1530. VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009,
  1531. VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010,
  1532. VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011,
  1533. VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
  1534. VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
  1535. VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = 1000377001,
  1536. VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = 1000377002,
  1537. VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
  1538. VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = 1000377004,
  1539. VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
  1540. VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
  1541. } VkDynamicState;
  1542. typedef enum VkFrontFace {
  1543. VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
  1544. VK_FRONT_FACE_CLOCKWISE = 1,
  1545. VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
  1546. } VkFrontFace;
  1547. typedef enum VkVertexInputRate {
  1548. VK_VERTEX_INPUT_RATE_VERTEX = 0,
  1549. VK_VERTEX_INPUT_RATE_INSTANCE = 1,
  1550. VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
  1551. } VkVertexInputRate;
  1552. typedef enum VkPrimitiveTopology {
  1553. VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
  1554. VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
  1555. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
  1556. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
  1557. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
  1558. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
  1559. VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
  1560. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
  1561. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
  1562. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
  1563. VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
  1564. VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
  1565. } VkPrimitiveTopology;
  1566. typedef enum VkPolygonMode {
  1567. VK_POLYGON_MODE_FILL = 0,
  1568. VK_POLYGON_MODE_LINE = 1,
  1569. VK_POLYGON_MODE_POINT = 2,
  1570. VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
  1571. VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
  1572. } VkPolygonMode;
  1573. typedef enum VkStencilOp {
  1574. VK_STENCIL_OP_KEEP = 0,
  1575. VK_STENCIL_OP_ZERO = 1,
  1576. VK_STENCIL_OP_REPLACE = 2,
  1577. VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
  1578. VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
  1579. VK_STENCIL_OP_INVERT = 5,
  1580. VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
  1581. VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
  1582. VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
  1583. } VkStencilOp;
  1584. typedef enum VkLogicOp {
  1585. VK_LOGIC_OP_CLEAR = 0,
  1586. VK_LOGIC_OP_AND = 1,
  1587. VK_LOGIC_OP_AND_REVERSE = 2,
  1588. VK_LOGIC_OP_COPY = 3,
  1589. VK_LOGIC_OP_AND_INVERTED = 4,
  1590. VK_LOGIC_OP_NO_OP = 5,
  1591. VK_LOGIC_OP_XOR = 6,
  1592. VK_LOGIC_OP_OR = 7,
  1593. VK_LOGIC_OP_NOR = 8,
  1594. VK_LOGIC_OP_EQUIVALENT = 9,
  1595. VK_LOGIC_OP_INVERT = 10,
  1596. VK_LOGIC_OP_OR_REVERSE = 11,
  1597. VK_LOGIC_OP_COPY_INVERTED = 12,
  1598. VK_LOGIC_OP_OR_INVERTED = 13,
  1599. VK_LOGIC_OP_NAND = 14,
  1600. VK_LOGIC_OP_SET = 15,
  1601. VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
  1602. } VkLogicOp;
  1603. typedef enum VkBorderColor {
  1604. VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
  1605. VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
  1606. VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
  1607. VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
  1608. VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
  1609. VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
  1610. VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
  1611. VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
  1612. VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
  1613. } VkBorderColor;
  1614. typedef enum VkFilter {
  1615. VK_FILTER_NEAREST = 0,
  1616. VK_FILTER_LINEAR = 1,
  1617. VK_FILTER_CUBIC_IMG = 1000015000,
  1618. VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
  1619. VK_FILTER_MAX_ENUM = 0x7FFFFFFF
  1620. } VkFilter;
  1621. typedef enum VkSamplerAddressMode {
  1622. VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
  1623. VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
  1624. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
  1625. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
  1626. VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
  1627. VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
  1628. VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
  1629. } VkSamplerAddressMode;
  1630. typedef enum VkSamplerMipmapMode {
  1631. VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
  1632. VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
  1633. VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
  1634. } VkSamplerMipmapMode;
  1635. typedef enum VkDescriptorType {
  1636. VK_DESCRIPTOR_TYPE_SAMPLER = 0,
  1637. VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
  1638. VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
  1639. VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
  1640. VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
  1641. VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
  1642. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
  1643. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
  1644. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
  1645. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
  1646. VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
  1647. VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
  1648. VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
  1649. VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
  1650. VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000,
  1651. VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
  1652. } VkDescriptorType;
  1653. typedef enum VkAttachmentLoadOp {
  1654. VK_ATTACHMENT_LOAD_OP_LOAD = 0,
  1655. VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
  1656. VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
  1657. VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000,
  1658. VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
  1659. } VkAttachmentLoadOp;
  1660. typedef enum VkAttachmentStoreOp {
  1661. VK_ATTACHMENT_STORE_OP_STORE = 0,
  1662. VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
  1663. VK_ATTACHMENT_STORE_OP_NONE_EXT = 1000301000,
  1664. VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE_EXT,
  1665. VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
  1666. } VkAttachmentStoreOp;
  1667. typedef enum VkPipelineBindPoint {
  1668. VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
  1669. VK_PIPELINE_BIND_POINT_COMPUTE = 1,
  1670. VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
  1671. VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
  1672. VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
  1673. VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
  1674. } VkPipelineBindPoint;
  1675. typedef enum VkCommandBufferLevel {
  1676. VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
  1677. VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
  1678. VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
  1679. } VkCommandBufferLevel;
  1680. typedef enum VkIndexType {
  1681. VK_INDEX_TYPE_UINT16 = 0,
  1682. VK_INDEX_TYPE_UINT32 = 1,
  1683. VK_INDEX_TYPE_NONE_KHR = 1000165000,
  1684. VK_INDEX_TYPE_UINT8_EXT = 1000265000,
  1685. VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
  1686. VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
  1687. } VkIndexType;
  1688. typedef enum VkSubpassContents {
  1689. VK_SUBPASS_CONTENTS_INLINE = 0,
  1690. VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
  1691. VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
  1692. } VkSubpassContents;
  1693. typedef enum VkAccessFlagBits {
  1694. VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
  1695. VK_ACCESS_INDEX_READ_BIT = 0x00000002,
  1696. VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
  1697. VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
  1698. VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
  1699. VK_ACCESS_SHADER_READ_BIT = 0x00000020,
  1700. VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
  1701. VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
  1702. VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
  1703. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
  1704. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
  1705. VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
  1706. VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
  1707. VK_ACCESS_HOST_READ_BIT = 0x00002000,
  1708. VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
  1709. VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
  1710. VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
  1711. VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
  1712. VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
  1713. VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
  1714. VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
  1715. VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
  1716. VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
  1717. VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
  1718. VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
  1719. VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
  1720. VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
  1721. VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
  1722. VK_ACCESS_NONE_KHR = 0,
  1723. VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
  1724. VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
  1725. VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
  1726. VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1727. } VkAccessFlagBits;
  1728. typedef VkFlags VkAccessFlags;
  1729. typedef enum VkImageAspectFlagBits {
  1730. VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
  1731. VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
  1732. VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
  1733. VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
  1734. VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
  1735. VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
  1736. VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
  1737. VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
  1738. VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
  1739. VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
  1740. VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
  1741. VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
  1742. VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
  1743. VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
  1744. VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1745. } VkImageAspectFlagBits;
  1746. typedef VkFlags VkImageAspectFlags;
  1747. typedef enum VkFormatFeatureFlagBits {
  1748. VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
  1749. VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
  1750. VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
  1751. VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
  1752. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
  1753. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
  1754. VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
  1755. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
  1756. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
  1757. VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
  1758. VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
  1759. VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
  1760. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
  1761. VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
  1762. VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
  1763. VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
  1764. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
  1765. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
  1766. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
  1767. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
  1768. VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
  1769. VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
  1770. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
  1771. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
  1772. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1773. VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
  1774. #endif
  1775. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1776. VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
  1777. #endif
  1778. VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
  1779. VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
  1780. VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
  1781. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1782. VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
  1783. #endif
  1784. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1785. VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
  1786. #endif
  1787. VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
  1788. VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
  1789. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
  1790. VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
  1791. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
  1792. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
  1793. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
  1794. 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,
  1795. VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
  1796. VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
  1797. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
  1798. VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1799. } VkFormatFeatureFlagBits;
  1800. typedef VkFlags VkFormatFeatureFlags;
  1801. typedef enum VkImageCreateFlagBits {
  1802. VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
  1803. VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
  1804. VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
  1805. VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
  1806. VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
  1807. VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
  1808. VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
  1809. VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
  1810. VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
  1811. VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
  1812. VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
  1813. VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
  1814. VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
  1815. VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
  1816. VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
  1817. VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
  1818. VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
  1819. VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
  1820. VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
  1821. VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
  1822. VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
  1823. VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1824. } VkImageCreateFlagBits;
  1825. typedef VkFlags VkImageCreateFlags;
  1826. typedef enum VkSampleCountFlagBits {
  1827. VK_SAMPLE_COUNT_1_BIT = 0x00000001,
  1828. VK_SAMPLE_COUNT_2_BIT = 0x00000002,
  1829. VK_SAMPLE_COUNT_4_BIT = 0x00000004,
  1830. VK_SAMPLE_COUNT_8_BIT = 0x00000008,
  1831. VK_SAMPLE_COUNT_16_BIT = 0x00000010,
  1832. VK_SAMPLE_COUNT_32_BIT = 0x00000020,
  1833. VK_SAMPLE_COUNT_64_BIT = 0x00000040,
  1834. VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1835. } VkSampleCountFlagBits;
  1836. typedef VkFlags VkSampleCountFlags;
  1837. typedef enum VkImageUsageFlagBits {
  1838. VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
  1839. VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
  1840. VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
  1841. VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
  1842. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
  1843. VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
  1844. VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
  1845. VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
  1846. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1847. VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
  1848. #endif
  1849. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1850. VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
  1851. #endif
  1852. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1853. VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
  1854. #endif
  1855. VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
  1856. VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
  1857. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1858. VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
  1859. #endif
  1860. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1861. VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
  1862. #endif
  1863. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1864. VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
  1865. #endif
  1866. VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
  1867. VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
  1868. VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1869. } VkImageUsageFlagBits;
  1870. typedef VkFlags VkImageUsageFlags;
  1871. typedef VkFlags VkInstanceCreateFlags;
  1872. typedef enum VkMemoryHeapFlagBits {
  1873. VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
  1874. VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
  1875. VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
  1876. VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1877. } VkMemoryHeapFlagBits;
  1878. typedef VkFlags VkMemoryHeapFlags;
  1879. typedef enum VkMemoryPropertyFlagBits {
  1880. VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
  1881. VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
  1882. VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
  1883. VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
  1884. VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
  1885. VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
  1886. VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
  1887. VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
  1888. VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
  1889. VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1890. } VkMemoryPropertyFlagBits;
  1891. typedef VkFlags VkMemoryPropertyFlags;
  1892. typedef enum VkQueueFlagBits {
  1893. VK_QUEUE_GRAPHICS_BIT = 0x00000001,
  1894. VK_QUEUE_COMPUTE_BIT = 0x00000002,
  1895. VK_QUEUE_TRANSFER_BIT = 0x00000004,
  1896. VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
  1897. VK_QUEUE_PROTECTED_BIT = 0x00000010,
  1898. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1899. VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
  1900. #endif
  1901. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1902. VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
  1903. #endif
  1904. VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1905. } VkQueueFlagBits;
  1906. typedef VkFlags VkQueueFlags;
  1907. typedef VkFlags VkDeviceCreateFlags;
  1908. typedef enum VkDeviceQueueCreateFlagBits {
  1909. VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
  1910. VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1911. } VkDeviceQueueCreateFlagBits;
  1912. typedef VkFlags VkDeviceQueueCreateFlags;
  1913. typedef enum VkPipelineStageFlagBits {
  1914. VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
  1915. VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
  1916. VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
  1917. VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
  1918. VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
  1919. VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
  1920. VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
  1921. VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
  1922. VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
  1923. VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
  1924. VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
  1925. VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
  1926. VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
  1927. VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
  1928. VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
  1929. VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
  1930. VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
  1931. VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
  1932. VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
  1933. VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
  1934. VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
  1935. VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
  1936. VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
  1937. VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
  1938. VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
  1939. VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
  1940. VK_PIPELINE_STAGE_NONE_KHR = 0,
  1941. VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
  1942. VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
  1943. VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
  1944. VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1945. } VkPipelineStageFlagBits;
  1946. typedef VkFlags VkPipelineStageFlags;
  1947. typedef VkFlags VkMemoryMapFlags;
  1948. typedef enum VkSparseMemoryBindFlagBits {
  1949. VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
  1950. VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1951. } VkSparseMemoryBindFlagBits;
  1952. typedef VkFlags VkSparseMemoryBindFlags;
  1953. typedef enum VkSparseImageFormatFlagBits {
  1954. VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
  1955. VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
  1956. VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
  1957. VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1958. } VkSparseImageFormatFlagBits;
  1959. typedef VkFlags VkSparseImageFormatFlags;
  1960. typedef enum VkFenceCreateFlagBits {
  1961. VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
  1962. VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1963. } VkFenceCreateFlagBits;
  1964. typedef VkFlags VkFenceCreateFlags;
  1965. typedef VkFlags VkSemaphoreCreateFlags;
  1966. typedef enum VkEventCreateFlagBits {
  1967. VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = 0x00000001,
  1968. VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1969. } VkEventCreateFlagBits;
  1970. typedef VkFlags VkEventCreateFlags;
  1971. typedef enum VkQueryPipelineStatisticFlagBits {
  1972. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
  1973. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
  1974. VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
  1975. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
  1976. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
  1977. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
  1978. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
  1979. VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
  1980. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
  1981. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
  1982. VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
  1983. VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1984. } VkQueryPipelineStatisticFlagBits;
  1985. typedef VkFlags VkQueryPipelineStatisticFlags;
  1986. typedef VkFlags VkQueryPoolCreateFlags;
  1987. typedef enum VkQueryResultFlagBits {
  1988. VK_QUERY_RESULT_64_BIT = 0x00000001,
  1989. VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
  1990. VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
  1991. VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
  1992. #ifdef VK_ENABLE_BETA_EXTENSIONS
  1993. VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
  1994. #endif
  1995. VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1996. } VkQueryResultFlagBits;
  1997. typedef VkFlags VkQueryResultFlags;
  1998. typedef enum VkBufferCreateFlagBits {
  1999. VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
  2000. VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
  2001. VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
  2002. VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
  2003. VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
  2004. VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
  2005. VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
  2006. VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2007. } VkBufferCreateFlagBits;
  2008. typedef VkFlags VkBufferCreateFlags;
  2009. typedef enum VkBufferUsageFlagBits {
  2010. VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
  2011. VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
  2012. VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
  2013. VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
  2014. VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
  2015. VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
  2016. VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
  2017. VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
  2018. VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
  2019. VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
  2020. #ifdef VK_ENABLE_BETA_EXTENSIONS
  2021. VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
  2022. #endif
  2023. #ifdef VK_ENABLE_BETA_EXTENSIONS
  2024. VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
  2025. #endif
  2026. VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
  2027. VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
  2028. VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
  2029. VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
  2030. VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
  2031. VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
  2032. #ifdef VK_ENABLE_BETA_EXTENSIONS
  2033. VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
  2034. #endif
  2035. #ifdef VK_ENABLE_BETA_EXTENSIONS
  2036. VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
  2037. #endif
  2038. VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
  2039. VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
  2040. VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
  2041. VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2042. } VkBufferUsageFlagBits;
  2043. typedef VkFlags VkBufferUsageFlags;
  2044. typedef VkFlags VkBufferViewCreateFlags;
  2045. typedef enum VkImageViewCreateFlagBits {
  2046. VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
  2047. VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
  2048. VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2049. } VkImageViewCreateFlagBits;
  2050. typedef VkFlags VkImageViewCreateFlags;
  2051. typedef VkFlags VkShaderModuleCreateFlags;
  2052. typedef enum VkPipelineCacheCreateFlagBits {
  2053. VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = 0x00000001,
  2054. VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2055. } VkPipelineCacheCreateFlagBits;
  2056. typedef VkFlags VkPipelineCacheCreateFlags;
  2057. typedef enum VkColorComponentFlagBits {
  2058. VK_COLOR_COMPONENT_R_BIT = 0x00000001,
  2059. VK_COLOR_COMPONENT_G_BIT = 0x00000002,
  2060. VK_COLOR_COMPONENT_B_BIT = 0x00000004,
  2061. VK_COLOR_COMPONENT_A_BIT = 0x00000008,
  2062. VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2063. } VkColorComponentFlagBits;
  2064. typedef VkFlags VkColorComponentFlags;
  2065. typedef enum VkPipelineCreateFlagBits {
  2066. VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
  2067. VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
  2068. VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
  2069. VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
  2070. VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
  2071. VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
  2072. VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
  2073. VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
  2074. VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
  2075. VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
  2076. VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
  2077. VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
  2078. VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
  2079. VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
  2080. VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
  2081. VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
  2082. VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
  2083. VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = 0x00000100,
  2084. VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = 0x00000200,
  2085. VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
  2086. VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
  2087. VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
  2088. VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
  2089. VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2090. } VkPipelineCreateFlagBits;
  2091. typedef VkFlags VkPipelineCreateFlags;
  2092. typedef enum VkPipelineShaderStageCreateFlagBits {
  2093. VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000001,
  2094. VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000002,
  2095. VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2096. } VkPipelineShaderStageCreateFlagBits;
  2097. typedef VkFlags VkPipelineShaderStageCreateFlags;
  2098. typedef enum VkShaderStageFlagBits {
  2099. VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
  2100. VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
  2101. VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
  2102. VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
  2103. VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
  2104. VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
  2105. VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
  2106. VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
  2107. VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
  2108. VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
  2109. VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
  2110. VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
  2111. VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
  2112. VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
  2113. VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
  2114. VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
  2115. VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
  2116. VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
  2117. VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
  2118. VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
  2119. VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
  2120. VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
  2121. VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
  2122. VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2123. } VkShaderStageFlagBits;
  2124. typedef enum VkCullModeFlagBits {
  2125. VK_CULL_MODE_NONE = 0,
  2126. VK_CULL_MODE_FRONT_BIT = 0x00000001,
  2127. VK_CULL_MODE_BACK_BIT = 0x00000002,
  2128. VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
  2129. VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2130. } VkCullModeFlagBits;
  2131. typedef VkFlags VkCullModeFlags;
  2132. typedef VkFlags VkPipelineVertexInputStateCreateFlags;
  2133. typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
  2134. typedef VkFlags VkPipelineTessellationStateCreateFlags;
  2135. typedef VkFlags VkPipelineViewportStateCreateFlags;
  2136. typedef VkFlags VkPipelineRasterizationStateCreateFlags;
  2137. typedef VkFlags VkPipelineMultisampleStateCreateFlags;
  2138. typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
  2139. typedef VkFlags VkPipelineColorBlendStateCreateFlags;
  2140. typedef VkFlags VkPipelineDynamicStateCreateFlags;
  2141. typedef VkFlags VkPipelineLayoutCreateFlags;
  2142. typedef VkFlags VkShaderStageFlags;
  2143. typedef enum VkSamplerCreateFlagBits {
  2144. VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
  2145. VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
  2146. VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2147. } VkSamplerCreateFlagBits;
  2148. typedef VkFlags VkSamplerCreateFlags;
  2149. typedef enum VkDescriptorPoolCreateFlagBits {
  2150. VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
  2151. VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
  2152. VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 0x00000004,
  2153. VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
  2154. VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2155. } VkDescriptorPoolCreateFlagBits;
  2156. typedef VkFlags VkDescriptorPoolCreateFlags;
  2157. typedef VkFlags VkDescriptorPoolResetFlags;
  2158. typedef enum VkDescriptorSetLayoutCreateFlagBits {
  2159. VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
  2160. VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
  2161. VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 0x00000004,
  2162. VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
  2163. VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2164. } VkDescriptorSetLayoutCreateFlagBits;
  2165. typedef VkFlags VkDescriptorSetLayoutCreateFlags;
  2166. typedef enum VkAttachmentDescriptionFlagBits {
  2167. VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
  2168. VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2169. } VkAttachmentDescriptionFlagBits;
  2170. typedef VkFlags VkAttachmentDescriptionFlags;
  2171. typedef enum VkDependencyFlagBits {
  2172. VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
  2173. VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
  2174. VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
  2175. VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
  2176. VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
  2177. VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2178. } VkDependencyFlagBits;
  2179. typedef VkFlags VkDependencyFlags;
  2180. typedef enum VkFramebufferCreateFlagBits {
  2181. VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
  2182. VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
  2183. VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2184. } VkFramebufferCreateFlagBits;
  2185. typedef VkFlags VkFramebufferCreateFlags;
  2186. typedef enum VkRenderPassCreateFlagBits {
  2187. VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
  2188. VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2189. } VkRenderPassCreateFlagBits;
  2190. typedef VkFlags VkRenderPassCreateFlags;
  2191. typedef enum VkSubpassDescriptionFlagBits {
  2192. VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
  2193. VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
  2194. VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
  2195. VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
  2196. VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2197. } VkSubpassDescriptionFlagBits;
  2198. typedef VkFlags VkSubpassDescriptionFlags;
  2199. typedef enum VkCommandPoolCreateFlagBits {
  2200. VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
  2201. VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
  2202. VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
  2203. VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2204. } VkCommandPoolCreateFlagBits;
  2205. typedef VkFlags VkCommandPoolCreateFlags;
  2206. typedef enum VkCommandPoolResetFlagBits {
  2207. VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
  2208. VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2209. } VkCommandPoolResetFlagBits;
  2210. typedef VkFlags VkCommandPoolResetFlags;
  2211. typedef enum VkCommandBufferUsageFlagBits {
  2212. VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
  2213. VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
  2214. VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
  2215. VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2216. } VkCommandBufferUsageFlagBits;
  2217. typedef VkFlags VkCommandBufferUsageFlags;
  2218. typedef enum VkQueryControlFlagBits {
  2219. VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
  2220. VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2221. } VkQueryControlFlagBits;
  2222. typedef VkFlags VkQueryControlFlags;
  2223. typedef enum VkCommandBufferResetFlagBits {
  2224. VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
  2225. VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2226. } VkCommandBufferResetFlagBits;
  2227. typedef VkFlags VkCommandBufferResetFlags;
  2228. typedef enum VkStencilFaceFlagBits {
  2229. VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
  2230. VK_STENCIL_FACE_BACK_BIT = 0x00000002,
  2231. VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
  2232. VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
  2233. VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  2234. } VkStencilFaceFlagBits;
  2235. typedef VkFlags VkStencilFaceFlags;
  2236. typedef struct VkExtent2D {
  2237. uint32_t width;
  2238. uint32_t height;
  2239. } VkExtent2D;
  2240. typedef struct VkExtent3D {
  2241. uint32_t width;
  2242. uint32_t height;
  2243. uint32_t depth;
  2244. } VkExtent3D;
  2245. typedef struct VkOffset2D {
  2246. int32_t x;
  2247. int32_t y;
  2248. } VkOffset2D;
  2249. typedef struct VkOffset3D {
  2250. int32_t x;
  2251. int32_t y;
  2252. int32_t z;
  2253. } VkOffset3D;
  2254. typedef struct VkRect2D {
  2255. VkOffset2D offset;
  2256. VkExtent2D extent;
  2257. } VkRect2D;
  2258. typedef struct VkBaseInStructure {
  2259. VkStructureType sType;
  2260. const struct VkBaseInStructure* pNext;
  2261. } VkBaseInStructure;
  2262. typedef struct VkBaseOutStructure {
  2263. VkStructureType sType;
  2264. struct VkBaseOutStructure* pNext;
  2265. } VkBaseOutStructure;
  2266. typedef struct VkBufferMemoryBarrier {
  2267. VkStructureType sType;
  2268. const void* pNext;
  2269. VkAccessFlags srcAccessMask;
  2270. VkAccessFlags dstAccessMask;
  2271. uint32_t srcQueueFamilyIndex;
  2272. uint32_t dstQueueFamilyIndex;
  2273. VkBuffer buffer;
  2274. VkDeviceSize offset;
  2275. VkDeviceSize size;
  2276. } VkBufferMemoryBarrier;
  2277. typedef struct VkDispatchIndirectCommand {
  2278. uint32_t x;
  2279. uint32_t y;
  2280. uint32_t z;
  2281. } VkDispatchIndirectCommand;
  2282. typedef struct VkDrawIndexedIndirectCommand {
  2283. uint32_t indexCount;
  2284. uint32_t instanceCount;
  2285. uint32_t firstIndex;
  2286. int32_t vertexOffset;
  2287. uint32_t firstInstance;
  2288. } VkDrawIndexedIndirectCommand;
  2289. typedef struct VkDrawIndirectCommand {
  2290. uint32_t vertexCount;
  2291. uint32_t instanceCount;
  2292. uint32_t firstVertex;
  2293. uint32_t firstInstance;
  2294. } VkDrawIndirectCommand;
  2295. typedef struct VkImageSubresourceRange {
  2296. VkImageAspectFlags aspectMask;
  2297. uint32_t baseMipLevel;
  2298. uint32_t levelCount;
  2299. uint32_t baseArrayLayer;
  2300. uint32_t layerCount;
  2301. } VkImageSubresourceRange;
  2302. typedef struct VkImageMemoryBarrier {
  2303. VkStructureType sType;
  2304. const void* pNext;
  2305. VkAccessFlags srcAccessMask;
  2306. VkAccessFlags dstAccessMask;
  2307. VkImageLayout oldLayout;
  2308. VkImageLayout newLayout;
  2309. uint32_t srcQueueFamilyIndex;
  2310. uint32_t dstQueueFamilyIndex;
  2311. VkImage image;
  2312. VkImageSubresourceRange subresourceRange;
  2313. } VkImageMemoryBarrier;
  2314. typedef struct VkMemoryBarrier {
  2315. VkStructureType sType;
  2316. const void* pNext;
  2317. VkAccessFlags srcAccessMask;
  2318. VkAccessFlags dstAccessMask;
  2319. } VkMemoryBarrier;
  2320. typedef struct VkPipelineCacheHeaderVersionOne {
  2321. uint32_t headerSize;
  2322. VkPipelineCacheHeaderVersion headerVersion;
  2323. uint32_t vendorID;
  2324. uint32_t deviceID;
  2325. uint8_t pipelineCacheUUID[VK_UUID_SIZE];
  2326. } VkPipelineCacheHeaderVersionOne;
  2327. typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
  2328. void* pUserData,
  2329. size_t size,
  2330. size_t alignment,
  2331. VkSystemAllocationScope allocationScope);
  2332. typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
  2333. void* pUserData,
  2334. void* pMemory);
  2335. typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
  2336. void* pUserData,
  2337. size_t size,
  2338. VkInternalAllocationType allocationType,
  2339. VkSystemAllocationScope allocationScope);
  2340. typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
  2341. void* pUserData,
  2342. size_t size,
  2343. VkInternalAllocationType allocationType,
  2344. VkSystemAllocationScope allocationScope);
  2345. typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
  2346. void* pUserData,
  2347. void* pOriginal,
  2348. size_t size,
  2349. size_t alignment,
  2350. VkSystemAllocationScope allocationScope);
  2351. typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
  2352. typedef struct VkAllocationCallbacks {
  2353. void* pUserData;
  2354. PFN_vkAllocationFunction pfnAllocation;
  2355. PFN_vkReallocationFunction pfnReallocation;
  2356. PFN_vkFreeFunction pfnFree;
  2357. PFN_vkInternalAllocationNotification pfnInternalAllocation;
  2358. PFN_vkInternalFreeNotification pfnInternalFree;
  2359. } VkAllocationCallbacks;
  2360. typedef struct VkApplicationInfo {
  2361. VkStructureType sType;
  2362. const void* pNext;
  2363. const char* pApplicationName;
  2364. uint32_t applicationVersion;
  2365. const char* pEngineName;
  2366. uint32_t engineVersion;
  2367. uint32_t apiVersion;
  2368. } VkApplicationInfo;
  2369. typedef struct VkFormatProperties {
  2370. VkFormatFeatureFlags linearTilingFeatures;
  2371. VkFormatFeatureFlags optimalTilingFeatures;
  2372. VkFormatFeatureFlags bufferFeatures;
  2373. } VkFormatProperties;
  2374. typedef struct VkImageFormatProperties {
  2375. VkExtent3D maxExtent;
  2376. uint32_t maxMipLevels;
  2377. uint32_t maxArrayLayers;
  2378. VkSampleCountFlags sampleCounts;
  2379. VkDeviceSize maxResourceSize;
  2380. } VkImageFormatProperties;
  2381. typedef struct VkInstanceCreateInfo {
  2382. VkStructureType sType;
  2383. const void* pNext;
  2384. VkInstanceCreateFlags flags;
  2385. const VkApplicationInfo* pApplicationInfo;
  2386. uint32_t enabledLayerCount;
  2387. const char* const* ppEnabledLayerNames;
  2388. uint32_t enabledExtensionCount;
  2389. const char* const* ppEnabledExtensionNames;
  2390. } VkInstanceCreateInfo;
  2391. typedef struct VkMemoryHeap {
  2392. VkDeviceSize size;
  2393. VkMemoryHeapFlags flags;
  2394. } VkMemoryHeap;
  2395. typedef struct VkMemoryType {
  2396. VkMemoryPropertyFlags propertyFlags;
  2397. uint32_t heapIndex;
  2398. } VkMemoryType;
  2399. typedef struct VkPhysicalDeviceFeatures {
  2400. VkBool32 robustBufferAccess;
  2401. VkBool32 fullDrawIndexUint32;
  2402. VkBool32 imageCubeArray;
  2403. VkBool32 independentBlend;
  2404. VkBool32 geometryShader;
  2405. VkBool32 tessellationShader;
  2406. VkBool32 sampleRateShading;
  2407. VkBool32 dualSrcBlend;
  2408. VkBool32 logicOp;
  2409. VkBool32 multiDrawIndirect;
  2410. VkBool32 drawIndirectFirstInstance;
  2411. VkBool32 depthClamp;
  2412. VkBool32 depthBiasClamp;
  2413. VkBool32 fillModeNonSolid;
  2414. VkBool32 depthBounds;
  2415. VkBool32 wideLines;
  2416. VkBool32 largePoints;
  2417. VkBool32 alphaToOne;
  2418. VkBool32 multiViewport;
  2419. VkBool32 samplerAnisotropy;
  2420. VkBool32 textureCompressionETC2;
  2421. VkBool32 textureCompressionASTC_LDR;
  2422. VkBool32 textureCompressionBC;
  2423. VkBool32 occlusionQueryPrecise;
  2424. VkBool32 pipelineStatisticsQuery;
  2425. VkBool32 vertexPipelineStoresAndAtomics;
  2426. VkBool32 fragmentStoresAndAtomics;
  2427. VkBool32 shaderTessellationAndGeometryPointSize;
  2428. VkBool32 shaderImageGatherExtended;
  2429. VkBool32 shaderStorageImageExtendedFormats;
  2430. VkBool32 shaderStorageImageMultisample;
  2431. VkBool32 shaderStorageImageReadWithoutFormat;
  2432. VkBool32 shaderStorageImageWriteWithoutFormat;
  2433. VkBool32 shaderUniformBufferArrayDynamicIndexing;
  2434. VkBool32 shaderSampledImageArrayDynamicIndexing;
  2435. VkBool32 shaderStorageBufferArrayDynamicIndexing;
  2436. VkBool32 shaderStorageImageArrayDynamicIndexing;
  2437. VkBool32 shaderClipDistance;
  2438. VkBool32 shaderCullDistance;
  2439. VkBool32 shaderFloat64;
  2440. VkBool32 shaderInt64;
  2441. VkBool32 shaderInt16;
  2442. VkBool32 shaderResourceResidency;
  2443. VkBool32 shaderResourceMinLod;
  2444. VkBool32 sparseBinding;
  2445. VkBool32 sparseResidencyBuffer;
  2446. VkBool32 sparseResidencyImage2D;
  2447. VkBool32 sparseResidencyImage3D;
  2448. VkBool32 sparseResidency2Samples;
  2449. VkBool32 sparseResidency4Samples;
  2450. VkBool32 sparseResidency8Samples;
  2451. VkBool32 sparseResidency16Samples;
  2452. VkBool32 sparseResidencyAliased;
  2453. VkBool32 variableMultisampleRate;
  2454. VkBool32 inheritedQueries;
  2455. } VkPhysicalDeviceFeatures;
  2456. typedef struct VkPhysicalDeviceLimits {
  2457. uint32_t maxImageDimension1D;
  2458. uint32_t maxImageDimension2D;
  2459. uint32_t maxImageDimension3D;
  2460. uint32_t maxImageDimensionCube;
  2461. uint32_t maxImageArrayLayers;
  2462. uint32_t maxTexelBufferElements;
  2463. uint32_t maxUniformBufferRange;
  2464. uint32_t maxStorageBufferRange;
  2465. uint32_t maxPushConstantsSize;
  2466. uint32_t maxMemoryAllocationCount;
  2467. uint32_t maxSamplerAllocationCount;
  2468. VkDeviceSize bufferImageGranularity;
  2469. VkDeviceSize sparseAddressSpaceSize;
  2470. uint32_t maxBoundDescriptorSets;
  2471. uint32_t maxPerStageDescriptorSamplers;
  2472. uint32_t maxPerStageDescriptorUniformBuffers;
  2473. uint32_t maxPerStageDescriptorStorageBuffers;
  2474. uint32_t maxPerStageDescriptorSampledImages;
  2475. uint32_t maxPerStageDescriptorStorageImages;
  2476. uint32_t maxPerStageDescriptorInputAttachments;
  2477. uint32_t maxPerStageResources;
  2478. uint32_t maxDescriptorSetSamplers;
  2479. uint32_t maxDescriptorSetUniformBuffers;
  2480. uint32_t maxDescriptorSetUniformBuffersDynamic;
  2481. uint32_t maxDescriptorSetStorageBuffers;
  2482. uint32_t maxDescriptorSetStorageBuffersDynamic;
  2483. uint32_t maxDescriptorSetSampledImages;
  2484. uint32_t maxDescriptorSetStorageImages;
  2485. uint32_t maxDescriptorSetInputAttachments;
  2486. uint32_t maxVertexInputAttributes;
  2487. uint32_t maxVertexInputBindings;
  2488. uint32_t maxVertexInputAttributeOffset;
  2489. uint32_t maxVertexInputBindingStride;
  2490. uint32_t maxVertexOutputComponents;
  2491. uint32_t maxTessellationGenerationLevel;
  2492. uint32_t maxTessellationPatchSize;
  2493. uint32_t maxTessellationControlPerVertexInputComponents;
  2494. uint32_t maxTessellationControlPerVertexOutputComponents;
  2495. uint32_t maxTessellationControlPerPatchOutputComponents;
  2496. uint32_t maxTessellationControlTotalOutputComponents;
  2497. uint32_t maxTessellationEvaluationInputComponents;
  2498. uint32_t maxTessellationEvaluationOutputComponents;
  2499. uint32_t maxGeometryShaderInvocations;
  2500. uint32_t maxGeometryInputComponents;
  2501. uint32_t maxGeometryOutputComponents;
  2502. uint32_t maxGeometryOutputVertices;
  2503. uint32_t maxGeometryTotalOutputComponents;
  2504. uint32_t maxFragmentInputComponents;
  2505. uint32_t maxFragmentOutputAttachments;
  2506. uint32_t maxFragmentDualSrcAttachments;
  2507. uint32_t maxFragmentCombinedOutputResources;
  2508. uint32_t maxComputeSharedMemorySize;
  2509. uint32_t maxComputeWorkGroupCount[3];
  2510. uint32_t maxComputeWorkGroupInvocations;
  2511. uint32_t maxComputeWorkGroupSize[3];
  2512. uint32_t subPixelPrecisionBits;
  2513. uint32_t subTexelPrecisionBits;
  2514. uint32_t mipmapPrecisionBits;
  2515. uint32_t maxDrawIndexedIndexValue;
  2516. uint32_t maxDrawIndirectCount;
  2517. float maxSamplerLodBias;
  2518. float maxSamplerAnisotropy;
  2519. uint32_t maxViewports;
  2520. uint32_t maxViewportDimensions[2];
  2521. float viewportBoundsRange[2];
  2522. uint32_t viewportSubPixelBits;
  2523. size_t minMemoryMapAlignment;
  2524. VkDeviceSize minTexelBufferOffsetAlignment;
  2525. VkDeviceSize minUniformBufferOffsetAlignment;
  2526. VkDeviceSize minStorageBufferOffsetAlignment;
  2527. int32_t minTexelOffset;
  2528. uint32_t maxTexelOffset;
  2529. int32_t minTexelGatherOffset;
  2530. uint32_t maxTexelGatherOffset;
  2531. float minInterpolationOffset;
  2532. float maxInterpolationOffset;
  2533. uint32_t subPixelInterpolationOffsetBits;
  2534. uint32_t maxFramebufferWidth;
  2535. uint32_t maxFramebufferHeight;
  2536. uint32_t maxFramebufferLayers;
  2537. VkSampleCountFlags framebufferColorSampleCounts;
  2538. VkSampleCountFlags framebufferDepthSampleCounts;
  2539. VkSampleCountFlags framebufferStencilSampleCounts;
  2540. VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
  2541. uint32_t maxColorAttachments;
  2542. VkSampleCountFlags sampledImageColorSampleCounts;
  2543. VkSampleCountFlags sampledImageIntegerSampleCounts;
  2544. VkSampleCountFlags sampledImageDepthSampleCounts;
  2545. VkSampleCountFlags sampledImageStencilSampleCounts;
  2546. VkSampleCountFlags storageImageSampleCounts;
  2547. uint32_t maxSampleMaskWords;
  2548. VkBool32 timestampComputeAndGraphics;
  2549. float timestampPeriod;
  2550. uint32_t maxClipDistances;
  2551. uint32_t maxCullDistances;
  2552. uint32_t maxCombinedClipAndCullDistances;
  2553. uint32_t discreteQueuePriorities;
  2554. float pointSizeRange[2];
  2555. float lineWidthRange[2];
  2556. float pointSizeGranularity;
  2557. float lineWidthGranularity;
  2558. VkBool32 strictLines;
  2559. VkBool32 standardSampleLocations;
  2560. VkDeviceSize optimalBufferCopyOffsetAlignment;
  2561. VkDeviceSize optimalBufferCopyRowPitchAlignment;
  2562. VkDeviceSize nonCoherentAtomSize;
  2563. } VkPhysicalDeviceLimits;
  2564. typedef struct VkPhysicalDeviceMemoryProperties {
  2565. uint32_t memoryTypeCount;
  2566. VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
  2567. uint32_t memoryHeapCount;
  2568. VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
  2569. } VkPhysicalDeviceMemoryProperties;
  2570. typedef struct VkPhysicalDeviceSparseProperties {
  2571. VkBool32 residencyStandard2DBlockShape;
  2572. VkBool32 residencyStandard2DMultisampleBlockShape;
  2573. VkBool32 residencyStandard3DBlockShape;
  2574. VkBool32 residencyAlignedMipSize;
  2575. VkBool32 residencyNonResidentStrict;
  2576. } VkPhysicalDeviceSparseProperties;
  2577. typedef struct VkPhysicalDeviceProperties {
  2578. uint32_t apiVersion;
  2579. uint32_t driverVersion;
  2580. uint32_t vendorID;
  2581. uint32_t deviceID;
  2582. VkPhysicalDeviceType deviceType;
  2583. char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
  2584. uint8_t pipelineCacheUUID[VK_UUID_SIZE];
  2585. VkPhysicalDeviceLimits limits;
  2586. VkPhysicalDeviceSparseProperties sparseProperties;
  2587. } VkPhysicalDeviceProperties;
  2588. typedef struct VkQueueFamilyProperties {
  2589. VkQueueFlags queueFlags;
  2590. uint32_t queueCount;
  2591. uint32_t timestampValidBits;
  2592. VkExtent3D minImageTransferGranularity;
  2593. } VkQueueFamilyProperties;
  2594. typedef struct VkDeviceQueueCreateInfo {
  2595. VkStructureType sType;
  2596. const void* pNext;
  2597. VkDeviceQueueCreateFlags flags;
  2598. uint32_t queueFamilyIndex;
  2599. uint32_t queueCount;
  2600. const float* pQueuePriorities;
  2601. } VkDeviceQueueCreateInfo;
  2602. typedef struct VkDeviceCreateInfo {
  2603. VkStructureType sType;
  2604. const void* pNext;
  2605. VkDeviceCreateFlags flags;
  2606. uint32_t queueCreateInfoCount;
  2607. const VkDeviceQueueCreateInfo* pQueueCreateInfos;
  2608. uint32_t enabledLayerCount;
  2609. const char* const* ppEnabledLayerNames;
  2610. uint32_t enabledExtensionCount;
  2611. const char* const* ppEnabledExtensionNames;
  2612. const VkPhysicalDeviceFeatures* pEnabledFeatures;
  2613. } VkDeviceCreateInfo;
  2614. typedef struct VkExtensionProperties {
  2615. char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
  2616. uint32_t specVersion;
  2617. } VkExtensionProperties;
  2618. typedef struct VkLayerProperties {
  2619. char layerName[VK_MAX_EXTENSION_NAME_SIZE];
  2620. uint32_t specVersion;
  2621. uint32_t implementationVersion;
  2622. char description[VK_MAX_DESCRIPTION_SIZE];
  2623. } VkLayerProperties;
  2624. typedef struct VkSubmitInfo {
  2625. VkStructureType sType;
  2626. const void* pNext;
  2627. uint32_t waitSemaphoreCount;
  2628. const VkSemaphore* pWaitSemaphores;
  2629. const VkPipelineStageFlags* pWaitDstStageMask;
  2630. uint32_t commandBufferCount;
  2631. const VkCommandBuffer* pCommandBuffers;
  2632. uint32_t signalSemaphoreCount;
  2633. const VkSemaphore* pSignalSemaphores;
  2634. } VkSubmitInfo;
  2635. typedef struct VkMappedMemoryRange {
  2636. VkStructureType sType;
  2637. const void* pNext;
  2638. VkDeviceMemory memory;
  2639. VkDeviceSize offset;
  2640. VkDeviceSize size;
  2641. } VkMappedMemoryRange;
  2642. typedef struct VkMemoryAllocateInfo {
  2643. VkStructureType sType;
  2644. const void* pNext;
  2645. VkDeviceSize allocationSize;
  2646. uint32_t memoryTypeIndex;
  2647. } VkMemoryAllocateInfo;
  2648. typedef struct VkMemoryRequirements {
  2649. VkDeviceSize size;
  2650. VkDeviceSize alignment;
  2651. uint32_t memoryTypeBits;
  2652. } VkMemoryRequirements;
  2653. typedef struct VkSparseMemoryBind {
  2654. VkDeviceSize resourceOffset;
  2655. VkDeviceSize size;
  2656. VkDeviceMemory memory;
  2657. VkDeviceSize memoryOffset;
  2658. VkSparseMemoryBindFlags flags;
  2659. } VkSparseMemoryBind;
  2660. typedef struct VkSparseBufferMemoryBindInfo {
  2661. VkBuffer buffer;
  2662. uint32_t bindCount;
  2663. const VkSparseMemoryBind* pBinds;
  2664. } VkSparseBufferMemoryBindInfo;
  2665. typedef struct VkSparseImageOpaqueMemoryBindInfo {
  2666. VkImage image;
  2667. uint32_t bindCount;
  2668. const VkSparseMemoryBind* pBinds;
  2669. } VkSparseImageOpaqueMemoryBindInfo;
  2670. typedef struct VkImageSubresource {
  2671. VkImageAspectFlags aspectMask;
  2672. uint32_t mipLevel;
  2673. uint32_t arrayLayer;
  2674. } VkImageSubresource;
  2675. typedef struct VkSparseImageMemoryBind {
  2676. VkImageSubresource subresource;
  2677. VkOffset3D offset;
  2678. VkExtent3D extent;
  2679. VkDeviceMemory memory;
  2680. VkDeviceSize memoryOffset;
  2681. VkSparseMemoryBindFlags flags;
  2682. } VkSparseImageMemoryBind;
  2683. typedef struct VkSparseImageMemoryBindInfo {
  2684. VkImage image;
  2685. uint32_t bindCount;
  2686. const VkSparseImageMemoryBind* pBinds;
  2687. } VkSparseImageMemoryBindInfo;
  2688. typedef struct VkBindSparseInfo {
  2689. VkStructureType sType;
  2690. const void* pNext;
  2691. uint32_t waitSemaphoreCount;
  2692. const VkSemaphore* pWaitSemaphores;
  2693. uint32_t bufferBindCount;
  2694. const VkSparseBufferMemoryBindInfo* pBufferBinds;
  2695. uint32_t imageOpaqueBindCount;
  2696. const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
  2697. uint32_t imageBindCount;
  2698. const VkSparseImageMemoryBindInfo* pImageBinds;
  2699. uint32_t signalSemaphoreCount;
  2700. const VkSemaphore* pSignalSemaphores;
  2701. } VkBindSparseInfo;
  2702. typedef struct VkSparseImageFormatProperties {
  2703. VkImageAspectFlags aspectMask;
  2704. VkExtent3D imageGranularity;
  2705. VkSparseImageFormatFlags flags;
  2706. } VkSparseImageFormatProperties;
  2707. typedef struct VkSparseImageMemoryRequirements {
  2708. VkSparseImageFormatProperties formatProperties;
  2709. uint32_t imageMipTailFirstLod;
  2710. VkDeviceSize imageMipTailSize;
  2711. VkDeviceSize imageMipTailOffset;
  2712. VkDeviceSize imageMipTailStride;
  2713. } VkSparseImageMemoryRequirements;
  2714. typedef struct VkFenceCreateInfo {
  2715. VkStructureType sType;
  2716. const void* pNext;
  2717. VkFenceCreateFlags flags;
  2718. } VkFenceCreateInfo;
  2719. typedef struct VkSemaphoreCreateInfo {
  2720. VkStructureType sType;
  2721. const void* pNext;
  2722. VkSemaphoreCreateFlags flags;
  2723. } VkSemaphoreCreateInfo;
  2724. typedef struct VkEventCreateInfo {
  2725. VkStructureType sType;
  2726. const void* pNext;
  2727. VkEventCreateFlags flags;
  2728. } VkEventCreateInfo;
  2729. typedef struct VkQueryPoolCreateInfo {
  2730. VkStructureType sType;
  2731. const void* pNext;
  2732. VkQueryPoolCreateFlags flags;
  2733. VkQueryType queryType;
  2734. uint32_t queryCount;
  2735. VkQueryPipelineStatisticFlags pipelineStatistics;
  2736. } VkQueryPoolCreateInfo;
  2737. typedef struct VkBufferCreateInfo {
  2738. VkStructureType sType;
  2739. const void* pNext;
  2740. VkBufferCreateFlags flags;
  2741. VkDeviceSize size;
  2742. VkBufferUsageFlags usage;
  2743. VkSharingMode sharingMode;
  2744. uint32_t queueFamilyIndexCount;
  2745. const uint32_t* pQueueFamilyIndices;
  2746. } VkBufferCreateInfo;
  2747. typedef struct VkBufferViewCreateInfo {
  2748. VkStructureType sType;
  2749. const void* pNext;
  2750. VkBufferViewCreateFlags flags;
  2751. VkBuffer buffer;
  2752. VkFormat format;
  2753. VkDeviceSize offset;
  2754. VkDeviceSize range;
  2755. } VkBufferViewCreateInfo;
  2756. typedef struct VkImageCreateInfo {
  2757. VkStructureType sType;
  2758. const void* pNext;
  2759. VkImageCreateFlags flags;
  2760. VkImageType imageType;
  2761. VkFormat format;
  2762. VkExtent3D extent;
  2763. uint32_t mipLevels;
  2764. uint32_t arrayLayers;
  2765. VkSampleCountFlagBits samples;
  2766. VkImageTiling tiling;
  2767. VkImageUsageFlags usage;
  2768. VkSharingMode sharingMode;
  2769. uint32_t queueFamilyIndexCount;
  2770. const uint32_t* pQueueFamilyIndices;
  2771. VkImageLayout initialLayout;
  2772. } VkImageCreateInfo;
  2773. typedef struct VkSubresourceLayout {
  2774. VkDeviceSize offset;
  2775. VkDeviceSize size;
  2776. VkDeviceSize rowPitch;
  2777. VkDeviceSize arrayPitch;
  2778. VkDeviceSize depthPitch;
  2779. } VkSubresourceLayout;
  2780. typedef struct VkComponentMapping {
  2781. VkComponentSwizzle r;
  2782. VkComponentSwizzle g;
  2783. VkComponentSwizzle b;
  2784. VkComponentSwizzle a;
  2785. } VkComponentMapping;
  2786. typedef struct VkImageViewCreateInfo {
  2787. VkStructureType sType;
  2788. const void* pNext;
  2789. VkImageViewCreateFlags flags;
  2790. VkImage image;
  2791. VkImageViewType viewType;
  2792. VkFormat format;
  2793. VkComponentMapping components;
  2794. VkImageSubresourceRange subresourceRange;
  2795. } VkImageViewCreateInfo;
  2796. typedef struct VkShaderModuleCreateInfo {
  2797. VkStructureType sType;
  2798. const void* pNext;
  2799. VkShaderModuleCreateFlags flags;
  2800. size_t codeSize;
  2801. const uint32_t* pCode;
  2802. } VkShaderModuleCreateInfo;
  2803. typedef struct VkPipelineCacheCreateInfo {
  2804. VkStructureType sType;
  2805. const void* pNext;
  2806. VkPipelineCacheCreateFlags flags;
  2807. size_t initialDataSize;
  2808. const void* pInitialData;
  2809. } VkPipelineCacheCreateInfo;
  2810. typedef struct VkSpecializationMapEntry {
  2811. uint32_t constantID;
  2812. uint32_t offset;
  2813. size_t size;
  2814. } VkSpecializationMapEntry;
  2815. typedef struct VkSpecializationInfo {
  2816. uint32_t mapEntryCount;
  2817. const VkSpecializationMapEntry* pMapEntries;
  2818. size_t dataSize;
  2819. const void* pData;
  2820. } VkSpecializationInfo;
  2821. typedef struct VkPipelineShaderStageCreateInfo {
  2822. VkStructureType sType;
  2823. const void* pNext;
  2824. VkPipelineShaderStageCreateFlags flags;
  2825. VkShaderStageFlagBits stage;
  2826. VkShaderModule module;
  2827. const char* pName;
  2828. const VkSpecializationInfo* pSpecializationInfo;
  2829. } VkPipelineShaderStageCreateInfo;
  2830. typedef struct VkComputePipelineCreateInfo {
  2831. VkStructureType sType;
  2832. const void* pNext;
  2833. VkPipelineCreateFlags flags;
  2834. VkPipelineShaderStageCreateInfo stage;
  2835. VkPipelineLayout layout;
  2836. VkPipeline basePipelineHandle;
  2837. int32_t basePipelineIndex;
  2838. } VkComputePipelineCreateInfo;
  2839. typedef struct VkVertexInputBindingDescription {
  2840. uint32_t binding;
  2841. uint32_t stride;
  2842. VkVertexInputRate inputRate;
  2843. } VkVertexInputBindingDescription;
  2844. typedef struct VkVertexInputAttributeDescription {
  2845. uint32_t location;
  2846. uint32_t binding;
  2847. VkFormat format;
  2848. uint32_t offset;
  2849. } VkVertexInputAttributeDescription;
  2850. typedef struct VkPipelineVertexInputStateCreateInfo {
  2851. VkStructureType sType;
  2852. const void* pNext;
  2853. VkPipelineVertexInputStateCreateFlags flags;
  2854. uint32_t vertexBindingDescriptionCount;
  2855. const VkVertexInputBindingDescription* pVertexBindingDescriptions;
  2856. uint32_t vertexAttributeDescriptionCount;
  2857. const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
  2858. } VkPipelineVertexInputStateCreateInfo;
  2859. typedef struct VkPipelineInputAssemblyStateCreateInfo {
  2860. VkStructureType sType;
  2861. const void* pNext;
  2862. VkPipelineInputAssemblyStateCreateFlags flags;
  2863. VkPrimitiveTopology topology;
  2864. VkBool32 primitiveRestartEnable;
  2865. } VkPipelineInputAssemblyStateCreateInfo;
  2866. typedef struct VkPipelineTessellationStateCreateInfo {
  2867. VkStructureType sType;
  2868. const void* pNext;
  2869. VkPipelineTessellationStateCreateFlags flags;
  2870. uint32_t patchControlPoints;
  2871. } VkPipelineTessellationStateCreateInfo;
  2872. typedef struct VkViewport {
  2873. float x;
  2874. float y;
  2875. float width;
  2876. float height;
  2877. float minDepth;
  2878. float maxDepth;
  2879. } VkViewport;
  2880. typedef struct VkPipelineViewportStateCreateInfo {
  2881. VkStructureType sType;
  2882. const void* pNext;
  2883. VkPipelineViewportStateCreateFlags flags;
  2884. uint32_t viewportCount;
  2885. const VkViewport* pViewports;
  2886. uint32_t scissorCount;
  2887. const VkRect2D* pScissors;
  2888. } VkPipelineViewportStateCreateInfo;
  2889. typedef struct VkPipelineRasterizationStateCreateInfo {
  2890. VkStructureType sType;
  2891. const void* pNext;
  2892. VkPipelineRasterizationStateCreateFlags flags;
  2893. VkBool32 depthClampEnable;
  2894. VkBool32 rasterizerDiscardEnable;
  2895. VkPolygonMode polygonMode;
  2896. VkCullModeFlags cullMode;
  2897. VkFrontFace frontFace;
  2898. VkBool32 depthBiasEnable;
  2899. float depthBiasConstantFactor;
  2900. float depthBiasClamp;
  2901. float depthBiasSlopeFactor;
  2902. float lineWidth;
  2903. } VkPipelineRasterizationStateCreateInfo;
  2904. typedef struct VkPipelineMultisampleStateCreateInfo {
  2905. VkStructureType sType;
  2906. const void* pNext;
  2907. VkPipelineMultisampleStateCreateFlags flags;
  2908. VkSampleCountFlagBits rasterizationSamples;
  2909. VkBool32 sampleShadingEnable;
  2910. float minSampleShading;
  2911. const VkSampleMask* pSampleMask;
  2912. VkBool32 alphaToCoverageEnable;
  2913. VkBool32 alphaToOneEnable;
  2914. } VkPipelineMultisampleStateCreateInfo;
  2915. typedef struct VkStencilOpState {
  2916. VkStencilOp failOp;
  2917. VkStencilOp passOp;
  2918. VkStencilOp depthFailOp;
  2919. VkCompareOp compareOp;
  2920. uint32_t compareMask;
  2921. uint32_t writeMask;
  2922. uint32_t reference;
  2923. } VkStencilOpState;
  2924. typedef struct VkPipelineDepthStencilStateCreateInfo {
  2925. VkStructureType sType;
  2926. const void* pNext;
  2927. VkPipelineDepthStencilStateCreateFlags flags;
  2928. VkBool32 depthTestEnable;
  2929. VkBool32 depthWriteEnable;
  2930. VkCompareOp depthCompareOp;
  2931. VkBool32 depthBoundsTestEnable;
  2932. VkBool32 stencilTestEnable;
  2933. VkStencilOpState front;
  2934. VkStencilOpState back;
  2935. float minDepthBounds;
  2936. float maxDepthBounds;
  2937. } VkPipelineDepthStencilStateCreateInfo;
  2938. typedef struct VkPipelineColorBlendAttachmentState {
  2939. VkBool32 blendEnable;
  2940. VkBlendFactor srcColorBlendFactor;
  2941. VkBlendFactor dstColorBlendFactor;
  2942. VkBlendOp colorBlendOp;
  2943. VkBlendFactor srcAlphaBlendFactor;
  2944. VkBlendFactor dstAlphaBlendFactor;
  2945. VkBlendOp alphaBlendOp;
  2946. VkColorComponentFlags colorWriteMask;
  2947. } VkPipelineColorBlendAttachmentState;
  2948. typedef struct VkPipelineColorBlendStateCreateInfo {
  2949. VkStructureType sType;
  2950. const void* pNext;
  2951. VkPipelineColorBlendStateCreateFlags flags;
  2952. VkBool32 logicOpEnable;
  2953. VkLogicOp logicOp;
  2954. uint32_t attachmentCount;
  2955. const VkPipelineColorBlendAttachmentState* pAttachments;
  2956. float blendConstants[4];
  2957. } VkPipelineColorBlendStateCreateInfo;
  2958. typedef struct VkPipelineDynamicStateCreateInfo {
  2959. VkStructureType sType;
  2960. const void* pNext;
  2961. VkPipelineDynamicStateCreateFlags flags;
  2962. uint32_t dynamicStateCount;
  2963. const VkDynamicState* pDynamicStates;
  2964. } VkPipelineDynamicStateCreateInfo;
  2965. typedef struct VkGraphicsPipelineCreateInfo {
  2966. VkStructureType sType;
  2967. const void* pNext;
  2968. VkPipelineCreateFlags flags;
  2969. uint32_t stageCount;
  2970. const VkPipelineShaderStageCreateInfo* pStages;
  2971. const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
  2972. const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
  2973. const VkPipelineTessellationStateCreateInfo* pTessellationState;
  2974. const VkPipelineViewportStateCreateInfo* pViewportState;
  2975. const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
  2976. const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
  2977. const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
  2978. const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
  2979. const VkPipelineDynamicStateCreateInfo* pDynamicState;
  2980. VkPipelineLayout layout;
  2981. VkRenderPass renderPass;
  2982. uint32_t subpass;
  2983. VkPipeline basePipelineHandle;
  2984. int32_t basePipelineIndex;
  2985. } VkGraphicsPipelineCreateInfo;
  2986. typedef struct VkPushConstantRange {
  2987. VkShaderStageFlags stageFlags;
  2988. uint32_t offset;
  2989. uint32_t size;
  2990. } VkPushConstantRange;
  2991. typedef struct VkPipelineLayoutCreateInfo {
  2992. VkStructureType sType;
  2993. const void* pNext;
  2994. VkPipelineLayoutCreateFlags flags;
  2995. uint32_t setLayoutCount;
  2996. const VkDescriptorSetLayout* pSetLayouts;
  2997. uint32_t pushConstantRangeCount;
  2998. const VkPushConstantRange* pPushConstantRanges;
  2999. } VkPipelineLayoutCreateInfo;
  3000. typedef struct VkSamplerCreateInfo {
  3001. VkStructureType sType;
  3002. const void* pNext;
  3003. VkSamplerCreateFlags flags;
  3004. VkFilter magFilter;
  3005. VkFilter minFilter;
  3006. VkSamplerMipmapMode mipmapMode;
  3007. VkSamplerAddressMode addressModeU;
  3008. VkSamplerAddressMode addressModeV;
  3009. VkSamplerAddressMode addressModeW;
  3010. float mipLodBias;
  3011. VkBool32 anisotropyEnable;
  3012. float maxAnisotropy;
  3013. VkBool32 compareEnable;
  3014. VkCompareOp compareOp;
  3015. float minLod;
  3016. float maxLod;
  3017. VkBorderColor borderColor;
  3018. VkBool32 unnormalizedCoordinates;
  3019. } VkSamplerCreateInfo;
  3020. typedef struct VkCopyDescriptorSet {
  3021. VkStructureType sType;
  3022. const void* pNext;
  3023. VkDescriptorSet srcSet;
  3024. uint32_t srcBinding;
  3025. uint32_t srcArrayElement;
  3026. VkDescriptorSet dstSet;
  3027. uint32_t dstBinding;
  3028. uint32_t dstArrayElement;
  3029. uint32_t descriptorCount;
  3030. } VkCopyDescriptorSet;
  3031. typedef struct VkDescriptorBufferInfo {
  3032. VkBuffer buffer;
  3033. VkDeviceSize offset;
  3034. VkDeviceSize range;
  3035. } VkDescriptorBufferInfo;
  3036. typedef struct VkDescriptorImageInfo {
  3037. VkSampler sampler;
  3038. VkImageView imageView;
  3039. VkImageLayout imageLayout;
  3040. } VkDescriptorImageInfo;
  3041. typedef struct VkDescriptorPoolSize {
  3042. VkDescriptorType type;
  3043. uint32_t descriptorCount;
  3044. } VkDescriptorPoolSize;
  3045. typedef struct VkDescriptorPoolCreateInfo {
  3046. VkStructureType sType;
  3047. const void* pNext;
  3048. VkDescriptorPoolCreateFlags flags;
  3049. uint32_t maxSets;
  3050. uint32_t poolSizeCount;
  3051. const VkDescriptorPoolSize* pPoolSizes;
  3052. } VkDescriptorPoolCreateInfo;
  3053. typedef struct VkDescriptorSetAllocateInfo {
  3054. VkStructureType sType;
  3055. const void* pNext;
  3056. VkDescriptorPool descriptorPool;
  3057. uint32_t descriptorSetCount;
  3058. const VkDescriptorSetLayout* pSetLayouts;
  3059. } VkDescriptorSetAllocateInfo;
  3060. typedef struct VkDescriptorSetLayoutBinding {
  3061. uint32_t binding;
  3062. VkDescriptorType descriptorType;
  3063. uint32_t descriptorCount;
  3064. VkShaderStageFlags stageFlags;
  3065. const VkSampler* pImmutableSamplers;
  3066. } VkDescriptorSetLayoutBinding;
  3067. typedef struct VkDescriptorSetLayoutCreateInfo {
  3068. VkStructureType sType;
  3069. const void* pNext;
  3070. VkDescriptorSetLayoutCreateFlags flags;
  3071. uint32_t bindingCount;
  3072. const VkDescriptorSetLayoutBinding* pBindings;
  3073. } VkDescriptorSetLayoutCreateInfo;
  3074. typedef struct VkWriteDescriptorSet {
  3075. VkStructureType sType;
  3076. const void* pNext;
  3077. VkDescriptorSet dstSet;
  3078. uint32_t dstBinding;
  3079. uint32_t dstArrayElement;
  3080. uint32_t descriptorCount;
  3081. VkDescriptorType descriptorType;
  3082. const VkDescriptorImageInfo* pImageInfo;
  3083. const VkDescriptorBufferInfo* pBufferInfo;
  3084. const VkBufferView* pTexelBufferView;
  3085. } VkWriteDescriptorSet;
  3086. typedef struct VkAttachmentDescription {
  3087. VkAttachmentDescriptionFlags flags;
  3088. VkFormat format;
  3089. VkSampleCountFlagBits samples;
  3090. VkAttachmentLoadOp loadOp;
  3091. VkAttachmentStoreOp storeOp;
  3092. VkAttachmentLoadOp stencilLoadOp;
  3093. VkAttachmentStoreOp stencilStoreOp;
  3094. VkImageLayout initialLayout;
  3095. VkImageLayout finalLayout;
  3096. } VkAttachmentDescription;
  3097. typedef struct VkAttachmentReference {
  3098. uint32_t attachment;
  3099. VkImageLayout layout;
  3100. } VkAttachmentReference;
  3101. typedef struct VkFramebufferCreateInfo {
  3102. VkStructureType sType;
  3103. const void* pNext;
  3104. VkFramebufferCreateFlags flags;
  3105. VkRenderPass renderPass;
  3106. uint32_t attachmentCount;
  3107. const VkImageView* pAttachments;
  3108. uint32_t width;
  3109. uint32_t height;
  3110. uint32_t layers;
  3111. } VkFramebufferCreateInfo;
  3112. typedef struct VkSubpassDescription {
  3113. VkSubpassDescriptionFlags flags;
  3114. VkPipelineBindPoint pipelineBindPoint;
  3115. uint32_t inputAttachmentCount;
  3116. const VkAttachmentReference* pInputAttachments;
  3117. uint32_t colorAttachmentCount;
  3118. const VkAttachmentReference* pColorAttachments;
  3119. const VkAttachmentReference* pResolveAttachments;
  3120. const VkAttachmentReference* pDepthStencilAttachment;
  3121. uint32_t preserveAttachmentCount;
  3122. const uint32_t* pPreserveAttachments;
  3123. } VkSubpassDescription;
  3124. typedef struct VkSubpassDependency {
  3125. uint32_t srcSubpass;
  3126. uint32_t dstSubpass;
  3127. VkPipelineStageFlags srcStageMask;
  3128. VkPipelineStageFlags dstStageMask;
  3129. VkAccessFlags srcAccessMask;
  3130. VkAccessFlags dstAccessMask;
  3131. VkDependencyFlags dependencyFlags;
  3132. } VkSubpassDependency;
  3133. typedef struct VkRenderPassCreateInfo {
  3134. VkStructureType sType;
  3135. const void* pNext;
  3136. VkRenderPassCreateFlags flags;
  3137. uint32_t attachmentCount;
  3138. const VkAttachmentDescription* pAttachments;
  3139. uint32_t subpassCount;
  3140. const VkSubpassDescription* pSubpasses;
  3141. uint32_t dependencyCount;
  3142. const VkSubpassDependency* pDependencies;
  3143. } VkRenderPassCreateInfo;
  3144. typedef struct VkCommandPoolCreateInfo {
  3145. VkStructureType sType;
  3146. const void* pNext;
  3147. VkCommandPoolCreateFlags flags;
  3148. uint32_t queueFamilyIndex;
  3149. } VkCommandPoolCreateInfo;
  3150. typedef struct VkCommandBufferAllocateInfo {
  3151. VkStructureType sType;
  3152. const void* pNext;
  3153. VkCommandPool commandPool;
  3154. VkCommandBufferLevel level;
  3155. uint32_t commandBufferCount;
  3156. } VkCommandBufferAllocateInfo;
  3157. typedef struct VkCommandBufferInheritanceInfo {
  3158. VkStructureType sType;
  3159. const void* pNext;
  3160. VkRenderPass renderPass;
  3161. uint32_t subpass;
  3162. VkFramebuffer framebuffer;
  3163. VkBool32 occlusionQueryEnable;
  3164. VkQueryControlFlags queryFlags;
  3165. VkQueryPipelineStatisticFlags pipelineStatistics;
  3166. } VkCommandBufferInheritanceInfo;
  3167. typedef struct VkCommandBufferBeginInfo {
  3168. VkStructureType sType;
  3169. const void* pNext;
  3170. VkCommandBufferUsageFlags flags;
  3171. const VkCommandBufferInheritanceInfo* pInheritanceInfo;
  3172. } VkCommandBufferBeginInfo;
  3173. typedef struct VkBufferCopy {
  3174. VkDeviceSize srcOffset;
  3175. VkDeviceSize dstOffset;
  3176. VkDeviceSize size;
  3177. } VkBufferCopy;
  3178. typedef struct VkImageSubresourceLayers {
  3179. VkImageAspectFlags aspectMask;
  3180. uint32_t mipLevel;
  3181. uint32_t baseArrayLayer;
  3182. uint32_t layerCount;
  3183. } VkImageSubresourceLayers;
  3184. typedef struct VkBufferImageCopy {
  3185. VkDeviceSize bufferOffset;
  3186. uint32_t bufferRowLength;
  3187. uint32_t bufferImageHeight;
  3188. VkImageSubresourceLayers imageSubresource;
  3189. VkOffset3D imageOffset;
  3190. VkExtent3D imageExtent;
  3191. } VkBufferImageCopy;
  3192. typedef union VkClearColorValue {
  3193. float float32[4];
  3194. int32_t int32[4];
  3195. uint32_t uint32[4];
  3196. } VkClearColorValue;
  3197. typedef struct VkClearDepthStencilValue {
  3198. float depth;
  3199. uint32_t stencil;
  3200. } VkClearDepthStencilValue;
  3201. typedef union VkClearValue {
  3202. VkClearColorValue color;
  3203. VkClearDepthStencilValue depthStencil;
  3204. } VkClearValue;
  3205. typedef struct VkClearAttachment {
  3206. VkImageAspectFlags aspectMask;
  3207. uint32_t colorAttachment;
  3208. VkClearValue clearValue;
  3209. } VkClearAttachment;
  3210. typedef struct VkClearRect {
  3211. VkRect2D rect;
  3212. uint32_t baseArrayLayer;
  3213. uint32_t layerCount;
  3214. } VkClearRect;
  3215. typedef struct VkImageBlit {
  3216. VkImageSubresourceLayers srcSubresource;
  3217. VkOffset3D srcOffsets[2];
  3218. VkImageSubresourceLayers dstSubresource;
  3219. VkOffset3D dstOffsets[2];
  3220. } VkImageBlit;
  3221. typedef struct VkImageCopy {
  3222. VkImageSubresourceLayers srcSubresource;
  3223. VkOffset3D srcOffset;
  3224. VkImageSubresourceLayers dstSubresource;
  3225. VkOffset3D dstOffset;
  3226. VkExtent3D extent;
  3227. } VkImageCopy;
  3228. typedef struct VkImageResolve {
  3229. VkImageSubresourceLayers srcSubresource;
  3230. VkOffset3D srcOffset;
  3231. VkImageSubresourceLayers dstSubresource;
  3232. VkOffset3D dstOffset;
  3233. VkExtent3D extent;
  3234. } VkImageResolve;
  3235. typedef struct VkRenderPassBeginInfo {
  3236. VkStructureType sType;
  3237. const void* pNext;
  3238. VkRenderPass renderPass;
  3239. VkFramebuffer framebuffer;
  3240. VkRect2D renderArea;
  3241. uint32_t clearValueCount;
  3242. const VkClearValue* pClearValues;
  3243. } VkRenderPassBeginInfo;
  3244. typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
  3245. typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
  3246. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
  3247. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
  3248. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
  3249. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
  3250. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
  3251. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
  3252. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
  3253. typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
  3254. typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
  3255. typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
  3256. typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
  3257. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
  3258. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
  3259. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
  3260. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
  3261. typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
  3262. typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
  3263. typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
  3264. typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
  3265. typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
  3266. typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
  3267. typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
  3268. typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
  3269. typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
  3270. typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
  3271. typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
  3272. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  3273. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  3274. typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
  3275. typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
  3276. typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
  3277. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
  3278. typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
  3279. typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  3280. typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
  3281. typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
  3282. typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
  3283. typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
  3284. typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
  3285. typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
  3286. typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
  3287. typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
  3288. typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
  3289. typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
  3290. typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
  3291. typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
  3292. typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
  3293. 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);
  3294. typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
  3295. typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
  3296. typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
  3297. typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
  3298. typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
  3299. typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
  3300. typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
  3301. typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
  3302. typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
  3303. typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
  3304. typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
  3305. typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
  3306. typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
  3307. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
  3308. typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
  3309. typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  3310. typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  3311. typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
  3312. typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
  3313. typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
  3314. typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
  3315. typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
  3316. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
  3317. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
  3318. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
  3319. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
  3320. typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
  3321. typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
  3322. typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
  3323. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
  3324. typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
  3325. typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
  3326. typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
  3327. typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
  3328. typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
  3329. typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
  3330. typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
  3331. typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
  3332. typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
  3333. typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
  3334. typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
  3335. typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
  3336. typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
  3337. typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
  3338. typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
  3339. typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
  3340. typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
  3341. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
  3342. typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
  3343. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
  3344. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
  3345. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
  3346. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
  3347. 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);
  3348. typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
  3349. typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
  3350. typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
  3351. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
  3352. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  3353. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  3354. typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  3355. typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
  3356. typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
  3357. typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
  3358. typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
  3359. typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
  3360. typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
  3361. typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
  3362. typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
  3363. typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
  3364. typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
  3365. typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
  3366. typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
  3367. typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  3368. typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  3369. 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);
  3370. 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);
  3371. typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
  3372. typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
  3373. typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  3374. typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
  3375. typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
  3376. typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
  3377. typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
  3378. typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
  3379. typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
  3380. typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
  3381. #ifndef VK_NO_PROTOTYPES
  3382. VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
  3383. const VkInstanceCreateInfo* pCreateInfo,
  3384. const VkAllocationCallbacks* pAllocator,
  3385. VkInstance* pInstance);
  3386. VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
  3387. VkInstance instance,
  3388. const VkAllocationCallbacks* pAllocator);
  3389. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
  3390. VkInstance instance,
  3391. uint32_t* pPhysicalDeviceCount,
  3392. VkPhysicalDevice* pPhysicalDevices);
  3393. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
  3394. VkPhysicalDevice physicalDevice,
  3395. VkPhysicalDeviceFeatures* pFeatures);
  3396. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
  3397. VkPhysicalDevice physicalDevice,
  3398. VkFormat format,
  3399. VkFormatProperties* pFormatProperties);
  3400. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
  3401. VkPhysicalDevice physicalDevice,
  3402. VkFormat format,
  3403. VkImageType type,
  3404. VkImageTiling tiling,
  3405. VkImageUsageFlags usage,
  3406. VkImageCreateFlags flags,
  3407. VkImageFormatProperties* pImageFormatProperties);
  3408. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
  3409. VkPhysicalDevice physicalDevice,
  3410. VkPhysicalDeviceProperties* pProperties);
  3411. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
  3412. VkPhysicalDevice physicalDevice,
  3413. uint32_t* pQueueFamilyPropertyCount,
  3414. VkQueueFamilyProperties* pQueueFamilyProperties);
  3415. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
  3416. VkPhysicalDevice physicalDevice,
  3417. VkPhysicalDeviceMemoryProperties* pMemoryProperties);
  3418. VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
  3419. VkInstance instance,
  3420. const char* pName);
  3421. VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
  3422. VkDevice device,
  3423. const char* pName);
  3424. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
  3425. VkPhysicalDevice physicalDevice,
  3426. const VkDeviceCreateInfo* pCreateInfo,
  3427. const VkAllocationCallbacks* pAllocator,
  3428. VkDevice* pDevice);
  3429. VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
  3430. VkDevice device,
  3431. const VkAllocationCallbacks* pAllocator);
  3432. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
  3433. const char* pLayerName,
  3434. uint32_t* pPropertyCount,
  3435. VkExtensionProperties* pProperties);
  3436. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
  3437. VkPhysicalDevice physicalDevice,
  3438. const char* pLayerName,
  3439. uint32_t* pPropertyCount,
  3440. VkExtensionProperties* pProperties);
  3441. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
  3442. uint32_t* pPropertyCount,
  3443. VkLayerProperties* pProperties);
  3444. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
  3445. VkPhysicalDevice physicalDevice,
  3446. uint32_t* pPropertyCount,
  3447. VkLayerProperties* pProperties);
  3448. VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
  3449. VkDevice device,
  3450. uint32_t queueFamilyIndex,
  3451. uint32_t queueIndex,
  3452. VkQueue* pQueue);
  3453. VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
  3454. VkQueue queue,
  3455. uint32_t submitCount,
  3456. const VkSubmitInfo* pSubmits,
  3457. VkFence fence);
  3458. VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
  3459. VkQueue queue);
  3460. VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
  3461. VkDevice device);
  3462. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
  3463. VkDevice device,
  3464. const VkMemoryAllocateInfo* pAllocateInfo,
  3465. const VkAllocationCallbacks* pAllocator,
  3466. VkDeviceMemory* pMemory);
  3467. VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
  3468. VkDevice device,
  3469. VkDeviceMemory memory,
  3470. const VkAllocationCallbacks* pAllocator);
  3471. VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
  3472. VkDevice device,
  3473. VkDeviceMemory memory,
  3474. VkDeviceSize offset,
  3475. VkDeviceSize size,
  3476. VkMemoryMapFlags flags,
  3477. void** ppData);
  3478. VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
  3479. VkDevice device,
  3480. VkDeviceMemory memory);
  3481. VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
  3482. VkDevice device,
  3483. uint32_t memoryRangeCount,
  3484. const VkMappedMemoryRange* pMemoryRanges);
  3485. VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
  3486. VkDevice device,
  3487. uint32_t memoryRangeCount,
  3488. const VkMappedMemoryRange* pMemoryRanges);
  3489. VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
  3490. VkDevice device,
  3491. VkDeviceMemory memory,
  3492. VkDeviceSize* pCommittedMemoryInBytes);
  3493. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
  3494. VkDevice device,
  3495. VkBuffer buffer,
  3496. VkDeviceMemory memory,
  3497. VkDeviceSize memoryOffset);
  3498. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
  3499. VkDevice device,
  3500. VkImage image,
  3501. VkDeviceMemory memory,
  3502. VkDeviceSize memoryOffset);
  3503. VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
  3504. VkDevice device,
  3505. VkBuffer buffer,
  3506. VkMemoryRequirements* pMemoryRequirements);
  3507. VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
  3508. VkDevice device,
  3509. VkImage image,
  3510. VkMemoryRequirements* pMemoryRequirements);
  3511. VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
  3512. VkDevice device,
  3513. VkImage image,
  3514. uint32_t* pSparseMemoryRequirementCount,
  3515. VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
  3516. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
  3517. VkPhysicalDevice physicalDevice,
  3518. VkFormat format,
  3519. VkImageType type,
  3520. VkSampleCountFlagBits samples,
  3521. VkImageUsageFlags usage,
  3522. VkImageTiling tiling,
  3523. uint32_t* pPropertyCount,
  3524. VkSparseImageFormatProperties* pProperties);
  3525. VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
  3526. VkQueue queue,
  3527. uint32_t bindInfoCount,
  3528. const VkBindSparseInfo* pBindInfo,
  3529. VkFence fence);
  3530. VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
  3531. VkDevice device,
  3532. const VkFenceCreateInfo* pCreateInfo,
  3533. const VkAllocationCallbacks* pAllocator,
  3534. VkFence* pFence);
  3535. VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
  3536. VkDevice device,
  3537. VkFence fence,
  3538. const VkAllocationCallbacks* pAllocator);
  3539. VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
  3540. VkDevice device,
  3541. uint32_t fenceCount,
  3542. const VkFence* pFences);
  3543. VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
  3544. VkDevice device,
  3545. VkFence fence);
  3546. VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
  3547. VkDevice device,
  3548. uint32_t fenceCount,
  3549. const VkFence* pFences,
  3550. VkBool32 waitAll,
  3551. uint64_t timeout);
  3552. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
  3553. VkDevice device,
  3554. const VkSemaphoreCreateInfo* pCreateInfo,
  3555. const VkAllocationCallbacks* pAllocator,
  3556. VkSemaphore* pSemaphore);
  3557. VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
  3558. VkDevice device,
  3559. VkSemaphore semaphore,
  3560. const VkAllocationCallbacks* pAllocator);
  3561. VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
  3562. VkDevice device,
  3563. const VkEventCreateInfo* pCreateInfo,
  3564. const VkAllocationCallbacks* pAllocator,
  3565. VkEvent* pEvent);
  3566. VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
  3567. VkDevice device,
  3568. VkEvent event,
  3569. const VkAllocationCallbacks* pAllocator);
  3570. VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
  3571. VkDevice device,
  3572. VkEvent event);
  3573. VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
  3574. VkDevice device,
  3575. VkEvent event);
  3576. VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
  3577. VkDevice device,
  3578. VkEvent event);
  3579. VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
  3580. VkDevice device,
  3581. const VkQueryPoolCreateInfo* pCreateInfo,
  3582. const VkAllocationCallbacks* pAllocator,
  3583. VkQueryPool* pQueryPool);
  3584. VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
  3585. VkDevice device,
  3586. VkQueryPool queryPool,
  3587. const VkAllocationCallbacks* pAllocator);
  3588. VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
  3589. VkDevice device,
  3590. VkQueryPool queryPool,
  3591. uint32_t firstQuery,
  3592. uint32_t queryCount,
  3593. size_t dataSize,
  3594. void* pData,
  3595. VkDeviceSize stride,
  3596. VkQueryResultFlags flags);
  3597. VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
  3598. VkDevice device,
  3599. const VkBufferCreateInfo* pCreateInfo,
  3600. const VkAllocationCallbacks* pAllocator,
  3601. VkBuffer* pBuffer);
  3602. VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
  3603. VkDevice device,
  3604. VkBuffer buffer,
  3605. const VkAllocationCallbacks* pAllocator);
  3606. VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
  3607. VkDevice device,
  3608. const VkBufferViewCreateInfo* pCreateInfo,
  3609. const VkAllocationCallbacks* pAllocator,
  3610. VkBufferView* pView);
  3611. VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
  3612. VkDevice device,
  3613. VkBufferView bufferView,
  3614. const VkAllocationCallbacks* pAllocator);
  3615. VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
  3616. VkDevice device,
  3617. const VkImageCreateInfo* pCreateInfo,
  3618. const VkAllocationCallbacks* pAllocator,
  3619. VkImage* pImage);
  3620. VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
  3621. VkDevice device,
  3622. VkImage image,
  3623. const VkAllocationCallbacks* pAllocator);
  3624. VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
  3625. VkDevice device,
  3626. VkImage image,
  3627. const VkImageSubresource* pSubresource,
  3628. VkSubresourceLayout* pLayout);
  3629. VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
  3630. VkDevice device,
  3631. const VkImageViewCreateInfo* pCreateInfo,
  3632. const VkAllocationCallbacks* pAllocator,
  3633. VkImageView* pView);
  3634. VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
  3635. VkDevice device,
  3636. VkImageView imageView,
  3637. const VkAllocationCallbacks* pAllocator);
  3638. VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
  3639. VkDevice device,
  3640. const VkShaderModuleCreateInfo* pCreateInfo,
  3641. const VkAllocationCallbacks* pAllocator,
  3642. VkShaderModule* pShaderModule);
  3643. VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
  3644. VkDevice device,
  3645. VkShaderModule shaderModule,
  3646. const VkAllocationCallbacks* pAllocator);
  3647. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
  3648. VkDevice device,
  3649. const VkPipelineCacheCreateInfo* pCreateInfo,
  3650. const VkAllocationCallbacks* pAllocator,
  3651. VkPipelineCache* pPipelineCache);
  3652. VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
  3653. VkDevice device,
  3654. VkPipelineCache pipelineCache,
  3655. const VkAllocationCallbacks* pAllocator);
  3656. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
  3657. VkDevice device,
  3658. VkPipelineCache pipelineCache,
  3659. size_t* pDataSize,
  3660. void* pData);
  3661. VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
  3662. VkDevice device,
  3663. VkPipelineCache dstCache,
  3664. uint32_t srcCacheCount,
  3665. const VkPipelineCache* pSrcCaches);
  3666. VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
  3667. VkDevice device,
  3668. VkPipelineCache pipelineCache,
  3669. uint32_t createInfoCount,
  3670. const VkGraphicsPipelineCreateInfo* pCreateInfos,
  3671. const VkAllocationCallbacks* pAllocator,
  3672. VkPipeline* pPipelines);
  3673. VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
  3674. VkDevice device,
  3675. VkPipelineCache pipelineCache,
  3676. uint32_t createInfoCount,
  3677. const VkComputePipelineCreateInfo* pCreateInfos,
  3678. const VkAllocationCallbacks* pAllocator,
  3679. VkPipeline* pPipelines);
  3680. VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
  3681. VkDevice device,
  3682. VkPipeline pipeline,
  3683. const VkAllocationCallbacks* pAllocator);
  3684. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
  3685. VkDevice device,
  3686. const VkPipelineLayoutCreateInfo* pCreateInfo,
  3687. const VkAllocationCallbacks* pAllocator,
  3688. VkPipelineLayout* pPipelineLayout);
  3689. VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
  3690. VkDevice device,
  3691. VkPipelineLayout pipelineLayout,
  3692. const VkAllocationCallbacks* pAllocator);
  3693. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
  3694. VkDevice device,
  3695. const VkSamplerCreateInfo* pCreateInfo,
  3696. const VkAllocationCallbacks* pAllocator,
  3697. VkSampler* pSampler);
  3698. VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
  3699. VkDevice device,
  3700. VkSampler sampler,
  3701. const VkAllocationCallbacks* pAllocator);
  3702. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
  3703. VkDevice device,
  3704. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  3705. const VkAllocationCallbacks* pAllocator,
  3706. VkDescriptorSetLayout* pSetLayout);
  3707. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
  3708. VkDevice device,
  3709. VkDescriptorSetLayout descriptorSetLayout,
  3710. const VkAllocationCallbacks* pAllocator);
  3711. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
  3712. VkDevice device,
  3713. const VkDescriptorPoolCreateInfo* pCreateInfo,
  3714. const VkAllocationCallbacks* pAllocator,
  3715. VkDescriptorPool* pDescriptorPool);
  3716. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
  3717. VkDevice device,
  3718. VkDescriptorPool descriptorPool,
  3719. const VkAllocationCallbacks* pAllocator);
  3720. VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
  3721. VkDevice device,
  3722. VkDescriptorPool descriptorPool,
  3723. VkDescriptorPoolResetFlags flags);
  3724. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
  3725. VkDevice device,
  3726. const VkDescriptorSetAllocateInfo* pAllocateInfo,
  3727. VkDescriptorSet* pDescriptorSets);
  3728. VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
  3729. VkDevice device,
  3730. VkDescriptorPool descriptorPool,
  3731. uint32_t descriptorSetCount,
  3732. const VkDescriptorSet* pDescriptorSets);
  3733. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
  3734. VkDevice device,
  3735. uint32_t descriptorWriteCount,
  3736. const VkWriteDescriptorSet* pDescriptorWrites,
  3737. uint32_t descriptorCopyCount,
  3738. const VkCopyDescriptorSet* pDescriptorCopies);
  3739. VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
  3740. VkDevice device,
  3741. const VkFramebufferCreateInfo* pCreateInfo,
  3742. const VkAllocationCallbacks* pAllocator,
  3743. VkFramebuffer* pFramebuffer);
  3744. VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
  3745. VkDevice device,
  3746. VkFramebuffer framebuffer,
  3747. const VkAllocationCallbacks* pAllocator);
  3748. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
  3749. VkDevice device,
  3750. const VkRenderPassCreateInfo* pCreateInfo,
  3751. const VkAllocationCallbacks* pAllocator,
  3752. VkRenderPass* pRenderPass);
  3753. VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
  3754. VkDevice device,
  3755. VkRenderPass renderPass,
  3756. const VkAllocationCallbacks* pAllocator);
  3757. VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
  3758. VkDevice device,
  3759. VkRenderPass renderPass,
  3760. VkExtent2D* pGranularity);
  3761. VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
  3762. VkDevice device,
  3763. const VkCommandPoolCreateInfo* pCreateInfo,
  3764. const VkAllocationCallbacks* pAllocator,
  3765. VkCommandPool* pCommandPool);
  3766. VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
  3767. VkDevice device,
  3768. VkCommandPool commandPool,
  3769. const VkAllocationCallbacks* pAllocator);
  3770. VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
  3771. VkDevice device,
  3772. VkCommandPool commandPool,
  3773. VkCommandPoolResetFlags flags);
  3774. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
  3775. VkDevice device,
  3776. const VkCommandBufferAllocateInfo* pAllocateInfo,
  3777. VkCommandBuffer* pCommandBuffers);
  3778. VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
  3779. VkDevice device,
  3780. VkCommandPool commandPool,
  3781. uint32_t commandBufferCount,
  3782. const VkCommandBuffer* pCommandBuffers);
  3783. VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
  3784. VkCommandBuffer commandBuffer,
  3785. const VkCommandBufferBeginInfo* pBeginInfo);
  3786. VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
  3787. VkCommandBuffer commandBuffer);
  3788. VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
  3789. VkCommandBuffer commandBuffer,
  3790. VkCommandBufferResetFlags flags);
  3791. VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
  3792. VkCommandBuffer commandBuffer,
  3793. VkPipelineBindPoint pipelineBindPoint,
  3794. VkPipeline pipeline);
  3795. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
  3796. VkCommandBuffer commandBuffer,
  3797. uint32_t firstViewport,
  3798. uint32_t viewportCount,
  3799. const VkViewport* pViewports);
  3800. VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
  3801. VkCommandBuffer commandBuffer,
  3802. uint32_t firstScissor,
  3803. uint32_t scissorCount,
  3804. const VkRect2D* pScissors);
  3805. VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
  3806. VkCommandBuffer commandBuffer,
  3807. float lineWidth);
  3808. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
  3809. VkCommandBuffer commandBuffer,
  3810. float depthBiasConstantFactor,
  3811. float depthBiasClamp,
  3812. float depthBiasSlopeFactor);
  3813. VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
  3814. VkCommandBuffer commandBuffer,
  3815. const float blendConstants[4]);
  3816. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
  3817. VkCommandBuffer commandBuffer,
  3818. float minDepthBounds,
  3819. float maxDepthBounds);
  3820. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
  3821. VkCommandBuffer commandBuffer,
  3822. VkStencilFaceFlags faceMask,
  3823. uint32_t compareMask);
  3824. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
  3825. VkCommandBuffer commandBuffer,
  3826. VkStencilFaceFlags faceMask,
  3827. uint32_t writeMask);
  3828. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
  3829. VkCommandBuffer commandBuffer,
  3830. VkStencilFaceFlags faceMask,
  3831. uint32_t reference);
  3832. VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
  3833. VkCommandBuffer commandBuffer,
  3834. VkPipelineBindPoint pipelineBindPoint,
  3835. VkPipelineLayout layout,
  3836. uint32_t firstSet,
  3837. uint32_t descriptorSetCount,
  3838. const VkDescriptorSet* pDescriptorSets,
  3839. uint32_t dynamicOffsetCount,
  3840. const uint32_t* pDynamicOffsets);
  3841. VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
  3842. VkCommandBuffer commandBuffer,
  3843. VkBuffer buffer,
  3844. VkDeviceSize offset,
  3845. VkIndexType indexType);
  3846. VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
  3847. VkCommandBuffer commandBuffer,
  3848. uint32_t firstBinding,
  3849. uint32_t bindingCount,
  3850. const VkBuffer* pBuffers,
  3851. const VkDeviceSize* pOffsets);
  3852. VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
  3853. VkCommandBuffer commandBuffer,
  3854. uint32_t vertexCount,
  3855. uint32_t instanceCount,
  3856. uint32_t firstVertex,
  3857. uint32_t firstInstance);
  3858. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
  3859. VkCommandBuffer commandBuffer,
  3860. uint32_t indexCount,
  3861. uint32_t instanceCount,
  3862. uint32_t firstIndex,
  3863. int32_t vertexOffset,
  3864. uint32_t firstInstance);
  3865. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
  3866. VkCommandBuffer commandBuffer,
  3867. VkBuffer buffer,
  3868. VkDeviceSize offset,
  3869. uint32_t drawCount,
  3870. uint32_t stride);
  3871. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
  3872. VkCommandBuffer commandBuffer,
  3873. VkBuffer buffer,
  3874. VkDeviceSize offset,
  3875. uint32_t drawCount,
  3876. uint32_t stride);
  3877. VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
  3878. VkCommandBuffer commandBuffer,
  3879. uint32_t groupCountX,
  3880. uint32_t groupCountY,
  3881. uint32_t groupCountZ);
  3882. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
  3883. VkCommandBuffer commandBuffer,
  3884. VkBuffer buffer,
  3885. VkDeviceSize offset);
  3886. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
  3887. VkCommandBuffer commandBuffer,
  3888. VkBuffer srcBuffer,
  3889. VkBuffer dstBuffer,
  3890. uint32_t regionCount,
  3891. const VkBufferCopy* pRegions);
  3892. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
  3893. VkCommandBuffer commandBuffer,
  3894. VkImage srcImage,
  3895. VkImageLayout srcImageLayout,
  3896. VkImage dstImage,
  3897. VkImageLayout dstImageLayout,
  3898. uint32_t regionCount,
  3899. const VkImageCopy* pRegions);
  3900. VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
  3901. VkCommandBuffer commandBuffer,
  3902. VkImage srcImage,
  3903. VkImageLayout srcImageLayout,
  3904. VkImage dstImage,
  3905. VkImageLayout dstImageLayout,
  3906. uint32_t regionCount,
  3907. const VkImageBlit* pRegions,
  3908. VkFilter filter);
  3909. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
  3910. VkCommandBuffer commandBuffer,
  3911. VkBuffer srcBuffer,
  3912. VkImage dstImage,
  3913. VkImageLayout dstImageLayout,
  3914. uint32_t regionCount,
  3915. const VkBufferImageCopy* pRegions);
  3916. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
  3917. VkCommandBuffer commandBuffer,
  3918. VkImage srcImage,
  3919. VkImageLayout srcImageLayout,
  3920. VkBuffer dstBuffer,
  3921. uint32_t regionCount,
  3922. const VkBufferImageCopy* pRegions);
  3923. VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
  3924. VkCommandBuffer commandBuffer,
  3925. VkBuffer dstBuffer,
  3926. VkDeviceSize dstOffset,
  3927. VkDeviceSize dataSize,
  3928. const void* pData);
  3929. VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
  3930. VkCommandBuffer commandBuffer,
  3931. VkBuffer dstBuffer,
  3932. VkDeviceSize dstOffset,
  3933. VkDeviceSize size,
  3934. uint32_t data);
  3935. VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
  3936. VkCommandBuffer commandBuffer,
  3937. VkImage image,
  3938. VkImageLayout imageLayout,
  3939. const VkClearColorValue* pColor,
  3940. uint32_t rangeCount,
  3941. const VkImageSubresourceRange* pRanges);
  3942. VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
  3943. VkCommandBuffer commandBuffer,
  3944. VkImage image,
  3945. VkImageLayout imageLayout,
  3946. const VkClearDepthStencilValue* pDepthStencil,
  3947. uint32_t rangeCount,
  3948. const VkImageSubresourceRange* pRanges);
  3949. VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
  3950. VkCommandBuffer commandBuffer,
  3951. uint32_t attachmentCount,
  3952. const VkClearAttachment* pAttachments,
  3953. uint32_t rectCount,
  3954. const VkClearRect* pRects);
  3955. VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
  3956. VkCommandBuffer commandBuffer,
  3957. VkImage srcImage,
  3958. VkImageLayout srcImageLayout,
  3959. VkImage dstImage,
  3960. VkImageLayout dstImageLayout,
  3961. uint32_t regionCount,
  3962. const VkImageResolve* pRegions);
  3963. VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
  3964. VkCommandBuffer commandBuffer,
  3965. VkEvent event,
  3966. VkPipelineStageFlags stageMask);
  3967. VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
  3968. VkCommandBuffer commandBuffer,
  3969. VkEvent event,
  3970. VkPipelineStageFlags stageMask);
  3971. VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
  3972. VkCommandBuffer commandBuffer,
  3973. uint32_t eventCount,
  3974. const VkEvent* pEvents,
  3975. VkPipelineStageFlags srcStageMask,
  3976. VkPipelineStageFlags dstStageMask,
  3977. uint32_t memoryBarrierCount,
  3978. const VkMemoryBarrier* pMemoryBarriers,
  3979. uint32_t bufferMemoryBarrierCount,
  3980. const VkBufferMemoryBarrier* pBufferMemoryBarriers,
  3981. uint32_t imageMemoryBarrierCount,
  3982. const VkImageMemoryBarrier* pImageMemoryBarriers);
  3983. VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
  3984. VkCommandBuffer commandBuffer,
  3985. VkPipelineStageFlags srcStageMask,
  3986. VkPipelineStageFlags dstStageMask,
  3987. VkDependencyFlags dependencyFlags,
  3988. uint32_t memoryBarrierCount,
  3989. const VkMemoryBarrier* pMemoryBarriers,
  3990. uint32_t bufferMemoryBarrierCount,
  3991. const VkBufferMemoryBarrier* pBufferMemoryBarriers,
  3992. uint32_t imageMemoryBarrierCount,
  3993. const VkImageMemoryBarrier* pImageMemoryBarriers);
  3994. VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
  3995. VkCommandBuffer commandBuffer,
  3996. VkQueryPool queryPool,
  3997. uint32_t query,
  3998. VkQueryControlFlags flags);
  3999. VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
  4000. VkCommandBuffer commandBuffer,
  4001. VkQueryPool queryPool,
  4002. uint32_t query);
  4003. VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
  4004. VkCommandBuffer commandBuffer,
  4005. VkQueryPool queryPool,
  4006. uint32_t firstQuery,
  4007. uint32_t queryCount);
  4008. VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
  4009. VkCommandBuffer commandBuffer,
  4010. VkPipelineStageFlagBits pipelineStage,
  4011. VkQueryPool queryPool,
  4012. uint32_t query);
  4013. VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
  4014. VkCommandBuffer commandBuffer,
  4015. VkQueryPool queryPool,
  4016. uint32_t firstQuery,
  4017. uint32_t queryCount,
  4018. VkBuffer dstBuffer,
  4019. VkDeviceSize dstOffset,
  4020. VkDeviceSize stride,
  4021. VkQueryResultFlags flags);
  4022. VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
  4023. VkCommandBuffer commandBuffer,
  4024. VkPipelineLayout layout,
  4025. VkShaderStageFlags stageFlags,
  4026. uint32_t offset,
  4027. uint32_t size,
  4028. const void* pValues);
  4029. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
  4030. VkCommandBuffer commandBuffer,
  4031. const VkRenderPassBeginInfo* pRenderPassBegin,
  4032. VkSubpassContents contents);
  4033. VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
  4034. VkCommandBuffer commandBuffer,
  4035. VkSubpassContents contents);
  4036. VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
  4037. VkCommandBuffer commandBuffer);
  4038. VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
  4039. VkCommandBuffer commandBuffer,
  4040. uint32_t commandBufferCount,
  4041. const VkCommandBuffer* pCommandBuffers);
  4042. #endif
  4043. #define VK_VERSION_1_1 1
  4044. // Vulkan 1.1 version number
  4045. #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
  4046. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
  4047. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
  4048. #define VK_MAX_DEVICE_GROUP_SIZE 32U
  4049. #define VK_LUID_SIZE 8U
  4050. #define VK_QUEUE_FAMILY_EXTERNAL (~1U)
  4051. typedef enum VkPointClippingBehavior {
  4052. VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
  4053. VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
  4054. VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
  4055. VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
  4056. VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
  4057. } VkPointClippingBehavior;
  4058. typedef enum VkTessellationDomainOrigin {
  4059. VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
  4060. VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
  4061. VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
  4062. VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
  4063. VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
  4064. } VkTessellationDomainOrigin;
  4065. typedef enum VkSamplerYcbcrModelConversion {
  4066. VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
  4067. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
  4068. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
  4069. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
  4070. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
  4071. VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
  4072. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
  4073. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
  4074. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
  4075. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
  4076. VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
  4077. } VkSamplerYcbcrModelConversion;
  4078. typedef enum VkSamplerYcbcrRange {
  4079. VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
  4080. VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
  4081. VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
  4082. VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
  4083. VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
  4084. } VkSamplerYcbcrRange;
  4085. typedef enum VkChromaLocation {
  4086. VK_CHROMA_LOCATION_COSITED_EVEN = 0,
  4087. VK_CHROMA_LOCATION_MIDPOINT = 1,
  4088. VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
  4089. VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
  4090. VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
  4091. } VkChromaLocation;
  4092. typedef enum VkDescriptorUpdateTemplateType {
  4093. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
  4094. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
  4095. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
  4096. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
  4097. } VkDescriptorUpdateTemplateType;
  4098. typedef enum VkSubgroupFeatureFlagBits {
  4099. VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
  4100. VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
  4101. VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
  4102. VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
  4103. VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
  4104. VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
  4105. VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
  4106. VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
  4107. VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
  4108. VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4109. } VkSubgroupFeatureFlagBits;
  4110. typedef VkFlags VkSubgroupFeatureFlags;
  4111. typedef enum VkPeerMemoryFeatureFlagBits {
  4112. VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
  4113. VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
  4114. VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
  4115. VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
  4116. VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
  4117. VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
  4118. VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
  4119. VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
  4120. VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4121. } VkPeerMemoryFeatureFlagBits;
  4122. typedef VkFlags VkPeerMemoryFeatureFlags;
  4123. typedef enum VkMemoryAllocateFlagBits {
  4124. VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
  4125. VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
  4126. VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
  4127. VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
  4128. VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
  4129. VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
  4130. VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4131. } VkMemoryAllocateFlagBits;
  4132. typedef VkFlags VkMemoryAllocateFlags;
  4133. typedef VkFlags VkCommandPoolTrimFlags;
  4134. typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
  4135. typedef enum VkExternalMemoryHandleTypeFlagBits {
  4136. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
  4137. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
  4138. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
  4139. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
  4140. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
  4141. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
  4142. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
  4143. VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
  4144. VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
  4145. VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
  4146. VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
  4147. VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
  4148. VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
  4149. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
  4150. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  4151. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  4152. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
  4153. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
  4154. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
  4155. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
  4156. VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4157. } VkExternalMemoryHandleTypeFlagBits;
  4158. typedef VkFlags VkExternalMemoryHandleTypeFlags;
  4159. typedef enum VkExternalMemoryFeatureFlagBits {
  4160. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
  4161. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
  4162. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
  4163. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
  4164. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
  4165. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
  4166. VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4167. } VkExternalMemoryFeatureFlagBits;
  4168. typedef VkFlags VkExternalMemoryFeatureFlags;
  4169. typedef enum VkExternalFenceHandleTypeFlagBits {
  4170. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
  4171. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
  4172. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
  4173. VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
  4174. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
  4175. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  4176. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  4177. VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
  4178. VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4179. } VkExternalFenceHandleTypeFlagBits;
  4180. typedef VkFlags VkExternalFenceHandleTypeFlags;
  4181. typedef enum VkExternalFenceFeatureFlagBits {
  4182. VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
  4183. VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
  4184. VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
  4185. VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
  4186. VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4187. } VkExternalFenceFeatureFlagBits;
  4188. typedef VkFlags VkExternalFenceFeatureFlags;
  4189. typedef enum VkFenceImportFlagBits {
  4190. VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
  4191. VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
  4192. VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4193. } VkFenceImportFlagBits;
  4194. typedef VkFlags VkFenceImportFlags;
  4195. typedef enum VkSemaphoreImportFlagBits {
  4196. VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
  4197. VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
  4198. VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4199. } VkSemaphoreImportFlagBits;
  4200. typedef VkFlags VkSemaphoreImportFlags;
  4201. typedef enum VkExternalSemaphoreHandleTypeFlagBits {
  4202. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
  4203. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
  4204. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
  4205. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
  4206. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
  4207. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
  4208. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
  4209. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
  4210. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  4211. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  4212. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
  4213. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
  4214. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4215. } VkExternalSemaphoreHandleTypeFlagBits;
  4216. typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
  4217. typedef enum VkExternalSemaphoreFeatureFlagBits {
  4218. VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
  4219. VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
  4220. VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
  4221. VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
  4222. VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4223. } VkExternalSemaphoreFeatureFlagBits;
  4224. typedef VkFlags VkExternalSemaphoreFeatureFlags;
  4225. typedef struct VkPhysicalDeviceSubgroupProperties {
  4226. VkStructureType sType;
  4227. void* pNext;
  4228. uint32_t subgroupSize;
  4229. VkShaderStageFlags supportedStages;
  4230. VkSubgroupFeatureFlags supportedOperations;
  4231. VkBool32 quadOperationsInAllStages;
  4232. } VkPhysicalDeviceSubgroupProperties;
  4233. typedef struct VkBindBufferMemoryInfo {
  4234. VkStructureType sType;
  4235. const void* pNext;
  4236. VkBuffer buffer;
  4237. VkDeviceMemory memory;
  4238. VkDeviceSize memoryOffset;
  4239. } VkBindBufferMemoryInfo;
  4240. typedef struct VkBindImageMemoryInfo {
  4241. VkStructureType sType;
  4242. const void* pNext;
  4243. VkImage image;
  4244. VkDeviceMemory memory;
  4245. VkDeviceSize memoryOffset;
  4246. } VkBindImageMemoryInfo;
  4247. typedef struct VkPhysicalDevice16BitStorageFeatures {
  4248. VkStructureType sType;
  4249. void* pNext;
  4250. VkBool32 storageBuffer16BitAccess;
  4251. VkBool32 uniformAndStorageBuffer16BitAccess;
  4252. VkBool32 storagePushConstant16;
  4253. VkBool32 storageInputOutput16;
  4254. } VkPhysicalDevice16BitStorageFeatures;
  4255. typedef struct VkMemoryDedicatedRequirements {
  4256. VkStructureType sType;
  4257. void* pNext;
  4258. VkBool32 prefersDedicatedAllocation;
  4259. VkBool32 requiresDedicatedAllocation;
  4260. } VkMemoryDedicatedRequirements;
  4261. typedef struct VkMemoryDedicatedAllocateInfo {
  4262. VkStructureType sType;
  4263. const void* pNext;
  4264. VkImage image;
  4265. VkBuffer buffer;
  4266. } VkMemoryDedicatedAllocateInfo;
  4267. typedef struct VkMemoryAllocateFlagsInfo {
  4268. VkStructureType sType;
  4269. const void* pNext;
  4270. VkMemoryAllocateFlags flags;
  4271. uint32_t deviceMask;
  4272. } VkMemoryAllocateFlagsInfo;
  4273. typedef struct VkDeviceGroupRenderPassBeginInfo {
  4274. VkStructureType sType;
  4275. const void* pNext;
  4276. uint32_t deviceMask;
  4277. uint32_t deviceRenderAreaCount;
  4278. const VkRect2D* pDeviceRenderAreas;
  4279. } VkDeviceGroupRenderPassBeginInfo;
  4280. typedef struct VkDeviceGroupCommandBufferBeginInfo {
  4281. VkStructureType sType;
  4282. const void* pNext;
  4283. uint32_t deviceMask;
  4284. } VkDeviceGroupCommandBufferBeginInfo;
  4285. typedef struct VkDeviceGroupSubmitInfo {
  4286. VkStructureType sType;
  4287. const void* pNext;
  4288. uint32_t waitSemaphoreCount;
  4289. const uint32_t* pWaitSemaphoreDeviceIndices;
  4290. uint32_t commandBufferCount;
  4291. const uint32_t* pCommandBufferDeviceMasks;
  4292. uint32_t signalSemaphoreCount;
  4293. const uint32_t* pSignalSemaphoreDeviceIndices;
  4294. } VkDeviceGroupSubmitInfo;
  4295. typedef struct VkDeviceGroupBindSparseInfo {
  4296. VkStructureType sType;
  4297. const void* pNext;
  4298. uint32_t resourceDeviceIndex;
  4299. uint32_t memoryDeviceIndex;
  4300. } VkDeviceGroupBindSparseInfo;
  4301. typedef struct VkBindBufferMemoryDeviceGroupInfo {
  4302. VkStructureType sType;
  4303. const void* pNext;
  4304. uint32_t deviceIndexCount;
  4305. const uint32_t* pDeviceIndices;
  4306. } VkBindBufferMemoryDeviceGroupInfo;
  4307. typedef struct VkBindImageMemoryDeviceGroupInfo {
  4308. VkStructureType sType;
  4309. const void* pNext;
  4310. uint32_t deviceIndexCount;
  4311. const uint32_t* pDeviceIndices;
  4312. uint32_t splitInstanceBindRegionCount;
  4313. const VkRect2D* pSplitInstanceBindRegions;
  4314. } VkBindImageMemoryDeviceGroupInfo;
  4315. typedef struct VkPhysicalDeviceGroupProperties {
  4316. VkStructureType sType;
  4317. void* pNext;
  4318. uint32_t physicalDeviceCount;
  4319. VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
  4320. VkBool32 subsetAllocation;
  4321. } VkPhysicalDeviceGroupProperties;
  4322. typedef struct VkDeviceGroupDeviceCreateInfo {
  4323. VkStructureType sType;
  4324. const void* pNext;
  4325. uint32_t physicalDeviceCount;
  4326. const VkPhysicalDevice* pPhysicalDevices;
  4327. } VkDeviceGroupDeviceCreateInfo;
  4328. typedef struct VkBufferMemoryRequirementsInfo2 {
  4329. VkStructureType sType;
  4330. const void* pNext;
  4331. VkBuffer buffer;
  4332. } VkBufferMemoryRequirementsInfo2;
  4333. typedef struct VkImageMemoryRequirementsInfo2 {
  4334. VkStructureType sType;
  4335. const void* pNext;
  4336. VkImage image;
  4337. } VkImageMemoryRequirementsInfo2;
  4338. typedef struct VkImageSparseMemoryRequirementsInfo2 {
  4339. VkStructureType sType;
  4340. const void* pNext;
  4341. VkImage image;
  4342. } VkImageSparseMemoryRequirementsInfo2;
  4343. typedef struct VkMemoryRequirements2 {
  4344. VkStructureType sType;
  4345. void* pNext;
  4346. VkMemoryRequirements memoryRequirements;
  4347. } VkMemoryRequirements2;
  4348. typedef struct VkSparseImageMemoryRequirements2 {
  4349. VkStructureType sType;
  4350. void* pNext;
  4351. VkSparseImageMemoryRequirements memoryRequirements;
  4352. } VkSparseImageMemoryRequirements2;
  4353. typedef struct VkPhysicalDeviceFeatures2 {
  4354. VkStructureType sType;
  4355. void* pNext;
  4356. VkPhysicalDeviceFeatures features;
  4357. } VkPhysicalDeviceFeatures2;
  4358. typedef struct VkPhysicalDeviceProperties2 {
  4359. VkStructureType sType;
  4360. void* pNext;
  4361. VkPhysicalDeviceProperties properties;
  4362. } VkPhysicalDeviceProperties2;
  4363. typedef struct VkFormatProperties2 {
  4364. VkStructureType sType;
  4365. void* pNext;
  4366. VkFormatProperties formatProperties;
  4367. } VkFormatProperties2;
  4368. typedef struct VkImageFormatProperties2 {
  4369. VkStructureType sType;
  4370. void* pNext;
  4371. VkImageFormatProperties imageFormatProperties;
  4372. } VkImageFormatProperties2;
  4373. typedef struct VkPhysicalDeviceImageFormatInfo2 {
  4374. VkStructureType sType;
  4375. const void* pNext;
  4376. VkFormat format;
  4377. VkImageType type;
  4378. VkImageTiling tiling;
  4379. VkImageUsageFlags usage;
  4380. VkImageCreateFlags flags;
  4381. } VkPhysicalDeviceImageFormatInfo2;
  4382. typedef struct VkQueueFamilyProperties2 {
  4383. VkStructureType sType;
  4384. void* pNext;
  4385. VkQueueFamilyProperties queueFamilyProperties;
  4386. } VkQueueFamilyProperties2;
  4387. typedef struct VkPhysicalDeviceMemoryProperties2 {
  4388. VkStructureType sType;
  4389. void* pNext;
  4390. VkPhysicalDeviceMemoryProperties memoryProperties;
  4391. } VkPhysicalDeviceMemoryProperties2;
  4392. typedef struct VkSparseImageFormatProperties2 {
  4393. VkStructureType sType;
  4394. void* pNext;
  4395. VkSparseImageFormatProperties properties;
  4396. } VkSparseImageFormatProperties2;
  4397. typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
  4398. VkStructureType sType;
  4399. const void* pNext;
  4400. VkFormat format;
  4401. VkImageType type;
  4402. VkSampleCountFlagBits samples;
  4403. VkImageUsageFlags usage;
  4404. VkImageTiling tiling;
  4405. } VkPhysicalDeviceSparseImageFormatInfo2;
  4406. typedef struct VkPhysicalDevicePointClippingProperties {
  4407. VkStructureType sType;
  4408. void* pNext;
  4409. VkPointClippingBehavior pointClippingBehavior;
  4410. } VkPhysicalDevicePointClippingProperties;
  4411. typedef struct VkInputAttachmentAspectReference {
  4412. uint32_t subpass;
  4413. uint32_t inputAttachmentIndex;
  4414. VkImageAspectFlags aspectMask;
  4415. } VkInputAttachmentAspectReference;
  4416. typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
  4417. VkStructureType sType;
  4418. const void* pNext;
  4419. uint32_t aspectReferenceCount;
  4420. const VkInputAttachmentAspectReference* pAspectReferences;
  4421. } VkRenderPassInputAttachmentAspectCreateInfo;
  4422. typedef struct VkImageViewUsageCreateInfo {
  4423. VkStructureType sType;
  4424. const void* pNext;
  4425. VkImageUsageFlags usage;
  4426. } VkImageViewUsageCreateInfo;
  4427. typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
  4428. VkStructureType sType;
  4429. const void* pNext;
  4430. VkTessellationDomainOrigin domainOrigin;
  4431. } VkPipelineTessellationDomainOriginStateCreateInfo;
  4432. typedef struct VkRenderPassMultiviewCreateInfo {
  4433. VkStructureType sType;
  4434. const void* pNext;
  4435. uint32_t subpassCount;
  4436. const uint32_t* pViewMasks;
  4437. uint32_t dependencyCount;
  4438. const int32_t* pViewOffsets;
  4439. uint32_t correlationMaskCount;
  4440. const uint32_t* pCorrelationMasks;
  4441. } VkRenderPassMultiviewCreateInfo;
  4442. typedef struct VkPhysicalDeviceMultiviewFeatures {
  4443. VkStructureType sType;
  4444. void* pNext;
  4445. VkBool32 multiview;
  4446. VkBool32 multiviewGeometryShader;
  4447. VkBool32 multiviewTessellationShader;
  4448. } VkPhysicalDeviceMultiviewFeatures;
  4449. typedef struct VkPhysicalDeviceMultiviewProperties {
  4450. VkStructureType sType;
  4451. void* pNext;
  4452. uint32_t maxMultiviewViewCount;
  4453. uint32_t maxMultiviewInstanceIndex;
  4454. } VkPhysicalDeviceMultiviewProperties;
  4455. typedef struct VkPhysicalDeviceVariablePointersFeatures {
  4456. VkStructureType sType;
  4457. void* pNext;
  4458. VkBool32 variablePointersStorageBuffer;
  4459. VkBool32 variablePointers;
  4460. } VkPhysicalDeviceVariablePointersFeatures;
  4461. typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
  4462. typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
  4463. VkStructureType sType;
  4464. void* pNext;
  4465. VkBool32 protectedMemory;
  4466. } VkPhysicalDeviceProtectedMemoryFeatures;
  4467. typedef struct VkPhysicalDeviceProtectedMemoryProperties {
  4468. VkStructureType sType;
  4469. void* pNext;
  4470. VkBool32 protectedNoFault;
  4471. } VkPhysicalDeviceProtectedMemoryProperties;
  4472. typedef struct VkDeviceQueueInfo2 {
  4473. VkStructureType sType;
  4474. const void* pNext;
  4475. VkDeviceQueueCreateFlags flags;
  4476. uint32_t queueFamilyIndex;
  4477. uint32_t queueIndex;
  4478. } VkDeviceQueueInfo2;
  4479. typedef struct VkProtectedSubmitInfo {
  4480. VkStructureType sType;
  4481. const void* pNext;
  4482. VkBool32 protectedSubmit;
  4483. } VkProtectedSubmitInfo;
  4484. typedef struct VkSamplerYcbcrConversionCreateInfo {
  4485. VkStructureType sType;
  4486. const void* pNext;
  4487. VkFormat format;
  4488. VkSamplerYcbcrModelConversion ycbcrModel;
  4489. VkSamplerYcbcrRange ycbcrRange;
  4490. VkComponentMapping components;
  4491. VkChromaLocation xChromaOffset;
  4492. VkChromaLocation yChromaOffset;
  4493. VkFilter chromaFilter;
  4494. VkBool32 forceExplicitReconstruction;
  4495. } VkSamplerYcbcrConversionCreateInfo;
  4496. typedef struct VkSamplerYcbcrConversionInfo {
  4497. VkStructureType sType;
  4498. const void* pNext;
  4499. VkSamplerYcbcrConversion conversion;
  4500. } VkSamplerYcbcrConversionInfo;
  4501. typedef struct VkBindImagePlaneMemoryInfo {
  4502. VkStructureType sType;
  4503. const void* pNext;
  4504. VkImageAspectFlagBits planeAspect;
  4505. } VkBindImagePlaneMemoryInfo;
  4506. typedef struct VkImagePlaneMemoryRequirementsInfo {
  4507. VkStructureType sType;
  4508. const void* pNext;
  4509. VkImageAspectFlagBits planeAspect;
  4510. } VkImagePlaneMemoryRequirementsInfo;
  4511. typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
  4512. VkStructureType sType;
  4513. void* pNext;
  4514. VkBool32 samplerYcbcrConversion;
  4515. } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
  4516. typedef struct VkSamplerYcbcrConversionImageFormatProperties {
  4517. VkStructureType sType;
  4518. void* pNext;
  4519. uint32_t combinedImageSamplerDescriptorCount;
  4520. } VkSamplerYcbcrConversionImageFormatProperties;
  4521. typedef struct VkDescriptorUpdateTemplateEntry {
  4522. uint32_t dstBinding;
  4523. uint32_t dstArrayElement;
  4524. uint32_t descriptorCount;
  4525. VkDescriptorType descriptorType;
  4526. size_t offset;
  4527. size_t stride;
  4528. } VkDescriptorUpdateTemplateEntry;
  4529. typedef struct VkDescriptorUpdateTemplateCreateInfo {
  4530. VkStructureType sType;
  4531. const void* pNext;
  4532. VkDescriptorUpdateTemplateCreateFlags flags;
  4533. uint32_t descriptorUpdateEntryCount;
  4534. const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
  4535. VkDescriptorUpdateTemplateType templateType;
  4536. VkDescriptorSetLayout descriptorSetLayout;
  4537. VkPipelineBindPoint pipelineBindPoint;
  4538. VkPipelineLayout pipelineLayout;
  4539. uint32_t set;
  4540. } VkDescriptorUpdateTemplateCreateInfo;
  4541. typedef struct VkExternalMemoryProperties {
  4542. VkExternalMemoryFeatureFlags externalMemoryFeatures;
  4543. VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
  4544. VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
  4545. } VkExternalMemoryProperties;
  4546. typedef struct VkPhysicalDeviceExternalImageFormatInfo {
  4547. VkStructureType sType;
  4548. const void* pNext;
  4549. VkExternalMemoryHandleTypeFlagBits handleType;
  4550. } VkPhysicalDeviceExternalImageFormatInfo;
  4551. typedef struct VkExternalImageFormatProperties {
  4552. VkStructureType sType;
  4553. void* pNext;
  4554. VkExternalMemoryProperties externalMemoryProperties;
  4555. } VkExternalImageFormatProperties;
  4556. typedef struct VkPhysicalDeviceExternalBufferInfo {
  4557. VkStructureType sType;
  4558. const void* pNext;
  4559. VkBufferCreateFlags flags;
  4560. VkBufferUsageFlags usage;
  4561. VkExternalMemoryHandleTypeFlagBits handleType;
  4562. } VkPhysicalDeviceExternalBufferInfo;
  4563. typedef struct VkExternalBufferProperties {
  4564. VkStructureType sType;
  4565. void* pNext;
  4566. VkExternalMemoryProperties externalMemoryProperties;
  4567. } VkExternalBufferProperties;
  4568. typedef struct VkPhysicalDeviceIDProperties {
  4569. VkStructureType sType;
  4570. void* pNext;
  4571. uint8_t deviceUUID[VK_UUID_SIZE];
  4572. uint8_t driverUUID[VK_UUID_SIZE];
  4573. uint8_t deviceLUID[VK_LUID_SIZE];
  4574. uint32_t deviceNodeMask;
  4575. VkBool32 deviceLUIDValid;
  4576. } VkPhysicalDeviceIDProperties;
  4577. typedef struct VkExternalMemoryImageCreateInfo {
  4578. VkStructureType sType;
  4579. const void* pNext;
  4580. VkExternalMemoryHandleTypeFlags handleTypes;
  4581. } VkExternalMemoryImageCreateInfo;
  4582. typedef struct VkExternalMemoryBufferCreateInfo {
  4583. VkStructureType sType;
  4584. const void* pNext;
  4585. VkExternalMemoryHandleTypeFlags handleTypes;
  4586. } VkExternalMemoryBufferCreateInfo;
  4587. typedef struct VkExportMemoryAllocateInfo {
  4588. VkStructureType sType;
  4589. const void* pNext;
  4590. VkExternalMemoryHandleTypeFlags handleTypes;
  4591. } VkExportMemoryAllocateInfo;
  4592. typedef struct VkPhysicalDeviceExternalFenceInfo {
  4593. VkStructureType sType;
  4594. const void* pNext;
  4595. VkExternalFenceHandleTypeFlagBits handleType;
  4596. } VkPhysicalDeviceExternalFenceInfo;
  4597. typedef struct VkExternalFenceProperties {
  4598. VkStructureType sType;
  4599. void* pNext;
  4600. VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
  4601. VkExternalFenceHandleTypeFlags compatibleHandleTypes;
  4602. VkExternalFenceFeatureFlags externalFenceFeatures;
  4603. } VkExternalFenceProperties;
  4604. typedef struct VkExportFenceCreateInfo {
  4605. VkStructureType sType;
  4606. const void* pNext;
  4607. VkExternalFenceHandleTypeFlags handleTypes;
  4608. } VkExportFenceCreateInfo;
  4609. typedef struct VkExportSemaphoreCreateInfo {
  4610. VkStructureType sType;
  4611. const void* pNext;
  4612. VkExternalSemaphoreHandleTypeFlags handleTypes;
  4613. } VkExportSemaphoreCreateInfo;
  4614. typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
  4615. VkStructureType sType;
  4616. const void* pNext;
  4617. VkExternalSemaphoreHandleTypeFlagBits handleType;
  4618. } VkPhysicalDeviceExternalSemaphoreInfo;
  4619. typedef struct VkExternalSemaphoreProperties {
  4620. VkStructureType sType;
  4621. void* pNext;
  4622. VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
  4623. VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
  4624. VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
  4625. } VkExternalSemaphoreProperties;
  4626. typedef struct VkPhysicalDeviceMaintenance3Properties {
  4627. VkStructureType sType;
  4628. void* pNext;
  4629. uint32_t maxPerSetDescriptors;
  4630. VkDeviceSize maxMemoryAllocationSize;
  4631. } VkPhysicalDeviceMaintenance3Properties;
  4632. typedef struct VkDescriptorSetLayoutSupport {
  4633. VkStructureType sType;
  4634. void* pNext;
  4635. VkBool32 supported;
  4636. } VkDescriptorSetLayoutSupport;
  4637. typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
  4638. VkStructureType sType;
  4639. void* pNext;
  4640. VkBool32 shaderDrawParameters;
  4641. } VkPhysicalDeviceShaderDrawParametersFeatures;
  4642. typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
  4643. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
  4644. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
  4645. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
  4646. typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  4647. typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
  4648. 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);
  4649. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  4650. typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  4651. typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  4652. typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  4653. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
  4654. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
  4655. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
  4656. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
  4657. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
  4658. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  4659. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
  4660. typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
  4661. typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
  4662. typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
  4663. typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
  4664. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  4665. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
  4666. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
  4667. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
  4668. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
  4669. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  4670. typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
  4671. #ifndef VK_NO_PROTOTYPES
  4672. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
  4673. uint32_t* pApiVersion);
  4674. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
  4675. VkDevice device,
  4676. uint32_t bindInfoCount,
  4677. const VkBindBufferMemoryInfo* pBindInfos);
  4678. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
  4679. VkDevice device,
  4680. uint32_t bindInfoCount,
  4681. const VkBindImageMemoryInfo* pBindInfos);
  4682. VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
  4683. VkDevice device,
  4684. uint32_t heapIndex,
  4685. uint32_t localDeviceIndex,
  4686. uint32_t remoteDeviceIndex,
  4687. VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  4688. VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
  4689. VkCommandBuffer commandBuffer,
  4690. uint32_t deviceMask);
  4691. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
  4692. VkCommandBuffer commandBuffer,
  4693. uint32_t baseGroupX,
  4694. uint32_t baseGroupY,
  4695. uint32_t baseGroupZ,
  4696. uint32_t groupCountX,
  4697. uint32_t groupCountY,
  4698. uint32_t groupCountZ);
  4699. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
  4700. VkInstance instance,
  4701. uint32_t* pPhysicalDeviceGroupCount,
  4702. VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  4703. VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
  4704. VkDevice device,
  4705. const VkImageMemoryRequirementsInfo2* pInfo,
  4706. VkMemoryRequirements2* pMemoryRequirements);
  4707. VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
  4708. VkDevice device,
  4709. const VkBufferMemoryRequirementsInfo2* pInfo,
  4710. VkMemoryRequirements2* pMemoryRequirements);
  4711. VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
  4712. VkDevice device,
  4713. const VkImageSparseMemoryRequirementsInfo2* pInfo,
  4714. uint32_t* pSparseMemoryRequirementCount,
  4715. VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  4716. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
  4717. VkPhysicalDevice physicalDevice,
  4718. VkPhysicalDeviceFeatures2* pFeatures);
  4719. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
  4720. VkPhysicalDevice physicalDevice,
  4721. VkPhysicalDeviceProperties2* pProperties);
  4722. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
  4723. VkPhysicalDevice physicalDevice,
  4724. VkFormat format,
  4725. VkFormatProperties2* pFormatProperties);
  4726. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
  4727. VkPhysicalDevice physicalDevice,
  4728. const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
  4729. VkImageFormatProperties2* pImageFormatProperties);
  4730. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
  4731. VkPhysicalDevice physicalDevice,
  4732. uint32_t* pQueueFamilyPropertyCount,
  4733. VkQueueFamilyProperties2* pQueueFamilyProperties);
  4734. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
  4735. VkPhysicalDevice physicalDevice,
  4736. VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  4737. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
  4738. VkPhysicalDevice physicalDevice,
  4739. const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
  4740. uint32_t* pPropertyCount,
  4741. VkSparseImageFormatProperties2* pProperties);
  4742. VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
  4743. VkDevice device,
  4744. VkCommandPool commandPool,
  4745. VkCommandPoolTrimFlags flags);
  4746. VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
  4747. VkDevice device,
  4748. const VkDeviceQueueInfo2* pQueueInfo,
  4749. VkQueue* pQueue);
  4750. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
  4751. VkDevice device,
  4752. const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
  4753. const VkAllocationCallbacks* pAllocator,
  4754. VkSamplerYcbcrConversion* pYcbcrConversion);
  4755. VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
  4756. VkDevice device,
  4757. VkSamplerYcbcrConversion ycbcrConversion,
  4758. const VkAllocationCallbacks* pAllocator);
  4759. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
  4760. VkDevice device,
  4761. const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
  4762. const VkAllocationCallbacks* pAllocator,
  4763. VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  4764. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
  4765. VkDevice device,
  4766. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  4767. const VkAllocationCallbacks* pAllocator);
  4768. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
  4769. VkDevice device,
  4770. VkDescriptorSet descriptorSet,
  4771. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  4772. const void* pData);
  4773. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
  4774. VkPhysicalDevice physicalDevice,
  4775. const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
  4776. VkExternalBufferProperties* pExternalBufferProperties);
  4777. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
  4778. VkPhysicalDevice physicalDevice,
  4779. const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
  4780. VkExternalFenceProperties* pExternalFenceProperties);
  4781. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
  4782. VkPhysicalDevice physicalDevice,
  4783. const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
  4784. VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  4785. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
  4786. VkDevice device,
  4787. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  4788. VkDescriptorSetLayoutSupport* pSupport);
  4789. #endif
  4790. #define VK_VERSION_1_2 1
  4791. // Vulkan 1.2 version number
  4792. #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
  4793. #define VK_MAX_DRIVER_NAME_SIZE 256U
  4794. #define VK_MAX_DRIVER_INFO_SIZE 256U
  4795. typedef enum VkDriverId {
  4796. VK_DRIVER_ID_AMD_PROPRIETARY = 1,
  4797. VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
  4798. VK_DRIVER_ID_MESA_RADV = 3,
  4799. VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
  4800. VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
  4801. VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
  4802. VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
  4803. VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
  4804. VK_DRIVER_ID_ARM_PROPRIETARY = 9,
  4805. VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
  4806. VK_DRIVER_ID_GGP_PROPRIETARY = 11,
  4807. VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
  4808. VK_DRIVER_ID_MESA_LLVMPIPE = 13,
  4809. VK_DRIVER_ID_MOLTENVK = 14,
  4810. VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
  4811. VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
  4812. VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
  4813. VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
  4814. VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
  4815. VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
  4816. VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
  4817. VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
  4818. VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
  4819. VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
  4820. VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
  4821. VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
  4822. VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
  4823. VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
  4824. VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
  4825. VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
  4826. } VkDriverId;
  4827. typedef enum VkShaderFloatControlsIndependence {
  4828. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
  4829. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
  4830. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
  4831. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
  4832. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
  4833. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
  4834. VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
  4835. } VkShaderFloatControlsIndependence;
  4836. typedef enum VkSamplerReductionMode {
  4837. VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
  4838. VK_SAMPLER_REDUCTION_MODE_MIN = 1,
  4839. VK_SAMPLER_REDUCTION_MODE_MAX = 2,
  4840. VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
  4841. VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
  4842. VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
  4843. VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
  4844. } VkSamplerReductionMode;
  4845. typedef enum VkSemaphoreType {
  4846. VK_SEMAPHORE_TYPE_BINARY = 0,
  4847. VK_SEMAPHORE_TYPE_TIMELINE = 1,
  4848. VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
  4849. VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
  4850. VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
  4851. } VkSemaphoreType;
  4852. typedef enum VkResolveModeFlagBits {
  4853. VK_RESOLVE_MODE_NONE = 0,
  4854. VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
  4855. VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
  4856. VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
  4857. VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
  4858. VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
  4859. VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
  4860. VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
  4861. VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
  4862. VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
  4863. VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4864. } VkResolveModeFlagBits;
  4865. typedef VkFlags VkResolveModeFlags;
  4866. typedef enum VkDescriptorBindingFlagBits {
  4867. VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
  4868. VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
  4869. VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
  4870. VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
  4871. VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
  4872. VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
  4873. VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
  4874. VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
  4875. VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4876. } VkDescriptorBindingFlagBits;
  4877. typedef VkFlags VkDescriptorBindingFlags;
  4878. typedef enum VkSemaphoreWaitFlagBits {
  4879. VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
  4880. VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
  4881. VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  4882. } VkSemaphoreWaitFlagBits;
  4883. typedef VkFlags VkSemaphoreWaitFlags;
  4884. typedef struct VkPhysicalDeviceVulkan11Features {
  4885. VkStructureType sType;
  4886. void* pNext;
  4887. VkBool32 storageBuffer16BitAccess;
  4888. VkBool32 uniformAndStorageBuffer16BitAccess;
  4889. VkBool32 storagePushConstant16;
  4890. VkBool32 storageInputOutput16;
  4891. VkBool32 multiview;
  4892. VkBool32 multiviewGeometryShader;
  4893. VkBool32 multiviewTessellationShader;
  4894. VkBool32 variablePointersStorageBuffer;
  4895. VkBool32 variablePointers;
  4896. VkBool32 protectedMemory;
  4897. VkBool32 samplerYcbcrConversion;
  4898. VkBool32 shaderDrawParameters;
  4899. } VkPhysicalDeviceVulkan11Features;
  4900. typedef struct VkPhysicalDeviceVulkan11Properties {
  4901. VkStructureType sType;
  4902. void* pNext;
  4903. uint8_t deviceUUID[VK_UUID_SIZE];
  4904. uint8_t driverUUID[VK_UUID_SIZE];
  4905. uint8_t deviceLUID[VK_LUID_SIZE];
  4906. uint32_t deviceNodeMask;
  4907. VkBool32 deviceLUIDValid;
  4908. uint32_t subgroupSize;
  4909. VkShaderStageFlags subgroupSupportedStages;
  4910. VkSubgroupFeatureFlags subgroupSupportedOperations;
  4911. VkBool32 subgroupQuadOperationsInAllStages;
  4912. VkPointClippingBehavior pointClippingBehavior;
  4913. uint32_t maxMultiviewViewCount;
  4914. uint32_t maxMultiviewInstanceIndex;
  4915. VkBool32 protectedNoFault;
  4916. uint32_t maxPerSetDescriptors;
  4917. VkDeviceSize maxMemoryAllocationSize;
  4918. } VkPhysicalDeviceVulkan11Properties;
  4919. typedef struct VkPhysicalDeviceVulkan12Features {
  4920. VkStructureType sType;
  4921. void* pNext;
  4922. VkBool32 samplerMirrorClampToEdge;
  4923. VkBool32 drawIndirectCount;
  4924. VkBool32 storageBuffer8BitAccess;
  4925. VkBool32 uniformAndStorageBuffer8BitAccess;
  4926. VkBool32 storagePushConstant8;
  4927. VkBool32 shaderBufferInt64Atomics;
  4928. VkBool32 shaderSharedInt64Atomics;
  4929. VkBool32 shaderFloat16;
  4930. VkBool32 shaderInt8;
  4931. VkBool32 descriptorIndexing;
  4932. VkBool32 shaderInputAttachmentArrayDynamicIndexing;
  4933. VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
  4934. VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
  4935. VkBool32 shaderUniformBufferArrayNonUniformIndexing;
  4936. VkBool32 shaderSampledImageArrayNonUniformIndexing;
  4937. VkBool32 shaderStorageBufferArrayNonUniformIndexing;
  4938. VkBool32 shaderStorageImageArrayNonUniformIndexing;
  4939. VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
  4940. VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
  4941. VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
  4942. VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
  4943. VkBool32 descriptorBindingSampledImageUpdateAfterBind;
  4944. VkBool32 descriptorBindingStorageImageUpdateAfterBind;
  4945. VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
  4946. VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
  4947. VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
  4948. VkBool32 descriptorBindingUpdateUnusedWhilePending;
  4949. VkBool32 descriptorBindingPartiallyBound;
  4950. VkBool32 descriptorBindingVariableDescriptorCount;
  4951. VkBool32 runtimeDescriptorArray;
  4952. VkBool32 samplerFilterMinmax;
  4953. VkBool32 scalarBlockLayout;
  4954. VkBool32 imagelessFramebuffer;
  4955. VkBool32 uniformBufferStandardLayout;
  4956. VkBool32 shaderSubgroupExtendedTypes;
  4957. VkBool32 separateDepthStencilLayouts;
  4958. VkBool32 hostQueryReset;
  4959. VkBool32 timelineSemaphore;
  4960. VkBool32 bufferDeviceAddress;
  4961. VkBool32 bufferDeviceAddressCaptureReplay;
  4962. VkBool32 bufferDeviceAddressMultiDevice;
  4963. VkBool32 vulkanMemoryModel;
  4964. VkBool32 vulkanMemoryModelDeviceScope;
  4965. VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
  4966. VkBool32 shaderOutputViewportIndex;
  4967. VkBool32 shaderOutputLayer;
  4968. VkBool32 subgroupBroadcastDynamicId;
  4969. } VkPhysicalDeviceVulkan12Features;
  4970. typedef struct VkConformanceVersion {
  4971. uint8_t major;
  4972. uint8_t minor;
  4973. uint8_t subminor;
  4974. uint8_t patch;
  4975. } VkConformanceVersion;
  4976. typedef struct VkPhysicalDeviceVulkan12Properties {
  4977. VkStructureType sType;
  4978. void* pNext;
  4979. VkDriverId driverID;
  4980. char driverName[VK_MAX_DRIVER_NAME_SIZE];
  4981. char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
  4982. VkConformanceVersion conformanceVersion;
  4983. VkShaderFloatControlsIndependence denormBehaviorIndependence;
  4984. VkShaderFloatControlsIndependence roundingModeIndependence;
  4985. VkBool32 shaderSignedZeroInfNanPreserveFloat16;
  4986. VkBool32 shaderSignedZeroInfNanPreserveFloat32;
  4987. VkBool32 shaderSignedZeroInfNanPreserveFloat64;
  4988. VkBool32 shaderDenormPreserveFloat16;
  4989. VkBool32 shaderDenormPreserveFloat32;
  4990. VkBool32 shaderDenormPreserveFloat64;
  4991. VkBool32 shaderDenormFlushToZeroFloat16;
  4992. VkBool32 shaderDenormFlushToZeroFloat32;
  4993. VkBool32 shaderDenormFlushToZeroFloat64;
  4994. VkBool32 shaderRoundingModeRTEFloat16;
  4995. VkBool32 shaderRoundingModeRTEFloat32;
  4996. VkBool32 shaderRoundingModeRTEFloat64;
  4997. VkBool32 shaderRoundingModeRTZFloat16;
  4998. VkBool32 shaderRoundingModeRTZFloat32;
  4999. VkBool32 shaderRoundingModeRTZFloat64;
  5000. uint32_t maxUpdateAfterBindDescriptorsInAllPools;
  5001. VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
  5002. VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
  5003. VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
  5004. VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
  5005. VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
  5006. VkBool32 robustBufferAccessUpdateAfterBind;
  5007. VkBool32 quadDivergentImplicitLod;
  5008. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
  5009. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
  5010. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
  5011. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
  5012. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
  5013. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
  5014. uint32_t maxPerStageUpdateAfterBindResources;
  5015. uint32_t maxDescriptorSetUpdateAfterBindSamplers;
  5016. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
  5017. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
  5018. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
  5019. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
  5020. uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
  5021. uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
  5022. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
  5023. VkResolveModeFlags supportedDepthResolveModes;
  5024. VkResolveModeFlags supportedStencilResolveModes;
  5025. VkBool32 independentResolveNone;
  5026. VkBool32 independentResolve;
  5027. VkBool32 filterMinmaxSingleComponentFormats;
  5028. VkBool32 filterMinmaxImageComponentMapping;
  5029. uint64_t maxTimelineSemaphoreValueDifference;
  5030. VkSampleCountFlags framebufferIntegerColorSampleCounts;
  5031. } VkPhysicalDeviceVulkan12Properties;
  5032. typedef struct VkImageFormatListCreateInfo {
  5033. VkStructureType sType;
  5034. const void* pNext;
  5035. uint32_t viewFormatCount;
  5036. const VkFormat* pViewFormats;
  5037. } VkImageFormatListCreateInfo;
  5038. typedef struct VkAttachmentDescription2 {
  5039. VkStructureType sType;
  5040. const void* pNext;
  5041. VkAttachmentDescriptionFlags flags;
  5042. VkFormat format;
  5043. VkSampleCountFlagBits samples;
  5044. VkAttachmentLoadOp loadOp;
  5045. VkAttachmentStoreOp storeOp;
  5046. VkAttachmentLoadOp stencilLoadOp;
  5047. VkAttachmentStoreOp stencilStoreOp;
  5048. VkImageLayout initialLayout;
  5049. VkImageLayout finalLayout;
  5050. } VkAttachmentDescription2;
  5051. typedef struct VkAttachmentReference2 {
  5052. VkStructureType sType;
  5053. const void* pNext;
  5054. uint32_t attachment;
  5055. VkImageLayout layout;
  5056. VkImageAspectFlags aspectMask;
  5057. } VkAttachmentReference2;
  5058. typedef struct VkSubpassDescription2 {
  5059. VkStructureType sType;
  5060. const void* pNext;
  5061. VkSubpassDescriptionFlags flags;
  5062. VkPipelineBindPoint pipelineBindPoint;
  5063. uint32_t viewMask;
  5064. uint32_t inputAttachmentCount;
  5065. const VkAttachmentReference2* pInputAttachments;
  5066. uint32_t colorAttachmentCount;
  5067. const VkAttachmentReference2* pColorAttachments;
  5068. const VkAttachmentReference2* pResolveAttachments;
  5069. const VkAttachmentReference2* pDepthStencilAttachment;
  5070. uint32_t preserveAttachmentCount;
  5071. const uint32_t* pPreserveAttachments;
  5072. } VkSubpassDescription2;
  5073. typedef struct VkSubpassDependency2 {
  5074. VkStructureType sType;
  5075. const void* pNext;
  5076. uint32_t srcSubpass;
  5077. uint32_t dstSubpass;
  5078. VkPipelineStageFlags srcStageMask;
  5079. VkPipelineStageFlags dstStageMask;
  5080. VkAccessFlags srcAccessMask;
  5081. VkAccessFlags dstAccessMask;
  5082. VkDependencyFlags dependencyFlags;
  5083. int32_t viewOffset;
  5084. } VkSubpassDependency2;
  5085. typedef struct VkRenderPassCreateInfo2 {
  5086. VkStructureType sType;
  5087. const void* pNext;
  5088. VkRenderPassCreateFlags flags;
  5089. uint32_t attachmentCount;
  5090. const VkAttachmentDescription2* pAttachments;
  5091. uint32_t subpassCount;
  5092. const VkSubpassDescription2* pSubpasses;
  5093. uint32_t dependencyCount;
  5094. const VkSubpassDependency2* pDependencies;
  5095. uint32_t correlatedViewMaskCount;
  5096. const uint32_t* pCorrelatedViewMasks;
  5097. } VkRenderPassCreateInfo2;
  5098. typedef struct VkSubpassBeginInfo {
  5099. VkStructureType sType;
  5100. const void* pNext;
  5101. VkSubpassContents contents;
  5102. } VkSubpassBeginInfo;
  5103. typedef struct VkSubpassEndInfo {
  5104. VkStructureType sType;
  5105. const void* pNext;
  5106. } VkSubpassEndInfo;
  5107. typedef struct VkPhysicalDevice8BitStorageFeatures {
  5108. VkStructureType sType;
  5109. void* pNext;
  5110. VkBool32 storageBuffer8BitAccess;
  5111. VkBool32 uniformAndStorageBuffer8BitAccess;
  5112. VkBool32 storagePushConstant8;
  5113. } VkPhysicalDevice8BitStorageFeatures;
  5114. typedef struct VkPhysicalDeviceDriverProperties {
  5115. VkStructureType sType;
  5116. void* pNext;
  5117. VkDriverId driverID;
  5118. char driverName[VK_MAX_DRIVER_NAME_SIZE];
  5119. char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
  5120. VkConformanceVersion conformanceVersion;
  5121. } VkPhysicalDeviceDriverProperties;
  5122. typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
  5123. VkStructureType sType;
  5124. void* pNext;
  5125. VkBool32 shaderBufferInt64Atomics;
  5126. VkBool32 shaderSharedInt64Atomics;
  5127. } VkPhysicalDeviceShaderAtomicInt64Features;
  5128. typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
  5129. VkStructureType sType;
  5130. void* pNext;
  5131. VkBool32 shaderFloat16;
  5132. VkBool32 shaderInt8;
  5133. } VkPhysicalDeviceShaderFloat16Int8Features;
  5134. typedef struct VkPhysicalDeviceFloatControlsProperties {
  5135. VkStructureType sType;
  5136. void* pNext;
  5137. VkShaderFloatControlsIndependence denormBehaviorIndependence;
  5138. VkShaderFloatControlsIndependence roundingModeIndependence;
  5139. VkBool32 shaderSignedZeroInfNanPreserveFloat16;
  5140. VkBool32 shaderSignedZeroInfNanPreserveFloat32;
  5141. VkBool32 shaderSignedZeroInfNanPreserveFloat64;
  5142. VkBool32 shaderDenormPreserveFloat16;
  5143. VkBool32 shaderDenormPreserveFloat32;
  5144. VkBool32 shaderDenormPreserveFloat64;
  5145. VkBool32 shaderDenormFlushToZeroFloat16;
  5146. VkBool32 shaderDenormFlushToZeroFloat32;
  5147. VkBool32 shaderDenormFlushToZeroFloat64;
  5148. VkBool32 shaderRoundingModeRTEFloat16;
  5149. VkBool32 shaderRoundingModeRTEFloat32;
  5150. VkBool32 shaderRoundingModeRTEFloat64;
  5151. VkBool32 shaderRoundingModeRTZFloat16;
  5152. VkBool32 shaderRoundingModeRTZFloat32;
  5153. VkBool32 shaderRoundingModeRTZFloat64;
  5154. } VkPhysicalDeviceFloatControlsProperties;
  5155. typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
  5156. VkStructureType sType;
  5157. const void* pNext;
  5158. uint32_t bindingCount;
  5159. const VkDescriptorBindingFlags* pBindingFlags;
  5160. } VkDescriptorSetLayoutBindingFlagsCreateInfo;
  5161. typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
  5162. VkStructureType sType;
  5163. void* pNext;
  5164. VkBool32 shaderInputAttachmentArrayDynamicIndexing;
  5165. VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
  5166. VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
  5167. VkBool32 shaderUniformBufferArrayNonUniformIndexing;
  5168. VkBool32 shaderSampledImageArrayNonUniformIndexing;
  5169. VkBool32 shaderStorageBufferArrayNonUniformIndexing;
  5170. VkBool32 shaderStorageImageArrayNonUniformIndexing;
  5171. VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
  5172. VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
  5173. VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
  5174. VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
  5175. VkBool32 descriptorBindingSampledImageUpdateAfterBind;
  5176. VkBool32 descriptorBindingStorageImageUpdateAfterBind;
  5177. VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
  5178. VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
  5179. VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
  5180. VkBool32 descriptorBindingUpdateUnusedWhilePending;
  5181. VkBool32 descriptorBindingPartiallyBound;
  5182. VkBool32 descriptorBindingVariableDescriptorCount;
  5183. VkBool32 runtimeDescriptorArray;
  5184. } VkPhysicalDeviceDescriptorIndexingFeatures;
  5185. typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
  5186. VkStructureType sType;
  5187. void* pNext;
  5188. uint32_t maxUpdateAfterBindDescriptorsInAllPools;
  5189. VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
  5190. VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
  5191. VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
  5192. VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
  5193. VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
  5194. VkBool32 robustBufferAccessUpdateAfterBind;
  5195. VkBool32 quadDivergentImplicitLod;
  5196. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
  5197. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
  5198. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
  5199. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
  5200. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
  5201. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
  5202. uint32_t maxPerStageUpdateAfterBindResources;
  5203. uint32_t maxDescriptorSetUpdateAfterBindSamplers;
  5204. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
  5205. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
  5206. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
  5207. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
  5208. uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
  5209. uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
  5210. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
  5211. } VkPhysicalDeviceDescriptorIndexingProperties;
  5212. typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
  5213. VkStructureType sType;
  5214. const void* pNext;
  5215. uint32_t descriptorSetCount;
  5216. const uint32_t* pDescriptorCounts;
  5217. } VkDescriptorSetVariableDescriptorCountAllocateInfo;
  5218. typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
  5219. VkStructureType sType;
  5220. void* pNext;
  5221. uint32_t maxVariableDescriptorCount;
  5222. } VkDescriptorSetVariableDescriptorCountLayoutSupport;
  5223. typedef struct VkSubpassDescriptionDepthStencilResolve {
  5224. VkStructureType sType;
  5225. const void* pNext;
  5226. VkResolveModeFlagBits depthResolveMode;
  5227. VkResolveModeFlagBits stencilResolveMode;
  5228. const VkAttachmentReference2* pDepthStencilResolveAttachment;
  5229. } VkSubpassDescriptionDepthStencilResolve;
  5230. typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
  5231. VkStructureType sType;
  5232. void* pNext;
  5233. VkResolveModeFlags supportedDepthResolveModes;
  5234. VkResolveModeFlags supportedStencilResolveModes;
  5235. VkBool32 independentResolveNone;
  5236. VkBool32 independentResolve;
  5237. } VkPhysicalDeviceDepthStencilResolveProperties;
  5238. typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
  5239. VkStructureType sType;
  5240. void* pNext;
  5241. VkBool32 scalarBlockLayout;
  5242. } VkPhysicalDeviceScalarBlockLayoutFeatures;
  5243. typedef struct VkImageStencilUsageCreateInfo {
  5244. VkStructureType sType;
  5245. const void* pNext;
  5246. VkImageUsageFlags stencilUsage;
  5247. } VkImageStencilUsageCreateInfo;
  5248. typedef struct VkSamplerReductionModeCreateInfo {
  5249. VkStructureType sType;
  5250. const void* pNext;
  5251. VkSamplerReductionMode reductionMode;
  5252. } VkSamplerReductionModeCreateInfo;
  5253. typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
  5254. VkStructureType sType;
  5255. void* pNext;
  5256. VkBool32 filterMinmaxSingleComponentFormats;
  5257. VkBool32 filterMinmaxImageComponentMapping;
  5258. } VkPhysicalDeviceSamplerFilterMinmaxProperties;
  5259. typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
  5260. VkStructureType sType;
  5261. void* pNext;
  5262. VkBool32 vulkanMemoryModel;
  5263. VkBool32 vulkanMemoryModelDeviceScope;
  5264. VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
  5265. } VkPhysicalDeviceVulkanMemoryModelFeatures;
  5266. typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
  5267. VkStructureType sType;
  5268. void* pNext;
  5269. VkBool32 imagelessFramebuffer;
  5270. } VkPhysicalDeviceImagelessFramebufferFeatures;
  5271. typedef struct VkFramebufferAttachmentImageInfo {
  5272. VkStructureType sType;
  5273. const void* pNext;
  5274. VkImageCreateFlags flags;
  5275. VkImageUsageFlags usage;
  5276. uint32_t width;
  5277. uint32_t height;
  5278. uint32_t layerCount;
  5279. uint32_t viewFormatCount;
  5280. const VkFormat* pViewFormats;
  5281. } VkFramebufferAttachmentImageInfo;
  5282. typedef struct VkFramebufferAttachmentsCreateInfo {
  5283. VkStructureType sType;
  5284. const void* pNext;
  5285. uint32_t attachmentImageInfoCount;
  5286. const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
  5287. } VkFramebufferAttachmentsCreateInfo;
  5288. typedef struct VkRenderPassAttachmentBeginInfo {
  5289. VkStructureType sType;
  5290. const void* pNext;
  5291. uint32_t attachmentCount;
  5292. const VkImageView* pAttachments;
  5293. } VkRenderPassAttachmentBeginInfo;
  5294. typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
  5295. VkStructureType sType;
  5296. void* pNext;
  5297. VkBool32 uniformBufferStandardLayout;
  5298. } VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
  5299. typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
  5300. VkStructureType sType;
  5301. void* pNext;
  5302. VkBool32 shaderSubgroupExtendedTypes;
  5303. } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
  5304. typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
  5305. VkStructureType sType;
  5306. void* pNext;
  5307. VkBool32 separateDepthStencilLayouts;
  5308. } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
  5309. typedef struct VkAttachmentReferenceStencilLayout {
  5310. VkStructureType sType;
  5311. void* pNext;
  5312. VkImageLayout stencilLayout;
  5313. } VkAttachmentReferenceStencilLayout;
  5314. typedef struct VkAttachmentDescriptionStencilLayout {
  5315. VkStructureType sType;
  5316. void* pNext;
  5317. VkImageLayout stencilInitialLayout;
  5318. VkImageLayout stencilFinalLayout;
  5319. } VkAttachmentDescriptionStencilLayout;
  5320. typedef struct VkPhysicalDeviceHostQueryResetFeatures {
  5321. VkStructureType sType;
  5322. void* pNext;
  5323. VkBool32 hostQueryReset;
  5324. } VkPhysicalDeviceHostQueryResetFeatures;
  5325. typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
  5326. VkStructureType sType;
  5327. void* pNext;
  5328. VkBool32 timelineSemaphore;
  5329. } VkPhysicalDeviceTimelineSemaphoreFeatures;
  5330. typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
  5331. VkStructureType sType;
  5332. void* pNext;
  5333. uint64_t maxTimelineSemaphoreValueDifference;
  5334. } VkPhysicalDeviceTimelineSemaphoreProperties;
  5335. typedef struct VkSemaphoreTypeCreateInfo {
  5336. VkStructureType sType;
  5337. const void* pNext;
  5338. VkSemaphoreType semaphoreType;
  5339. uint64_t initialValue;
  5340. } VkSemaphoreTypeCreateInfo;
  5341. typedef struct VkTimelineSemaphoreSubmitInfo {
  5342. VkStructureType sType;
  5343. const void* pNext;
  5344. uint32_t waitSemaphoreValueCount;
  5345. const uint64_t* pWaitSemaphoreValues;
  5346. uint32_t signalSemaphoreValueCount;
  5347. const uint64_t* pSignalSemaphoreValues;
  5348. } VkTimelineSemaphoreSubmitInfo;
  5349. typedef struct VkSemaphoreWaitInfo {
  5350. VkStructureType sType;
  5351. const void* pNext;
  5352. VkSemaphoreWaitFlags flags;
  5353. uint32_t semaphoreCount;
  5354. const VkSemaphore* pSemaphores;
  5355. const uint64_t* pValues;
  5356. } VkSemaphoreWaitInfo;
  5357. typedef struct VkSemaphoreSignalInfo {
  5358. VkStructureType sType;
  5359. const void* pNext;
  5360. VkSemaphore semaphore;
  5361. uint64_t value;
  5362. } VkSemaphoreSignalInfo;
  5363. typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
  5364. VkStructureType sType;
  5365. void* pNext;
  5366. VkBool32 bufferDeviceAddress;
  5367. VkBool32 bufferDeviceAddressCaptureReplay;
  5368. VkBool32 bufferDeviceAddressMultiDevice;
  5369. } VkPhysicalDeviceBufferDeviceAddressFeatures;
  5370. typedef struct VkBufferDeviceAddressInfo {
  5371. VkStructureType sType;
  5372. const void* pNext;
  5373. VkBuffer buffer;
  5374. } VkBufferDeviceAddressInfo;
  5375. typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
  5376. VkStructureType sType;
  5377. const void* pNext;
  5378. uint64_t opaqueCaptureAddress;
  5379. } VkBufferOpaqueCaptureAddressCreateInfo;
  5380. typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
  5381. VkStructureType sType;
  5382. const void* pNext;
  5383. uint64_t opaqueCaptureAddress;
  5384. } VkMemoryOpaqueCaptureAddressAllocateInfo;
  5385. typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
  5386. VkStructureType sType;
  5387. const void* pNext;
  5388. VkDeviceMemory memory;
  5389. } VkDeviceMemoryOpaqueCaptureAddressInfo;
  5390. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  5391. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  5392. typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
  5393. typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
  5394. typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
  5395. typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
  5396. typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  5397. typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
  5398. typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
  5399. typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
  5400. typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  5401. typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  5402. typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
  5403. #ifndef VK_NO_PROTOTYPES
  5404. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
  5405. VkCommandBuffer commandBuffer,
  5406. VkBuffer buffer,
  5407. VkDeviceSize offset,
  5408. VkBuffer countBuffer,
  5409. VkDeviceSize countBufferOffset,
  5410. uint32_t maxDrawCount,
  5411. uint32_t stride);
  5412. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
  5413. VkCommandBuffer commandBuffer,
  5414. VkBuffer buffer,
  5415. VkDeviceSize offset,
  5416. VkBuffer countBuffer,
  5417. VkDeviceSize countBufferOffset,
  5418. uint32_t maxDrawCount,
  5419. uint32_t stride);
  5420. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
  5421. VkDevice device,
  5422. const VkRenderPassCreateInfo2* pCreateInfo,
  5423. const VkAllocationCallbacks* pAllocator,
  5424. VkRenderPass* pRenderPass);
  5425. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
  5426. VkCommandBuffer commandBuffer,
  5427. const VkRenderPassBeginInfo* pRenderPassBegin,
  5428. const VkSubpassBeginInfo* pSubpassBeginInfo);
  5429. VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
  5430. VkCommandBuffer commandBuffer,
  5431. const VkSubpassBeginInfo* pSubpassBeginInfo,
  5432. const VkSubpassEndInfo* pSubpassEndInfo);
  5433. VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
  5434. VkCommandBuffer commandBuffer,
  5435. const VkSubpassEndInfo* pSubpassEndInfo);
  5436. VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
  5437. VkDevice device,
  5438. VkQueryPool queryPool,
  5439. uint32_t firstQuery,
  5440. uint32_t queryCount);
  5441. VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
  5442. VkDevice device,
  5443. VkSemaphore semaphore,
  5444. uint64_t* pValue);
  5445. VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
  5446. VkDevice device,
  5447. const VkSemaphoreWaitInfo* pWaitInfo,
  5448. uint64_t timeout);
  5449. VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
  5450. VkDevice device,
  5451. const VkSemaphoreSignalInfo* pSignalInfo);
  5452. VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
  5453. VkDevice device,
  5454. const VkBufferDeviceAddressInfo* pInfo);
  5455. VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
  5456. VkDevice device,
  5457. const VkBufferDeviceAddressInfo* pInfo);
  5458. VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
  5459. VkDevice device,
  5460. const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
  5461. #endif
  5462. #define VK_KHR_surface 1
  5463. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
  5464. #define VK_KHR_SURFACE_SPEC_VERSION 25
  5465. #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
  5466. typedef enum VkPresentModeKHR {
  5467. VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
  5468. VK_PRESENT_MODE_MAILBOX_KHR = 1,
  5469. VK_PRESENT_MODE_FIFO_KHR = 2,
  5470. VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
  5471. VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
  5472. VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
  5473. VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  5474. } VkPresentModeKHR;
  5475. typedef enum VkColorSpaceKHR {
  5476. VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
  5477. VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
  5478. VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
  5479. VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
  5480. VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
  5481. VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
  5482. VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
  5483. VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
  5484. VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
  5485. VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
  5486. VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
  5487. VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
  5488. VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
  5489. VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
  5490. VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
  5491. VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
  5492. VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
  5493. VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
  5494. VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
  5495. } VkColorSpaceKHR;
  5496. typedef enum VkSurfaceTransformFlagBitsKHR {
  5497. VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
  5498. VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
  5499. VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
  5500. VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
  5501. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
  5502. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
  5503. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
  5504. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
  5505. VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
  5506. VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  5507. } VkSurfaceTransformFlagBitsKHR;
  5508. typedef enum VkCompositeAlphaFlagBitsKHR {
  5509. VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
  5510. VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
  5511. VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
  5512. VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
  5513. VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  5514. } VkCompositeAlphaFlagBitsKHR;
  5515. typedef VkFlags VkCompositeAlphaFlagsKHR;
  5516. typedef VkFlags VkSurfaceTransformFlagsKHR;
  5517. typedef struct VkSurfaceCapabilitiesKHR {
  5518. uint32_t minImageCount;
  5519. uint32_t maxImageCount;
  5520. VkExtent2D currentExtent;
  5521. VkExtent2D minImageExtent;
  5522. VkExtent2D maxImageExtent;
  5523. uint32_t maxImageArrayLayers;
  5524. VkSurfaceTransformFlagsKHR supportedTransforms;
  5525. VkSurfaceTransformFlagBitsKHR currentTransform;
  5526. VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
  5527. VkImageUsageFlags supportedUsageFlags;
  5528. } VkSurfaceCapabilitiesKHR;
  5529. typedef struct VkSurfaceFormatKHR {
  5530. VkFormat format;
  5531. VkColorSpaceKHR colorSpace;
  5532. } VkSurfaceFormatKHR;
  5533. typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
  5534. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
  5535. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
  5536. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
  5537. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
  5538. #ifndef VK_NO_PROTOTYPES
  5539. VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
  5540. VkInstance instance,
  5541. VkSurfaceKHR surface,
  5542. const VkAllocationCallbacks* pAllocator);
  5543. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
  5544. VkPhysicalDevice physicalDevice,
  5545. uint32_t queueFamilyIndex,
  5546. VkSurfaceKHR surface,
  5547. VkBool32* pSupported);
  5548. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
  5549. VkPhysicalDevice physicalDevice,
  5550. VkSurfaceKHR surface,
  5551. VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
  5552. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
  5553. VkPhysicalDevice physicalDevice,
  5554. VkSurfaceKHR surface,
  5555. uint32_t* pSurfaceFormatCount,
  5556. VkSurfaceFormatKHR* pSurfaceFormats);
  5557. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
  5558. VkPhysicalDevice physicalDevice,
  5559. VkSurfaceKHR surface,
  5560. uint32_t* pPresentModeCount,
  5561. VkPresentModeKHR* pPresentModes);
  5562. #endif
  5563. #define VK_KHR_swapchain 1
  5564. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
  5565. #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
  5566. #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
  5567. typedef enum VkSwapchainCreateFlagBitsKHR {
  5568. VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
  5569. VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
  5570. VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
  5571. VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  5572. } VkSwapchainCreateFlagBitsKHR;
  5573. typedef VkFlags VkSwapchainCreateFlagsKHR;
  5574. typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
  5575. VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
  5576. VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
  5577. VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
  5578. VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
  5579. VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  5580. } VkDeviceGroupPresentModeFlagBitsKHR;
  5581. typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
  5582. typedef struct VkSwapchainCreateInfoKHR {
  5583. VkStructureType sType;
  5584. const void* pNext;
  5585. VkSwapchainCreateFlagsKHR flags;
  5586. VkSurfaceKHR surface;
  5587. uint32_t minImageCount;
  5588. VkFormat imageFormat;
  5589. VkColorSpaceKHR imageColorSpace;
  5590. VkExtent2D imageExtent;
  5591. uint32_t imageArrayLayers;
  5592. VkImageUsageFlags imageUsage;
  5593. VkSharingMode imageSharingMode;
  5594. uint32_t queueFamilyIndexCount;
  5595. const uint32_t* pQueueFamilyIndices;
  5596. VkSurfaceTransformFlagBitsKHR preTransform;
  5597. VkCompositeAlphaFlagBitsKHR compositeAlpha;
  5598. VkPresentModeKHR presentMode;
  5599. VkBool32 clipped;
  5600. VkSwapchainKHR oldSwapchain;
  5601. } VkSwapchainCreateInfoKHR;
  5602. typedef struct VkPresentInfoKHR {
  5603. VkStructureType sType;
  5604. const void* pNext;
  5605. uint32_t waitSemaphoreCount;
  5606. const VkSemaphore* pWaitSemaphores;
  5607. uint32_t swapchainCount;
  5608. const VkSwapchainKHR* pSwapchains;
  5609. const uint32_t* pImageIndices;
  5610. VkResult* pResults;
  5611. } VkPresentInfoKHR;
  5612. typedef struct VkImageSwapchainCreateInfoKHR {
  5613. VkStructureType sType;
  5614. const void* pNext;
  5615. VkSwapchainKHR swapchain;
  5616. } VkImageSwapchainCreateInfoKHR;
  5617. typedef struct VkBindImageMemorySwapchainInfoKHR {
  5618. VkStructureType sType;
  5619. const void* pNext;
  5620. VkSwapchainKHR swapchain;
  5621. uint32_t imageIndex;
  5622. } VkBindImageMemorySwapchainInfoKHR;
  5623. typedef struct VkAcquireNextImageInfoKHR {
  5624. VkStructureType sType;
  5625. const void* pNext;
  5626. VkSwapchainKHR swapchain;
  5627. uint64_t timeout;
  5628. VkSemaphore semaphore;
  5629. VkFence fence;
  5630. uint32_t deviceMask;
  5631. } VkAcquireNextImageInfoKHR;
  5632. typedef struct VkDeviceGroupPresentCapabilitiesKHR {
  5633. VkStructureType sType;
  5634. void* pNext;
  5635. uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
  5636. VkDeviceGroupPresentModeFlagsKHR modes;
  5637. } VkDeviceGroupPresentCapabilitiesKHR;
  5638. typedef struct VkDeviceGroupPresentInfoKHR {
  5639. VkStructureType sType;
  5640. const void* pNext;
  5641. uint32_t swapchainCount;
  5642. const uint32_t* pDeviceMasks;
  5643. VkDeviceGroupPresentModeFlagBitsKHR mode;
  5644. } VkDeviceGroupPresentInfoKHR;
  5645. typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
  5646. VkStructureType sType;
  5647. const void* pNext;
  5648. VkDeviceGroupPresentModeFlagsKHR modes;
  5649. } VkDeviceGroupSwapchainCreateInfoKHR;
  5650. typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
  5651. typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
  5652. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
  5653. typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
  5654. typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
  5655. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
  5656. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
  5657. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
  5658. typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
  5659. #ifndef VK_NO_PROTOTYPES
  5660. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
  5661. VkDevice device,
  5662. const VkSwapchainCreateInfoKHR* pCreateInfo,
  5663. const VkAllocationCallbacks* pAllocator,
  5664. VkSwapchainKHR* pSwapchain);
  5665. VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
  5666. VkDevice device,
  5667. VkSwapchainKHR swapchain,
  5668. const VkAllocationCallbacks* pAllocator);
  5669. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
  5670. VkDevice device,
  5671. VkSwapchainKHR swapchain,
  5672. uint32_t* pSwapchainImageCount,
  5673. VkImage* pSwapchainImages);
  5674. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
  5675. VkDevice device,
  5676. VkSwapchainKHR swapchain,
  5677. uint64_t timeout,
  5678. VkSemaphore semaphore,
  5679. VkFence fence,
  5680. uint32_t* pImageIndex);
  5681. VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
  5682. VkQueue queue,
  5683. const VkPresentInfoKHR* pPresentInfo);
  5684. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
  5685. VkDevice device,
  5686. VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
  5687. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
  5688. VkDevice device,
  5689. VkSurfaceKHR surface,
  5690. VkDeviceGroupPresentModeFlagsKHR* pModes);
  5691. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
  5692. VkPhysicalDevice physicalDevice,
  5693. VkSurfaceKHR surface,
  5694. uint32_t* pRectCount,
  5695. VkRect2D* pRects);
  5696. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
  5697. VkDevice device,
  5698. const VkAcquireNextImageInfoKHR* pAcquireInfo,
  5699. uint32_t* pImageIndex);
  5700. #endif
  5701. #define VK_KHR_display 1
  5702. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
  5703. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
  5704. #define VK_KHR_DISPLAY_SPEC_VERSION 23
  5705. #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
  5706. typedef VkFlags VkDisplayModeCreateFlagsKHR;
  5707. typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
  5708. VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
  5709. VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
  5710. VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
  5711. VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
  5712. VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  5713. } VkDisplayPlaneAlphaFlagBitsKHR;
  5714. typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
  5715. typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
  5716. typedef struct VkDisplayModeParametersKHR {
  5717. VkExtent2D visibleRegion;
  5718. uint32_t refreshRate;
  5719. } VkDisplayModeParametersKHR;
  5720. typedef struct VkDisplayModeCreateInfoKHR {
  5721. VkStructureType sType;
  5722. const void* pNext;
  5723. VkDisplayModeCreateFlagsKHR flags;
  5724. VkDisplayModeParametersKHR parameters;
  5725. } VkDisplayModeCreateInfoKHR;
  5726. typedef struct VkDisplayModePropertiesKHR {
  5727. VkDisplayModeKHR displayMode;
  5728. VkDisplayModeParametersKHR parameters;
  5729. } VkDisplayModePropertiesKHR;
  5730. typedef struct VkDisplayPlaneCapabilitiesKHR {
  5731. VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
  5732. VkOffset2D minSrcPosition;
  5733. VkOffset2D maxSrcPosition;
  5734. VkExtent2D minSrcExtent;
  5735. VkExtent2D maxSrcExtent;
  5736. VkOffset2D minDstPosition;
  5737. VkOffset2D maxDstPosition;
  5738. VkExtent2D minDstExtent;
  5739. VkExtent2D maxDstExtent;
  5740. } VkDisplayPlaneCapabilitiesKHR;
  5741. typedef struct VkDisplayPlanePropertiesKHR {
  5742. VkDisplayKHR currentDisplay;
  5743. uint32_t currentStackIndex;
  5744. } VkDisplayPlanePropertiesKHR;
  5745. typedef struct VkDisplayPropertiesKHR {
  5746. VkDisplayKHR display;
  5747. const char* displayName;
  5748. VkExtent2D physicalDimensions;
  5749. VkExtent2D physicalResolution;
  5750. VkSurfaceTransformFlagsKHR supportedTransforms;
  5751. VkBool32 planeReorderPossible;
  5752. VkBool32 persistentContent;
  5753. } VkDisplayPropertiesKHR;
  5754. typedef struct VkDisplaySurfaceCreateInfoKHR {
  5755. VkStructureType sType;
  5756. const void* pNext;
  5757. VkDisplaySurfaceCreateFlagsKHR flags;
  5758. VkDisplayModeKHR displayMode;
  5759. uint32_t planeIndex;
  5760. uint32_t planeStackIndex;
  5761. VkSurfaceTransformFlagBitsKHR transform;
  5762. float globalAlpha;
  5763. VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
  5764. VkExtent2D imageExtent;
  5765. } VkDisplaySurfaceCreateInfoKHR;
  5766. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
  5767. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
  5768. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
  5769. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
  5770. typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
  5771. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
  5772. typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  5773. #ifndef VK_NO_PROTOTYPES
  5774. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
  5775. VkPhysicalDevice physicalDevice,
  5776. uint32_t* pPropertyCount,
  5777. VkDisplayPropertiesKHR* pProperties);
  5778. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
  5779. VkPhysicalDevice physicalDevice,
  5780. uint32_t* pPropertyCount,
  5781. VkDisplayPlanePropertiesKHR* pProperties);
  5782. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
  5783. VkPhysicalDevice physicalDevice,
  5784. uint32_t planeIndex,
  5785. uint32_t* pDisplayCount,
  5786. VkDisplayKHR* pDisplays);
  5787. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
  5788. VkPhysicalDevice physicalDevice,
  5789. VkDisplayKHR display,
  5790. uint32_t* pPropertyCount,
  5791. VkDisplayModePropertiesKHR* pProperties);
  5792. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
  5793. VkPhysicalDevice physicalDevice,
  5794. VkDisplayKHR display,
  5795. const VkDisplayModeCreateInfoKHR* pCreateInfo,
  5796. const VkAllocationCallbacks* pAllocator,
  5797. VkDisplayModeKHR* pMode);
  5798. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
  5799. VkPhysicalDevice physicalDevice,
  5800. VkDisplayModeKHR mode,
  5801. uint32_t planeIndex,
  5802. VkDisplayPlaneCapabilitiesKHR* pCapabilities);
  5803. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
  5804. VkInstance instance,
  5805. const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
  5806. const VkAllocationCallbacks* pAllocator,
  5807. VkSurfaceKHR* pSurface);
  5808. #endif
  5809. #define VK_KHR_display_swapchain 1
  5810. #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
  5811. #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
  5812. typedef struct VkDisplayPresentInfoKHR {
  5813. VkStructureType sType;
  5814. const void* pNext;
  5815. VkRect2D srcRect;
  5816. VkRect2D dstRect;
  5817. VkBool32 persistent;
  5818. } VkDisplayPresentInfoKHR;
  5819. typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
  5820. #ifndef VK_NO_PROTOTYPES
  5821. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
  5822. VkDevice device,
  5823. uint32_t swapchainCount,
  5824. const VkSwapchainCreateInfoKHR* pCreateInfos,
  5825. const VkAllocationCallbacks* pAllocator,
  5826. VkSwapchainKHR* pSwapchains);
  5827. #endif
  5828. #define VK_KHR_sampler_mirror_clamp_to_edge 1
  5829. #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
  5830. #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
  5831. #define VK_KHR_multiview 1
  5832. #define VK_KHR_MULTIVIEW_SPEC_VERSION 1
  5833. #define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
  5834. typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
  5835. typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
  5836. typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
  5837. #define VK_KHR_get_physical_device_properties2 1
  5838. #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
  5839. #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
  5840. typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
  5841. typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
  5842. typedef VkFormatProperties2 VkFormatProperties2KHR;
  5843. typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
  5844. typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
  5845. typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
  5846. typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
  5847. typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
  5848. typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
  5849. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
  5850. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
  5851. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
  5852. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
  5853. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
  5854. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  5855. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
  5856. #ifndef VK_NO_PROTOTYPES
  5857. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
  5858. VkPhysicalDevice physicalDevice,
  5859. VkPhysicalDeviceFeatures2* pFeatures);
  5860. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
  5861. VkPhysicalDevice physicalDevice,
  5862. VkPhysicalDeviceProperties2* pProperties);
  5863. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
  5864. VkPhysicalDevice physicalDevice,
  5865. VkFormat format,
  5866. VkFormatProperties2* pFormatProperties);
  5867. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
  5868. VkPhysicalDevice physicalDevice,
  5869. const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
  5870. VkImageFormatProperties2* pImageFormatProperties);
  5871. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
  5872. VkPhysicalDevice physicalDevice,
  5873. uint32_t* pQueueFamilyPropertyCount,
  5874. VkQueueFamilyProperties2* pQueueFamilyProperties);
  5875. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
  5876. VkPhysicalDevice physicalDevice,
  5877. VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  5878. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
  5879. VkPhysicalDevice physicalDevice,
  5880. const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
  5881. uint32_t* pPropertyCount,
  5882. VkSparseImageFormatProperties2* pProperties);
  5883. #endif
  5884. #define VK_KHR_device_group 1
  5885. #define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
  5886. #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
  5887. typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
  5888. typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
  5889. typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
  5890. typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
  5891. typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
  5892. typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
  5893. typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
  5894. typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
  5895. typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
  5896. typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
  5897. typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
  5898. typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  5899. typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
  5900. 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);
  5901. #ifndef VK_NO_PROTOTYPES
  5902. VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
  5903. VkDevice device,
  5904. uint32_t heapIndex,
  5905. uint32_t localDeviceIndex,
  5906. uint32_t remoteDeviceIndex,
  5907. VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  5908. VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
  5909. VkCommandBuffer commandBuffer,
  5910. uint32_t deviceMask);
  5911. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
  5912. VkCommandBuffer commandBuffer,
  5913. uint32_t baseGroupX,
  5914. uint32_t baseGroupY,
  5915. uint32_t baseGroupZ,
  5916. uint32_t groupCountX,
  5917. uint32_t groupCountY,
  5918. uint32_t groupCountZ);
  5919. #endif
  5920. #define VK_KHR_shader_draw_parameters 1
  5921. #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
  5922. #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
  5923. #define VK_KHR_maintenance1 1
  5924. #define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
  5925. #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
  5926. typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
  5927. typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
  5928. #ifndef VK_NO_PROTOTYPES
  5929. VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
  5930. VkDevice device,
  5931. VkCommandPool commandPool,
  5932. VkCommandPoolTrimFlags flags);
  5933. #endif
  5934. #define VK_KHR_device_group_creation 1
  5935. #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
  5936. #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
  5937. #define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
  5938. typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
  5939. typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
  5940. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  5941. #ifndef VK_NO_PROTOTYPES
  5942. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
  5943. VkInstance instance,
  5944. uint32_t* pPhysicalDeviceGroupCount,
  5945. VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  5946. #endif
  5947. #define VK_KHR_external_memory_capabilities 1
  5948. #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
  5949. #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
  5950. #define VK_LUID_SIZE_KHR VK_LUID_SIZE
  5951. typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
  5952. typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
  5953. typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
  5954. typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
  5955. typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
  5956. typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
  5957. typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
  5958. typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
  5959. typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
  5960. typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
  5961. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
  5962. #ifndef VK_NO_PROTOTYPES
  5963. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
  5964. VkPhysicalDevice physicalDevice,
  5965. const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
  5966. VkExternalBufferProperties* pExternalBufferProperties);
  5967. #endif
  5968. #define VK_KHR_external_memory 1
  5969. #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
  5970. #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
  5971. #define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
  5972. typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
  5973. typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
  5974. typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
  5975. #define VK_KHR_external_memory_fd 1
  5976. #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
  5977. #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
  5978. typedef struct VkImportMemoryFdInfoKHR {
  5979. VkStructureType sType;
  5980. const void* pNext;
  5981. VkExternalMemoryHandleTypeFlagBits handleType;
  5982. int fd;
  5983. } VkImportMemoryFdInfoKHR;
  5984. typedef struct VkMemoryFdPropertiesKHR {
  5985. VkStructureType sType;
  5986. void* pNext;
  5987. uint32_t memoryTypeBits;
  5988. } VkMemoryFdPropertiesKHR;
  5989. typedef struct VkMemoryGetFdInfoKHR {
  5990. VkStructureType sType;
  5991. const void* pNext;
  5992. VkDeviceMemory memory;
  5993. VkExternalMemoryHandleTypeFlagBits handleType;
  5994. } VkMemoryGetFdInfoKHR;
  5995. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
  5996. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
  5997. #ifndef VK_NO_PROTOTYPES
  5998. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
  5999. VkDevice device,
  6000. const VkMemoryGetFdInfoKHR* pGetFdInfo,
  6001. int* pFd);
  6002. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
  6003. VkDevice device,
  6004. VkExternalMemoryHandleTypeFlagBits handleType,
  6005. int fd,
  6006. VkMemoryFdPropertiesKHR* pMemoryFdProperties);
  6007. #endif
  6008. #define VK_KHR_external_semaphore_capabilities 1
  6009. #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
  6010. #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
  6011. typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
  6012. typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
  6013. typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
  6014. typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
  6015. typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
  6016. typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
  6017. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  6018. #ifndef VK_NO_PROTOTYPES
  6019. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
  6020. VkPhysicalDevice physicalDevice,
  6021. const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
  6022. VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  6023. #endif
  6024. #define VK_KHR_external_semaphore 1
  6025. #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
  6026. #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
  6027. typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
  6028. typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
  6029. typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
  6030. #define VK_KHR_external_semaphore_fd 1
  6031. #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
  6032. #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
  6033. typedef struct VkImportSemaphoreFdInfoKHR {
  6034. VkStructureType sType;
  6035. const void* pNext;
  6036. VkSemaphore semaphore;
  6037. VkSemaphoreImportFlags flags;
  6038. VkExternalSemaphoreHandleTypeFlagBits handleType;
  6039. int fd;
  6040. } VkImportSemaphoreFdInfoKHR;
  6041. typedef struct VkSemaphoreGetFdInfoKHR {
  6042. VkStructureType sType;
  6043. const void* pNext;
  6044. VkSemaphore semaphore;
  6045. VkExternalSemaphoreHandleTypeFlagBits handleType;
  6046. } VkSemaphoreGetFdInfoKHR;
  6047. typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
  6048. typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
  6049. #ifndef VK_NO_PROTOTYPES
  6050. VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
  6051. VkDevice device,
  6052. const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
  6053. VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
  6054. VkDevice device,
  6055. const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
  6056. int* pFd);
  6057. #endif
  6058. #define VK_KHR_push_descriptor 1
  6059. #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
  6060. #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
  6061. typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
  6062. VkStructureType sType;
  6063. void* pNext;
  6064. uint32_t maxPushDescriptors;
  6065. } VkPhysicalDevicePushDescriptorPropertiesKHR;
  6066. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
  6067. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
  6068. #ifndef VK_NO_PROTOTYPES
  6069. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
  6070. VkCommandBuffer commandBuffer,
  6071. VkPipelineBindPoint pipelineBindPoint,
  6072. VkPipelineLayout layout,
  6073. uint32_t set,
  6074. uint32_t descriptorWriteCount,
  6075. const VkWriteDescriptorSet* pDescriptorWrites);
  6076. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
  6077. VkCommandBuffer commandBuffer,
  6078. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  6079. VkPipelineLayout layout,
  6080. uint32_t set,
  6081. const void* pData);
  6082. #endif
  6083. #define VK_KHR_shader_float16_int8 1
  6084. #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
  6085. #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
  6086. typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
  6087. typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
  6088. #define VK_KHR_16bit_storage 1
  6089. #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
  6090. #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
  6091. typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
  6092. #define VK_KHR_incremental_present 1
  6093. #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
  6094. #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
  6095. typedef struct VkRectLayerKHR {
  6096. VkOffset2D offset;
  6097. VkExtent2D extent;
  6098. uint32_t layer;
  6099. } VkRectLayerKHR;
  6100. typedef struct VkPresentRegionKHR {
  6101. uint32_t rectangleCount;
  6102. const VkRectLayerKHR* pRectangles;
  6103. } VkPresentRegionKHR;
  6104. typedef struct VkPresentRegionsKHR {
  6105. VkStructureType sType;
  6106. const void* pNext;
  6107. uint32_t swapchainCount;
  6108. const VkPresentRegionKHR* pRegions;
  6109. } VkPresentRegionsKHR;
  6110. #define VK_KHR_descriptor_update_template 1
  6111. typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
  6112. #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
  6113. #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
  6114. typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
  6115. typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
  6116. typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
  6117. typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
  6118. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  6119. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
  6120. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
  6121. #ifndef VK_NO_PROTOTYPES
  6122. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
  6123. VkDevice device,
  6124. const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
  6125. const VkAllocationCallbacks* pAllocator,
  6126. VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  6127. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
  6128. VkDevice device,
  6129. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  6130. const VkAllocationCallbacks* pAllocator);
  6131. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
  6132. VkDevice device,
  6133. VkDescriptorSet descriptorSet,
  6134. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  6135. const void* pData);
  6136. #endif
  6137. #define VK_KHR_imageless_framebuffer 1
  6138. #define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
  6139. #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
  6140. typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
  6141. typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
  6142. typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
  6143. typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
  6144. #define VK_KHR_create_renderpass2 1
  6145. #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
  6146. #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
  6147. typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
  6148. typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
  6149. typedef VkAttachmentReference2 VkAttachmentReference2KHR;
  6150. typedef VkSubpassDescription2 VkSubpassDescription2KHR;
  6151. typedef VkSubpassDependency2 VkSubpassDependency2KHR;
  6152. typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
  6153. typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
  6154. typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
  6155. typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
  6156. typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
  6157. typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
  6158. #ifndef VK_NO_PROTOTYPES
  6159. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
  6160. VkDevice device,
  6161. const VkRenderPassCreateInfo2* pCreateInfo,
  6162. const VkAllocationCallbacks* pAllocator,
  6163. VkRenderPass* pRenderPass);
  6164. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
  6165. VkCommandBuffer commandBuffer,
  6166. const VkRenderPassBeginInfo* pRenderPassBegin,
  6167. const VkSubpassBeginInfo* pSubpassBeginInfo);
  6168. VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
  6169. VkCommandBuffer commandBuffer,
  6170. const VkSubpassBeginInfo* pSubpassBeginInfo,
  6171. const VkSubpassEndInfo* pSubpassEndInfo);
  6172. VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
  6173. VkCommandBuffer commandBuffer,
  6174. const VkSubpassEndInfo* pSubpassEndInfo);
  6175. #endif
  6176. #define VK_KHR_shared_presentable_image 1
  6177. #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
  6178. #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
  6179. typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
  6180. VkStructureType sType;
  6181. void* pNext;
  6182. VkImageUsageFlags sharedPresentSupportedUsageFlags;
  6183. } VkSharedPresentSurfaceCapabilitiesKHR;
  6184. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
  6185. #ifndef VK_NO_PROTOTYPES
  6186. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
  6187. VkDevice device,
  6188. VkSwapchainKHR swapchain);
  6189. #endif
  6190. #define VK_KHR_external_fence_capabilities 1
  6191. #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
  6192. #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
  6193. typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
  6194. typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
  6195. typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
  6196. typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
  6197. typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
  6198. typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
  6199. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
  6200. #ifndef VK_NO_PROTOTYPES
  6201. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
  6202. VkPhysicalDevice physicalDevice,
  6203. const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
  6204. VkExternalFenceProperties* pExternalFenceProperties);
  6205. #endif
  6206. #define VK_KHR_external_fence 1
  6207. #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
  6208. #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
  6209. typedef VkFenceImportFlags VkFenceImportFlagsKHR;
  6210. typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
  6211. typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
  6212. #define VK_KHR_external_fence_fd 1
  6213. #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
  6214. #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
  6215. typedef struct VkImportFenceFdInfoKHR {
  6216. VkStructureType sType;
  6217. const void* pNext;
  6218. VkFence fence;
  6219. VkFenceImportFlags flags;
  6220. VkExternalFenceHandleTypeFlagBits handleType;
  6221. int fd;
  6222. } VkImportFenceFdInfoKHR;
  6223. typedef struct VkFenceGetFdInfoKHR {
  6224. VkStructureType sType;
  6225. const void* pNext;
  6226. VkFence fence;
  6227. VkExternalFenceHandleTypeFlagBits handleType;
  6228. } VkFenceGetFdInfoKHR;
  6229. typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
  6230. typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
  6231. #ifndef VK_NO_PROTOTYPES
  6232. VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
  6233. VkDevice device,
  6234. const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
  6235. VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
  6236. VkDevice device,
  6237. const VkFenceGetFdInfoKHR* pGetFdInfo,
  6238. int* pFd);
  6239. #endif
  6240. #define VK_KHR_performance_query 1
  6241. #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
  6242. #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
  6243. typedef enum VkPerformanceCounterUnitKHR {
  6244. VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
  6245. VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
  6246. VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
  6247. VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
  6248. VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
  6249. VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
  6250. VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
  6251. VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
  6252. VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
  6253. VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
  6254. VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
  6255. VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
  6256. } VkPerformanceCounterUnitKHR;
  6257. typedef enum VkPerformanceCounterScopeKHR {
  6258. VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
  6259. VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
  6260. VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
  6261. VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
  6262. VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
  6263. VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
  6264. VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
  6265. } VkPerformanceCounterScopeKHR;
  6266. typedef enum VkPerformanceCounterStorageKHR {
  6267. VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
  6268. VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
  6269. VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
  6270. VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
  6271. VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
  6272. VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
  6273. VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
  6274. } VkPerformanceCounterStorageKHR;
  6275. typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
  6276. VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
  6277. VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
  6278. VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
  6279. VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
  6280. VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  6281. } VkPerformanceCounterDescriptionFlagBitsKHR;
  6282. typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
  6283. typedef enum VkAcquireProfilingLockFlagBitsKHR {
  6284. VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  6285. } VkAcquireProfilingLockFlagBitsKHR;
  6286. typedef VkFlags VkAcquireProfilingLockFlagsKHR;
  6287. typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
  6288. VkStructureType sType;
  6289. void* pNext;
  6290. VkBool32 performanceCounterQueryPools;
  6291. VkBool32 performanceCounterMultipleQueryPools;
  6292. } VkPhysicalDevicePerformanceQueryFeaturesKHR;
  6293. typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
  6294. VkStructureType sType;
  6295. void* pNext;
  6296. VkBool32 allowCommandBufferQueryCopies;
  6297. } VkPhysicalDevicePerformanceQueryPropertiesKHR;
  6298. typedef struct VkPerformanceCounterKHR {
  6299. VkStructureType sType;
  6300. void* pNext;
  6301. VkPerformanceCounterUnitKHR unit;
  6302. VkPerformanceCounterScopeKHR scope;
  6303. VkPerformanceCounterStorageKHR storage;
  6304. uint8_t uuid[VK_UUID_SIZE];
  6305. } VkPerformanceCounterKHR;
  6306. typedef struct VkPerformanceCounterDescriptionKHR {
  6307. VkStructureType sType;
  6308. void* pNext;
  6309. VkPerformanceCounterDescriptionFlagsKHR flags;
  6310. char name[VK_MAX_DESCRIPTION_SIZE];
  6311. char category[VK_MAX_DESCRIPTION_SIZE];
  6312. char description[VK_MAX_DESCRIPTION_SIZE];
  6313. } VkPerformanceCounterDescriptionKHR;
  6314. typedef struct VkQueryPoolPerformanceCreateInfoKHR {
  6315. VkStructureType sType;
  6316. const void* pNext;
  6317. uint32_t queueFamilyIndex;
  6318. uint32_t counterIndexCount;
  6319. const uint32_t* pCounterIndices;
  6320. } VkQueryPoolPerformanceCreateInfoKHR;
  6321. typedef union VkPerformanceCounterResultKHR {
  6322. int32_t int32;
  6323. int64_t int64;
  6324. uint32_t uint32;
  6325. uint64_t uint64;
  6326. float float32;
  6327. double float64;
  6328. } VkPerformanceCounterResultKHR;
  6329. typedef struct VkAcquireProfilingLockInfoKHR {
  6330. VkStructureType sType;
  6331. const void* pNext;
  6332. VkAcquireProfilingLockFlagsKHR flags;
  6333. uint64_t timeout;
  6334. } VkAcquireProfilingLockInfoKHR;
  6335. typedef struct VkPerformanceQuerySubmitInfoKHR {
  6336. VkStructureType sType;
  6337. const void* pNext;
  6338. uint32_t counterPassIndex;
  6339. } VkPerformanceQuerySubmitInfoKHR;
  6340. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
  6341. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
  6342. typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
  6343. typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
  6344. #ifndef VK_NO_PROTOTYPES
  6345. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
  6346. VkPhysicalDevice physicalDevice,
  6347. uint32_t queueFamilyIndex,
  6348. uint32_t* pCounterCount,
  6349. VkPerformanceCounterKHR* pCounters,
  6350. VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
  6351. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
  6352. VkPhysicalDevice physicalDevice,
  6353. const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
  6354. uint32_t* pNumPasses);
  6355. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
  6356. VkDevice device,
  6357. const VkAcquireProfilingLockInfoKHR* pInfo);
  6358. VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
  6359. VkDevice device);
  6360. #endif
  6361. #define VK_KHR_maintenance2 1
  6362. #define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
  6363. #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
  6364. typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
  6365. typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
  6366. typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
  6367. typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
  6368. typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
  6369. typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
  6370. typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
  6371. #define VK_KHR_get_surface_capabilities2 1
  6372. #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
  6373. #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
  6374. typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
  6375. VkStructureType sType;
  6376. const void* pNext;
  6377. VkSurfaceKHR surface;
  6378. } VkPhysicalDeviceSurfaceInfo2KHR;
  6379. typedef struct VkSurfaceCapabilities2KHR {
  6380. VkStructureType sType;
  6381. void* pNext;
  6382. VkSurfaceCapabilitiesKHR surfaceCapabilities;
  6383. } VkSurfaceCapabilities2KHR;
  6384. typedef struct VkSurfaceFormat2KHR {
  6385. VkStructureType sType;
  6386. void* pNext;
  6387. VkSurfaceFormatKHR surfaceFormat;
  6388. } VkSurfaceFormat2KHR;
  6389. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
  6390. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
  6391. #ifndef VK_NO_PROTOTYPES
  6392. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
  6393. VkPhysicalDevice physicalDevice,
  6394. const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
  6395. VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
  6396. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
  6397. VkPhysicalDevice physicalDevice,
  6398. const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
  6399. uint32_t* pSurfaceFormatCount,
  6400. VkSurfaceFormat2KHR* pSurfaceFormats);
  6401. #endif
  6402. #define VK_KHR_variable_pointers 1
  6403. #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
  6404. #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
  6405. typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
  6406. typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
  6407. #define VK_KHR_get_display_properties2 1
  6408. #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
  6409. #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
  6410. typedef struct VkDisplayProperties2KHR {
  6411. VkStructureType sType;
  6412. void* pNext;
  6413. VkDisplayPropertiesKHR displayProperties;
  6414. } VkDisplayProperties2KHR;
  6415. typedef struct VkDisplayPlaneProperties2KHR {
  6416. VkStructureType sType;
  6417. void* pNext;
  6418. VkDisplayPlanePropertiesKHR displayPlaneProperties;
  6419. } VkDisplayPlaneProperties2KHR;
  6420. typedef struct VkDisplayModeProperties2KHR {
  6421. VkStructureType sType;
  6422. void* pNext;
  6423. VkDisplayModePropertiesKHR displayModeProperties;
  6424. } VkDisplayModeProperties2KHR;
  6425. typedef struct VkDisplayPlaneInfo2KHR {
  6426. VkStructureType sType;
  6427. const void* pNext;
  6428. VkDisplayModeKHR mode;
  6429. uint32_t planeIndex;
  6430. } VkDisplayPlaneInfo2KHR;
  6431. typedef struct VkDisplayPlaneCapabilities2KHR {
  6432. VkStructureType sType;
  6433. void* pNext;
  6434. VkDisplayPlaneCapabilitiesKHR capabilities;
  6435. } VkDisplayPlaneCapabilities2KHR;
  6436. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
  6437. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
  6438. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
  6439. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
  6440. #ifndef VK_NO_PROTOTYPES
  6441. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
  6442. VkPhysicalDevice physicalDevice,
  6443. uint32_t* pPropertyCount,
  6444. VkDisplayProperties2KHR* pProperties);
  6445. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
  6446. VkPhysicalDevice physicalDevice,
  6447. uint32_t* pPropertyCount,
  6448. VkDisplayPlaneProperties2KHR* pProperties);
  6449. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
  6450. VkPhysicalDevice physicalDevice,
  6451. VkDisplayKHR display,
  6452. uint32_t* pPropertyCount,
  6453. VkDisplayModeProperties2KHR* pProperties);
  6454. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
  6455. VkPhysicalDevice physicalDevice,
  6456. const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
  6457. VkDisplayPlaneCapabilities2KHR* pCapabilities);
  6458. #endif
  6459. #define VK_KHR_dedicated_allocation 1
  6460. #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
  6461. #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
  6462. typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
  6463. typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
  6464. #define VK_KHR_storage_buffer_storage_class 1
  6465. #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
  6466. #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
  6467. #define VK_KHR_relaxed_block_layout 1
  6468. #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
  6469. #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
  6470. #define VK_KHR_get_memory_requirements2 1
  6471. #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
  6472. #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
  6473. typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
  6474. typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
  6475. typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
  6476. typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
  6477. typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
  6478. typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  6479. typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  6480. typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  6481. #ifndef VK_NO_PROTOTYPES
  6482. VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
  6483. VkDevice device,
  6484. const VkImageMemoryRequirementsInfo2* pInfo,
  6485. VkMemoryRequirements2* pMemoryRequirements);
  6486. VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
  6487. VkDevice device,
  6488. const VkBufferMemoryRequirementsInfo2* pInfo,
  6489. VkMemoryRequirements2* pMemoryRequirements);
  6490. VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
  6491. VkDevice device,
  6492. const VkImageSparseMemoryRequirementsInfo2* pInfo,
  6493. uint32_t* pSparseMemoryRequirementCount,
  6494. VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  6495. #endif
  6496. #define VK_KHR_image_format_list 1
  6497. #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
  6498. #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
  6499. typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
  6500. #define VK_KHR_sampler_ycbcr_conversion 1
  6501. typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
  6502. #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
  6503. #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
  6504. typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
  6505. typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
  6506. typedef VkChromaLocation VkChromaLocationKHR;
  6507. typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
  6508. typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
  6509. typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
  6510. typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
  6511. typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
  6512. typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
  6513. typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
  6514. typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
  6515. #ifndef VK_NO_PROTOTYPES
  6516. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
  6517. VkDevice device,
  6518. const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
  6519. const VkAllocationCallbacks* pAllocator,
  6520. VkSamplerYcbcrConversion* pYcbcrConversion);
  6521. VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
  6522. VkDevice device,
  6523. VkSamplerYcbcrConversion ycbcrConversion,
  6524. const VkAllocationCallbacks* pAllocator);
  6525. #endif
  6526. #define VK_KHR_bind_memory2 1
  6527. #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
  6528. #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
  6529. typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
  6530. typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
  6531. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
  6532. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
  6533. #ifndef VK_NO_PROTOTYPES
  6534. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
  6535. VkDevice device,
  6536. uint32_t bindInfoCount,
  6537. const VkBindBufferMemoryInfo* pBindInfos);
  6538. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
  6539. VkDevice device,
  6540. uint32_t bindInfoCount,
  6541. const VkBindImageMemoryInfo* pBindInfos);
  6542. #endif
  6543. #define VK_KHR_maintenance3 1
  6544. #define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
  6545. #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
  6546. typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
  6547. typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
  6548. typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
  6549. #ifndef VK_NO_PROTOTYPES
  6550. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
  6551. VkDevice device,
  6552. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  6553. VkDescriptorSetLayoutSupport* pSupport);
  6554. #endif
  6555. #define VK_KHR_draw_indirect_count 1
  6556. #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
  6557. #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
  6558. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  6559. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  6560. #ifndef VK_NO_PROTOTYPES
  6561. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
  6562. VkCommandBuffer commandBuffer,
  6563. VkBuffer buffer,
  6564. VkDeviceSize offset,
  6565. VkBuffer countBuffer,
  6566. VkDeviceSize countBufferOffset,
  6567. uint32_t maxDrawCount,
  6568. uint32_t stride);
  6569. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
  6570. VkCommandBuffer commandBuffer,
  6571. VkBuffer buffer,
  6572. VkDeviceSize offset,
  6573. VkBuffer countBuffer,
  6574. VkDeviceSize countBufferOffset,
  6575. uint32_t maxDrawCount,
  6576. uint32_t stride);
  6577. #endif
  6578. #define VK_KHR_shader_subgroup_extended_types 1
  6579. #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
  6580. #define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
  6581. typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
  6582. #define VK_KHR_8bit_storage 1
  6583. #define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
  6584. #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
  6585. typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
  6586. #define VK_KHR_shader_atomic_int64 1
  6587. #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
  6588. #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
  6589. typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
  6590. #define VK_KHR_shader_clock 1
  6591. #define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
  6592. #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
  6593. typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
  6594. VkStructureType sType;
  6595. void* pNext;
  6596. VkBool32 shaderSubgroupClock;
  6597. VkBool32 shaderDeviceClock;
  6598. } VkPhysicalDeviceShaderClockFeaturesKHR;
  6599. #define VK_KHR_driver_properties 1
  6600. #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
  6601. #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
  6602. #define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE
  6603. #define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE
  6604. typedef VkDriverId VkDriverIdKHR;
  6605. typedef VkConformanceVersion VkConformanceVersionKHR;
  6606. typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
  6607. #define VK_KHR_shader_float_controls 1
  6608. #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
  6609. #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
  6610. typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
  6611. typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
  6612. #define VK_KHR_depth_stencil_resolve 1
  6613. #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
  6614. #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
  6615. typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
  6616. typedef VkResolveModeFlags VkResolveModeFlagsKHR;
  6617. typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
  6618. typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
  6619. #define VK_KHR_swapchain_mutable_format 1
  6620. #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
  6621. #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
  6622. #define VK_KHR_timeline_semaphore 1
  6623. #define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
  6624. #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
  6625. typedef VkSemaphoreType VkSemaphoreTypeKHR;
  6626. typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
  6627. typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
  6628. typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
  6629. typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
  6630. typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
  6631. typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
  6632. typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
  6633. typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
  6634. typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
  6635. typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
  6636. typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
  6637. #ifndef VK_NO_PROTOTYPES
  6638. VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
  6639. VkDevice device,
  6640. VkSemaphore semaphore,
  6641. uint64_t* pValue);
  6642. VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
  6643. VkDevice device,
  6644. const VkSemaphoreWaitInfo* pWaitInfo,
  6645. uint64_t timeout);
  6646. VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
  6647. VkDevice device,
  6648. const VkSemaphoreSignalInfo* pSignalInfo);
  6649. #endif
  6650. #define VK_KHR_vulkan_memory_model 1
  6651. #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
  6652. #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
  6653. typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
  6654. #define VK_KHR_shader_terminate_invocation 1
  6655. #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
  6656. #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
  6657. typedef struct VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR {
  6658. VkStructureType sType;
  6659. void* pNext;
  6660. VkBool32 shaderTerminateInvocation;
  6661. } VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
  6662. #define VK_KHR_fragment_shading_rate 1
  6663. #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 1
  6664. #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
  6665. typedef enum VkFragmentShadingRateCombinerOpKHR {
  6666. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
  6667. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
  6668. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
  6669. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
  6670. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
  6671. VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
  6672. } VkFragmentShadingRateCombinerOpKHR;
  6673. typedef struct VkFragmentShadingRateAttachmentInfoKHR {
  6674. VkStructureType sType;
  6675. const void* pNext;
  6676. const VkAttachmentReference2* pFragmentShadingRateAttachment;
  6677. VkExtent2D shadingRateAttachmentTexelSize;
  6678. } VkFragmentShadingRateAttachmentInfoKHR;
  6679. typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
  6680. VkStructureType sType;
  6681. const void* pNext;
  6682. VkExtent2D fragmentSize;
  6683. VkFragmentShadingRateCombinerOpKHR combinerOps[2];
  6684. } VkPipelineFragmentShadingRateStateCreateInfoKHR;
  6685. typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
  6686. VkStructureType sType;
  6687. void* pNext;
  6688. VkBool32 pipelineFragmentShadingRate;
  6689. VkBool32 primitiveFragmentShadingRate;
  6690. VkBool32 attachmentFragmentShadingRate;
  6691. } VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
  6692. typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
  6693. VkStructureType sType;
  6694. void* pNext;
  6695. VkExtent2D minFragmentShadingRateAttachmentTexelSize;
  6696. VkExtent2D maxFragmentShadingRateAttachmentTexelSize;
  6697. uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
  6698. VkBool32 primitiveFragmentShadingRateWithMultipleViewports;
  6699. VkBool32 layeredShadingRateAttachments;
  6700. VkBool32 fragmentShadingRateNonTrivialCombinerOps;
  6701. VkExtent2D maxFragmentSize;
  6702. uint32_t maxFragmentSizeAspectRatio;
  6703. uint32_t maxFragmentShadingRateCoverageSamples;
  6704. VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples;
  6705. VkBool32 fragmentShadingRateWithShaderDepthStencilWrites;
  6706. VkBool32 fragmentShadingRateWithSampleMask;
  6707. VkBool32 fragmentShadingRateWithShaderSampleMask;
  6708. VkBool32 fragmentShadingRateWithConservativeRasterization;
  6709. VkBool32 fragmentShadingRateWithFragmentShaderInterlock;
  6710. VkBool32 fragmentShadingRateWithCustomSampleLocations;
  6711. VkBool32 fragmentShadingRateStrictMultiplyCombiner;
  6712. } VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
  6713. typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
  6714. VkStructureType sType;
  6715. void* pNext;
  6716. VkSampleCountFlags sampleCounts;
  6717. VkExtent2D fragmentSize;
  6718. } VkPhysicalDeviceFragmentShadingRateKHR;
  6719. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
  6720. typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
  6721. #ifndef VK_NO_PROTOTYPES
  6722. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
  6723. VkPhysicalDevice physicalDevice,
  6724. uint32_t* pFragmentShadingRateCount,
  6725. VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
  6726. VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
  6727. VkCommandBuffer commandBuffer,
  6728. const VkExtent2D* pFragmentSize,
  6729. const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
  6730. #endif
  6731. #define VK_KHR_spirv_1_4 1
  6732. #define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
  6733. #define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
  6734. #define VK_KHR_surface_protected_capabilities 1
  6735. #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
  6736. #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
  6737. typedef struct VkSurfaceProtectedCapabilitiesKHR {
  6738. VkStructureType sType;
  6739. const void* pNext;
  6740. VkBool32 supportsProtected;
  6741. } VkSurfaceProtectedCapabilitiesKHR;
  6742. #define VK_KHR_separate_depth_stencil_layouts 1
  6743. #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
  6744. #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
  6745. typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
  6746. typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
  6747. typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
  6748. #define VK_KHR_present_wait 1
  6749. #define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
  6750. #define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
  6751. typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
  6752. VkStructureType sType;
  6753. void* pNext;
  6754. VkBool32 presentWait;
  6755. } VkPhysicalDevicePresentWaitFeaturesKHR;
  6756. typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
  6757. #ifndef VK_NO_PROTOTYPES
  6758. VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
  6759. VkDevice device,
  6760. VkSwapchainKHR swapchain,
  6761. uint64_t presentId,
  6762. uint64_t timeout);
  6763. #endif
  6764. #define VK_KHR_uniform_buffer_standard_layout 1
  6765. #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
  6766. #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
  6767. typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
  6768. #define VK_KHR_buffer_device_address 1
  6769. #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
  6770. #define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
  6771. typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
  6772. typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
  6773. typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
  6774. typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
  6775. typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
  6776. typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  6777. typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  6778. typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
  6779. #ifndef VK_NO_PROTOTYPES
  6780. VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
  6781. VkDevice device,
  6782. const VkBufferDeviceAddressInfo* pInfo);
  6783. VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
  6784. VkDevice device,
  6785. const VkBufferDeviceAddressInfo* pInfo);
  6786. VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
  6787. VkDevice device,
  6788. const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
  6789. #endif
  6790. #define VK_KHR_deferred_host_operations 1
  6791. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
  6792. #define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
  6793. #define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
  6794. typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
  6795. typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
  6796. typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
  6797. typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
  6798. typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
  6799. #ifndef VK_NO_PROTOTYPES
  6800. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
  6801. VkDevice device,
  6802. const VkAllocationCallbacks* pAllocator,
  6803. VkDeferredOperationKHR* pDeferredOperation);
  6804. VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
  6805. VkDevice device,
  6806. VkDeferredOperationKHR operation,
  6807. const VkAllocationCallbacks* pAllocator);
  6808. VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
  6809. VkDevice device,
  6810. VkDeferredOperationKHR operation);
  6811. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
  6812. VkDevice device,
  6813. VkDeferredOperationKHR operation);
  6814. VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
  6815. VkDevice device,
  6816. VkDeferredOperationKHR operation);
  6817. #endif
  6818. #define VK_KHR_pipeline_executable_properties 1
  6819. #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
  6820. #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
  6821. typedef enum VkPipelineExecutableStatisticFormatKHR {
  6822. VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
  6823. VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
  6824. VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
  6825. VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
  6826. VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
  6827. } VkPipelineExecutableStatisticFormatKHR;
  6828. typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
  6829. VkStructureType sType;
  6830. void* pNext;
  6831. VkBool32 pipelineExecutableInfo;
  6832. } VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
  6833. typedef struct VkPipelineInfoKHR {
  6834. VkStructureType sType;
  6835. const void* pNext;
  6836. VkPipeline pipeline;
  6837. } VkPipelineInfoKHR;
  6838. typedef struct VkPipelineExecutablePropertiesKHR {
  6839. VkStructureType sType;
  6840. void* pNext;
  6841. VkShaderStageFlags stages;
  6842. char name[VK_MAX_DESCRIPTION_SIZE];
  6843. char description[VK_MAX_DESCRIPTION_SIZE];
  6844. uint32_t subgroupSize;
  6845. } VkPipelineExecutablePropertiesKHR;
  6846. typedef struct VkPipelineExecutableInfoKHR {
  6847. VkStructureType sType;
  6848. const void* pNext;
  6849. VkPipeline pipeline;
  6850. uint32_t executableIndex;
  6851. } VkPipelineExecutableInfoKHR;
  6852. typedef union VkPipelineExecutableStatisticValueKHR {
  6853. VkBool32 b32;
  6854. int64_t i64;
  6855. uint64_t u64;
  6856. double f64;
  6857. } VkPipelineExecutableStatisticValueKHR;
  6858. typedef struct VkPipelineExecutableStatisticKHR {
  6859. VkStructureType sType;
  6860. void* pNext;
  6861. char name[VK_MAX_DESCRIPTION_SIZE];
  6862. char description[VK_MAX_DESCRIPTION_SIZE];
  6863. VkPipelineExecutableStatisticFormatKHR format;
  6864. VkPipelineExecutableStatisticValueKHR value;
  6865. } VkPipelineExecutableStatisticKHR;
  6866. typedef struct VkPipelineExecutableInternalRepresentationKHR {
  6867. VkStructureType sType;
  6868. void* pNext;
  6869. char name[VK_MAX_DESCRIPTION_SIZE];
  6870. char description[VK_MAX_DESCRIPTION_SIZE];
  6871. VkBool32 isText;
  6872. size_t dataSize;
  6873. void* pData;
  6874. } VkPipelineExecutableInternalRepresentationKHR;
  6875. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
  6876. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
  6877. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
  6878. #ifndef VK_NO_PROTOTYPES
  6879. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
  6880. VkDevice device,
  6881. const VkPipelineInfoKHR* pPipelineInfo,
  6882. uint32_t* pExecutableCount,
  6883. VkPipelineExecutablePropertiesKHR* pProperties);
  6884. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
  6885. VkDevice device,
  6886. const VkPipelineExecutableInfoKHR* pExecutableInfo,
  6887. uint32_t* pStatisticCount,
  6888. VkPipelineExecutableStatisticKHR* pStatistics);
  6889. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
  6890. VkDevice device,
  6891. const VkPipelineExecutableInfoKHR* pExecutableInfo,
  6892. uint32_t* pInternalRepresentationCount,
  6893. VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
  6894. #endif
  6895. #define VK_KHR_shader_integer_dot_product 1
  6896. #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
  6897. #define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
  6898. typedef struct VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR {
  6899. VkStructureType sType;
  6900. void* pNext;
  6901. VkBool32 shaderIntegerDotProduct;
  6902. } VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
  6903. typedef struct VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR {
  6904. VkStructureType sType;
  6905. void* pNext;
  6906. VkBool32 integerDotProduct8BitUnsignedAccelerated;
  6907. VkBool32 integerDotProduct8BitSignedAccelerated;
  6908. VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
  6909. VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
  6910. VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
  6911. VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
  6912. VkBool32 integerDotProduct16BitUnsignedAccelerated;
  6913. VkBool32 integerDotProduct16BitSignedAccelerated;
  6914. VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
  6915. VkBool32 integerDotProduct32BitUnsignedAccelerated;
  6916. VkBool32 integerDotProduct32BitSignedAccelerated;
  6917. VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
  6918. VkBool32 integerDotProduct64BitUnsignedAccelerated;
  6919. VkBool32 integerDotProduct64BitSignedAccelerated;
  6920. VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
  6921. VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
  6922. VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
  6923. VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
  6924. VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
  6925. VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
  6926. VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
  6927. VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
  6928. VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
  6929. VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
  6930. VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
  6931. VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
  6932. VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
  6933. VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
  6934. VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
  6935. VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
  6936. } VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
  6937. #define VK_KHR_pipeline_library 1
  6938. #define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
  6939. #define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
  6940. typedef struct VkPipelineLibraryCreateInfoKHR {
  6941. VkStructureType sType;
  6942. const void* pNext;
  6943. uint32_t libraryCount;
  6944. const VkPipeline* pLibraries;
  6945. } VkPipelineLibraryCreateInfoKHR;
  6946. #define VK_KHR_shader_non_semantic_info 1
  6947. #define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
  6948. #define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
  6949. #define VK_KHR_present_id 1
  6950. #define VK_KHR_PRESENT_ID_SPEC_VERSION 1
  6951. #define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
  6952. typedef struct VkPresentIdKHR {
  6953. VkStructureType sType;
  6954. const void* pNext;
  6955. uint32_t swapchainCount;
  6956. const uint64_t* pPresentIds;
  6957. } VkPresentIdKHR;
  6958. typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
  6959. VkStructureType sType;
  6960. void* pNext;
  6961. VkBool32 presentId;
  6962. } VkPhysicalDevicePresentIdFeaturesKHR;
  6963. #define VK_KHR_synchronization2 1
  6964. typedef uint64_t VkFlags64;
  6965. #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
  6966. #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
  6967. typedef VkFlags64 VkPipelineStageFlags2KHR;
  6968. // Flag bits for VkPipelineStageFlagBits2KHR
  6969. typedef VkFlags64 VkPipelineStageFlagBits2KHR;
  6970. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
  6971. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
  6972. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
  6973. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
  6974. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
  6975. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
  6976. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
  6977. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
  6978. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
  6979. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
  6980. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
  6981. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
  6982. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
  6983. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
  6984. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
  6985. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
  6986. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
  6987. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
  6988. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
  6989. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
  6990. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
  6991. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
  6992. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
  6993. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
  6994. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
  6995. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
  6996. #ifdef VK_ENABLE_BETA_EXTENSIONS
  6997. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
  6998. #endif
  6999. #ifdef VK_ENABLE_BETA_EXTENSIONS
  7000. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
  7001. #endif
  7002. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
  7003. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
  7004. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
  7005. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
  7006. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
  7007. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
  7008. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
  7009. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
  7010. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
  7011. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
  7012. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
  7013. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
  7014. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
  7015. static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
  7016. typedef VkFlags64 VkAccessFlags2KHR;
  7017. // Flag bits for VkAccessFlagBits2KHR
  7018. typedef VkFlags64 VkAccessFlagBits2KHR;
  7019. static const VkAccessFlagBits2KHR VK_ACCESS_2_NONE_KHR = 0ULL;
  7020. static const VkAccessFlagBits2KHR VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
  7021. static const VkAccessFlagBits2KHR VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
  7022. static const VkAccessFlagBits2KHR VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
  7023. static const VkAccessFlagBits2KHR VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
  7024. static const VkAccessFlagBits2KHR VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
  7025. static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
  7026. static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
  7027. static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
  7028. static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
  7029. static const VkAccessFlagBits2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
  7030. static const VkAccessFlagBits2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
  7031. static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
  7032. static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
  7033. static const VkAccessFlagBits2KHR VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
  7034. static const VkAccessFlagBits2KHR VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
  7035. static const VkAccessFlagBits2KHR VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
  7036. static const VkAccessFlagBits2KHR VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
  7037. static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
  7038. static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
  7039. static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
  7040. #ifdef VK_ENABLE_BETA_EXTENSIONS
  7041. static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
  7042. #endif
  7043. #ifdef VK_ENABLE_BETA_EXTENSIONS
  7044. static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
  7045. #endif
  7046. #ifdef VK_ENABLE_BETA_EXTENSIONS
  7047. static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
  7048. #endif
  7049. #ifdef VK_ENABLE_BETA_EXTENSIONS
  7050. static const VkAccessFlagBits2KHR VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
  7051. #endif
  7052. static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
  7053. static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
  7054. static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
  7055. static const VkAccessFlagBits2KHR VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
  7056. static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
  7057. static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
  7058. static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
  7059. static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
  7060. static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
  7061. static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
  7062. static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
  7063. static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
  7064. static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
  7065. static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
  7066. static const VkAccessFlagBits2KHR VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
  7067. typedef enum VkSubmitFlagBitsKHR {
  7068. VK_SUBMIT_PROTECTED_BIT_KHR = 0x00000001,
  7069. VK_SUBMIT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  7070. } VkSubmitFlagBitsKHR;
  7071. typedef VkFlags VkSubmitFlagsKHR;
  7072. typedef struct VkMemoryBarrier2KHR {
  7073. VkStructureType sType;
  7074. const void* pNext;
  7075. VkPipelineStageFlags2KHR srcStageMask;
  7076. VkAccessFlags2KHR srcAccessMask;
  7077. VkPipelineStageFlags2KHR dstStageMask;
  7078. VkAccessFlags2KHR dstAccessMask;
  7079. } VkMemoryBarrier2KHR;
  7080. typedef struct VkBufferMemoryBarrier2KHR {
  7081. VkStructureType sType;
  7082. const void* pNext;
  7083. VkPipelineStageFlags2KHR srcStageMask;
  7084. VkAccessFlags2KHR srcAccessMask;
  7085. VkPipelineStageFlags2KHR dstStageMask;
  7086. VkAccessFlags2KHR dstAccessMask;
  7087. uint32_t srcQueueFamilyIndex;
  7088. uint32_t dstQueueFamilyIndex;
  7089. VkBuffer buffer;
  7090. VkDeviceSize offset;
  7091. VkDeviceSize size;
  7092. } VkBufferMemoryBarrier2KHR;
  7093. typedef struct VkImageMemoryBarrier2KHR {
  7094. VkStructureType sType;
  7095. const void* pNext;
  7096. VkPipelineStageFlags2KHR srcStageMask;
  7097. VkAccessFlags2KHR srcAccessMask;
  7098. VkPipelineStageFlags2KHR dstStageMask;
  7099. VkAccessFlags2KHR dstAccessMask;
  7100. VkImageLayout oldLayout;
  7101. VkImageLayout newLayout;
  7102. uint32_t srcQueueFamilyIndex;
  7103. uint32_t dstQueueFamilyIndex;
  7104. VkImage image;
  7105. VkImageSubresourceRange subresourceRange;
  7106. } VkImageMemoryBarrier2KHR;
  7107. typedef struct VkDependencyInfoKHR {
  7108. VkStructureType sType;
  7109. const void* pNext;
  7110. VkDependencyFlags dependencyFlags;
  7111. uint32_t memoryBarrierCount;
  7112. const VkMemoryBarrier2KHR* pMemoryBarriers;
  7113. uint32_t bufferMemoryBarrierCount;
  7114. const VkBufferMemoryBarrier2KHR* pBufferMemoryBarriers;
  7115. uint32_t imageMemoryBarrierCount;
  7116. const VkImageMemoryBarrier2KHR* pImageMemoryBarriers;
  7117. } VkDependencyInfoKHR;
  7118. typedef struct VkSemaphoreSubmitInfoKHR {
  7119. VkStructureType sType;
  7120. const void* pNext;
  7121. VkSemaphore semaphore;
  7122. uint64_t value;
  7123. VkPipelineStageFlags2KHR stageMask;
  7124. uint32_t deviceIndex;
  7125. } VkSemaphoreSubmitInfoKHR;
  7126. typedef struct VkCommandBufferSubmitInfoKHR {
  7127. VkStructureType sType;
  7128. const void* pNext;
  7129. VkCommandBuffer commandBuffer;
  7130. uint32_t deviceMask;
  7131. } VkCommandBufferSubmitInfoKHR;
  7132. typedef struct VkSubmitInfo2KHR {
  7133. VkStructureType sType;
  7134. const void* pNext;
  7135. VkSubmitFlagsKHR flags;
  7136. uint32_t waitSemaphoreInfoCount;
  7137. const VkSemaphoreSubmitInfoKHR* pWaitSemaphoreInfos;
  7138. uint32_t commandBufferInfoCount;
  7139. const VkCommandBufferSubmitInfoKHR* pCommandBufferInfos;
  7140. uint32_t signalSemaphoreInfoCount;
  7141. const VkSemaphoreSubmitInfoKHR* pSignalSemaphoreInfos;
  7142. } VkSubmitInfo2KHR;
  7143. typedef struct VkPhysicalDeviceSynchronization2FeaturesKHR {
  7144. VkStructureType sType;
  7145. void* pNext;
  7146. VkBool32 synchronization2;
  7147. } VkPhysicalDeviceSynchronization2FeaturesKHR;
  7148. typedef struct VkQueueFamilyCheckpointProperties2NV {
  7149. VkStructureType sType;
  7150. void* pNext;
  7151. VkPipelineStageFlags2KHR checkpointExecutionStageMask;
  7152. } VkQueueFamilyCheckpointProperties2NV;
  7153. typedef struct VkCheckpointData2NV {
  7154. VkStructureType sType;
  7155. void* pNext;
  7156. VkPipelineStageFlags2KHR stage;
  7157. void* pCheckpointMarker;
  7158. } VkCheckpointData2NV;
  7159. typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfoKHR* pDependencyInfo);
  7160. typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2KHR stageMask);
  7161. typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfoKHR* pDependencyInfos);
  7162. typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfoKHR* pDependencyInfo);
  7163. typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkQueryPool queryPool, uint32_t query);
  7164. typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2KHR* pSubmits, VkFence fence);
  7165. typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
  7166. typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
  7167. #ifndef VK_NO_PROTOTYPES
  7168. VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
  7169. VkCommandBuffer commandBuffer,
  7170. VkEvent event,
  7171. const VkDependencyInfoKHR* pDependencyInfo);
  7172. VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
  7173. VkCommandBuffer commandBuffer,
  7174. VkEvent event,
  7175. VkPipelineStageFlags2KHR stageMask);
  7176. VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
  7177. VkCommandBuffer commandBuffer,
  7178. uint32_t eventCount,
  7179. const VkEvent* pEvents,
  7180. const VkDependencyInfoKHR* pDependencyInfos);
  7181. VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
  7182. VkCommandBuffer commandBuffer,
  7183. const VkDependencyInfoKHR* pDependencyInfo);
  7184. VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
  7185. VkCommandBuffer commandBuffer,
  7186. VkPipelineStageFlags2KHR stage,
  7187. VkQueryPool queryPool,
  7188. uint32_t query);
  7189. VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
  7190. VkQueue queue,
  7191. uint32_t submitCount,
  7192. const VkSubmitInfo2KHR* pSubmits,
  7193. VkFence fence);
  7194. VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
  7195. VkCommandBuffer commandBuffer,
  7196. VkPipelineStageFlags2KHR stage,
  7197. VkBuffer dstBuffer,
  7198. VkDeviceSize dstOffset,
  7199. uint32_t marker);
  7200. VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
  7201. VkQueue queue,
  7202. uint32_t* pCheckpointDataCount,
  7203. VkCheckpointData2NV* pCheckpointData);
  7204. #endif
  7205. #define VK_KHR_shader_subgroup_uniform_control_flow 1
  7206. #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
  7207. #define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
  7208. typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
  7209. VkStructureType sType;
  7210. void* pNext;
  7211. VkBool32 shaderSubgroupUniformControlFlow;
  7212. } VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
  7213. #define VK_KHR_zero_initialize_workgroup_memory 1
  7214. #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
  7215. #define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
  7216. typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR {
  7217. VkStructureType sType;
  7218. void* pNext;
  7219. VkBool32 shaderZeroInitializeWorkgroupMemory;
  7220. } VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
  7221. #define VK_KHR_workgroup_memory_explicit_layout 1
  7222. #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
  7223. #define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
  7224. typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
  7225. VkStructureType sType;
  7226. void* pNext;
  7227. VkBool32 workgroupMemoryExplicitLayout;
  7228. VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout;
  7229. VkBool32 workgroupMemoryExplicitLayout8BitAccess;
  7230. VkBool32 workgroupMemoryExplicitLayout16BitAccess;
  7231. } VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
  7232. #define VK_KHR_copy_commands2 1
  7233. #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
  7234. #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
  7235. typedef struct VkBufferCopy2KHR {
  7236. VkStructureType sType;
  7237. const void* pNext;
  7238. VkDeviceSize srcOffset;
  7239. VkDeviceSize dstOffset;
  7240. VkDeviceSize size;
  7241. } VkBufferCopy2KHR;
  7242. typedef struct VkCopyBufferInfo2KHR {
  7243. VkStructureType sType;
  7244. const void* pNext;
  7245. VkBuffer srcBuffer;
  7246. VkBuffer dstBuffer;
  7247. uint32_t regionCount;
  7248. const VkBufferCopy2KHR* pRegions;
  7249. } VkCopyBufferInfo2KHR;
  7250. typedef struct VkImageCopy2KHR {
  7251. VkStructureType sType;
  7252. const void* pNext;
  7253. VkImageSubresourceLayers srcSubresource;
  7254. VkOffset3D srcOffset;
  7255. VkImageSubresourceLayers dstSubresource;
  7256. VkOffset3D dstOffset;
  7257. VkExtent3D extent;
  7258. } VkImageCopy2KHR;
  7259. typedef struct VkCopyImageInfo2KHR {
  7260. VkStructureType sType;
  7261. const void* pNext;
  7262. VkImage srcImage;
  7263. VkImageLayout srcImageLayout;
  7264. VkImage dstImage;
  7265. VkImageLayout dstImageLayout;
  7266. uint32_t regionCount;
  7267. const VkImageCopy2KHR* pRegions;
  7268. } VkCopyImageInfo2KHR;
  7269. typedef struct VkBufferImageCopy2KHR {
  7270. VkStructureType sType;
  7271. const void* pNext;
  7272. VkDeviceSize bufferOffset;
  7273. uint32_t bufferRowLength;
  7274. uint32_t bufferImageHeight;
  7275. VkImageSubresourceLayers imageSubresource;
  7276. VkOffset3D imageOffset;
  7277. VkExtent3D imageExtent;
  7278. } VkBufferImageCopy2KHR;
  7279. typedef struct VkCopyBufferToImageInfo2KHR {
  7280. VkStructureType sType;
  7281. const void* pNext;
  7282. VkBuffer srcBuffer;
  7283. VkImage dstImage;
  7284. VkImageLayout dstImageLayout;
  7285. uint32_t regionCount;
  7286. const VkBufferImageCopy2KHR* pRegions;
  7287. } VkCopyBufferToImageInfo2KHR;
  7288. typedef struct VkCopyImageToBufferInfo2KHR {
  7289. VkStructureType sType;
  7290. const void* pNext;
  7291. VkImage srcImage;
  7292. VkImageLayout srcImageLayout;
  7293. VkBuffer dstBuffer;
  7294. uint32_t regionCount;
  7295. const VkBufferImageCopy2KHR* pRegions;
  7296. } VkCopyImageToBufferInfo2KHR;
  7297. typedef struct VkImageBlit2KHR {
  7298. VkStructureType sType;
  7299. const void* pNext;
  7300. VkImageSubresourceLayers srcSubresource;
  7301. VkOffset3D srcOffsets[2];
  7302. VkImageSubresourceLayers dstSubresource;
  7303. VkOffset3D dstOffsets[2];
  7304. } VkImageBlit2KHR;
  7305. typedef struct VkBlitImageInfo2KHR {
  7306. VkStructureType sType;
  7307. const void* pNext;
  7308. VkImage srcImage;
  7309. VkImageLayout srcImageLayout;
  7310. VkImage dstImage;
  7311. VkImageLayout dstImageLayout;
  7312. uint32_t regionCount;
  7313. const VkImageBlit2KHR* pRegions;
  7314. VkFilter filter;
  7315. } VkBlitImageInfo2KHR;
  7316. typedef struct VkImageResolve2KHR {
  7317. VkStructureType sType;
  7318. const void* pNext;
  7319. VkImageSubresourceLayers srcSubresource;
  7320. VkOffset3D srcOffset;
  7321. VkImageSubresourceLayers dstSubresource;
  7322. VkOffset3D dstOffset;
  7323. VkExtent3D extent;
  7324. } VkImageResolve2KHR;
  7325. typedef struct VkResolveImageInfo2KHR {
  7326. VkStructureType sType;
  7327. const void* pNext;
  7328. VkImage srcImage;
  7329. VkImageLayout srcImageLayout;
  7330. VkImage dstImage;
  7331. VkImageLayout dstImageLayout;
  7332. uint32_t regionCount;
  7333. const VkImageResolve2KHR* pRegions;
  7334. } VkResolveImageInfo2KHR;
  7335. typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo);
  7336. typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo);
  7337. typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo);
  7338. typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo);
  7339. typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo);
  7340. typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo);
  7341. #ifndef VK_NO_PROTOTYPES
  7342. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
  7343. VkCommandBuffer commandBuffer,
  7344. const VkCopyBufferInfo2KHR* pCopyBufferInfo);
  7345. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
  7346. VkCommandBuffer commandBuffer,
  7347. const VkCopyImageInfo2KHR* pCopyImageInfo);
  7348. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
  7349. VkCommandBuffer commandBuffer,
  7350. const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo);
  7351. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
  7352. VkCommandBuffer commandBuffer,
  7353. const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo);
  7354. VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
  7355. VkCommandBuffer commandBuffer,
  7356. const VkBlitImageInfo2KHR* pBlitImageInfo);
  7357. VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
  7358. VkCommandBuffer commandBuffer,
  7359. const VkResolveImageInfo2KHR* pResolveImageInfo);
  7360. #endif
  7361. #define VK_EXT_debug_report 1
  7362. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
  7363. #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
  7364. #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
  7365. typedef enum VkDebugReportObjectTypeEXT {
  7366. VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
  7367. VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
  7368. VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
  7369. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
  7370. VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
  7371. VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
  7372. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
  7373. VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
  7374. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
  7375. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
  7376. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
  7377. VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
  7378. VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
  7379. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
  7380. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
  7381. VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
  7382. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
  7383. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
  7384. VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
  7385. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
  7386. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
  7387. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
  7388. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
  7389. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
  7390. VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
  7391. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
  7392. VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
  7393. VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
  7394. VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
  7395. VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
  7396. VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
  7397. VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
  7398. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
  7399. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
  7400. VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
  7401. VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
  7402. VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
  7403. VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
  7404. VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
  7405. VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
  7406. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
  7407. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
  7408. VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  7409. } VkDebugReportObjectTypeEXT;
  7410. typedef enum VkDebugReportFlagBitsEXT {
  7411. VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
  7412. VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
  7413. VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
  7414. VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
  7415. VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
  7416. VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  7417. } VkDebugReportFlagBitsEXT;
  7418. typedef VkFlags VkDebugReportFlagsEXT;
  7419. typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
  7420. VkDebugReportFlagsEXT flags,
  7421. VkDebugReportObjectTypeEXT objectType,
  7422. uint64_t object,
  7423. size_t location,
  7424. int32_t messageCode,
  7425. const char* pLayerPrefix,
  7426. const char* pMessage,
  7427. void* pUserData);
  7428. typedef struct VkDebugReportCallbackCreateInfoEXT {
  7429. VkStructureType sType;
  7430. const void* pNext;
  7431. VkDebugReportFlagsEXT flags;
  7432. PFN_vkDebugReportCallbackEXT pfnCallback;
  7433. void* pUserData;
  7434. } VkDebugReportCallbackCreateInfoEXT;
  7435. typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
  7436. typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
  7437. 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);
  7438. #ifndef VK_NO_PROTOTYPES
  7439. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
  7440. VkInstance instance,
  7441. const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
  7442. const VkAllocationCallbacks* pAllocator,
  7443. VkDebugReportCallbackEXT* pCallback);
  7444. VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
  7445. VkInstance instance,
  7446. VkDebugReportCallbackEXT callback,
  7447. const VkAllocationCallbacks* pAllocator);
  7448. VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
  7449. VkInstance instance,
  7450. VkDebugReportFlagsEXT flags,
  7451. VkDebugReportObjectTypeEXT objectType,
  7452. uint64_t object,
  7453. size_t location,
  7454. int32_t messageCode,
  7455. const char* pLayerPrefix,
  7456. const char* pMessage);
  7457. #endif
  7458. #define VK_NV_glsl_shader 1
  7459. #define VK_NV_GLSL_SHADER_SPEC_VERSION 1
  7460. #define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
  7461. #define VK_EXT_depth_range_unrestricted 1
  7462. #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
  7463. #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
  7464. #define VK_IMG_filter_cubic 1
  7465. #define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
  7466. #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
  7467. #define VK_AMD_rasterization_order 1
  7468. #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
  7469. #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
  7470. typedef enum VkRasterizationOrderAMD {
  7471. VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
  7472. VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
  7473. VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
  7474. } VkRasterizationOrderAMD;
  7475. typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
  7476. VkStructureType sType;
  7477. const void* pNext;
  7478. VkRasterizationOrderAMD rasterizationOrder;
  7479. } VkPipelineRasterizationStateRasterizationOrderAMD;
  7480. #define VK_AMD_shader_trinary_minmax 1
  7481. #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
  7482. #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
  7483. #define VK_AMD_shader_explicit_vertex_parameter 1
  7484. #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
  7485. #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
  7486. #define VK_EXT_debug_marker 1
  7487. #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
  7488. #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
  7489. typedef struct VkDebugMarkerObjectNameInfoEXT {
  7490. VkStructureType sType;
  7491. const void* pNext;
  7492. VkDebugReportObjectTypeEXT objectType;
  7493. uint64_t object;
  7494. const char* pObjectName;
  7495. } VkDebugMarkerObjectNameInfoEXT;
  7496. typedef struct VkDebugMarkerObjectTagInfoEXT {
  7497. VkStructureType sType;
  7498. const void* pNext;
  7499. VkDebugReportObjectTypeEXT objectType;
  7500. uint64_t object;
  7501. uint64_t tagName;
  7502. size_t tagSize;
  7503. const void* pTag;
  7504. } VkDebugMarkerObjectTagInfoEXT;
  7505. typedef struct VkDebugMarkerMarkerInfoEXT {
  7506. VkStructureType sType;
  7507. const void* pNext;
  7508. const char* pMarkerName;
  7509. float color[4];
  7510. } VkDebugMarkerMarkerInfoEXT;
  7511. typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
  7512. typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
  7513. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  7514. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
  7515. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  7516. #ifndef VK_NO_PROTOTYPES
  7517. VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
  7518. VkDevice device,
  7519. const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
  7520. VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
  7521. VkDevice device,
  7522. const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
  7523. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
  7524. VkCommandBuffer commandBuffer,
  7525. const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  7526. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
  7527. VkCommandBuffer commandBuffer);
  7528. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
  7529. VkCommandBuffer commandBuffer,
  7530. const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  7531. #endif
  7532. #define VK_AMD_gcn_shader 1
  7533. #define VK_AMD_GCN_SHADER_SPEC_VERSION 1
  7534. #define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
  7535. #define VK_NV_dedicated_allocation 1
  7536. #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
  7537. #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
  7538. typedef struct VkDedicatedAllocationImageCreateInfoNV {
  7539. VkStructureType sType;
  7540. const void* pNext;
  7541. VkBool32 dedicatedAllocation;
  7542. } VkDedicatedAllocationImageCreateInfoNV;
  7543. typedef struct VkDedicatedAllocationBufferCreateInfoNV {
  7544. VkStructureType sType;
  7545. const void* pNext;
  7546. VkBool32 dedicatedAllocation;
  7547. } VkDedicatedAllocationBufferCreateInfoNV;
  7548. typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
  7549. VkStructureType sType;
  7550. const void* pNext;
  7551. VkImage image;
  7552. VkBuffer buffer;
  7553. } VkDedicatedAllocationMemoryAllocateInfoNV;
  7554. #define VK_EXT_transform_feedback 1
  7555. #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
  7556. #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
  7557. typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
  7558. typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
  7559. VkStructureType sType;
  7560. void* pNext;
  7561. VkBool32 transformFeedback;
  7562. VkBool32 geometryStreams;
  7563. } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
  7564. typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
  7565. VkStructureType sType;
  7566. void* pNext;
  7567. uint32_t maxTransformFeedbackStreams;
  7568. uint32_t maxTransformFeedbackBuffers;
  7569. VkDeviceSize maxTransformFeedbackBufferSize;
  7570. uint32_t maxTransformFeedbackStreamDataSize;
  7571. uint32_t maxTransformFeedbackBufferDataSize;
  7572. uint32_t maxTransformFeedbackBufferDataStride;
  7573. VkBool32 transformFeedbackQueries;
  7574. VkBool32 transformFeedbackStreamsLinesTriangles;
  7575. VkBool32 transformFeedbackRasterizationStreamSelect;
  7576. VkBool32 transformFeedbackDraw;
  7577. } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
  7578. typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
  7579. VkStructureType sType;
  7580. const void* pNext;
  7581. VkPipelineRasterizationStateStreamCreateFlagsEXT flags;
  7582. uint32_t rasterizationStream;
  7583. } VkPipelineRasterizationStateStreamCreateInfoEXT;
  7584. typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
  7585. typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
  7586. typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
  7587. typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
  7588. typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
  7589. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
  7590. #ifndef VK_NO_PROTOTYPES
  7591. VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
  7592. VkCommandBuffer commandBuffer,
  7593. uint32_t firstBinding,
  7594. uint32_t bindingCount,
  7595. const VkBuffer* pBuffers,
  7596. const VkDeviceSize* pOffsets,
  7597. const VkDeviceSize* pSizes);
  7598. VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
  7599. VkCommandBuffer commandBuffer,
  7600. uint32_t firstCounterBuffer,
  7601. uint32_t counterBufferCount,
  7602. const VkBuffer* pCounterBuffers,
  7603. const VkDeviceSize* pCounterBufferOffsets);
  7604. VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
  7605. VkCommandBuffer commandBuffer,
  7606. uint32_t firstCounterBuffer,
  7607. uint32_t counterBufferCount,
  7608. const VkBuffer* pCounterBuffers,
  7609. const VkDeviceSize* pCounterBufferOffsets);
  7610. VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
  7611. VkCommandBuffer commandBuffer,
  7612. VkQueryPool queryPool,
  7613. uint32_t query,
  7614. VkQueryControlFlags flags,
  7615. uint32_t index);
  7616. VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
  7617. VkCommandBuffer commandBuffer,
  7618. VkQueryPool queryPool,
  7619. uint32_t query,
  7620. uint32_t index);
  7621. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
  7622. VkCommandBuffer commandBuffer,
  7623. uint32_t instanceCount,
  7624. uint32_t firstInstance,
  7625. VkBuffer counterBuffer,
  7626. VkDeviceSize counterBufferOffset,
  7627. uint32_t counterOffset,
  7628. uint32_t vertexStride);
  7629. #endif
  7630. #define VK_NVX_binary_import 1
  7631. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
  7632. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
  7633. #define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1
  7634. #define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
  7635. typedef struct VkCuModuleCreateInfoNVX {
  7636. VkStructureType sType;
  7637. const void* pNext;
  7638. size_t dataSize;
  7639. const void* pData;
  7640. } VkCuModuleCreateInfoNVX;
  7641. typedef struct VkCuFunctionCreateInfoNVX {
  7642. VkStructureType sType;
  7643. const void* pNext;
  7644. VkCuModuleNVX module;
  7645. const char* pName;
  7646. } VkCuFunctionCreateInfoNVX;
  7647. typedef struct VkCuLaunchInfoNVX {
  7648. VkStructureType sType;
  7649. const void* pNext;
  7650. VkCuFunctionNVX function;
  7651. uint32_t gridDimX;
  7652. uint32_t gridDimY;
  7653. uint32_t gridDimZ;
  7654. uint32_t blockDimX;
  7655. uint32_t blockDimY;
  7656. uint32_t blockDimZ;
  7657. uint32_t sharedMemBytes;
  7658. size_t paramCount;
  7659. const void* const * pParams;
  7660. size_t extraCount;
  7661. const void* const * pExtras;
  7662. } VkCuLaunchInfoNVX;
  7663. typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
  7664. typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
  7665. typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
  7666. typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
  7667. typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
  7668. #ifndef VK_NO_PROTOTYPES
  7669. VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
  7670. VkDevice device,
  7671. const VkCuModuleCreateInfoNVX* pCreateInfo,
  7672. const VkAllocationCallbacks* pAllocator,
  7673. VkCuModuleNVX* pModule);
  7674. VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
  7675. VkDevice device,
  7676. const VkCuFunctionCreateInfoNVX* pCreateInfo,
  7677. const VkAllocationCallbacks* pAllocator,
  7678. VkCuFunctionNVX* pFunction);
  7679. VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
  7680. VkDevice device,
  7681. VkCuModuleNVX module,
  7682. const VkAllocationCallbacks* pAllocator);
  7683. VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
  7684. VkDevice device,
  7685. VkCuFunctionNVX function,
  7686. const VkAllocationCallbacks* pAllocator);
  7687. VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
  7688. VkCommandBuffer commandBuffer,
  7689. const VkCuLaunchInfoNVX* pLaunchInfo);
  7690. #endif
  7691. #define VK_NVX_image_view_handle 1
  7692. #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
  7693. #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
  7694. typedef struct VkImageViewHandleInfoNVX {
  7695. VkStructureType sType;
  7696. const void* pNext;
  7697. VkImageView imageView;
  7698. VkDescriptorType descriptorType;
  7699. VkSampler sampler;
  7700. } VkImageViewHandleInfoNVX;
  7701. typedef struct VkImageViewAddressPropertiesNVX {
  7702. VkStructureType sType;
  7703. void* pNext;
  7704. VkDeviceAddress deviceAddress;
  7705. VkDeviceSize size;
  7706. } VkImageViewAddressPropertiesNVX;
  7707. typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
  7708. typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
  7709. #ifndef VK_NO_PROTOTYPES
  7710. VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
  7711. VkDevice device,
  7712. const VkImageViewHandleInfoNVX* pInfo);
  7713. VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
  7714. VkDevice device,
  7715. VkImageView imageView,
  7716. VkImageViewAddressPropertiesNVX* pProperties);
  7717. #endif
  7718. #define VK_AMD_draw_indirect_count 1
  7719. #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
  7720. #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
  7721. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  7722. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  7723. #ifndef VK_NO_PROTOTYPES
  7724. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
  7725. VkCommandBuffer commandBuffer,
  7726. VkBuffer buffer,
  7727. VkDeviceSize offset,
  7728. VkBuffer countBuffer,
  7729. VkDeviceSize countBufferOffset,
  7730. uint32_t maxDrawCount,
  7731. uint32_t stride);
  7732. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
  7733. VkCommandBuffer commandBuffer,
  7734. VkBuffer buffer,
  7735. VkDeviceSize offset,
  7736. VkBuffer countBuffer,
  7737. VkDeviceSize countBufferOffset,
  7738. uint32_t maxDrawCount,
  7739. uint32_t stride);
  7740. #endif
  7741. #define VK_AMD_negative_viewport_height 1
  7742. #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
  7743. #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
  7744. #define VK_AMD_gpu_shader_half_float 1
  7745. #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
  7746. #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
  7747. #define VK_AMD_shader_ballot 1
  7748. #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
  7749. #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
  7750. #define VK_AMD_texture_gather_bias_lod 1
  7751. #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
  7752. #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
  7753. typedef struct VkTextureLODGatherFormatPropertiesAMD {
  7754. VkStructureType sType;
  7755. void* pNext;
  7756. VkBool32 supportsTextureGatherLODBiasAMD;
  7757. } VkTextureLODGatherFormatPropertiesAMD;
  7758. #define VK_AMD_shader_info 1
  7759. #define VK_AMD_SHADER_INFO_SPEC_VERSION 1
  7760. #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
  7761. typedef enum VkShaderInfoTypeAMD {
  7762. VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
  7763. VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
  7764. VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
  7765. VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
  7766. } VkShaderInfoTypeAMD;
  7767. typedef struct VkShaderResourceUsageAMD {
  7768. uint32_t numUsedVgprs;
  7769. uint32_t numUsedSgprs;
  7770. uint32_t ldsSizePerLocalWorkGroup;
  7771. size_t ldsUsageSizeInBytes;
  7772. size_t scratchMemUsageInBytes;
  7773. } VkShaderResourceUsageAMD;
  7774. typedef struct VkShaderStatisticsInfoAMD {
  7775. VkShaderStageFlags shaderStageMask;
  7776. VkShaderResourceUsageAMD resourceUsage;
  7777. uint32_t numPhysicalVgprs;
  7778. uint32_t numPhysicalSgprs;
  7779. uint32_t numAvailableVgprs;
  7780. uint32_t numAvailableSgprs;
  7781. uint32_t computeWorkGroupSize[3];
  7782. } VkShaderStatisticsInfoAMD;
  7783. typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
  7784. #ifndef VK_NO_PROTOTYPES
  7785. VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
  7786. VkDevice device,
  7787. VkPipeline pipeline,
  7788. VkShaderStageFlagBits shaderStage,
  7789. VkShaderInfoTypeAMD infoType,
  7790. size_t* pInfoSize,
  7791. void* pInfo);
  7792. #endif
  7793. #define VK_AMD_shader_image_load_store_lod 1
  7794. #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
  7795. #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
  7796. #define VK_NV_corner_sampled_image 1
  7797. #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
  7798. #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
  7799. typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
  7800. VkStructureType sType;
  7801. void* pNext;
  7802. VkBool32 cornerSampledImage;
  7803. } VkPhysicalDeviceCornerSampledImageFeaturesNV;
  7804. #define VK_IMG_format_pvrtc 1
  7805. #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
  7806. #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
  7807. #define VK_NV_external_memory_capabilities 1
  7808. #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
  7809. #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
  7810. typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
  7811. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
  7812. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
  7813. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
  7814. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
  7815. VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  7816. } VkExternalMemoryHandleTypeFlagBitsNV;
  7817. typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
  7818. typedef enum VkExternalMemoryFeatureFlagBitsNV {
  7819. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
  7820. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
  7821. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
  7822. VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  7823. } VkExternalMemoryFeatureFlagBitsNV;
  7824. typedef VkFlags VkExternalMemoryFeatureFlagsNV;
  7825. typedef struct VkExternalImageFormatPropertiesNV {
  7826. VkImageFormatProperties imageFormatProperties;
  7827. VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
  7828. VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
  7829. VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
  7830. } VkExternalImageFormatPropertiesNV;
  7831. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
  7832. #ifndef VK_NO_PROTOTYPES
  7833. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
  7834. VkPhysicalDevice physicalDevice,
  7835. VkFormat format,
  7836. VkImageType type,
  7837. VkImageTiling tiling,
  7838. VkImageUsageFlags usage,
  7839. VkImageCreateFlags flags,
  7840. VkExternalMemoryHandleTypeFlagsNV externalHandleType,
  7841. VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
  7842. #endif
  7843. #define VK_NV_external_memory 1
  7844. #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
  7845. #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
  7846. typedef struct VkExternalMemoryImageCreateInfoNV {
  7847. VkStructureType sType;
  7848. const void* pNext;
  7849. VkExternalMemoryHandleTypeFlagsNV handleTypes;
  7850. } VkExternalMemoryImageCreateInfoNV;
  7851. typedef struct VkExportMemoryAllocateInfoNV {
  7852. VkStructureType sType;
  7853. const void* pNext;
  7854. VkExternalMemoryHandleTypeFlagsNV handleTypes;
  7855. } VkExportMemoryAllocateInfoNV;
  7856. #define VK_EXT_validation_flags 1
  7857. #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2
  7858. #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
  7859. typedef enum VkValidationCheckEXT {
  7860. VK_VALIDATION_CHECK_ALL_EXT = 0,
  7861. VK_VALIDATION_CHECK_SHADERS_EXT = 1,
  7862. VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
  7863. } VkValidationCheckEXT;
  7864. typedef struct VkValidationFlagsEXT {
  7865. VkStructureType sType;
  7866. const void* pNext;
  7867. uint32_t disabledValidationCheckCount;
  7868. const VkValidationCheckEXT* pDisabledValidationChecks;
  7869. } VkValidationFlagsEXT;
  7870. #define VK_EXT_shader_subgroup_ballot 1
  7871. #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
  7872. #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
  7873. #define VK_EXT_shader_subgroup_vote 1
  7874. #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
  7875. #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
  7876. #define VK_EXT_texture_compression_astc_hdr 1
  7877. #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
  7878. #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
  7879. typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT {
  7880. VkStructureType sType;
  7881. void* pNext;
  7882. VkBool32 textureCompressionASTC_HDR;
  7883. } VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
  7884. #define VK_EXT_astc_decode_mode 1
  7885. #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
  7886. #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
  7887. typedef struct VkImageViewASTCDecodeModeEXT {
  7888. VkStructureType sType;
  7889. const void* pNext;
  7890. VkFormat decodeMode;
  7891. } VkImageViewASTCDecodeModeEXT;
  7892. typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
  7893. VkStructureType sType;
  7894. void* pNext;
  7895. VkBool32 decodeModeSharedExponent;
  7896. } VkPhysicalDeviceASTCDecodeFeaturesEXT;
  7897. #define VK_EXT_conditional_rendering 1
  7898. #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
  7899. #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
  7900. typedef enum VkConditionalRenderingFlagBitsEXT {
  7901. VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
  7902. VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  7903. } VkConditionalRenderingFlagBitsEXT;
  7904. typedef VkFlags VkConditionalRenderingFlagsEXT;
  7905. typedef struct VkConditionalRenderingBeginInfoEXT {
  7906. VkStructureType sType;
  7907. const void* pNext;
  7908. VkBuffer buffer;
  7909. VkDeviceSize offset;
  7910. VkConditionalRenderingFlagsEXT flags;
  7911. } VkConditionalRenderingBeginInfoEXT;
  7912. typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
  7913. VkStructureType sType;
  7914. void* pNext;
  7915. VkBool32 conditionalRendering;
  7916. VkBool32 inheritedConditionalRendering;
  7917. } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
  7918. typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
  7919. VkStructureType sType;
  7920. const void* pNext;
  7921. VkBool32 conditionalRenderingEnable;
  7922. } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
  7923. typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
  7924. typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
  7925. #ifndef VK_NO_PROTOTYPES
  7926. VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
  7927. VkCommandBuffer commandBuffer,
  7928. const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
  7929. VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
  7930. VkCommandBuffer commandBuffer);
  7931. #endif
  7932. #define VK_NV_clip_space_w_scaling 1
  7933. #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
  7934. #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
  7935. typedef struct VkViewportWScalingNV {
  7936. float xcoeff;
  7937. float ycoeff;
  7938. } VkViewportWScalingNV;
  7939. typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
  7940. VkStructureType sType;
  7941. const void* pNext;
  7942. VkBool32 viewportWScalingEnable;
  7943. uint32_t viewportCount;
  7944. const VkViewportWScalingNV* pViewportWScalings;
  7945. } VkPipelineViewportWScalingStateCreateInfoNV;
  7946. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
  7947. #ifndef VK_NO_PROTOTYPES
  7948. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
  7949. VkCommandBuffer commandBuffer,
  7950. uint32_t firstViewport,
  7951. uint32_t viewportCount,
  7952. const VkViewportWScalingNV* pViewportWScalings);
  7953. #endif
  7954. #define VK_EXT_direct_mode_display 1
  7955. #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
  7956. #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
  7957. typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
  7958. #ifndef VK_NO_PROTOTYPES
  7959. VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
  7960. VkPhysicalDevice physicalDevice,
  7961. VkDisplayKHR display);
  7962. #endif
  7963. #define VK_EXT_display_surface_counter 1
  7964. #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
  7965. #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
  7966. typedef enum VkSurfaceCounterFlagBitsEXT {
  7967. VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
  7968. VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
  7969. VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  7970. } VkSurfaceCounterFlagBitsEXT;
  7971. typedef VkFlags VkSurfaceCounterFlagsEXT;
  7972. typedef struct VkSurfaceCapabilities2EXT {
  7973. VkStructureType sType;
  7974. void* pNext;
  7975. uint32_t minImageCount;
  7976. uint32_t maxImageCount;
  7977. VkExtent2D currentExtent;
  7978. VkExtent2D minImageExtent;
  7979. VkExtent2D maxImageExtent;
  7980. uint32_t maxImageArrayLayers;
  7981. VkSurfaceTransformFlagsKHR supportedTransforms;
  7982. VkSurfaceTransformFlagBitsKHR currentTransform;
  7983. VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
  7984. VkImageUsageFlags supportedUsageFlags;
  7985. VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
  7986. } VkSurfaceCapabilities2EXT;
  7987. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
  7988. #ifndef VK_NO_PROTOTYPES
  7989. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
  7990. VkPhysicalDevice physicalDevice,
  7991. VkSurfaceKHR surface,
  7992. VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
  7993. #endif
  7994. #define VK_EXT_display_control 1
  7995. #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
  7996. #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
  7997. typedef enum VkDisplayPowerStateEXT {
  7998. VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
  7999. VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
  8000. VK_DISPLAY_POWER_STATE_ON_EXT = 2,
  8001. VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
  8002. } VkDisplayPowerStateEXT;
  8003. typedef enum VkDeviceEventTypeEXT {
  8004. VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
  8005. VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  8006. } VkDeviceEventTypeEXT;
  8007. typedef enum VkDisplayEventTypeEXT {
  8008. VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
  8009. VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  8010. } VkDisplayEventTypeEXT;
  8011. typedef struct VkDisplayPowerInfoEXT {
  8012. VkStructureType sType;
  8013. const void* pNext;
  8014. VkDisplayPowerStateEXT powerState;
  8015. } VkDisplayPowerInfoEXT;
  8016. typedef struct VkDeviceEventInfoEXT {
  8017. VkStructureType sType;
  8018. const void* pNext;
  8019. VkDeviceEventTypeEXT deviceEvent;
  8020. } VkDeviceEventInfoEXT;
  8021. typedef struct VkDisplayEventInfoEXT {
  8022. VkStructureType sType;
  8023. const void* pNext;
  8024. VkDisplayEventTypeEXT displayEvent;
  8025. } VkDisplayEventInfoEXT;
  8026. typedef struct VkSwapchainCounterCreateInfoEXT {
  8027. VkStructureType sType;
  8028. const void* pNext;
  8029. VkSurfaceCounterFlagsEXT surfaceCounters;
  8030. } VkSwapchainCounterCreateInfoEXT;
  8031. typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
  8032. typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  8033. typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  8034. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
  8035. #ifndef VK_NO_PROTOTYPES
  8036. VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
  8037. VkDevice device,
  8038. VkDisplayKHR display,
  8039. const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
  8040. VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
  8041. VkDevice device,
  8042. const VkDeviceEventInfoEXT* pDeviceEventInfo,
  8043. const VkAllocationCallbacks* pAllocator,
  8044. VkFence* pFence);
  8045. VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
  8046. VkDevice device,
  8047. VkDisplayKHR display,
  8048. const VkDisplayEventInfoEXT* pDisplayEventInfo,
  8049. const VkAllocationCallbacks* pAllocator,
  8050. VkFence* pFence);
  8051. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
  8052. VkDevice device,
  8053. VkSwapchainKHR swapchain,
  8054. VkSurfaceCounterFlagBitsEXT counter,
  8055. uint64_t* pCounterValue);
  8056. #endif
  8057. #define VK_GOOGLE_display_timing 1
  8058. #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
  8059. #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
  8060. typedef struct VkRefreshCycleDurationGOOGLE {
  8061. uint64_t refreshDuration;
  8062. } VkRefreshCycleDurationGOOGLE;
  8063. typedef struct VkPastPresentationTimingGOOGLE {
  8064. uint32_t presentID;
  8065. uint64_t desiredPresentTime;
  8066. uint64_t actualPresentTime;
  8067. uint64_t earliestPresentTime;
  8068. uint64_t presentMargin;
  8069. } VkPastPresentationTimingGOOGLE;
  8070. typedef struct VkPresentTimeGOOGLE {
  8071. uint32_t presentID;
  8072. uint64_t desiredPresentTime;
  8073. } VkPresentTimeGOOGLE;
  8074. typedef struct VkPresentTimesInfoGOOGLE {
  8075. VkStructureType sType;
  8076. const void* pNext;
  8077. uint32_t swapchainCount;
  8078. const VkPresentTimeGOOGLE* pTimes;
  8079. } VkPresentTimesInfoGOOGLE;
  8080. typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
  8081. typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
  8082. #ifndef VK_NO_PROTOTYPES
  8083. VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
  8084. VkDevice device,
  8085. VkSwapchainKHR swapchain,
  8086. VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
  8087. VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
  8088. VkDevice device,
  8089. VkSwapchainKHR swapchain,
  8090. uint32_t* pPresentationTimingCount,
  8091. VkPastPresentationTimingGOOGLE* pPresentationTimings);
  8092. #endif
  8093. #define VK_NV_sample_mask_override_coverage 1
  8094. #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
  8095. #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
  8096. #define VK_NV_geometry_shader_passthrough 1
  8097. #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
  8098. #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
  8099. #define VK_NV_viewport_array2 1
  8100. #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
  8101. #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
  8102. #define VK_NVX_multiview_per_view_attributes 1
  8103. #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
  8104. #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
  8105. typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
  8106. VkStructureType sType;
  8107. void* pNext;
  8108. VkBool32 perViewPositionAllComponents;
  8109. } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  8110. #define VK_NV_viewport_swizzle 1
  8111. #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
  8112. #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
  8113. typedef enum VkViewportCoordinateSwizzleNV {
  8114. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
  8115. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
  8116. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
  8117. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
  8118. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
  8119. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
  8120. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
  8121. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
  8122. VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
  8123. } VkViewportCoordinateSwizzleNV;
  8124. typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
  8125. typedef struct VkViewportSwizzleNV {
  8126. VkViewportCoordinateSwizzleNV x;
  8127. VkViewportCoordinateSwizzleNV y;
  8128. VkViewportCoordinateSwizzleNV z;
  8129. VkViewportCoordinateSwizzleNV w;
  8130. } VkViewportSwizzleNV;
  8131. typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
  8132. VkStructureType sType;
  8133. const void* pNext;
  8134. VkPipelineViewportSwizzleStateCreateFlagsNV flags;
  8135. uint32_t viewportCount;
  8136. const VkViewportSwizzleNV* pViewportSwizzles;
  8137. } VkPipelineViewportSwizzleStateCreateInfoNV;
  8138. #define VK_EXT_discard_rectangles 1
  8139. #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
  8140. #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
  8141. typedef enum VkDiscardRectangleModeEXT {
  8142. VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
  8143. VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
  8144. VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  8145. } VkDiscardRectangleModeEXT;
  8146. typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
  8147. typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
  8148. VkStructureType sType;
  8149. void* pNext;
  8150. uint32_t maxDiscardRectangles;
  8151. } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
  8152. typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
  8153. VkStructureType sType;
  8154. const void* pNext;
  8155. VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
  8156. VkDiscardRectangleModeEXT discardRectangleMode;
  8157. uint32_t discardRectangleCount;
  8158. const VkRect2D* pDiscardRectangles;
  8159. } VkPipelineDiscardRectangleStateCreateInfoEXT;
  8160. typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
  8161. #ifndef VK_NO_PROTOTYPES
  8162. VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
  8163. VkCommandBuffer commandBuffer,
  8164. uint32_t firstDiscardRectangle,
  8165. uint32_t discardRectangleCount,
  8166. const VkRect2D* pDiscardRectangles);
  8167. #endif
  8168. #define VK_EXT_conservative_rasterization 1
  8169. #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
  8170. #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
  8171. typedef enum VkConservativeRasterizationModeEXT {
  8172. VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
  8173. VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
  8174. VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
  8175. VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  8176. } VkConservativeRasterizationModeEXT;
  8177. typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
  8178. typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
  8179. VkStructureType sType;
  8180. void* pNext;
  8181. float primitiveOverestimationSize;
  8182. float maxExtraPrimitiveOverestimationSize;
  8183. float extraPrimitiveOverestimationSizeGranularity;
  8184. VkBool32 primitiveUnderestimation;
  8185. VkBool32 conservativePointAndLineRasterization;
  8186. VkBool32 degenerateTrianglesRasterized;
  8187. VkBool32 degenerateLinesRasterized;
  8188. VkBool32 fullyCoveredFragmentShaderInputVariable;
  8189. VkBool32 conservativeRasterizationPostDepthCoverage;
  8190. } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
  8191. typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
  8192. VkStructureType sType;
  8193. const void* pNext;
  8194. VkPipelineRasterizationConservativeStateCreateFlagsEXT flags;
  8195. VkConservativeRasterizationModeEXT conservativeRasterizationMode;
  8196. float extraPrimitiveOverestimationSize;
  8197. } VkPipelineRasterizationConservativeStateCreateInfoEXT;
  8198. #define VK_EXT_depth_clip_enable 1
  8199. #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
  8200. #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
  8201. typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
  8202. typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
  8203. VkStructureType sType;
  8204. void* pNext;
  8205. VkBool32 depthClipEnable;
  8206. } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
  8207. typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
  8208. VkStructureType sType;
  8209. const void* pNext;
  8210. VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags;
  8211. VkBool32 depthClipEnable;
  8212. } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
  8213. #define VK_EXT_swapchain_colorspace 1
  8214. #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
  8215. #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
  8216. #define VK_EXT_hdr_metadata 1
  8217. #define VK_EXT_HDR_METADATA_SPEC_VERSION 2
  8218. #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
  8219. typedef struct VkXYColorEXT {
  8220. float x;
  8221. float y;
  8222. } VkXYColorEXT;
  8223. typedef struct VkHdrMetadataEXT {
  8224. VkStructureType sType;
  8225. const void* pNext;
  8226. VkXYColorEXT displayPrimaryRed;
  8227. VkXYColorEXT displayPrimaryGreen;
  8228. VkXYColorEXT displayPrimaryBlue;
  8229. VkXYColorEXT whitePoint;
  8230. float maxLuminance;
  8231. float minLuminance;
  8232. float maxContentLightLevel;
  8233. float maxFrameAverageLightLevel;
  8234. } VkHdrMetadataEXT;
  8235. typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
  8236. #ifndef VK_NO_PROTOTYPES
  8237. VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
  8238. VkDevice device,
  8239. uint32_t swapchainCount,
  8240. const VkSwapchainKHR* pSwapchains,
  8241. const VkHdrMetadataEXT* pMetadata);
  8242. #endif
  8243. #define VK_EXT_external_memory_dma_buf 1
  8244. #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
  8245. #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
  8246. #define VK_EXT_queue_family_foreign 1
  8247. #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
  8248. #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
  8249. #define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U)
  8250. #define VK_EXT_debug_utils 1
  8251. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
  8252. #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
  8253. #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
  8254. typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
  8255. typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
  8256. VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
  8257. VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
  8258. VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
  8259. VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
  8260. VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  8261. } VkDebugUtilsMessageSeverityFlagBitsEXT;
  8262. typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
  8263. VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
  8264. VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
  8265. VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
  8266. VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  8267. } VkDebugUtilsMessageTypeFlagBitsEXT;
  8268. typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
  8269. typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
  8270. typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
  8271. typedef struct VkDebugUtilsLabelEXT {
  8272. VkStructureType sType;
  8273. const void* pNext;
  8274. const char* pLabelName;
  8275. float color[4];
  8276. } VkDebugUtilsLabelEXT;
  8277. typedef struct VkDebugUtilsObjectNameInfoEXT {
  8278. VkStructureType sType;
  8279. const void* pNext;
  8280. VkObjectType objectType;
  8281. uint64_t objectHandle;
  8282. const char* pObjectName;
  8283. } VkDebugUtilsObjectNameInfoEXT;
  8284. typedef struct VkDebugUtilsMessengerCallbackDataEXT {
  8285. VkStructureType sType;
  8286. const void* pNext;
  8287. VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
  8288. const char* pMessageIdName;
  8289. int32_t messageIdNumber;
  8290. const char* pMessage;
  8291. uint32_t queueLabelCount;
  8292. const VkDebugUtilsLabelEXT* pQueueLabels;
  8293. uint32_t cmdBufLabelCount;
  8294. const VkDebugUtilsLabelEXT* pCmdBufLabels;
  8295. uint32_t objectCount;
  8296. const VkDebugUtilsObjectNameInfoEXT* pObjects;
  8297. } VkDebugUtilsMessengerCallbackDataEXT;
  8298. typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
  8299. VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
  8300. VkDebugUtilsMessageTypeFlagsEXT messageTypes,
  8301. const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
  8302. void* pUserData);
  8303. typedef struct VkDebugUtilsMessengerCreateInfoEXT {
  8304. VkStructureType sType;
  8305. const void* pNext;
  8306. VkDebugUtilsMessengerCreateFlagsEXT flags;
  8307. VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
  8308. VkDebugUtilsMessageTypeFlagsEXT messageType;
  8309. PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
  8310. void* pUserData;
  8311. } VkDebugUtilsMessengerCreateInfoEXT;
  8312. typedef struct VkDebugUtilsObjectTagInfoEXT {
  8313. VkStructureType sType;
  8314. const void* pNext;
  8315. VkObjectType objectType;
  8316. uint64_t objectHandle;
  8317. uint64_t tagName;
  8318. size_t tagSize;
  8319. const void* pTag;
  8320. } VkDebugUtilsObjectTagInfoEXT;
  8321. typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
  8322. typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
  8323. typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
  8324. typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
  8325. typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
  8326. typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
  8327. typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
  8328. typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
  8329. typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
  8330. typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
  8331. typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
  8332. #ifndef VK_NO_PROTOTYPES
  8333. VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
  8334. VkDevice device,
  8335. const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
  8336. VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
  8337. VkDevice device,
  8338. const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
  8339. VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
  8340. VkQueue queue,
  8341. const VkDebugUtilsLabelEXT* pLabelInfo);
  8342. VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
  8343. VkQueue queue);
  8344. VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
  8345. VkQueue queue,
  8346. const VkDebugUtilsLabelEXT* pLabelInfo);
  8347. VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
  8348. VkCommandBuffer commandBuffer,
  8349. const VkDebugUtilsLabelEXT* pLabelInfo);
  8350. VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
  8351. VkCommandBuffer commandBuffer);
  8352. VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
  8353. VkCommandBuffer commandBuffer,
  8354. const VkDebugUtilsLabelEXT* pLabelInfo);
  8355. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
  8356. VkInstance instance,
  8357. const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
  8358. const VkAllocationCallbacks* pAllocator,
  8359. VkDebugUtilsMessengerEXT* pMessenger);
  8360. VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
  8361. VkInstance instance,
  8362. VkDebugUtilsMessengerEXT messenger,
  8363. const VkAllocationCallbacks* pAllocator);
  8364. VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
  8365. VkInstance instance,
  8366. VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
  8367. VkDebugUtilsMessageTypeFlagsEXT messageTypes,
  8368. const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
  8369. #endif
  8370. #define VK_EXT_sampler_filter_minmax 1
  8371. #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
  8372. #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
  8373. typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
  8374. typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
  8375. typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
  8376. #define VK_AMD_gpu_shader_int16 1
  8377. #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
  8378. #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
  8379. #define VK_AMD_mixed_attachment_samples 1
  8380. #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
  8381. #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
  8382. #define VK_AMD_shader_fragment_mask 1
  8383. #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
  8384. #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
  8385. #define VK_EXT_inline_uniform_block 1
  8386. #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
  8387. #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
  8388. typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
  8389. VkStructureType sType;
  8390. void* pNext;
  8391. VkBool32 inlineUniformBlock;
  8392. VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
  8393. } VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
  8394. typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
  8395. VkStructureType sType;
  8396. void* pNext;
  8397. uint32_t maxInlineUniformBlockSize;
  8398. uint32_t maxPerStageDescriptorInlineUniformBlocks;
  8399. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
  8400. uint32_t maxDescriptorSetInlineUniformBlocks;
  8401. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
  8402. } VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
  8403. typedef struct VkWriteDescriptorSetInlineUniformBlockEXT {
  8404. VkStructureType sType;
  8405. const void* pNext;
  8406. uint32_t dataSize;
  8407. const void* pData;
  8408. } VkWriteDescriptorSetInlineUniformBlockEXT;
  8409. typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
  8410. VkStructureType sType;
  8411. const void* pNext;
  8412. uint32_t maxInlineUniformBlockBindings;
  8413. } VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
  8414. #define VK_EXT_shader_stencil_export 1
  8415. #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
  8416. #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
  8417. #define VK_EXT_sample_locations 1
  8418. #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
  8419. #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
  8420. typedef struct VkSampleLocationEXT {
  8421. float x;
  8422. float y;
  8423. } VkSampleLocationEXT;
  8424. typedef struct VkSampleLocationsInfoEXT {
  8425. VkStructureType sType;
  8426. const void* pNext;
  8427. VkSampleCountFlagBits sampleLocationsPerPixel;
  8428. VkExtent2D sampleLocationGridSize;
  8429. uint32_t sampleLocationsCount;
  8430. const VkSampleLocationEXT* pSampleLocations;
  8431. } VkSampleLocationsInfoEXT;
  8432. typedef struct VkAttachmentSampleLocationsEXT {
  8433. uint32_t attachmentIndex;
  8434. VkSampleLocationsInfoEXT sampleLocationsInfo;
  8435. } VkAttachmentSampleLocationsEXT;
  8436. typedef struct VkSubpassSampleLocationsEXT {
  8437. uint32_t subpassIndex;
  8438. VkSampleLocationsInfoEXT sampleLocationsInfo;
  8439. } VkSubpassSampleLocationsEXT;
  8440. typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
  8441. VkStructureType sType;
  8442. const void* pNext;
  8443. uint32_t attachmentInitialSampleLocationsCount;
  8444. const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
  8445. uint32_t postSubpassSampleLocationsCount;
  8446. const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
  8447. } VkRenderPassSampleLocationsBeginInfoEXT;
  8448. typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
  8449. VkStructureType sType;
  8450. const void* pNext;
  8451. VkBool32 sampleLocationsEnable;
  8452. VkSampleLocationsInfoEXT sampleLocationsInfo;
  8453. } VkPipelineSampleLocationsStateCreateInfoEXT;
  8454. typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
  8455. VkStructureType sType;
  8456. void* pNext;
  8457. VkSampleCountFlags sampleLocationSampleCounts;
  8458. VkExtent2D maxSampleLocationGridSize;
  8459. float sampleLocationCoordinateRange[2];
  8460. uint32_t sampleLocationSubPixelBits;
  8461. VkBool32 variableSampleLocations;
  8462. } VkPhysicalDeviceSampleLocationsPropertiesEXT;
  8463. typedef struct VkMultisamplePropertiesEXT {
  8464. VkStructureType sType;
  8465. void* pNext;
  8466. VkExtent2D maxSampleLocationGridSize;
  8467. } VkMultisamplePropertiesEXT;
  8468. typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
  8469. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
  8470. #ifndef VK_NO_PROTOTYPES
  8471. VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
  8472. VkCommandBuffer commandBuffer,
  8473. const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
  8474. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
  8475. VkPhysicalDevice physicalDevice,
  8476. VkSampleCountFlagBits samples,
  8477. VkMultisamplePropertiesEXT* pMultisampleProperties);
  8478. #endif
  8479. #define VK_EXT_blend_operation_advanced 1
  8480. #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
  8481. #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
  8482. typedef enum VkBlendOverlapEXT {
  8483. VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
  8484. VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
  8485. VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
  8486. VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
  8487. } VkBlendOverlapEXT;
  8488. typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
  8489. VkStructureType sType;
  8490. void* pNext;
  8491. VkBool32 advancedBlendCoherentOperations;
  8492. } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  8493. typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
  8494. VkStructureType sType;
  8495. void* pNext;
  8496. uint32_t advancedBlendMaxColorAttachments;
  8497. VkBool32 advancedBlendIndependentBlend;
  8498. VkBool32 advancedBlendNonPremultipliedSrcColor;
  8499. VkBool32 advancedBlendNonPremultipliedDstColor;
  8500. VkBool32 advancedBlendCorrelatedOverlap;
  8501. VkBool32 advancedBlendAllOperations;
  8502. } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  8503. typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
  8504. VkStructureType sType;
  8505. const void* pNext;
  8506. VkBool32 srcPremultiplied;
  8507. VkBool32 dstPremultiplied;
  8508. VkBlendOverlapEXT blendOverlap;
  8509. } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
  8510. #define VK_NV_fragment_coverage_to_color 1
  8511. #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
  8512. #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
  8513. typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
  8514. typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
  8515. VkStructureType sType;
  8516. const void* pNext;
  8517. VkPipelineCoverageToColorStateCreateFlagsNV flags;
  8518. VkBool32 coverageToColorEnable;
  8519. uint32_t coverageToColorLocation;
  8520. } VkPipelineCoverageToColorStateCreateInfoNV;
  8521. #define VK_NV_framebuffer_mixed_samples 1
  8522. #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
  8523. #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
  8524. typedef enum VkCoverageModulationModeNV {
  8525. VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
  8526. VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
  8527. VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
  8528. VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
  8529. VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  8530. } VkCoverageModulationModeNV;
  8531. typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
  8532. typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
  8533. VkStructureType sType;
  8534. const void* pNext;
  8535. VkPipelineCoverageModulationStateCreateFlagsNV flags;
  8536. VkCoverageModulationModeNV coverageModulationMode;
  8537. VkBool32 coverageModulationTableEnable;
  8538. uint32_t coverageModulationTableCount;
  8539. const float* pCoverageModulationTable;
  8540. } VkPipelineCoverageModulationStateCreateInfoNV;
  8541. #define VK_NV_fill_rectangle 1
  8542. #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
  8543. #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
  8544. #define VK_NV_shader_sm_builtins 1
  8545. #define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
  8546. #define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
  8547. typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
  8548. VkStructureType sType;
  8549. void* pNext;
  8550. uint32_t shaderSMCount;
  8551. uint32_t shaderWarpsPerSM;
  8552. } VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
  8553. typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
  8554. VkStructureType sType;
  8555. void* pNext;
  8556. VkBool32 shaderSMBuiltins;
  8557. } VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
  8558. #define VK_EXT_post_depth_coverage 1
  8559. #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
  8560. #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
  8561. #define VK_EXT_image_drm_format_modifier 1
  8562. #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
  8563. #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
  8564. typedef struct VkDrmFormatModifierPropertiesEXT {
  8565. uint64_t drmFormatModifier;
  8566. uint32_t drmFormatModifierPlaneCount;
  8567. VkFormatFeatureFlags drmFormatModifierTilingFeatures;
  8568. } VkDrmFormatModifierPropertiesEXT;
  8569. typedef struct VkDrmFormatModifierPropertiesListEXT {
  8570. VkStructureType sType;
  8571. void* pNext;
  8572. uint32_t drmFormatModifierCount;
  8573. VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
  8574. } VkDrmFormatModifierPropertiesListEXT;
  8575. typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
  8576. VkStructureType sType;
  8577. const void* pNext;
  8578. uint64_t drmFormatModifier;
  8579. VkSharingMode sharingMode;
  8580. uint32_t queueFamilyIndexCount;
  8581. const uint32_t* pQueueFamilyIndices;
  8582. } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
  8583. typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
  8584. VkStructureType sType;
  8585. const void* pNext;
  8586. uint32_t drmFormatModifierCount;
  8587. const uint64_t* pDrmFormatModifiers;
  8588. } VkImageDrmFormatModifierListCreateInfoEXT;
  8589. typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
  8590. VkStructureType sType;
  8591. const void* pNext;
  8592. uint64_t drmFormatModifier;
  8593. uint32_t drmFormatModifierPlaneCount;
  8594. const VkSubresourceLayout* pPlaneLayouts;
  8595. } VkImageDrmFormatModifierExplicitCreateInfoEXT;
  8596. typedef struct VkImageDrmFormatModifierPropertiesEXT {
  8597. VkStructureType sType;
  8598. void* pNext;
  8599. uint64_t drmFormatModifier;
  8600. } VkImageDrmFormatModifierPropertiesEXT;
  8601. typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
  8602. #ifndef VK_NO_PROTOTYPES
  8603. VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
  8604. VkDevice device,
  8605. VkImage image,
  8606. VkImageDrmFormatModifierPropertiesEXT* pProperties);
  8607. #endif
  8608. #define VK_EXT_validation_cache 1
  8609. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
  8610. #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
  8611. #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
  8612. typedef enum VkValidationCacheHeaderVersionEXT {
  8613. VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
  8614. VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
  8615. } VkValidationCacheHeaderVersionEXT;
  8616. typedef VkFlags VkValidationCacheCreateFlagsEXT;
  8617. typedef struct VkValidationCacheCreateInfoEXT {
  8618. VkStructureType sType;
  8619. const void* pNext;
  8620. VkValidationCacheCreateFlagsEXT flags;
  8621. size_t initialDataSize;
  8622. const void* pInitialData;
  8623. } VkValidationCacheCreateInfoEXT;
  8624. typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
  8625. VkStructureType sType;
  8626. const void* pNext;
  8627. VkValidationCacheEXT validationCache;
  8628. } VkShaderModuleValidationCacheCreateInfoEXT;
  8629. typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
  8630. typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
  8631. typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
  8632. typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
  8633. #ifndef VK_NO_PROTOTYPES
  8634. VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
  8635. VkDevice device,
  8636. const VkValidationCacheCreateInfoEXT* pCreateInfo,
  8637. const VkAllocationCallbacks* pAllocator,
  8638. VkValidationCacheEXT* pValidationCache);
  8639. VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
  8640. VkDevice device,
  8641. VkValidationCacheEXT validationCache,
  8642. const VkAllocationCallbacks* pAllocator);
  8643. VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
  8644. VkDevice device,
  8645. VkValidationCacheEXT dstCache,
  8646. uint32_t srcCacheCount,
  8647. const VkValidationCacheEXT* pSrcCaches);
  8648. VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
  8649. VkDevice device,
  8650. VkValidationCacheEXT validationCache,
  8651. size_t* pDataSize,
  8652. void* pData);
  8653. #endif
  8654. #define VK_EXT_descriptor_indexing 1
  8655. #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
  8656. #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
  8657. typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
  8658. typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
  8659. typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
  8660. typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
  8661. typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
  8662. typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
  8663. typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
  8664. #define VK_EXT_shader_viewport_index_layer 1
  8665. #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
  8666. #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
  8667. #define VK_NV_shading_rate_image 1
  8668. #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
  8669. #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
  8670. typedef enum VkShadingRatePaletteEntryNV {
  8671. VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
  8672. VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
  8673. VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
  8674. VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
  8675. VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
  8676. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
  8677. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
  8678. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
  8679. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
  8680. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
  8681. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
  8682. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
  8683. VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
  8684. } VkShadingRatePaletteEntryNV;
  8685. typedef enum VkCoarseSampleOrderTypeNV {
  8686. VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
  8687. VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
  8688. VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
  8689. VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
  8690. VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  8691. } VkCoarseSampleOrderTypeNV;
  8692. typedef struct VkShadingRatePaletteNV {
  8693. uint32_t shadingRatePaletteEntryCount;
  8694. const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
  8695. } VkShadingRatePaletteNV;
  8696. typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
  8697. VkStructureType sType;
  8698. const void* pNext;
  8699. VkBool32 shadingRateImageEnable;
  8700. uint32_t viewportCount;
  8701. const VkShadingRatePaletteNV* pShadingRatePalettes;
  8702. } VkPipelineViewportShadingRateImageStateCreateInfoNV;
  8703. typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
  8704. VkStructureType sType;
  8705. void* pNext;
  8706. VkBool32 shadingRateImage;
  8707. VkBool32 shadingRateCoarseSampleOrder;
  8708. } VkPhysicalDeviceShadingRateImageFeaturesNV;
  8709. typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
  8710. VkStructureType sType;
  8711. void* pNext;
  8712. VkExtent2D shadingRateTexelSize;
  8713. uint32_t shadingRatePaletteSize;
  8714. uint32_t shadingRateMaxCoarseSamples;
  8715. } VkPhysicalDeviceShadingRateImagePropertiesNV;
  8716. typedef struct VkCoarseSampleLocationNV {
  8717. uint32_t pixelX;
  8718. uint32_t pixelY;
  8719. uint32_t sample;
  8720. } VkCoarseSampleLocationNV;
  8721. typedef struct VkCoarseSampleOrderCustomNV {
  8722. VkShadingRatePaletteEntryNV shadingRate;
  8723. uint32_t sampleCount;
  8724. uint32_t sampleLocationCount;
  8725. const VkCoarseSampleLocationNV* pSampleLocations;
  8726. } VkCoarseSampleOrderCustomNV;
  8727. typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
  8728. VkStructureType sType;
  8729. const void* pNext;
  8730. VkCoarseSampleOrderTypeNV sampleOrderType;
  8731. uint32_t customSampleOrderCount;
  8732. const VkCoarseSampleOrderCustomNV* pCustomSampleOrders;
  8733. } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
  8734. typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
  8735. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
  8736. typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
  8737. #ifndef VK_NO_PROTOTYPES
  8738. VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
  8739. VkCommandBuffer commandBuffer,
  8740. VkImageView imageView,
  8741. VkImageLayout imageLayout);
  8742. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
  8743. VkCommandBuffer commandBuffer,
  8744. uint32_t firstViewport,
  8745. uint32_t viewportCount,
  8746. const VkShadingRatePaletteNV* pShadingRatePalettes);
  8747. VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
  8748. VkCommandBuffer commandBuffer,
  8749. VkCoarseSampleOrderTypeNV sampleOrderType,
  8750. uint32_t customSampleOrderCount,
  8751. const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
  8752. #endif
  8753. #define VK_NV_ray_tracing 1
  8754. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
  8755. #define VK_NV_RAY_TRACING_SPEC_VERSION 3
  8756. #define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
  8757. #define VK_SHADER_UNUSED_KHR (~0U)
  8758. #define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR
  8759. typedef enum VkRayTracingShaderGroupTypeKHR {
  8760. VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
  8761. VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
  8762. VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
  8763. VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
  8764. VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
  8765. VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
  8766. VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  8767. } VkRayTracingShaderGroupTypeKHR;
  8768. typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
  8769. typedef enum VkGeometryTypeKHR {
  8770. VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
  8771. VK_GEOMETRY_TYPE_AABBS_KHR = 1,
  8772. VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
  8773. VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
  8774. VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
  8775. VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  8776. } VkGeometryTypeKHR;
  8777. typedef VkGeometryTypeKHR VkGeometryTypeNV;
  8778. typedef enum VkAccelerationStructureTypeKHR {
  8779. VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
  8780. VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
  8781. VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
  8782. VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
  8783. VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
  8784. VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  8785. } VkAccelerationStructureTypeKHR;
  8786. typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
  8787. typedef enum VkCopyAccelerationStructureModeKHR {
  8788. VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
  8789. VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
  8790. VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
  8791. VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
  8792. VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
  8793. VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
  8794. VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  8795. } VkCopyAccelerationStructureModeKHR;
  8796. typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
  8797. typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
  8798. VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
  8799. VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
  8800. VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
  8801. VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  8802. } VkAccelerationStructureMemoryRequirementsTypeNV;
  8803. typedef enum VkGeometryFlagBitsKHR {
  8804. VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
  8805. VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
  8806. VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
  8807. VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
  8808. VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8809. } VkGeometryFlagBitsKHR;
  8810. typedef VkFlags VkGeometryFlagsKHR;
  8811. typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
  8812. typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
  8813. typedef enum VkGeometryInstanceFlagBitsKHR {
  8814. VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
  8815. VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
  8816. VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
  8817. VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
  8818. VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
  8819. VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
  8820. VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
  8821. VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
  8822. VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
  8823. VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8824. } VkGeometryInstanceFlagBitsKHR;
  8825. typedef VkFlags VkGeometryInstanceFlagsKHR;
  8826. typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
  8827. typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
  8828. typedef enum VkBuildAccelerationStructureFlagBitsKHR {
  8829. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
  8830. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
  8831. VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
  8832. VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
  8833. VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
  8834. VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
  8835. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
  8836. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
  8837. VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
  8838. VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
  8839. VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
  8840. VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  8841. } VkBuildAccelerationStructureFlagBitsKHR;
  8842. typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
  8843. typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
  8844. typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
  8845. typedef struct VkRayTracingShaderGroupCreateInfoNV {
  8846. VkStructureType sType;
  8847. const void* pNext;
  8848. VkRayTracingShaderGroupTypeKHR type;
  8849. uint32_t generalShader;
  8850. uint32_t closestHitShader;
  8851. uint32_t anyHitShader;
  8852. uint32_t intersectionShader;
  8853. } VkRayTracingShaderGroupCreateInfoNV;
  8854. typedef struct VkRayTracingPipelineCreateInfoNV {
  8855. VkStructureType sType;
  8856. const void* pNext;
  8857. VkPipelineCreateFlags flags;
  8858. uint32_t stageCount;
  8859. const VkPipelineShaderStageCreateInfo* pStages;
  8860. uint32_t groupCount;
  8861. const VkRayTracingShaderGroupCreateInfoNV* pGroups;
  8862. uint32_t maxRecursionDepth;
  8863. VkPipelineLayout layout;
  8864. VkPipeline basePipelineHandle;
  8865. int32_t basePipelineIndex;
  8866. } VkRayTracingPipelineCreateInfoNV;
  8867. typedef struct VkGeometryTrianglesNV {
  8868. VkStructureType sType;
  8869. const void* pNext;
  8870. VkBuffer vertexData;
  8871. VkDeviceSize vertexOffset;
  8872. uint32_t vertexCount;
  8873. VkDeviceSize vertexStride;
  8874. VkFormat vertexFormat;
  8875. VkBuffer indexData;
  8876. VkDeviceSize indexOffset;
  8877. uint32_t indexCount;
  8878. VkIndexType indexType;
  8879. VkBuffer transformData;
  8880. VkDeviceSize transformOffset;
  8881. } VkGeometryTrianglesNV;
  8882. typedef struct VkGeometryAABBNV {
  8883. VkStructureType sType;
  8884. const void* pNext;
  8885. VkBuffer aabbData;
  8886. uint32_t numAABBs;
  8887. uint32_t stride;
  8888. VkDeviceSize offset;
  8889. } VkGeometryAABBNV;
  8890. typedef struct VkGeometryDataNV {
  8891. VkGeometryTrianglesNV triangles;
  8892. VkGeometryAABBNV aabbs;
  8893. } VkGeometryDataNV;
  8894. typedef struct VkGeometryNV {
  8895. VkStructureType sType;
  8896. const void* pNext;
  8897. VkGeometryTypeKHR geometryType;
  8898. VkGeometryDataNV geometry;
  8899. VkGeometryFlagsKHR flags;
  8900. } VkGeometryNV;
  8901. typedef struct VkAccelerationStructureInfoNV {
  8902. VkStructureType sType;
  8903. const void* pNext;
  8904. VkAccelerationStructureTypeNV type;
  8905. VkBuildAccelerationStructureFlagsNV flags;
  8906. uint32_t instanceCount;
  8907. uint32_t geometryCount;
  8908. const VkGeometryNV* pGeometries;
  8909. } VkAccelerationStructureInfoNV;
  8910. typedef struct VkAccelerationStructureCreateInfoNV {
  8911. VkStructureType sType;
  8912. const void* pNext;
  8913. VkDeviceSize compactedSize;
  8914. VkAccelerationStructureInfoNV info;
  8915. } VkAccelerationStructureCreateInfoNV;
  8916. typedef struct VkBindAccelerationStructureMemoryInfoNV {
  8917. VkStructureType sType;
  8918. const void* pNext;
  8919. VkAccelerationStructureNV accelerationStructure;
  8920. VkDeviceMemory memory;
  8921. VkDeviceSize memoryOffset;
  8922. uint32_t deviceIndexCount;
  8923. const uint32_t* pDeviceIndices;
  8924. } VkBindAccelerationStructureMemoryInfoNV;
  8925. typedef struct VkWriteDescriptorSetAccelerationStructureNV {
  8926. VkStructureType sType;
  8927. const void* pNext;
  8928. uint32_t accelerationStructureCount;
  8929. const VkAccelerationStructureNV* pAccelerationStructures;
  8930. } VkWriteDescriptorSetAccelerationStructureNV;
  8931. typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
  8932. VkStructureType sType;
  8933. const void* pNext;
  8934. VkAccelerationStructureMemoryRequirementsTypeNV type;
  8935. VkAccelerationStructureNV accelerationStructure;
  8936. } VkAccelerationStructureMemoryRequirementsInfoNV;
  8937. typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
  8938. VkStructureType sType;
  8939. void* pNext;
  8940. uint32_t shaderGroupHandleSize;
  8941. uint32_t maxRecursionDepth;
  8942. uint32_t maxShaderGroupStride;
  8943. uint32_t shaderGroupBaseAlignment;
  8944. uint64_t maxGeometryCount;
  8945. uint64_t maxInstanceCount;
  8946. uint64_t maxTriangleCount;
  8947. uint32_t maxDescriptorSetAccelerationStructures;
  8948. } VkPhysicalDeviceRayTracingPropertiesNV;
  8949. typedef struct VkTransformMatrixKHR {
  8950. float matrix[3][4];
  8951. } VkTransformMatrixKHR;
  8952. typedef VkTransformMatrixKHR VkTransformMatrixNV;
  8953. typedef struct VkAabbPositionsKHR {
  8954. float minX;
  8955. float minY;
  8956. float minZ;
  8957. float maxX;
  8958. float maxY;
  8959. float maxZ;
  8960. } VkAabbPositionsKHR;
  8961. typedef VkAabbPositionsKHR VkAabbPositionsNV;
  8962. typedef struct VkAccelerationStructureInstanceKHR {
  8963. VkTransformMatrixKHR transform;
  8964. uint32_t instanceCustomIndex:24;
  8965. uint32_t mask:8;
  8966. uint32_t instanceShaderBindingTableRecordOffset:24;
  8967. VkGeometryInstanceFlagsKHR flags:8;
  8968. uint64_t accelerationStructureReference;
  8969. } VkAccelerationStructureInstanceKHR;
  8970. typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
  8971. typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
  8972. typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
  8973. typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
  8974. typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
  8975. 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);
  8976. typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
  8977. 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);
  8978. typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  8979. typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
  8980. typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
  8981. typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
  8982. typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
  8983. typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
  8984. #ifndef VK_NO_PROTOTYPES
  8985. VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
  8986. VkDevice device,
  8987. const VkAccelerationStructureCreateInfoNV* pCreateInfo,
  8988. const VkAllocationCallbacks* pAllocator,
  8989. VkAccelerationStructureNV* pAccelerationStructure);
  8990. VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
  8991. VkDevice device,
  8992. VkAccelerationStructureNV accelerationStructure,
  8993. const VkAllocationCallbacks* pAllocator);
  8994. VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
  8995. VkDevice device,
  8996. const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
  8997. VkMemoryRequirements2KHR* pMemoryRequirements);
  8998. VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
  8999. VkDevice device,
  9000. uint32_t bindInfoCount,
  9001. const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
  9002. VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
  9003. VkCommandBuffer commandBuffer,
  9004. const VkAccelerationStructureInfoNV* pInfo,
  9005. VkBuffer instanceData,
  9006. VkDeviceSize instanceOffset,
  9007. VkBool32 update,
  9008. VkAccelerationStructureNV dst,
  9009. VkAccelerationStructureNV src,
  9010. VkBuffer scratch,
  9011. VkDeviceSize scratchOffset);
  9012. VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
  9013. VkCommandBuffer commandBuffer,
  9014. VkAccelerationStructureNV dst,
  9015. VkAccelerationStructureNV src,
  9016. VkCopyAccelerationStructureModeKHR mode);
  9017. VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
  9018. VkCommandBuffer commandBuffer,
  9019. VkBuffer raygenShaderBindingTableBuffer,
  9020. VkDeviceSize raygenShaderBindingOffset,
  9021. VkBuffer missShaderBindingTableBuffer,
  9022. VkDeviceSize missShaderBindingOffset,
  9023. VkDeviceSize missShaderBindingStride,
  9024. VkBuffer hitShaderBindingTableBuffer,
  9025. VkDeviceSize hitShaderBindingOffset,
  9026. VkDeviceSize hitShaderBindingStride,
  9027. VkBuffer callableShaderBindingTableBuffer,
  9028. VkDeviceSize callableShaderBindingOffset,
  9029. VkDeviceSize callableShaderBindingStride,
  9030. uint32_t width,
  9031. uint32_t height,
  9032. uint32_t depth);
  9033. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
  9034. VkDevice device,
  9035. VkPipelineCache pipelineCache,
  9036. uint32_t createInfoCount,
  9037. const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
  9038. const VkAllocationCallbacks* pAllocator,
  9039. VkPipeline* pPipelines);
  9040. VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
  9041. VkDevice device,
  9042. VkPipeline pipeline,
  9043. uint32_t firstGroup,
  9044. uint32_t groupCount,
  9045. size_t dataSize,
  9046. void* pData);
  9047. VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
  9048. VkDevice device,
  9049. VkPipeline pipeline,
  9050. uint32_t firstGroup,
  9051. uint32_t groupCount,
  9052. size_t dataSize,
  9053. void* pData);
  9054. VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
  9055. VkDevice device,
  9056. VkAccelerationStructureNV accelerationStructure,
  9057. size_t dataSize,
  9058. void* pData);
  9059. VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
  9060. VkCommandBuffer commandBuffer,
  9061. uint32_t accelerationStructureCount,
  9062. const VkAccelerationStructureNV* pAccelerationStructures,
  9063. VkQueryType queryType,
  9064. VkQueryPool queryPool,
  9065. uint32_t firstQuery);
  9066. VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
  9067. VkDevice device,
  9068. VkPipeline pipeline,
  9069. uint32_t shader);
  9070. #endif
  9071. #define VK_NV_representative_fragment_test 1
  9072. #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
  9073. #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
  9074. typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
  9075. VkStructureType sType;
  9076. void* pNext;
  9077. VkBool32 representativeFragmentTest;
  9078. } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  9079. typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
  9080. VkStructureType sType;
  9081. const void* pNext;
  9082. VkBool32 representativeFragmentTestEnable;
  9083. } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
  9084. #define VK_EXT_filter_cubic 1
  9085. #define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
  9086. #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
  9087. typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
  9088. VkStructureType sType;
  9089. void* pNext;
  9090. VkImageViewType imageViewType;
  9091. } VkPhysicalDeviceImageViewImageFormatInfoEXT;
  9092. typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
  9093. VkStructureType sType;
  9094. void* pNext;
  9095. VkBool32 filterCubic;
  9096. VkBool32 filterCubicMinmax;
  9097. } VkFilterCubicImageViewImageFormatPropertiesEXT;
  9098. #define VK_QCOM_render_pass_shader_resolve 1
  9099. #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
  9100. #define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
  9101. #define VK_EXT_global_priority 1
  9102. #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
  9103. #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
  9104. typedef enum VkQueueGlobalPriorityEXT {
  9105. VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
  9106. VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
  9107. VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
  9108. VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
  9109. VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF
  9110. } VkQueueGlobalPriorityEXT;
  9111. typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
  9112. VkStructureType sType;
  9113. const void* pNext;
  9114. VkQueueGlobalPriorityEXT globalPriority;
  9115. } VkDeviceQueueGlobalPriorityCreateInfoEXT;
  9116. #define VK_EXT_external_memory_host 1
  9117. #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
  9118. #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
  9119. typedef struct VkImportMemoryHostPointerInfoEXT {
  9120. VkStructureType sType;
  9121. const void* pNext;
  9122. VkExternalMemoryHandleTypeFlagBits handleType;
  9123. void* pHostPointer;
  9124. } VkImportMemoryHostPointerInfoEXT;
  9125. typedef struct VkMemoryHostPointerPropertiesEXT {
  9126. VkStructureType sType;
  9127. void* pNext;
  9128. uint32_t memoryTypeBits;
  9129. } VkMemoryHostPointerPropertiesEXT;
  9130. typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
  9131. VkStructureType sType;
  9132. void* pNext;
  9133. VkDeviceSize minImportedHostPointerAlignment;
  9134. } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
  9135. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
  9136. #ifndef VK_NO_PROTOTYPES
  9137. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
  9138. VkDevice device,
  9139. VkExternalMemoryHandleTypeFlagBits handleType,
  9140. const void* pHostPointer,
  9141. VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
  9142. #endif
  9143. #define VK_AMD_buffer_marker 1
  9144. #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
  9145. #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
  9146. typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
  9147. #ifndef VK_NO_PROTOTYPES
  9148. VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
  9149. VkCommandBuffer commandBuffer,
  9150. VkPipelineStageFlagBits pipelineStage,
  9151. VkBuffer dstBuffer,
  9152. VkDeviceSize dstOffset,
  9153. uint32_t marker);
  9154. #endif
  9155. #define VK_AMD_pipeline_compiler_control 1
  9156. #define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
  9157. #define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
  9158. typedef enum VkPipelineCompilerControlFlagBitsAMD {
  9159. VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
  9160. } VkPipelineCompilerControlFlagBitsAMD;
  9161. typedef VkFlags VkPipelineCompilerControlFlagsAMD;
  9162. typedef struct VkPipelineCompilerControlCreateInfoAMD {
  9163. VkStructureType sType;
  9164. const void* pNext;
  9165. VkPipelineCompilerControlFlagsAMD compilerControlFlags;
  9166. } VkPipelineCompilerControlCreateInfoAMD;
  9167. #define VK_EXT_calibrated_timestamps 1
  9168. #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
  9169. #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
  9170. typedef enum VkTimeDomainEXT {
  9171. VK_TIME_DOMAIN_DEVICE_EXT = 0,
  9172. VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
  9173. VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
  9174. VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
  9175. VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
  9176. } VkTimeDomainEXT;
  9177. typedef struct VkCalibratedTimestampInfoEXT {
  9178. VkStructureType sType;
  9179. const void* pNext;
  9180. VkTimeDomainEXT timeDomain;
  9181. } VkCalibratedTimestampInfoEXT;
  9182. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);
  9183. typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
  9184. #ifndef VK_NO_PROTOTYPES
  9185. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
  9186. VkPhysicalDevice physicalDevice,
  9187. uint32_t* pTimeDomainCount,
  9188. VkTimeDomainEXT* pTimeDomains);
  9189. VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
  9190. VkDevice device,
  9191. uint32_t timestampCount,
  9192. const VkCalibratedTimestampInfoEXT* pTimestampInfos,
  9193. uint64_t* pTimestamps,
  9194. uint64_t* pMaxDeviation);
  9195. #endif
  9196. #define VK_AMD_shader_core_properties 1
  9197. #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
  9198. #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
  9199. typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
  9200. VkStructureType sType;
  9201. void* pNext;
  9202. uint32_t shaderEngineCount;
  9203. uint32_t shaderArraysPerEngineCount;
  9204. uint32_t computeUnitsPerShaderArray;
  9205. uint32_t simdPerComputeUnit;
  9206. uint32_t wavefrontsPerSimd;
  9207. uint32_t wavefrontSize;
  9208. uint32_t sgprsPerSimd;
  9209. uint32_t minSgprAllocation;
  9210. uint32_t maxSgprAllocation;
  9211. uint32_t sgprAllocationGranularity;
  9212. uint32_t vgprsPerSimd;
  9213. uint32_t minVgprAllocation;
  9214. uint32_t maxVgprAllocation;
  9215. uint32_t vgprAllocationGranularity;
  9216. } VkPhysicalDeviceShaderCorePropertiesAMD;
  9217. #define VK_AMD_memory_overallocation_behavior 1
  9218. #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
  9219. #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
  9220. typedef enum VkMemoryOverallocationBehaviorAMD {
  9221. VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
  9222. VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
  9223. VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
  9224. VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
  9225. } VkMemoryOverallocationBehaviorAMD;
  9226. typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
  9227. VkStructureType sType;
  9228. const void* pNext;
  9229. VkMemoryOverallocationBehaviorAMD overallocationBehavior;
  9230. } VkDeviceMemoryOverallocationCreateInfoAMD;
  9231. #define VK_EXT_vertex_attribute_divisor 1
  9232. #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
  9233. #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
  9234. typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
  9235. VkStructureType sType;
  9236. void* pNext;
  9237. uint32_t maxVertexAttribDivisor;
  9238. } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  9239. typedef struct VkVertexInputBindingDivisorDescriptionEXT {
  9240. uint32_t binding;
  9241. uint32_t divisor;
  9242. } VkVertexInputBindingDivisorDescriptionEXT;
  9243. typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
  9244. VkStructureType sType;
  9245. const void* pNext;
  9246. uint32_t vertexBindingDivisorCount;
  9247. const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors;
  9248. } VkPipelineVertexInputDivisorStateCreateInfoEXT;
  9249. typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
  9250. VkStructureType sType;
  9251. void* pNext;
  9252. VkBool32 vertexAttributeInstanceRateDivisor;
  9253. VkBool32 vertexAttributeInstanceRateZeroDivisor;
  9254. } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  9255. #define VK_EXT_pipeline_creation_feedback 1
  9256. #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
  9257. #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
  9258. typedef enum VkPipelineCreationFeedbackFlagBitsEXT {
  9259. VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 0x00000001,
  9260. VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 0x00000002,
  9261. VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 0x00000004,
  9262. VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  9263. } VkPipelineCreationFeedbackFlagBitsEXT;
  9264. typedef VkFlags VkPipelineCreationFeedbackFlagsEXT;
  9265. typedef struct VkPipelineCreationFeedbackEXT {
  9266. VkPipelineCreationFeedbackFlagsEXT flags;
  9267. uint64_t duration;
  9268. } VkPipelineCreationFeedbackEXT;
  9269. typedef struct VkPipelineCreationFeedbackCreateInfoEXT {
  9270. VkStructureType sType;
  9271. const void* pNext;
  9272. VkPipelineCreationFeedbackEXT* pPipelineCreationFeedback;
  9273. uint32_t pipelineStageCreationFeedbackCount;
  9274. VkPipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks;
  9275. } VkPipelineCreationFeedbackCreateInfoEXT;
  9276. #define VK_NV_shader_subgroup_partitioned 1
  9277. #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
  9278. #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
  9279. #define VK_NV_compute_shader_derivatives 1
  9280. #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
  9281. #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
  9282. typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
  9283. VkStructureType sType;
  9284. void* pNext;
  9285. VkBool32 computeDerivativeGroupQuads;
  9286. VkBool32 computeDerivativeGroupLinear;
  9287. } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
  9288. #define VK_NV_mesh_shader 1
  9289. #define VK_NV_MESH_SHADER_SPEC_VERSION 1
  9290. #define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
  9291. typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
  9292. VkStructureType sType;
  9293. void* pNext;
  9294. VkBool32 taskShader;
  9295. VkBool32 meshShader;
  9296. } VkPhysicalDeviceMeshShaderFeaturesNV;
  9297. typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
  9298. VkStructureType sType;
  9299. void* pNext;
  9300. uint32_t maxDrawMeshTasksCount;
  9301. uint32_t maxTaskWorkGroupInvocations;
  9302. uint32_t maxTaskWorkGroupSize[3];
  9303. uint32_t maxTaskTotalMemorySize;
  9304. uint32_t maxTaskOutputCount;
  9305. uint32_t maxMeshWorkGroupInvocations;
  9306. uint32_t maxMeshWorkGroupSize[3];
  9307. uint32_t maxMeshTotalMemorySize;
  9308. uint32_t maxMeshOutputVertices;
  9309. uint32_t maxMeshOutputPrimitives;
  9310. uint32_t maxMeshMultiviewViewCount;
  9311. uint32_t meshOutputPerVertexGranularity;
  9312. uint32_t meshOutputPerPrimitiveGranularity;
  9313. } VkPhysicalDeviceMeshShaderPropertiesNV;
  9314. typedef struct VkDrawMeshTasksIndirectCommandNV {
  9315. uint32_t taskCount;
  9316. uint32_t firstTask;
  9317. } VkDrawMeshTasksIndirectCommandNV;
  9318. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
  9319. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  9320. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  9321. #ifndef VK_NO_PROTOTYPES
  9322. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
  9323. VkCommandBuffer commandBuffer,
  9324. uint32_t taskCount,
  9325. uint32_t firstTask);
  9326. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
  9327. VkCommandBuffer commandBuffer,
  9328. VkBuffer buffer,
  9329. VkDeviceSize offset,
  9330. uint32_t drawCount,
  9331. uint32_t stride);
  9332. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
  9333. VkCommandBuffer commandBuffer,
  9334. VkBuffer buffer,
  9335. VkDeviceSize offset,
  9336. VkBuffer countBuffer,
  9337. VkDeviceSize countBufferOffset,
  9338. uint32_t maxDrawCount,
  9339. uint32_t stride);
  9340. #endif
  9341. #define VK_NV_fragment_shader_barycentric 1
  9342. #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
  9343. #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
  9344. typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
  9345. VkStructureType sType;
  9346. void* pNext;
  9347. VkBool32 fragmentShaderBarycentric;
  9348. } VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
  9349. #define VK_NV_shader_image_footprint 1
  9350. #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
  9351. #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
  9352. typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
  9353. VkStructureType sType;
  9354. void* pNext;
  9355. VkBool32 imageFootprint;
  9356. } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
  9357. #define VK_NV_scissor_exclusive 1
  9358. #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
  9359. #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
  9360. typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
  9361. VkStructureType sType;
  9362. const void* pNext;
  9363. uint32_t exclusiveScissorCount;
  9364. const VkRect2D* pExclusiveScissors;
  9365. } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
  9366. typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
  9367. VkStructureType sType;
  9368. void* pNext;
  9369. VkBool32 exclusiveScissor;
  9370. } VkPhysicalDeviceExclusiveScissorFeaturesNV;
  9371. typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
  9372. #ifndef VK_NO_PROTOTYPES
  9373. VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
  9374. VkCommandBuffer commandBuffer,
  9375. uint32_t firstExclusiveScissor,
  9376. uint32_t exclusiveScissorCount,
  9377. const VkRect2D* pExclusiveScissors);
  9378. #endif
  9379. #define VK_NV_device_diagnostic_checkpoints 1
  9380. #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
  9381. #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
  9382. typedef struct VkQueueFamilyCheckpointPropertiesNV {
  9383. VkStructureType sType;
  9384. void* pNext;
  9385. VkPipelineStageFlags checkpointExecutionStageMask;
  9386. } VkQueueFamilyCheckpointPropertiesNV;
  9387. typedef struct VkCheckpointDataNV {
  9388. VkStructureType sType;
  9389. void* pNext;
  9390. VkPipelineStageFlagBits stage;
  9391. void* pCheckpointMarker;
  9392. } VkCheckpointDataNV;
  9393. typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
  9394. typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
  9395. #ifndef VK_NO_PROTOTYPES
  9396. VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
  9397. VkCommandBuffer commandBuffer,
  9398. const void* pCheckpointMarker);
  9399. VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
  9400. VkQueue queue,
  9401. uint32_t* pCheckpointDataCount,
  9402. VkCheckpointDataNV* pCheckpointData);
  9403. #endif
  9404. #define VK_INTEL_shader_integer_functions2 1
  9405. #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
  9406. #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
  9407. typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
  9408. VkStructureType sType;
  9409. void* pNext;
  9410. VkBool32 shaderIntegerFunctions2;
  9411. } VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
  9412. #define VK_INTEL_performance_query 1
  9413. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
  9414. #define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
  9415. #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
  9416. typedef enum VkPerformanceConfigurationTypeINTEL {
  9417. VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
  9418. VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  9419. } VkPerformanceConfigurationTypeINTEL;
  9420. typedef enum VkQueryPoolSamplingModeINTEL {
  9421. VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
  9422. VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
  9423. } VkQueryPoolSamplingModeINTEL;
  9424. typedef enum VkPerformanceOverrideTypeINTEL {
  9425. VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
  9426. VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
  9427. VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  9428. } VkPerformanceOverrideTypeINTEL;
  9429. typedef enum VkPerformanceParameterTypeINTEL {
  9430. VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
  9431. VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
  9432. VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  9433. } VkPerformanceParameterTypeINTEL;
  9434. typedef enum VkPerformanceValueTypeINTEL {
  9435. VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
  9436. VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
  9437. VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
  9438. VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
  9439. VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
  9440. VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
  9441. } VkPerformanceValueTypeINTEL;
  9442. typedef union VkPerformanceValueDataINTEL {
  9443. uint32_t value32;
  9444. uint64_t value64;
  9445. float valueFloat;
  9446. VkBool32 valueBool;
  9447. const char* valueString;
  9448. } VkPerformanceValueDataINTEL;
  9449. typedef struct VkPerformanceValueINTEL {
  9450. VkPerformanceValueTypeINTEL type;
  9451. VkPerformanceValueDataINTEL data;
  9452. } VkPerformanceValueINTEL;
  9453. typedef struct VkInitializePerformanceApiInfoINTEL {
  9454. VkStructureType sType;
  9455. const void* pNext;
  9456. void* pUserData;
  9457. } VkInitializePerformanceApiInfoINTEL;
  9458. typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
  9459. VkStructureType sType;
  9460. const void* pNext;
  9461. VkQueryPoolSamplingModeINTEL performanceCountersSampling;
  9462. } VkQueryPoolPerformanceQueryCreateInfoINTEL;
  9463. typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
  9464. typedef struct VkPerformanceMarkerInfoINTEL {
  9465. VkStructureType sType;
  9466. const void* pNext;
  9467. uint64_t marker;
  9468. } VkPerformanceMarkerInfoINTEL;
  9469. typedef struct VkPerformanceStreamMarkerInfoINTEL {
  9470. VkStructureType sType;
  9471. const void* pNext;
  9472. uint32_t marker;
  9473. } VkPerformanceStreamMarkerInfoINTEL;
  9474. typedef struct VkPerformanceOverrideInfoINTEL {
  9475. VkStructureType sType;
  9476. const void* pNext;
  9477. VkPerformanceOverrideTypeINTEL type;
  9478. VkBool32 enable;
  9479. uint64_t parameter;
  9480. } VkPerformanceOverrideInfoINTEL;
  9481. typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
  9482. VkStructureType sType;
  9483. const void* pNext;
  9484. VkPerformanceConfigurationTypeINTEL type;
  9485. } VkPerformanceConfigurationAcquireInfoINTEL;
  9486. typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
  9487. typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
  9488. typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
  9489. typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
  9490. typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
  9491. typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
  9492. typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
  9493. typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
  9494. typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
  9495. #ifndef VK_NO_PROTOTYPES
  9496. VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
  9497. VkDevice device,
  9498. const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
  9499. VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
  9500. VkDevice device);
  9501. VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
  9502. VkCommandBuffer commandBuffer,
  9503. const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
  9504. VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
  9505. VkCommandBuffer commandBuffer,
  9506. const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
  9507. VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
  9508. VkCommandBuffer commandBuffer,
  9509. const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
  9510. VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
  9511. VkDevice device,
  9512. const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
  9513. VkPerformanceConfigurationINTEL* pConfiguration);
  9514. VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
  9515. VkDevice device,
  9516. VkPerformanceConfigurationINTEL configuration);
  9517. VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
  9518. VkQueue queue,
  9519. VkPerformanceConfigurationINTEL configuration);
  9520. VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
  9521. VkDevice device,
  9522. VkPerformanceParameterTypeINTEL parameter,
  9523. VkPerformanceValueINTEL* pValue);
  9524. #endif
  9525. #define VK_EXT_pci_bus_info 1
  9526. #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
  9527. #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
  9528. typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
  9529. VkStructureType sType;
  9530. void* pNext;
  9531. uint32_t pciDomain;
  9532. uint32_t pciBus;
  9533. uint32_t pciDevice;
  9534. uint32_t pciFunction;
  9535. } VkPhysicalDevicePCIBusInfoPropertiesEXT;
  9536. #define VK_AMD_display_native_hdr 1
  9537. #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
  9538. #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
  9539. typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
  9540. VkStructureType sType;
  9541. void* pNext;
  9542. VkBool32 localDimmingSupport;
  9543. } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
  9544. typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
  9545. VkStructureType sType;
  9546. const void* pNext;
  9547. VkBool32 localDimmingEnable;
  9548. } VkSwapchainDisplayNativeHdrCreateInfoAMD;
  9549. typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
  9550. #ifndef VK_NO_PROTOTYPES
  9551. VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
  9552. VkDevice device,
  9553. VkSwapchainKHR swapChain,
  9554. VkBool32 localDimmingEnable);
  9555. #endif
  9556. #define VK_EXT_fragment_density_map 1
  9557. #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1
  9558. #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
  9559. typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
  9560. VkStructureType sType;
  9561. void* pNext;
  9562. VkBool32 fragmentDensityMap;
  9563. VkBool32 fragmentDensityMapDynamic;
  9564. VkBool32 fragmentDensityMapNonSubsampledImages;
  9565. } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
  9566. typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
  9567. VkStructureType sType;
  9568. void* pNext;
  9569. VkExtent2D minFragmentDensityTexelSize;
  9570. VkExtent2D maxFragmentDensityTexelSize;
  9571. VkBool32 fragmentDensityInvocations;
  9572. } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
  9573. typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
  9574. VkStructureType sType;
  9575. const void* pNext;
  9576. VkAttachmentReference fragmentDensityMapAttachment;
  9577. } VkRenderPassFragmentDensityMapCreateInfoEXT;
  9578. #define VK_EXT_scalar_block_layout 1
  9579. #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
  9580. #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
  9581. typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
  9582. #define VK_GOOGLE_hlsl_functionality1 1
  9583. #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1
  9584. #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
  9585. #define VK_GOOGLE_decorate_string 1
  9586. #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
  9587. #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
  9588. #define VK_EXT_subgroup_size_control 1
  9589. #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
  9590. #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
  9591. typedef struct VkPhysicalDeviceSubgroupSizeControlFeaturesEXT {
  9592. VkStructureType sType;
  9593. void* pNext;
  9594. VkBool32 subgroupSizeControl;
  9595. VkBool32 computeFullSubgroups;
  9596. } VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
  9597. typedef struct VkPhysicalDeviceSubgroupSizeControlPropertiesEXT {
  9598. VkStructureType sType;
  9599. void* pNext;
  9600. uint32_t minSubgroupSize;
  9601. uint32_t maxSubgroupSize;
  9602. uint32_t maxComputeWorkgroupSubgroups;
  9603. VkShaderStageFlags requiredSubgroupSizeStages;
  9604. } VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
  9605. typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT {
  9606. VkStructureType sType;
  9607. void* pNext;
  9608. uint32_t requiredSubgroupSize;
  9609. } VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
  9610. #define VK_AMD_shader_core_properties2 1
  9611. #define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
  9612. #define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
  9613. typedef enum VkShaderCorePropertiesFlagBitsAMD {
  9614. VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
  9615. } VkShaderCorePropertiesFlagBitsAMD;
  9616. typedef VkFlags VkShaderCorePropertiesFlagsAMD;
  9617. typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
  9618. VkStructureType sType;
  9619. void* pNext;
  9620. VkShaderCorePropertiesFlagsAMD shaderCoreFeatures;
  9621. uint32_t activeComputeUnitCount;
  9622. } VkPhysicalDeviceShaderCoreProperties2AMD;
  9623. #define VK_AMD_device_coherent_memory 1
  9624. #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
  9625. #define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
  9626. typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
  9627. VkStructureType sType;
  9628. void* pNext;
  9629. VkBool32 deviceCoherentMemory;
  9630. } VkPhysicalDeviceCoherentMemoryFeaturesAMD;
  9631. #define VK_EXT_shader_image_atomic_int64 1
  9632. #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
  9633. #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
  9634. typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
  9635. VkStructureType sType;
  9636. void* pNext;
  9637. VkBool32 shaderImageInt64Atomics;
  9638. VkBool32 sparseImageInt64Atomics;
  9639. } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
  9640. #define VK_EXT_memory_budget 1
  9641. #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
  9642. #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
  9643. typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
  9644. VkStructureType sType;
  9645. void* pNext;
  9646. VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
  9647. VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
  9648. } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
  9649. #define VK_EXT_memory_priority 1
  9650. #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
  9651. #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
  9652. typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
  9653. VkStructureType sType;
  9654. void* pNext;
  9655. VkBool32 memoryPriority;
  9656. } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
  9657. typedef struct VkMemoryPriorityAllocateInfoEXT {
  9658. VkStructureType sType;
  9659. const void* pNext;
  9660. float priority;
  9661. } VkMemoryPriorityAllocateInfoEXT;
  9662. #define VK_NV_dedicated_allocation_image_aliasing 1
  9663. #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
  9664. #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
  9665. typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
  9666. VkStructureType sType;
  9667. void* pNext;
  9668. VkBool32 dedicatedAllocationImageAliasing;
  9669. } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
  9670. #define VK_EXT_buffer_device_address 1
  9671. #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
  9672. #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
  9673. typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
  9674. VkStructureType sType;
  9675. void* pNext;
  9676. VkBool32 bufferDeviceAddress;
  9677. VkBool32 bufferDeviceAddressCaptureReplay;
  9678. VkBool32 bufferDeviceAddressMultiDevice;
  9679. } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
  9680. typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
  9681. typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
  9682. typedef struct VkBufferDeviceAddressCreateInfoEXT {
  9683. VkStructureType sType;
  9684. const void* pNext;
  9685. VkDeviceAddress deviceAddress;
  9686. } VkBufferDeviceAddressCreateInfoEXT;
  9687. typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
  9688. #ifndef VK_NO_PROTOTYPES
  9689. VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
  9690. VkDevice device,
  9691. const VkBufferDeviceAddressInfo* pInfo);
  9692. #endif
  9693. #define VK_EXT_tooling_info 1
  9694. #define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
  9695. #define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
  9696. typedef enum VkToolPurposeFlagBitsEXT {
  9697. VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = 0x00000001,
  9698. VK_TOOL_PURPOSE_PROFILING_BIT_EXT = 0x00000002,
  9699. VK_TOOL_PURPOSE_TRACING_BIT_EXT = 0x00000004,
  9700. VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = 0x00000008,
  9701. VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = 0x00000010,
  9702. VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
  9703. VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
  9704. VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  9705. } VkToolPurposeFlagBitsEXT;
  9706. typedef VkFlags VkToolPurposeFlagsEXT;
  9707. typedef struct VkPhysicalDeviceToolPropertiesEXT {
  9708. VkStructureType sType;
  9709. void* pNext;
  9710. char name[VK_MAX_EXTENSION_NAME_SIZE];
  9711. char version[VK_MAX_EXTENSION_NAME_SIZE];
  9712. VkToolPurposeFlagsEXT purposes;
  9713. char description[VK_MAX_DESCRIPTION_SIZE];
  9714. char layer[VK_MAX_EXTENSION_NAME_SIZE];
  9715. } VkPhysicalDeviceToolPropertiesEXT;
  9716. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties);
  9717. #ifndef VK_NO_PROTOTYPES
  9718. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
  9719. VkPhysicalDevice physicalDevice,
  9720. uint32_t* pToolCount,
  9721. VkPhysicalDeviceToolPropertiesEXT* pToolProperties);
  9722. #endif
  9723. #define VK_EXT_separate_stencil_usage 1
  9724. #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
  9725. #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
  9726. typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
  9727. #define VK_EXT_validation_features 1
  9728. #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 5
  9729. #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
  9730. typedef enum VkValidationFeatureEnableEXT {
  9731. VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
  9732. VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
  9733. VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
  9734. VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
  9735. VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
  9736. VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
  9737. } VkValidationFeatureEnableEXT;
  9738. typedef enum VkValidationFeatureDisableEXT {
  9739. VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
  9740. VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
  9741. VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
  9742. VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
  9743. VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
  9744. VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
  9745. VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
  9746. VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
  9747. VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
  9748. } VkValidationFeatureDisableEXT;
  9749. typedef struct VkValidationFeaturesEXT {
  9750. VkStructureType sType;
  9751. const void* pNext;
  9752. uint32_t enabledValidationFeatureCount;
  9753. const VkValidationFeatureEnableEXT* pEnabledValidationFeatures;
  9754. uint32_t disabledValidationFeatureCount;
  9755. const VkValidationFeatureDisableEXT* pDisabledValidationFeatures;
  9756. } VkValidationFeaturesEXT;
  9757. #define VK_NV_cooperative_matrix 1
  9758. #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
  9759. #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
  9760. typedef enum VkComponentTypeNV {
  9761. VK_COMPONENT_TYPE_FLOAT16_NV = 0,
  9762. VK_COMPONENT_TYPE_FLOAT32_NV = 1,
  9763. VK_COMPONENT_TYPE_FLOAT64_NV = 2,
  9764. VK_COMPONENT_TYPE_SINT8_NV = 3,
  9765. VK_COMPONENT_TYPE_SINT16_NV = 4,
  9766. VK_COMPONENT_TYPE_SINT32_NV = 5,
  9767. VK_COMPONENT_TYPE_SINT64_NV = 6,
  9768. VK_COMPONENT_TYPE_UINT8_NV = 7,
  9769. VK_COMPONENT_TYPE_UINT16_NV = 8,
  9770. VK_COMPONENT_TYPE_UINT32_NV = 9,
  9771. VK_COMPONENT_TYPE_UINT64_NV = 10,
  9772. VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  9773. } VkComponentTypeNV;
  9774. typedef enum VkScopeNV {
  9775. VK_SCOPE_DEVICE_NV = 1,
  9776. VK_SCOPE_WORKGROUP_NV = 2,
  9777. VK_SCOPE_SUBGROUP_NV = 3,
  9778. VK_SCOPE_QUEUE_FAMILY_NV = 5,
  9779. VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
  9780. } VkScopeNV;
  9781. typedef struct VkCooperativeMatrixPropertiesNV {
  9782. VkStructureType sType;
  9783. void* pNext;
  9784. uint32_t MSize;
  9785. uint32_t NSize;
  9786. uint32_t KSize;
  9787. VkComponentTypeNV AType;
  9788. VkComponentTypeNV BType;
  9789. VkComponentTypeNV CType;
  9790. VkComponentTypeNV DType;
  9791. VkScopeNV scope;
  9792. } VkCooperativeMatrixPropertiesNV;
  9793. typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
  9794. VkStructureType sType;
  9795. void* pNext;
  9796. VkBool32 cooperativeMatrix;
  9797. VkBool32 cooperativeMatrixRobustBufferAccess;
  9798. } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
  9799. typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
  9800. VkStructureType sType;
  9801. void* pNext;
  9802. VkShaderStageFlags cooperativeMatrixSupportedStages;
  9803. } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
  9804. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
  9805. #ifndef VK_NO_PROTOTYPES
  9806. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
  9807. VkPhysicalDevice physicalDevice,
  9808. uint32_t* pPropertyCount,
  9809. VkCooperativeMatrixPropertiesNV* pProperties);
  9810. #endif
  9811. #define VK_NV_coverage_reduction_mode 1
  9812. #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
  9813. #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
  9814. typedef enum VkCoverageReductionModeNV {
  9815. VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
  9816. VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
  9817. VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  9818. } VkCoverageReductionModeNV;
  9819. typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
  9820. typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
  9821. VkStructureType sType;
  9822. void* pNext;
  9823. VkBool32 coverageReductionMode;
  9824. } VkPhysicalDeviceCoverageReductionModeFeaturesNV;
  9825. typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
  9826. VkStructureType sType;
  9827. const void* pNext;
  9828. VkPipelineCoverageReductionStateCreateFlagsNV flags;
  9829. VkCoverageReductionModeNV coverageReductionMode;
  9830. } VkPipelineCoverageReductionStateCreateInfoNV;
  9831. typedef struct VkFramebufferMixedSamplesCombinationNV {
  9832. VkStructureType sType;
  9833. void* pNext;
  9834. VkCoverageReductionModeNV coverageReductionMode;
  9835. VkSampleCountFlagBits rasterizationSamples;
  9836. VkSampleCountFlags depthStencilSamples;
  9837. VkSampleCountFlags colorSamples;
  9838. } VkFramebufferMixedSamplesCombinationNV;
  9839. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
  9840. #ifndef VK_NO_PROTOTYPES
  9841. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
  9842. VkPhysicalDevice physicalDevice,
  9843. uint32_t* pCombinationCount,
  9844. VkFramebufferMixedSamplesCombinationNV* pCombinations);
  9845. #endif
  9846. #define VK_EXT_fragment_shader_interlock 1
  9847. #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
  9848. #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
  9849. typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
  9850. VkStructureType sType;
  9851. void* pNext;
  9852. VkBool32 fragmentShaderSampleInterlock;
  9853. VkBool32 fragmentShaderPixelInterlock;
  9854. VkBool32 fragmentShaderShadingRateInterlock;
  9855. } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
  9856. #define VK_EXT_ycbcr_image_arrays 1
  9857. #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
  9858. #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
  9859. typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
  9860. VkStructureType sType;
  9861. void* pNext;
  9862. VkBool32 ycbcrImageArrays;
  9863. } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
  9864. #define VK_EXT_provoking_vertex 1
  9865. #define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
  9866. #define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
  9867. typedef enum VkProvokingVertexModeEXT {
  9868. VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
  9869. VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
  9870. VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  9871. } VkProvokingVertexModeEXT;
  9872. typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
  9873. VkStructureType sType;
  9874. void* pNext;
  9875. VkBool32 provokingVertexLast;
  9876. VkBool32 transformFeedbackPreservesProvokingVertex;
  9877. } VkPhysicalDeviceProvokingVertexFeaturesEXT;
  9878. typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
  9879. VkStructureType sType;
  9880. void* pNext;
  9881. VkBool32 provokingVertexModePerPipeline;
  9882. VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex;
  9883. } VkPhysicalDeviceProvokingVertexPropertiesEXT;
  9884. typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
  9885. VkStructureType sType;
  9886. const void* pNext;
  9887. VkProvokingVertexModeEXT provokingVertexMode;
  9888. } VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
  9889. #define VK_EXT_headless_surface 1
  9890. #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
  9891. #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
  9892. typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
  9893. typedef struct VkHeadlessSurfaceCreateInfoEXT {
  9894. VkStructureType sType;
  9895. const void* pNext;
  9896. VkHeadlessSurfaceCreateFlagsEXT flags;
  9897. } VkHeadlessSurfaceCreateInfoEXT;
  9898. typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  9899. #ifndef VK_NO_PROTOTYPES
  9900. VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
  9901. VkInstance instance,
  9902. const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
  9903. const VkAllocationCallbacks* pAllocator,
  9904. VkSurfaceKHR* pSurface);
  9905. #endif
  9906. #define VK_EXT_line_rasterization 1
  9907. #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
  9908. #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
  9909. typedef enum VkLineRasterizationModeEXT {
  9910. VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0,
  9911. VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1,
  9912. VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2,
  9913. VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3,
  9914. VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  9915. } VkLineRasterizationModeEXT;
  9916. typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT {
  9917. VkStructureType sType;
  9918. void* pNext;
  9919. VkBool32 rectangularLines;
  9920. VkBool32 bresenhamLines;
  9921. VkBool32 smoothLines;
  9922. VkBool32 stippledRectangularLines;
  9923. VkBool32 stippledBresenhamLines;
  9924. VkBool32 stippledSmoothLines;
  9925. } VkPhysicalDeviceLineRasterizationFeaturesEXT;
  9926. typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT {
  9927. VkStructureType sType;
  9928. void* pNext;
  9929. uint32_t lineSubPixelPrecisionBits;
  9930. } VkPhysicalDeviceLineRasterizationPropertiesEXT;
  9931. typedef struct VkPipelineRasterizationLineStateCreateInfoEXT {
  9932. VkStructureType sType;
  9933. const void* pNext;
  9934. VkLineRasterizationModeEXT lineRasterizationMode;
  9935. VkBool32 stippledLineEnable;
  9936. uint32_t lineStippleFactor;
  9937. uint16_t lineStipplePattern;
  9938. } VkPipelineRasterizationLineStateCreateInfoEXT;
  9939. typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
  9940. #ifndef VK_NO_PROTOTYPES
  9941. VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
  9942. VkCommandBuffer commandBuffer,
  9943. uint32_t lineStippleFactor,
  9944. uint16_t lineStipplePattern);
  9945. #endif
  9946. #define VK_EXT_shader_atomic_float 1
  9947. #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
  9948. #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
  9949. typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
  9950. VkStructureType sType;
  9951. void* pNext;
  9952. VkBool32 shaderBufferFloat32Atomics;
  9953. VkBool32 shaderBufferFloat32AtomicAdd;
  9954. VkBool32 shaderBufferFloat64Atomics;
  9955. VkBool32 shaderBufferFloat64AtomicAdd;
  9956. VkBool32 shaderSharedFloat32Atomics;
  9957. VkBool32 shaderSharedFloat32AtomicAdd;
  9958. VkBool32 shaderSharedFloat64Atomics;
  9959. VkBool32 shaderSharedFloat64AtomicAdd;
  9960. VkBool32 shaderImageFloat32Atomics;
  9961. VkBool32 shaderImageFloat32AtomicAdd;
  9962. VkBool32 sparseImageFloat32Atomics;
  9963. VkBool32 sparseImageFloat32AtomicAdd;
  9964. } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
  9965. #define VK_EXT_host_query_reset 1
  9966. #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
  9967. #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
  9968. typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
  9969. typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  9970. #ifndef VK_NO_PROTOTYPES
  9971. VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
  9972. VkDevice device,
  9973. VkQueryPool queryPool,
  9974. uint32_t firstQuery,
  9975. uint32_t queryCount);
  9976. #endif
  9977. #define VK_EXT_index_type_uint8 1
  9978. #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
  9979. #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
  9980. typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT {
  9981. VkStructureType sType;
  9982. void* pNext;
  9983. VkBool32 indexTypeUint8;
  9984. } VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
  9985. #define VK_EXT_extended_dynamic_state 1
  9986. #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
  9987. #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
  9988. typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
  9989. VkStructureType sType;
  9990. void* pNext;
  9991. VkBool32 extendedDynamicState;
  9992. } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
  9993. typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
  9994. typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
  9995. typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
  9996. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
  9997. typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
  9998. 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);
  9999. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
  10000. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
  10001. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
  10002. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
  10003. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
  10004. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
  10005. #ifndef VK_NO_PROTOTYPES
  10006. VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
  10007. VkCommandBuffer commandBuffer,
  10008. VkCullModeFlags cullMode);
  10009. VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
  10010. VkCommandBuffer commandBuffer,
  10011. VkFrontFace frontFace);
  10012. VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
  10013. VkCommandBuffer commandBuffer,
  10014. VkPrimitiveTopology primitiveTopology);
  10015. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
  10016. VkCommandBuffer commandBuffer,
  10017. uint32_t viewportCount,
  10018. const VkViewport* pViewports);
  10019. VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
  10020. VkCommandBuffer commandBuffer,
  10021. uint32_t scissorCount,
  10022. const VkRect2D* pScissors);
  10023. VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
  10024. VkCommandBuffer commandBuffer,
  10025. uint32_t firstBinding,
  10026. uint32_t bindingCount,
  10027. const VkBuffer* pBuffers,
  10028. const VkDeviceSize* pOffsets,
  10029. const VkDeviceSize* pSizes,
  10030. const VkDeviceSize* pStrides);
  10031. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
  10032. VkCommandBuffer commandBuffer,
  10033. VkBool32 depthTestEnable);
  10034. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
  10035. VkCommandBuffer commandBuffer,
  10036. VkBool32 depthWriteEnable);
  10037. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
  10038. VkCommandBuffer commandBuffer,
  10039. VkCompareOp depthCompareOp);
  10040. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
  10041. VkCommandBuffer commandBuffer,
  10042. VkBool32 depthBoundsTestEnable);
  10043. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
  10044. VkCommandBuffer commandBuffer,
  10045. VkBool32 stencilTestEnable);
  10046. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
  10047. VkCommandBuffer commandBuffer,
  10048. VkStencilFaceFlags faceMask,
  10049. VkStencilOp failOp,
  10050. VkStencilOp passOp,
  10051. VkStencilOp depthFailOp,
  10052. VkCompareOp compareOp);
  10053. #endif
  10054. #define VK_EXT_shader_atomic_float2 1
  10055. #define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
  10056. #define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
  10057. typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
  10058. VkStructureType sType;
  10059. void* pNext;
  10060. VkBool32 shaderBufferFloat16Atomics;
  10061. VkBool32 shaderBufferFloat16AtomicAdd;
  10062. VkBool32 shaderBufferFloat16AtomicMinMax;
  10063. VkBool32 shaderBufferFloat32AtomicMinMax;
  10064. VkBool32 shaderBufferFloat64AtomicMinMax;
  10065. VkBool32 shaderSharedFloat16Atomics;
  10066. VkBool32 shaderSharedFloat16AtomicAdd;
  10067. VkBool32 shaderSharedFloat16AtomicMinMax;
  10068. VkBool32 shaderSharedFloat32AtomicMinMax;
  10069. VkBool32 shaderSharedFloat64AtomicMinMax;
  10070. VkBool32 shaderImageFloat32AtomicMinMax;
  10071. VkBool32 sparseImageFloat32AtomicMinMax;
  10072. } VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
  10073. #define VK_EXT_shader_demote_to_helper_invocation 1
  10074. #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
  10075. #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
  10076. typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT {
  10077. VkStructureType sType;
  10078. void* pNext;
  10079. VkBool32 shaderDemoteToHelperInvocation;
  10080. } VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
  10081. #define VK_NV_device_generated_commands 1
  10082. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
  10083. #define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
  10084. #define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
  10085. typedef enum VkIndirectCommandsTokenTypeNV {
  10086. VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
  10087. VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
  10088. VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
  10089. VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
  10090. VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
  10091. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
  10092. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
  10093. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
  10094. VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  10095. } VkIndirectCommandsTokenTypeNV;
  10096. typedef enum VkIndirectStateFlagBitsNV {
  10097. VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
  10098. VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  10099. } VkIndirectStateFlagBitsNV;
  10100. typedef VkFlags VkIndirectStateFlagsNV;
  10101. typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
  10102. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
  10103. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
  10104. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
  10105. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  10106. } VkIndirectCommandsLayoutUsageFlagBitsNV;
  10107. typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
  10108. typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
  10109. VkStructureType sType;
  10110. void* pNext;
  10111. uint32_t maxGraphicsShaderGroupCount;
  10112. uint32_t maxIndirectSequenceCount;
  10113. uint32_t maxIndirectCommandsTokenCount;
  10114. uint32_t maxIndirectCommandsStreamCount;
  10115. uint32_t maxIndirectCommandsTokenOffset;
  10116. uint32_t maxIndirectCommandsStreamStride;
  10117. uint32_t minSequencesCountBufferOffsetAlignment;
  10118. uint32_t minSequencesIndexBufferOffsetAlignment;
  10119. uint32_t minIndirectCommandsBufferOffsetAlignment;
  10120. } VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
  10121. typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
  10122. VkStructureType sType;
  10123. void* pNext;
  10124. VkBool32 deviceGeneratedCommands;
  10125. } VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
  10126. typedef struct VkGraphicsShaderGroupCreateInfoNV {
  10127. VkStructureType sType;
  10128. const void* pNext;
  10129. uint32_t stageCount;
  10130. const VkPipelineShaderStageCreateInfo* pStages;
  10131. const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
  10132. const VkPipelineTessellationStateCreateInfo* pTessellationState;
  10133. } VkGraphicsShaderGroupCreateInfoNV;
  10134. typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
  10135. VkStructureType sType;
  10136. const void* pNext;
  10137. uint32_t groupCount;
  10138. const VkGraphicsShaderGroupCreateInfoNV* pGroups;
  10139. uint32_t pipelineCount;
  10140. const VkPipeline* pPipelines;
  10141. } VkGraphicsPipelineShaderGroupsCreateInfoNV;
  10142. typedef struct VkBindShaderGroupIndirectCommandNV {
  10143. uint32_t groupIndex;
  10144. } VkBindShaderGroupIndirectCommandNV;
  10145. typedef struct VkBindIndexBufferIndirectCommandNV {
  10146. VkDeviceAddress bufferAddress;
  10147. uint32_t size;
  10148. VkIndexType indexType;
  10149. } VkBindIndexBufferIndirectCommandNV;
  10150. typedef struct VkBindVertexBufferIndirectCommandNV {
  10151. VkDeviceAddress bufferAddress;
  10152. uint32_t size;
  10153. uint32_t stride;
  10154. } VkBindVertexBufferIndirectCommandNV;
  10155. typedef struct VkSetStateFlagsIndirectCommandNV {
  10156. uint32_t data;
  10157. } VkSetStateFlagsIndirectCommandNV;
  10158. typedef struct VkIndirectCommandsStreamNV {
  10159. VkBuffer buffer;
  10160. VkDeviceSize offset;
  10161. } VkIndirectCommandsStreamNV;
  10162. typedef struct VkIndirectCommandsLayoutTokenNV {
  10163. VkStructureType sType;
  10164. const void* pNext;
  10165. VkIndirectCommandsTokenTypeNV tokenType;
  10166. uint32_t stream;
  10167. uint32_t offset;
  10168. uint32_t vertexBindingUnit;
  10169. VkBool32 vertexDynamicStride;
  10170. VkPipelineLayout pushconstantPipelineLayout;
  10171. VkShaderStageFlags pushconstantShaderStageFlags;
  10172. uint32_t pushconstantOffset;
  10173. uint32_t pushconstantSize;
  10174. VkIndirectStateFlagsNV indirectStateFlags;
  10175. uint32_t indexTypeCount;
  10176. const VkIndexType* pIndexTypes;
  10177. const uint32_t* pIndexTypeValues;
  10178. } VkIndirectCommandsLayoutTokenNV;
  10179. typedef struct VkIndirectCommandsLayoutCreateInfoNV {
  10180. VkStructureType sType;
  10181. const void* pNext;
  10182. VkIndirectCommandsLayoutUsageFlagsNV flags;
  10183. VkPipelineBindPoint pipelineBindPoint;
  10184. uint32_t tokenCount;
  10185. const VkIndirectCommandsLayoutTokenNV* pTokens;
  10186. uint32_t streamCount;
  10187. const uint32_t* pStreamStrides;
  10188. } VkIndirectCommandsLayoutCreateInfoNV;
  10189. typedef struct VkGeneratedCommandsInfoNV {
  10190. VkStructureType sType;
  10191. const void* pNext;
  10192. VkPipelineBindPoint pipelineBindPoint;
  10193. VkPipeline pipeline;
  10194. VkIndirectCommandsLayoutNV indirectCommandsLayout;
  10195. uint32_t streamCount;
  10196. const VkIndirectCommandsStreamNV* pStreams;
  10197. uint32_t sequencesCount;
  10198. VkBuffer preprocessBuffer;
  10199. VkDeviceSize preprocessOffset;
  10200. VkDeviceSize preprocessSize;
  10201. VkBuffer sequencesCountBuffer;
  10202. VkDeviceSize sequencesCountOffset;
  10203. VkBuffer sequencesIndexBuffer;
  10204. VkDeviceSize sequencesIndexOffset;
  10205. } VkGeneratedCommandsInfoNV;
  10206. typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
  10207. VkStructureType sType;
  10208. const void* pNext;
  10209. VkPipelineBindPoint pipelineBindPoint;
  10210. VkPipeline pipeline;
  10211. VkIndirectCommandsLayoutNV indirectCommandsLayout;
  10212. uint32_t maxSequencesCount;
  10213. } VkGeneratedCommandsMemoryRequirementsInfoNV;
  10214. typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  10215. typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  10216. typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  10217. typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
  10218. typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
  10219. typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
  10220. #ifndef VK_NO_PROTOTYPES
  10221. VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
  10222. VkDevice device,
  10223. const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
  10224. VkMemoryRequirements2* pMemoryRequirements);
  10225. VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
  10226. VkCommandBuffer commandBuffer,
  10227. const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  10228. VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
  10229. VkCommandBuffer commandBuffer,
  10230. VkBool32 isPreprocessed,
  10231. const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
  10232. VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
  10233. VkCommandBuffer commandBuffer,
  10234. VkPipelineBindPoint pipelineBindPoint,
  10235. VkPipeline pipeline,
  10236. uint32_t groupIndex);
  10237. VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
  10238. VkDevice device,
  10239. const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
  10240. const VkAllocationCallbacks* pAllocator,
  10241. VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
  10242. VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
  10243. VkDevice device,
  10244. VkIndirectCommandsLayoutNV indirectCommandsLayout,
  10245. const VkAllocationCallbacks* pAllocator);
  10246. #endif
  10247. #define VK_NV_inherited_viewport_scissor 1
  10248. #define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
  10249. #define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
  10250. typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
  10251. VkStructureType sType;
  10252. void* pNext;
  10253. VkBool32 inheritedViewportScissor2D;
  10254. } VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
  10255. typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
  10256. VkStructureType sType;
  10257. const void* pNext;
  10258. VkBool32 viewportScissor2D;
  10259. uint32_t viewportDepthCount;
  10260. const VkViewport* pViewportDepths;
  10261. } VkCommandBufferInheritanceViewportScissorInfoNV;
  10262. #define VK_EXT_texel_buffer_alignment 1
  10263. #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
  10264. #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
  10265. typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
  10266. VkStructureType sType;
  10267. void* pNext;
  10268. VkBool32 texelBufferAlignment;
  10269. } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
  10270. typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT {
  10271. VkStructureType sType;
  10272. void* pNext;
  10273. VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
  10274. VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
  10275. VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
  10276. VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
  10277. } VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
  10278. #define VK_QCOM_render_pass_transform 1
  10279. #define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 2
  10280. #define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
  10281. typedef struct VkRenderPassTransformBeginInfoQCOM {
  10282. VkStructureType sType;
  10283. void* pNext;
  10284. VkSurfaceTransformFlagBitsKHR transform;
  10285. } VkRenderPassTransformBeginInfoQCOM;
  10286. typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
  10287. VkStructureType sType;
  10288. void* pNext;
  10289. VkSurfaceTransformFlagBitsKHR transform;
  10290. VkRect2D renderArea;
  10291. } VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
  10292. #define VK_EXT_device_memory_report 1
  10293. #define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
  10294. #define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
  10295. typedef enum VkDeviceMemoryReportEventTypeEXT {
  10296. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
  10297. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
  10298. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
  10299. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
  10300. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
  10301. VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  10302. } VkDeviceMemoryReportEventTypeEXT;
  10303. typedef VkFlags VkDeviceMemoryReportFlagsEXT;
  10304. typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
  10305. VkStructureType sType;
  10306. void* pNext;
  10307. VkBool32 deviceMemoryReport;
  10308. } VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
  10309. typedef struct VkDeviceMemoryReportCallbackDataEXT {
  10310. VkStructureType sType;
  10311. void* pNext;
  10312. VkDeviceMemoryReportFlagsEXT flags;
  10313. VkDeviceMemoryReportEventTypeEXT type;
  10314. uint64_t memoryObjectId;
  10315. VkDeviceSize size;
  10316. VkObjectType objectType;
  10317. uint64_t objectHandle;
  10318. uint32_t heapIndex;
  10319. } VkDeviceMemoryReportCallbackDataEXT;
  10320. typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
  10321. const VkDeviceMemoryReportCallbackDataEXT* pCallbackData,
  10322. void* pUserData);
  10323. typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
  10324. VkStructureType sType;
  10325. const void* pNext;
  10326. VkDeviceMemoryReportFlagsEXT flags;
  10327. PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback;
  10328. void* pUserData;
  10329. } VkDeviceDeviceMemoryReportCreateInfoEXT;
  10330. #define VK_EXT_acquire_drm_display 1
  10331. #define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
  10332. #define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
  10333. typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
  10334. typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
  10335. #ifndef VK_NO_PROTOTYPES
  10336. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
  10337. VkPhysicalDevice physicalDevice,
  10338. int32_t drmFd,
  10339. VkDisplayKHR display);
  10340. VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
  10341. VkPhysicalDevice physicalDevice,
  10342. int32_t drmFd,
  10343. uint32_t connectorId,
  10344. VkDisplayKHR* display);
  10345. #endif
  10346. #define VK_EXT_robustness2 1
  10347. #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
  10348. #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
  10349. typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
  10350. VkStructureType sType;
  10351. void* pNext;
  10352. VkBool32 robustBufferAccess2;
  10353. VkBool32 robustImageAccess2;
  10354. VkBool32 nullDescriptor;
  10355. } VkPhysicalDeviceRobustness2FeaturesEXT;
  10356. typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
  10357. VkStructureType sType;
  10358. void* pNext;
  10359. VkDeviceSize robustStorageBufferAccessSizeAlignment;
  10360. VkDeviceSize robustUniformBufferAccessSizeAlignment;
  10361. } VkPhysicalDeviceRobustness2PropertiesEXT;
  10362. #define VK_EXT_custom_border_color 1
  10363. #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
  10364. #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
  10365. typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
  10366. VkStructureType sType;
  10367. const void* pNext;
  10368. VkClearColorValue customBorderColor;
  10369. VkFormat format;
  10370. } VkSamplerCustomBorderColorCreateInfoEXT;
  10371. typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
  10372. VkStructureType sType;
  10373. void* pNext;
  10374. uint32_t maxCustomBorderColorSamplers;
  10375. } VkPhysicalDeviceCustomBorderColorPropertiesEXT;
  10376. typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
  10377. VkStructureType sType;
  10378. void* pNext;
  10379. VkBool32 customBorderColors;
  10380. VkBool32 customBorderColorWithoutFormat;
  10381. } VkPhysicalDeviceCustomBorderColorFeaturesEXT;
  10382. #define VK_GOOGLE_user_type 1
  10383. #define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
  10384. #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
  10385. #define VK_EXT_private_data 1
  10386. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlotEXT)
  10387. #define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
  10388. #define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
  10389. typedef enum VkPrivateDataSlotCreateFlagBitsEXT {
  10390. VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  10391. } VkPrivateDataSlotCreateFlagBitsEXT;
  10392. typedef VkFlags VkPrivateDataSlotCreateFlagsEXT;
  10393. typedef struct VkPhysicalDevicePrivateDataFeaturesEXT {
  10394. VkStructureType sType;
  10395. void* pNext;
  10396. VkBool32 privateData;
  10397. } VkPhysicalDevicePrivateDataFeaturesEXT;
  10398. typedef struct VkDevicePrivateDataCreateInfoEXT {
  10399. VkStructureType sType;
  10400. const void* pNext;
  10401. uint32_t privateDataSlotRequestCount;
  10402. } VkDevicePrivateDataCreateInfoEXT;
  10403. typedef struct VkPrivateDataSlotCreateInfoEXT {
  10404. VkStructureType sType;
  10405. const void* pNext;
  10406. VkPrivateDataSlotCreateFlagsEXT flags;
  10407. } VkPrivateDataSlotCreateInfoEXT;
  10408. typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot);
  10409. typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator);
  10410. typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data);
  10411. typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData);
  10412. #ifndef VK_NO_PROTOTYPES
  10413. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
  10414. VkDevice device,
  10415. const VkPrivateDataSlotCreateInfoEXT* pCreateInfo,
  10416. const VkAllocationCallbacks* pAllocator,
  10417. VkPrivateDataSlotEXT* pPrivateDataSlot);
  10418. VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
  10419. VkDevice device,
  10420. VkPrivateDataSlotEXT privateDataSlot,
  10421. const VkAllocationCallbacks* pAllocator);
  10422. VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
  10423. VkDevice device,
  10424. VkObjectType objectType,
  10425. uint64_t objectHandle,
  10426. VkPrivateDataSlotEXT privateDataSlot,
  10427. uint64_t data);
  10428. VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
  10429. VkDevice device,
  10430. VkObjectType objectType,
  10431. uint64_t objectHandle,
  10432. VkPrivateDataSlotEXT privateDataSlot,
  10433. uint64_t* pData);
  10434. #endif
  10435. #define VK_EXT_pipeline_creation_cache_control 1
  10436. #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
  10437. #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
  10438. typedef struct VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT {
  10439. VkStructureType sType;
  10440. void* pNext;
  10441. VkBool32 pipelineCreationCacheControl;
  10442. } VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
  10443. #define VK_NV_device_diagnostics_config 1
  10444. #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1
  10445. #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
  10446. typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
  10447. VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
  10448. VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
  10449. VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
  10450. VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  10451. } VkDeviceDiagnosticsConfigFlagBitsNV;
  10452. typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
  10453. typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
  10454. VkStructureType sType;
  10455. void* pNext;
  10456. VkBool32 diagnosticsConfig;
  10457. } VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
  10458. typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
  10459. VkStructureType sType;
  10460. const void* pNext;
  10461. VkDeviceDiagnosticsConfigFlagsNV flags;
  10462. } VkDeviceDiagnosticsConfigCreateInfoNV;
  10463. #define VK_QCOM_render_pass_store_ops 1
  10464. #define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
  10465. #define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
  10466. #define VK_NV_fragment_shading_rate_enums 1
  10467. #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
  10468. #define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
  10469. typedef enum VkFragmentShadingRateTypeNV {
  10470. VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
  10471. VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
  10472. VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  10473. } VkFragmentShadingRateTypeNV;
  10474. typedef enum VkFragmentShadingRateNV {
  10475. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
  10476. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
  10477. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
  10478. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
  10479. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
  10480. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
  10481. VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
  10482. VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
  10483. VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
  10484. VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
  10485. VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
  10486. VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
  10487. VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
  10488. } VkFragmentShadingRateNV;
  10489. typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
  10490. VkStructureType sType;
  10491. void* pNext;
  10492. VkBool32 fragmentShadingRateEnums;
  10493. VkBool32 supersampleFragmentShadingRates;
  10494. VkBool32 noInvocationFragmentShadingRates;
  10495. } VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
  10496. typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
  10497. VkStructureType sType;
  10498. void* pNext;
  10499. VkSampleCountFlagBits maxFragmentShadingRateInvocationCount;
  10500. } VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
  10501. typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
  10502. VkStructureType sType;
  10503. const void* pNext;
  10504. VkFragmentShadingRateTypeNV shadingRateType;
  10505. VkFragmentShadingRateNV shadingRate;
  10506. VkFragmentShadingRateCombinerOpKHR combinerOps[2];
  10507. } VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
  10508. typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
  10509. #ifndef VK_NO_PROTOTYPES
  10510. VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
  10511. VkCommandBuffer commandBuffer,
  10512. VkFragmentShadingRateNV shadingRate,
  10513. const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
  10514. #endif
  10515. #define VK_NV_ray_tracing_motion_blur 1
  10516. #define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
  10517. #define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
  10518. typedef enum VkAccelerationStructureMotionInstanceTypeNV {
  10519. VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
  10520. VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
  10521. VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
  10522. VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  10523. } VkAccelerationStructureMotionInstanceTypeNV;
  10524. typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
  10525. typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
  10526. typedef union VkDeviceOrHostAddressConstKHR {
  10527. VkDeviceAddress deviceAddress;
  10528. const void* hostAddress;
  10529. } VkDeviceOrHostAddressConstKHR;
  10530. typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
  10531. VkStructureType sType;
  10532. const void* pNext;
  10533. VkDeviceOrHostAddressConstKHR vertexData;
  10534. } VkAccelerationStructureGeometryMotionTrianglesDataNV;
  10535. typedef struct VkAccelerationStructureMotionInfoNV {
  10536. VkStructureType sType;
  10537. const void* pNext;
  10538. uint32_t maxInstances;
  10539. VkAccelerationStructureMotionInfoFlagsNV flags;
  10540. } VkAccelerationStructureMotionInfoNV;
  10541. typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
  10542. VkTransformMatrixKHR transformT0;
  10543. VkTransformMatrixKHR transformT1;
  10544. uint32_t instanceCustomIndex:24;
  10545. uint32_t mask:8;
  10546. uint32_t instanceShaderBindingTableRecordOffset:24;
  10547. VkGeometryInstanceFlagsKHR flags:8;
  10548. uint64_t accelerationStructureReference;
  10549. } VkAccelerationStructureMatrixMotionInstanceNV;
  10550. typedef struct VkSRTDataNV {
  10551. float sx;
  10552. float a;
  10553. float b;
  10554. float pvx;
  10555. float sy;
  10556. float c;
  10557. float pvy;
  10558. float sz;
  10559. float pvz;
  10560. float qx;
  10561. float qy;
  10562. float qz;
  10563. float qw;
  10564. float tx;
  10565. float ty;
  10566. float tz;
  10567. } VkSRTDataNV;
  10568. typedef struct VkAccelerationStructureSRTMotionInstanceNV {
  10569. VkSRTDataNV transformT0;
  10570. VkSRTDataNV transformT1;
  10571. uint32_t instanceCustomIndex:24;
  10572. uint32_t mask:8;
  10573. uint32_t instanceShaderBindingTableRecordOffset:24;
  10574. VkGeometryInstanceFlagsKHR flags:8;
  10575. uint64_t accelerationStructureReference;
  10576. } VkAccelerationStructureSRTMotionInstanceNV;
  10577. typedef union VkAccelerationStructureMotionInstanceDataNV {
  10578. VkAccelerationStructureInstanceKHR staticInstance;
  10579. VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
  10580. VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
  10581. } VkAccelerationStructureMotionInstanceDataNV;
  10582. typedef struct VkAccelerationStructureMotionInstanceNV {
  10583. VkAccelerationStructureMotionInstanceTypeNV type;
  10584. VkAccelerationStructureMotionInstanceFlagsNV flags;
  10585. VkAccelerationStructureMotionInstanceDataNV data;
  10586. } VkAccelerationStructureMotionInstanceNV;
  10587. typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
  10588. VkStructureType sType;
  10589. void* pNext;
  10590. VkBool32 rayTracingMotionBlur;
  10591. VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect;
  10592. } VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
  10593. #define VK_EXT_ycbcr_2plane_444_formats 1
  10594. #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
  10595. #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
  10596. typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
  10597. VkStructureType sType;
  10598. void* pNext;
  10599. VkBool32 ycbcr2plane444Formats;
  10600. } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
  10601. #define VK_EXT_fragment_density_map2 1
  10602. #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
  10603. #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
  10604. typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
  10605. VkStructureType sType;
  10606. void* pNext;
  10607. VkBool32 fragmentDensityMapDeferred;
  10608. } VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
  10609. typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
  10610. VkStructureType sType;
  10611. void* pNext;
  10612. VkBool32 subsampledLoads;
  10613. VkBool32 subsampledCoarseReconstructionEarlyAccess;
  10614. uint32_t maxSubsampledArrayLayers;
  10615. uint32_t maxDescriptorSetSubsampledSamplers;
  10616. } VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
  10617. #define VK_QCOM_rotated_copy_commands 1
  10618. #define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 1
  10619. #define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
  10620. typedef struct VkCopyCommandTransformInfoQCOM {
  10621. VkStructureType sType;
  10622. const void* pNext;
  10623. VkSurfaceTransformFlagBitsKHR transform;
  10624. } VkCopyCommandTransformInfoQCOM;
  10625. #define VK_EXT_image_robustness 1
  10626. #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
  10627. #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
  10628. typedef struct VkPhysicalDeviceImageRobustnessFeaturesEXT {
  10629. VkStructureType sType;
  10630. void* pNext;
  10631. VkBool32 robustImageAccess;
  10632. } VkPhysicalDeviceImageRobustnessFeaturesEXT;
  10633. #define VK_EXT_4444_formats 1
  10634. #define VK_EXT_4444_FORMATS_SPEC_VERSION 1
  10635. #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
  10636. typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
  10637. VkStructureType sType;
  10638. void* pNext;
  10639. VkBool32 formatA4R4G4B4;
  10640. VkBool32 formatA4B4G4R4;
  10641. } VkPhysicalDevice4444FormatsFeaturesEXT;
  10642. #define VK_NV_acquire_winrt_display 1
  10643. #define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1
  10644. #define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display"
  10645. typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
  10646. typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay);
  10647. #ifndef VK_NO_PROTOTYPES
  10648. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireWinrtDisplayNV(
  10649. VkPhysicalDevice physicalDevice,
  10650. VkDisplayKHR display);
  10651. VKAPI_ATTR VkResult VKAPI_CALL vkGetWinrtDisplayNV(
  10652. VkPhysicalDevice physicalDevice,
  10653. uint32_t deviceRelativeId,
  10654. VkDisplayKHR* pDisplay);
  10655. #endif
  10656. #define VK_VALVE_mutable_descriptor_type 1
  10657. #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
  10658. #define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
  10659. typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE {
  10660. VkStructureType sType;
  10661. void* pNext;
  10662. VkBool32 mutableDescriptorType;
  10663. } VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
  10664. typedef struct VkMutableDescriptorTypeListVALVE {
  10665. uint32_t descriptorTypeCount;
  10666. const VkDescriptorType* pDescriptorTypes;
  10667. } VkMutableDescriptorTypeListVALVE;
  10668. typedef struct VkMutableDescriptorTypeCreateInfoVALVE {
  10669. VkStructureType sType;
  10670. const void* pNext;
  10671. uint32_t mutableDescriptorTypeListCount;
  10672. const VkMutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists;
  10673. } VkMutableDescriptorTypeCreateInfoVALVE;
  10674. #define VK_EXT_vertex_input_dynamic_state 1
  10675. #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
  10676. #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
  10677. typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
  10678. VkStructureType sType;
  10679. void* pNext;
  10680. VkBool32 vertexInputDynamicState;
  10681. } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
  10682. typedef struct VkVertexInputBindingDescription2EXT {
  10683. VkStructureType sType;
  10684. void* pNext;
  10685. uint32_t binding;
  10686. uint32_t stride;
  10687. VkVertexInputRate inputRate;
  10688. uint32_t divisor;
  10689. } VkVertexInputBindingDescription2EXT;
  10690. typedef struct VkVertexInputAttributeDescription2EXT {
  10691. VkStructureType sType;
  10692. void* pNext;
  10693. uint32_t location;
  10694. uint32_t binding;
  10695. VkFormat format;
  10696. uint32_t offset;
  10697. } VkVertexInputAttributeDescription2EXT;
  10698. typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
  10699. #ifndef VK_NO_PROTOTYPES
  10700. VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
  10701. VkCommandBuffer commandBuffer,
  10702. uint32_t vertexBindingDescriptionCount,
  10703. const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
  10704. uint32_t vertexAttributeDescriptionCount,
  10705. const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
  10706. #endif
  10707. #define VK_EXT_physical_device_drm 1
  10708. #define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
  10709. #define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
  10710. typedef struct VkPhysicalDeviceDrmPropertiesEXT {
  10711. VkStructureType sType;
  10712. void* pNext;
  10713. VkBool32 hasPrimary;
  10714. VkBool32 hasRender;
  10715. int64_t primaryMajor;
  10716. int64_t primaryMinor;
  10717. int64_t renderMajor;
  10718. int64_t renderMinor;
  10719. } VkPhysicalDeviceDrmPropertiesEXT;
  10720. #define VK_EXT_primitive_topology_list_restart 1
  10721. #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
  10722. #define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
  10723. typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
  10724. VkStructureType sType;
  10725. void* pNext;
  10726. VkBool32 primitiveTopologyListRestart;
  10727. VkBool32 primitiveTopologyPatchListRestart;
  10728. } VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
  10729. #define VK_HUAWEI_subpass_shading 1
  10730. #define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 2
  10731. #define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
  10732. typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
  10733. VkStructureType sType;
  10734. void* pNext;
  10735. VkRenderPass renderPass;
  10736. uint32_t subpass;
  10737. } VkSubpassShadingPipelineCreateInfoHUAWEI;
  10738. typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
  10739. VkStructureType sType;
  10740. void* pNext;
  10741. VkBool32 subpassShading;
  10742. } VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
  10743. typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
  10744. VkStructureType sType;
  10745. void* pNext;
  10746. uint32_t maxSubpassShadingWorkgroupSizeAspectRatio;
  10747. } VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
  10748. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
  10749. typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
  10750. #ifndef VK_NO_PROTOTYPES
  10751. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
  10752. VkDevice device,
  10753. VkRenderPass renderpass,
  10754. VkExtent2D* pMaxWorkgroupSize);
  10755. VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
  10756. VkCommandBuffer commandBuffer);
  10757. #endif
  10758. #define VK_HUAWEI_invocation_mask 1
  10759. #define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
  10760. #define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
  10761. typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
  10762. VkStructureType sType;
  10763. void* pNext;
  10764. VkBool32 invocationMask;
  10765. } VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
  10766. typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
  10767. #ifndef VK_NO_PROTOTYPES
  10768. VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
  10769. VkCommandBuffer commandBuffer,
  10770. VkImageView imageView,
  10771. VkImageLayout imageLayout);
  10772. #endif
  10773. #define VK_NV_external_memory_rdma 1
  10774. typedef void* VkRemoteAddressNV;
  10775. #define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
  10776. #define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
  10777. typedef struct VkMemoryGetRemoteAddressInfoNV {
  10778. VkStructureType sType;
  10779. const void* pNext;
  10780. VkDeviceMemory memory;
  10781. VkExternalMemoryHandleTypeFlagBits handleType;
  10782. } VkMemoryGetRemoteAddressInfoNV;
  10783. typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
  10784. VkStructureType sType;
  10785. void* pNext;
  10786. VkBool32 externalMemoryRDMA;
  10787. } VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
  10788. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
  10789. #ifndef VK_NO_PROTOTYPES
  10790. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
  10791. VkDevice device,
  10792. const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
  10793. VkRemoteAddressNV* pAddress);
  10794. #endif
  10795. #define VK_EXT_extended_dynamic_state2 1
  10796. #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
  10797. #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
  10798. typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
  10799. VkStructureType sType;
  10800. void* pNext;
  10801. VkBool32 extendedDynamicState2;
  10802. VkBool32 extendedDynamicState2LogicOp;
  10803. VkBool32 extendedDynamicState2PatchControlPoints;
  10804. } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
  10805. typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
  10806. typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
  10807. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
  10808. typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
  10809. typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
  10810. #ifndef VK_NO_PROTOTYPES
  10811. VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
  10812. VkCommandBuffer commandBuffer,
  10813. uint32_t patchControlPoints);
  10814. VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
  10815. VkCommandBuffer commandBuffer,
  10816. VkBool32 rasterizerDiscardEnable);
  10817. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
  10818. VkCommandBuffer commandBuffer,
  10819. VkBool32 depthBiasEnable);
  10820. VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
  10821. VkCommandBuffer commandBuffer,
  10822. VkLogicOp logicOp);
  10823. VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
  10824. VkCommandBuffer commandBuffer,
  10825. VkBool32 primitiveRestartEnable);
  10826. #endif
  10827. #define VK_EXT_color_write_enable 1
  10828. #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
  10829. #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
  10830. typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
  10831. VkStructureType sType;
  10832. void* pNext;
  10833. VkBool32 colorWriteEnable;
  10834. } VkPhysicalDeviceColorWriteEnableFeaturesEXT;
  10835. typedef struct VkPipelineColorWriteCreateInfoEXT {
  10836. VkStructureType sType;
  10837. const void* pNext;
  10838. uint32_t attachmentCount;
  10839. const VkBool32* pColorWriteEnables;
  10840. } VkPipelineColorWriteCreateInfoEXT;
  10841. typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables);
  10842. #ifndef VK_NO_PROTOTYPES
  10843. VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT(
  10844. VkCommandBuffer commandBuffer,
  10845. uint32_t attachmentCount,
  10846. const VkBool32* pColorWriteEnables);
  10847. #endif
  10848. #define VK_EXT_global_priority_query 1
  10849. #define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT 16U
  10850. #define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
  10851. #define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
  10852. typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT {
  10853. VkStructureType sType;
  10854. void* pNext;
  10855. VkBool32 globalPriorityQuery;
  10856. } VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
  10857. typedef struct VkQueueFamilyGlobalPriorityPropertiesEXT {
  10858. VkStructureType sType;
  10859. void* pNext;
  10860. uint32_t priorityCount;
  10861. VkQueueGlobalPriorityEXT priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_EXT];
  10862. } VkQueueFamilyGlobalPriorityPropertiesEXT;
  10863. #define VK_EXT_multi_draw 1
  10864. #define VK_EXT_MULTI_DRAW_SPEC_VERSION 1
  10865. #define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
  10866. typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
  10867. VkStructureType sType;
  10868. void* pNext;
  10869. VkBool32 multiDraw;
  10870. } VkPhysicalDeviceMultiDrawFeaturesEXT;
  10871. typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
  10872. VkStructureType sType;
  10873. void* pNext;
  10874. uint32_t maxMultiDrawCount;
  10875. } VkPhysicalDeviceMultiDrawPropertiesEXT;
  10876. typedef struct VkMultiDrawInfoEXT {
  10877. uint32_t firstVertex;
  10878. uint32_t vertexCount;
  10879. } VkMultiDrawInfoEXT;
  10880. typedef struct VkMultiDrawIndexedInfoEXT {
  10881. uint32_t firstIndex;
  10882. uint32_t indexCount;
  10883. int32_t vertexOffset;
  10884. } VkMultiDrawIndexedInfoEXT;
  10885. typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
  10886. 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);
  10887. #ifndef VK_NO_PROTOTYPES
  10888. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
  10889. VkCommandBuffer commandBuffer,
  10890. uint32_t drawCount,
  10891. const VkMultiDrawInfoEXT* pVertexInfo,
  10892. uint32_t instanceCount,
  10893. uint32_t firstInstance,
  10894. uint32_t stride);
  10895. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
  10896. VkCommandBuffer commandBuffer,
  10897. uint32_t drawCount,
  10898. const VkMultiDrawIndexedInfoEXT* pIndexInfo,
  10899. uint32_t instanceCount,
  10900. uint32_t firstInstance,
  10901. uint32_t stride,
  10902. const int32_t* pVertexOffset);
  10903. #endif
  10904. #define VK_EXT_load_store_op_none 1
  10905. #define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
  10906. #define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
  10907. #define VK_EXT_pageable_device_local_memory 1
  10908. #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
  10909. #define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
  10910. typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
  10911. VkStructureType sType;
  10912. void* pNext;
  10913. VkBool32 pageableDeviceLocalMemory;
  10914. } VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
  10915. typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority);
  10916. #ifndef VK_NO_PROTOTYPES
  10917. VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
  10918. VkDevice device,
  10919. VkDeviceMemory memory,
  10920. float priority);
  10921. #endif
  10922. #define VK_KHR_acceleration_structure 1
  10923. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
  10924. #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 12
  10925. #define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
  10926. typedef enum VkBuildAccelerationStructureModeKHR {
  10927. VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
  10928. VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
  10929. VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  10930. } VkBuildAccelerationStructureModeKHR;
  10931. typedef enum VkAccelerationStructureBuildTypeKHR {
  10932. VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
  10933. VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
  10934. VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
  10935. VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
  10936. } VkAccelerationStructureBuildTypeKHR;
  10937. typedef enum VkAccelerationStructureCompatibilityKHR {
  10938. VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
  10939. VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
  10940. VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
  10941. } VkAccelerationStructureCompatibilityKHR;
  10942. typedef enum VkAccelerationStructureCreateFlagBitsKHR {
  10943. VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
  10944. VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
  10945. VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  10946. } VkAccelerationStructureCreateFlagBitsKHR;
  10947. typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
  10948. typedef union VkDeviceOrHostAddressKHR {
  10949. VkDeviceAddress deviceAddress;
  10950. void* hostAddress;
  10951. } VkDeviceOrHostAddressKHR;
  10952. typedef struct VkAccelerationStructureBuildRangeInfoKHR {
  10953. uint32_t primitiveCount;
  10954. uint32_t primitiveOffset;
  10955. uint32_t firstVertex;
  10956. uint32_t transformOffset;
  10957. } VkAccelerationStructureBuildRangeInfoKHR;
  10958. typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
  10959. VkStructureType sType;
  10960. const void* pNext;
  10961. VkFormat vertexFormat;
  10962. VkDeviceOrHostAddressConstKHR vertexData;
  10963. VkDeviceSize vertexStride;
  10964. uint32_t maxVertex;
  10965. VkIndexType indexType;
  10966. VkDeviceOrHostAddressConstKHR indexData;
  10967. VkDeviceOrHostAddressConstKHR transformData;
  10968. } VkAccelerationStructureGeometryTrianglesDataKHR;
  10969. typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
  10970. VkStructureType sType;
  10971. const void* pNext;
  10972. VkDeviceOrHostAddressConstKHR data;
  10973. VkDeviceSize stride;
  10974. } VkAccelerationStructureGeometryAabbsDataKHR;
  10975. typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
  10976. VkStructureType sType;
  10977. const void* pNext;
  10978. VkBool32 arrayOfPointers;
  10979. VkDeviceOrHostAddressConstKHR data;
  10980. } VkAccelerationStructureGeometryInstancesDataKHR;
  10981. typedef union VkAccelerationStructureGeometryDataKHR {
  10982. VkAccelerationStructureGeometryTrianglesDataKHR triangles;
  10983. VkAccelerationStructureGeometryAabbsDataKHR aabbs;
  10984. VkAccelerationStructureGeometryInstancesDataKHR instances;
  10985. } VkAccelerationStructureGeometryDataKHR;
  10986. typedef struct VkAccelerationStructureGeometryKHR {
  10987. VkStructureType sType;
  10988. const void* pNext;
  10989. VkGeometryTypeKHR geometryType;
  10990. VkAccelerationStructureGeometryDataKHR geometry;
  10991. VkGeometryFlagsKHR flags;
  10992. } VkAccelerationStructureGeometryKHR;
  10993. typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
  10994. VkStructureType sType;
  10995. const void* pNext;
  10996. VkAccelerationStructureTypeKHR type;
  10997. VkBuildAccelerationStructureFlagsKHR flags;
  10998. VkBuildAccelerationStructureModeKHR mode;
  10999. VkAccelerationStructureKHR srcAccelerationStructure;
  11000. VkAccelerationStructureKHR dstAccelerationStructure;
  11001. uint32_t geometryCount;
  11002. const VkAccelerationStructureGeometryKHR* pGeometries;
  11003. const VkAccelerationStructureGeometryKHR* const* ppGeometries;
  11004. VkDeviceOrHostAddressKHR scratchData;
  11005. } VkAccelerationStructureBuildGeometryInfoKHR;
  11006. typedef struct VkAccelerationStructureCreateInfoKHR {
  11007. VkStructureType sType;
  11008. const void* pNext;
  11009. VkAccelerationStructureCreateFlagsKHR createFlags;
  11010. VkBuffer buffer;
  11011. VkDeviceSize offset;
  11012. VkDeviceSize size;
  11013. VkAccelerationStructureTypeKHR type;
  11014. VkDeviceAddress deviceAddress;
  11015. } VkAccelerationStructureCreateInfoKHR;
  11016. typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
  11017. VkStructureType sType;
  11018. const void* pNext;
  11019. uint32_t accelerationStructureCount;
  11020. const VkAccelerationStructureKHR* pAccelerationStructures;
  11021. } VkWriteDescriptorSetAccelerationStructureKHR;
  11022. typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
  11023. VkStructureType sType;
  11024. void* pNext;
  11025. VkBool32 accelerationStructure;
  11026. VkBool32 accelerationStructureCaptureReplay;
  11027. VkBool32 accelerationStructureIndirectBuild;
  11028. VkBool32 accelerationStructureHostCommands;
  11029. VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind;
  11030. } VkPhysicalDeviceAccelerationStructureFeaturesKHR;
  11031. typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
  11032. VkStructureType sType;
  11033. void* pNext;
  11034. uint64_t maxGeometryCount;
  11035. uint64_t maxInstanceCount;
  11036. uint64_t maxPrimitiveCount;
  11037. uint32_t maxPerStageDescriptorAccelerationStructures;
  11038. uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
  11039. uint32_t maxDescriptorSetAccelerationStructures;
  11040. uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures;
  11041. uint32_t minAccelerationStructureScratchOffsetAlignment;
  11042. } VkPhysicalDeviceAccelerationStructurePropertiesKHR;
  11043. typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
  11044. VkStructureType sType;
  11045. const void* pNext;
  11046. VkAccelerationStructureKHR accelerationStructure;
  11047. } VkAccelerationStructureDeviceAddressInfoKHR;
  11048. typedef struct VkAccelerationStructureVersionInfoKHR {
  11049. VkStructureType sType;
  11050. const void* pNext;
  11051. const uint8_t* pVersionData;
  11052. } VkAccelerationStructureVersionInfoKHR;
  11053. typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
  11054. VkStructureType sType;
  11055. const void* pNext;
  11056. VkAccelerationStructureKHR src;
  11057. VkDeviceOrHostAddressKHR dst;
  11058. VkCopyAccelerationStructureModeKHR mode;
  11059. } VkCopyAccelerationStructureToMemoryInfoKHR;
  11060. typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
  11061. VkStructureType sType;
  11062. const void* pNext;
  11063. VkDeviceOrHostAddressConstKHR src;
  11064. VkAccelerationStructureKHR dst;
  11065. VkCopyAccelerationStructureModeKHR mode;
  11066. } VkCopyMemoryToAccelerationStructureInfoKHR;
  11067. typedef struct VkCopyAccelerationStructureInfoKHR {
  11068. VkStructureType sType;
  11069. const void* pNext;
  11070. VkAccelerationStructureKHR src;
  11071. VkAccelerationStructureKHR dst;
  11072. VkCopyAccelerationStructureModeKHR mode;
  11073. } VkCopyAccelerationStructureInfoKHR;
  11074. typedef struct VkAccelerationStructureBuildSizesInfoKHR {
  11075. VkStructureType sType;
  11076. const void* pNext;
  11077. VkDeviceSize accelerationStructureSize;
  11078. VkDeviceSize updateScratchSize;
  11079. VkDeviceSize buildScratchSize;
  11080. } VkAccelerationStructureBuildSizesInfoKHR;
  11081. typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
  11082. typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
  11083. typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  11084. 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);
  11085. typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  11086. typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
  11087. typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  11088. typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  11089. typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
  11090. typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
  11091. typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  11092. typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  11093. typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
  11094. typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
  11095. typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
  11096. typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
  11097. #ifndef VK_NO_PROTOTYPES
  11098. VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
  11099. VkDevice device,
  11100. const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
  11101. const VkAllocationCallbacks* pAllocator,
  11102. VkAccelerationStructureKHR* pAccelerationStructure);
  11103. VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
  11104. VkDevice device,
  11105. VkAccelerationStructureKHR accelerationStructure,
  11106. const VkAllocationCallbacks* pAllocator);
  11107. VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
  11108. VkCommandBuffer commandBuffer,
  11109. uint32_t infoCount,
  11110. const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
  11111. const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  11112. VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
  11113. VkCommandBuffer commandBuffer,
  11114. uint32_t infoCount,
  11115. const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
  11116. const VkDeviceAddress* pIndirectDeviceAddresses,
  11117. const uint32_t* pIndirectStrides,
  11118. const uint32_t* const* ppMaxPrimitiveCounts);
  11119. VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
  11120. VkDevice device,
  11121. VkDeferredOperationKHR deferredOperation,
  11122. uint32_t infoCount,
  11123. const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
  11124. const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
  11125. VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
  11126. VkDevice device,
  11127. VkDeferredOperationKHR deferredOperation,
  11128. const VkCopyAccelerationStructureInfoKHR* pInfo);
  11129. VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
  11130. VkDevice device,
  11131. VkDeferredOperationKHR deferredOperation,
  11132. const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  11133. VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
  11134. VkDevice device,
  11135. VkDeferredOperationKHR deferredOperation,
  11136. const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  11137. VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
  11138. VkDevice device,
  11139. uint32_t accelerationStructureCount,
  11140. const VkAccelerationStructureKHR* pAccelerationStructures,
  11141. VkQueryType queryType,
  11142. size_t dataSize,
  11143. void* pData,
  11144. size_t stride);
  11145. VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
  11146. VkCommandBuffer commandBuffer,
  11147. const VkCopyAccelerationStructureInfoKHR* pInfo);
  11148. VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
  11149. VkCommandBuffer commandBuffer,
  11150. const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
  11151. VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
  11152. VkCommandBuffer commandBuffer,
  11153. const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
  11154. VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
  11155. VkDevice device,
  11156. const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
  11157. VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
  11158. VkCommandBuffer commandBuffer,
  11159. uint32_t accelerationStructureCount,
  11160. const VkAccelerationStructureKHR* pAccelerationStructures,
  11161. VkQueryType queryType,
  11162. VkQueryPool queryPool,
  11163. uint32_t firstQuery);
  11164. VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
  11165. VkDevice device,
  11166. const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
  11167. VkAccelerationStructureCompatibilityKHR* pCompatibility);
  11168. VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
  11169. VkDevice device,
  11170. VkAccelerationStructureBuildTypeKHR buildType,
  11171. const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
  11172. const uint32_t* pMaxPrimitiveCounts,
  11173. VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
  11174. #endif
  11175. #define VK_KHR_ray_tracing_pipeline 1
  11176. #define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
  11177. #define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
  11178. typedef enum VkShaderGroupShaderKHR {
  11179. VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
  11180. VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
  11181. VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
  11182. VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
  11183. VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
  11184. } VkShaderGroupShaderKHR;
  11185. typedef struct VkRayTracingShaderGroupCreateInfoKHR {
  11186. VkStructureType sType;
  11187. const void* pNext;
  11188. VkRayTracingShaderGroupTypeKHR type;
  11189. uint32_t generalShader;
  11190. uint32_t closestHitShader;
  11191. uint32_t anyHitShader;
  11192. uint32_t intersectionShader;
  11193. const void* pShaderGroupCaptureReplayHandle;
  11194. } VkRayTracingShaderGroupCreateInfoKHR;
  11195. typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
  11196. VkStructureType sType;
  11197. const void* pNext;
  11198. uint32_t maxPipelineRayPayloadSize;
  11199. uint32_t maxPipelineRayHitAttributeSize;
  11200. } VkRayTracingPipelineInterfaceCreateInfoKHR;
  11201. typedef struct VkRayTracingPipelineCreateInfoKHR {
  11202. VkStructureType sType;
  11203. const void* pNext;
  11204. VkPipelineCreateFlags flags;
  11205. uint32_t stageCount;
  11206. const VkPipelineShaderStageCreateInfo* pStages;
  11207. uint32_t groupCount;
  11208. const VkRayTracingShaderGroupCreateInfoKHR* pGroups;
  11209. uint32_t maxPipelineRayRecursionDepth;
  11210. const VkPipelineLibraryCreateInfoKHR* pLibraryInfo;
  11211. const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface;
  11212. const VkPipelineDynamicStateCreateInfo* pDynamicState;
  11213. VkPipelineLayout layout;
  11214. VkPipeline basePipelineHandle;
  11215. int32_t basePipelineIndex;
  11216. } VkRayTracingPipelineCreateInfoKHR;
  11217. typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
  11218. VkStructureType sType;
  11219. void* pNext;
  11220. VkBool32 rayTracingPipeline;
  11221. VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay;
  11222. VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
  11223. VkBool32 rayTracingPipelineTraceRaysIndirect;
  11224. VkBool32 rayTraversalPrimitiveCulling;
  11225. } VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
  11226. typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
  11227. VkStructureType sType;
  11228. void* pNext;
  11229. uint32_t shaderGroupHandleSize;
  11230. uint32_t maxRayRecursionDepth;
  11231. uint32_t maxShaderGroupStride;
  11232. uint32_t shaderGroupBaseAlignment;
  11233. uint32_t shaderGroupHandleCaptureReplaySize;
  11234. uint32_t maxRayDispatchInvocationCount;
  11235. uint32_t shaderGroupHandleAlignment;
  11236. uint32_t maxRayHitAttributeSize;
  11237. } VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
  11238. typedef struct VkStridedDeviceAddressRegionKHR {
  11239. VkDeviceAddress deviceAddress;
  11240. VkDeviceSize stride;
  11241. VkDeviceSize size;
  11242. } VkStridedDeviceAddressRegionKHR;
  11243. typedef struct VkTraceRaysIndirectCommandKHR {
  11244. uint32_t width;
  11245. uint32_t height;
  11246. uint32_t depth;
  11247. } VkTraceRaysIndirectCommandKHR;
  11248. 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);
  11249. typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  11250. typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
  11251. typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
  11252. typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
  11253. typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
  11254. #ifndef VK_NO_PROTOTYPES
  11255. VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
  11256. VkCommandBuffer commandBuffer,
  11257. const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
  11258. const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
  11259. const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
  11260. const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
  11261. uint32_t width,
  11262. uint32_t height,
  11263. uint32_t depth);
  11264. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
  11265. VkDevice device,
  11266. VkDeferredOperationKHR deferredOperation,
  11267. VkPipelineCache pipelineCache,
  11268. uint32_t createInfoCount,
  11269. const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
  11270. const VkAllocationCallbacks* pAllocator,
  11271. VkPipeline* pPipelines);
  11272. VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
  11273. VkDevice device,
  11274. VkPipeline pipeline,
  11275. uint32_t firstGroup,
  11276. uint32_t groupCount,
  11277. size_t dataSize,
  11278. void* pData);
  11279. VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
  11280. VkCommandBuffer commandBuffer,
  11281. const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
  11282. const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
  11283. const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
  11284. const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
  11285. VkDeviceAddress indirectDeviceAddress);
  11286. VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
  11287. VkDevice device,
  11288. VkPipeline pipeline,
  11289. uint32_t group,
  11290. VkShaderGroupShaderKHR groupShader);
  11291. VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
  11292. VkCommandBuffer commandBuffer,
  11293. uint32_t pipelineStackSize);
  11294. #endif
  11295. #define VK_KHR_ray_query 1
  11296. #define VK_KHR_RAY_QUERY_SPEC_VERSION 1
  11297. #define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query"
  11298. typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
  11299. VkStructureType sType;
  11300. void* pNext;
  11301. VkBool32 rayQuery;
  11302. } VkPhysicalDeviceRayQueryFeaturesKHR;
  11303. #ifdef __cplusplus
  11304. }
  11305. #endif
  11306. #endif