vulkan_core.h 407 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524
  1. #ifndef VULKAN_CORE_H_
  2. #define VULKAN_CORE_H_ 1
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /*
  7. ** Copyright (c) 2015-2018 The Khronos Group Inc.
  8. **
  9. ** Licensed under the Apache License, Version 2.0 (the "License");
  10. ** you may not use this file except in compliance with the License.
  11. ** You may obtain a copy of the License at
  12. **
  13. ** http://www.apache.org/licenses/LICENSE-2.0
  14. **
  15. ** Unless required by applicable law or agreed to in writing, software
  16. ** distributed under the License is distributed on an "AS IS" BASIS,
  17. ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18. ** See the License for the specific language governing permissions and
  19. ** limitations under the License.
  20. */
  21. /*
  22. ** This header is generated from the Khronos Vulkan XML API Registry.
  23. **
  24. */
  25. #define VK_VERSION_1_0 1
  26. #include "vk_platform.h"
  27. #define VK_MAKE_VERSION(major, minor, patch) \
  28. (((major) << 22) | ((minor) << 12) | (patch))
  29. // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
  30. //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
  31. // Vulkan 1.0 version number
  32. #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
  33. #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
  34. #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
  35. #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
  36. // Version of this file
  37. #define VK_HEADER_VERSION 87
  38. #define VK_NULL_HANDLE 0
  39. #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
  40. #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
  41. #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
  42. #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
  43. #else
  44. #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
  45. #endif
  46. #endif
  47. typedef uint32_t VkFlags;
  48. typedef uint32_t VkBool32;
  49. typedef uint64_t VkDeviceSize;
  50. typedef uint32_t VkSampleMask;
  51. VK_DEFINE_HANDLE(VkInstance)
  52. VK_DEFINE_HANDLE(VkPhysicalDevice)
  53. VK_DEFINE_HANDLE(VkDevice)
  54. VK_DEFINE_HANDLE(VkQueue)
  55. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
  56. VK_DEFINE_HANDLE(VkCommandBuffer)
  57. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
  58. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
  59. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
  60. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
  61. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
  62. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
  63. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
  64. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
  65. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
  66. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
  67. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
  68. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
  69. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
  70. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
  71. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
  72. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
  73. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
  74. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
  75. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
  76. #define VK_LOD_CLAMP_NONE 1000.0f
  77. #define VK_REMAINING_MIP_LEVELS (~0U)
  78. #define VK_REMAINING_ARRAY_LAYERS (~0U)
  79. #define VK_WHOLE_SIZE (~0ULL)
  80. #define VK_ATTACHMENT_UNUSED (~0U)
  81. #define VK_TRUE 1
  82. #define VK_FALSE 0
  83. #define VK_QUEUE_FAMILY_IGNORED (~0U)
  84. #define VK_SUBPASS_EXTERNAL (~0U)
  85. #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
  86. #define VK_UUID_SIZE 16
  87. #define VK_MAX_MEMORY_TYPES 32
  88. #define VK_MAX_MEMORY_HEAPS 16
  89. #define VK_MAX_EXTENSION_NAME_SIZE 256
  90. #define VK_MAX_DESCRIPTION_SIZE 256
  91. typedef enum VkPipelineCacheHeaderVersion {
  92. VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
  93. VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
  94. VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
  95. VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
  96. VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
  97. } VkPipelineCacheHeaderVersion;
  98. typedef enum VkResult {
  99. VK_SUCCESS = 0,
  100. VK_NOT_READY = 1,
  101. VK_TIMEOUT = 2,
  102. VK_EVENT_SET = 3,
  103. VK_EVENT_RESET = 4,
  104. VK_INCOMPLETE = 5,
  105. VK_ERROR_OUT_OF_HOST_MEMORY = -1,
  106. VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
  107. VK_ERROR_INITIALIZATION_FAILED = -3,
  108. VK_ERROR_DEVICE_LOST = -4,
  109. VK_ERROR_MEMORY_MAP_FAILED = -5,
  110. VK_ERROR_LAYER_NOT_PRESENT = -6,
  111. VK_ERROR_EXTENSION_NOT_PRESENT = -7,
  112. VK_ERROR_FEATURE_NOT_PRESENT = -8,
  113. VK_ERROR_INCOMPATIBLE_DRIVER = -9,
  114. VK_ERROR_TOO_MANY_OBJECTS = -10,
  115. VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
  116. VK_ERROR_FRAGMENTED_POOL = -12,
  117. VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
  118. VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
  119. VK_ERROR_SURFACE_LOST_KHR = -1000000000,
  120. VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
  121. VK_SUBOPTIMAL_KHR = 1000001003,
  122. VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
  123. VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
  124. VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
  125. VK_ERROR_INVALID_SHADER_NV = -1000012000,
  126. VK_ERROR_FRAGMENTATION_EXT = -1000161000,
  127. VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
  128. VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
  129. VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
  130. VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
  131. VK_RESULT_END_RANGE = VK_INCOMPLETE,
  132. VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
  133. VK_RESULT_MAX_ENUM = 0x7FFFFFFF
  134. } VkResult;
  135. typedef enum VkStructureType {
  136. VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
  137. VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
  138. VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
  139. VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
  140. VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
  141. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
  142. VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
  143. VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
  144. VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
  145. VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
  146. VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
  147. VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
  148. VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
  149. VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
  150. VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
  151. VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
  152. VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
  153. VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
  154. VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
  155. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
  156. VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
  157. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
  158. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
  159. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
  160. VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
  161. VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
  162. VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
  163. VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
  164. VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
  165. VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
  166. VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
  167. VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
  168. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
  169. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
  170. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
  171. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
  172. VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
  173. VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
  174. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
  175. VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
  176. VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
  177. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
  178. VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
  179. VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
  180. VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
  181. VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
  182. VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
  183. VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
  184. VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
  185. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
  186. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
  187. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
  188. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
  189. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
  190. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
  191. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
  192. VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
  193. VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
  194. VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
  195. VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
  196. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
  197. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
  198. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
  199. VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
  200. VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
  201. VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
  202. VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
  203. VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
  204. VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
  205. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
  206. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
  207. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
  208. VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
  209. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
  210. VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
  211. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
  212. VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
  213. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
  214. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
  215. VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
  216. VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
  217. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
  218. VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
  219. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
  220. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
  221. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
  222. VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
  223. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
  224. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
  225. VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
  226. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
  227. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
  228. VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
  229. VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
  230. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
  231. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
  232. VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
  233. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
  234. VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
  235. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
  236. VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
  237. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
  238. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
  239. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
  240. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
  241. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
  242. VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
  243. VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
  244. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
  245. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
  246. VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
  247. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
  248. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
  249. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
  250. VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
  251. VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
  252. VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
  253. VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
  254. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
  255. VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
  256. VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
  257. VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
  258. VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
  259. VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
  260. VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
  261. VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
  262. VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
  263. VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
  264. VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000,
  265. VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
  266. VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
  267. VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
  268. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
  269. VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
  270. VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
  271. VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
  272. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
  273. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
  274. VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
  275. VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
  276. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
  277. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
  278. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
  279. VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
  280. VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
  281. VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
  282. VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
  283. VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
  284. VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
  285. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
  286. VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
  287. VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
  288. VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
  289. VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
  290. VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
  291. VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
  292. VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
  293. VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
  294. VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
  295. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
  296. VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
  297. VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
  298. VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
  299. VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
  300. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
  301. VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
  302. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
  303. VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
  304. VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
  305. VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
  306. VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
  307. VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
  308. VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
  309. VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
  310. VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
  311. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
  312. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
  313. VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
  314. VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
  315. VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
  316. VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
  317. VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
  318. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
  319. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
  320. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
  321. VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
  322. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
  323. VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
  324. VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
  325. VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
  326. VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
  327. VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
  328. VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
  329. VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
  330. VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
  331. VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
  332. VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
  333. VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
  334. VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
  335. VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
  336. VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
  337. VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
  338. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
  339. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
  340. VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
  341. VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
  342. VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
  343. VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
  344. VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
  345. VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
  346. VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
  347. VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
  348. VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
  349. VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
  350. VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
  351. VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
  352. VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
  353. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
  354. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
  355. VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
  356. VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
  357. VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
  358. VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
  359. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
  360. VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
  361. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
  362. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
  363. VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
  364. VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
  365. VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
  366. VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
  367. VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
  368. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
  369. VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
  370. VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
  371. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
  372. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
  373. VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
  374. VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
  375. VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
  376. VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
  377. VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
  378. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
  379. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
  380. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
  381. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
  382. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
  383. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
  384. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
  385. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
  386. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
  387. VK_STRUCTURE_TYPE_RAYTRACING_PIPELINE_CREATE_INFO_NVX = 1000165000,
  388. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NVX = 1000165001,
  389. VK_STRUCTURE_TYPE_GEOMETRY_INSTANCE_NVX = 1000165002,
  390. VK_STRUCTURE_TYPE_GEOMETRY_NVX = 1000165003,
  391. VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NVX = 1000165004,
  392. VK_STRUCTURE_TYPE_GEOMETRY_AABB_NVX = 1000165005,
  393. VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NVX = 1000165006,
  394. VK_STRUCTURE_TYPE_DESCRIPTOR_ACCELERATION_STRUCTURE_INFO_NVX = 1000165007,
  395. VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NVX = 1000165008,
  396. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAYTRACING_PROPERTIES_NVX = 1000165009,
  397. VK_STRUCTURE_TYPE_HIT_SHADER_MODULE_CREATE_INFO_NVX = 1000165010,
  398. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
  399. VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
  400. VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
  401. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
  402. VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
  403. VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
  404. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
  405. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
  406. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
  407. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
  408. VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
  409. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
  410. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000,
  411. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
  412. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
  413. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
  414. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000,
  415. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
  416. VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
  417. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
  418. VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
  419. VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
  420. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
  421. VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
  422. VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
  423. VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
  424. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
  425. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
  426. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
  427. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
  428. VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
  429. VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
  430. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
  431. VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
  432. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
  433. VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
  434. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
  435. VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
  436. VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
  437. VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
  438. VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
  439. VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
  440. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
  441. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
  442. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
  443. VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
  444. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
  445. VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
  446. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
  447. VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
  448. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
  449. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
  450. VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
  451. VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
  452. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
  453. VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
  454. VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
  455. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
  456. VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
  457. VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
  458. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
  459. VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
  460. VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
  461. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
  462. VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
  463. VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
  464. VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
  465. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
  466. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
  467. VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
  468. VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
  469. VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
  470. VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
  471. VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
  472. VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
  473. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
  474. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
  475. VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
  476. VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
  477. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
  478. VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
  479. VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
  480. VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
  481. VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
  482. VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
  483. VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
  484. VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
  485. VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
  486. VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
  487. } VkStructureType;
  488. typedef enum VkSystemAllocationScope {
  489. VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
  490. VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
  491. VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
  492. VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
  493. VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
  494. VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
  495. VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
  496. VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
  497. VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
  498. } VkSystemAllocationScope;
  499. typedef enum VkInternalAllocationType {
  500. VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
  501. VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
  502. VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
  503. VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
  504. VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
  505. } VkInternalAllocationType;
  506. typedef enum VkFormat {
  507. VK_FORMAT_UNDEFINED = 0,
  508. VK_FORMAT_R4G4_UNORM_PACK8 = 1,
  509. VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
  510. VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
  511. VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
  512. VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
  513. VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
  514. VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
  515. VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
  516. VK_FORMAT_R8_UNORM = 9,
  517. VK_FORMAT_R8_SNORM = 10,
  518. VK_FORMAT_R8_USCALED = 11,
  519. VK_FORMAT_R8_SSCALED = 12,
  520. VK_FORMAT_R8_UINT = 13,
  521. VK_FORMAT_R8_SINT = 14,
  522. VK_FORMAT_R8_SRGB = 15,
  523. VK_FORMAT_R8G8_UNORM = 16,
  524. VK_FORMAT_R8G8_SNORM = 17,
  525. VK_FORMAT_R8G8_USCALED = 18,
  526. VK_FORMAT_R8G8_SSCALED = 19,
  527. VK_FORMAT_R8G8_UINT = 20,
  528. VK_FORMAT_R8G8_SINT = 21,
  529. VK_FORMAT_R8G8_SRGB = 22,
  530. VK_FORMAT_R8G8B8_UNORM = 23,
  531. VK_FORMAT_R8G8B8_SNORM = 24,
  532. VK_FORMAT_R8G8B8_USCALED = 25,
  533. VK_FORMAT_R8G8B8_SSCALED = 26,
  534. VK_FORMAT_R8G8B8_UINT = 27,
  535. VK_FORMAT_R8G8B8_SINT = 28,
  536. VK_FORMAT_R8G8B8_SRGB = 29,
  537. VK_FORMAT_B8G8R8_UNORM = 30,
  538. VK_FORMAT_B8G8R8_SNORM = 31,
  539. VK_FORMAT_B8G8R8_USCALED = 32,
  540. VK_FORMAT_B8G8R8_SSCALED = 33,
  541. VK_FORMAT_B8G8R8_UINT = 34,
  542. VK_FORMAT_B8G8R8_SINT = 35,
  543. VK_FORMAT_B8G8R8_SRGB = 36,
  544. VK_FORMAT_R8G8B8A8_UNORM = 37,
  545. VK_FORMAT_R8G8B8A8_SNORM = 38,
  546. VK_FORMAT_R8G8B8A8_USCALED = 39,
  547. VK_FORMAT_R8G8B8A8_SSCALED = 40,
  548. VK_FORMAT_R8G8B8A8_UINT = 41,
  549. VK_FORMAT_R8G8B8A8_SINT = 42,
  550. VK_FORMAT_R8G8B8A8_SRGB = 43,
  551. VK_FORMAT_B8G8R8A8_UNORM = 44,
  552. VK_FORMAT_B8G8R8A8_SNORM = 45,
  553. VK_FORMAT_B8G8R8A8_USCALED = 46,
  554. VK_FORMAT_B8G8R8A8_SSCALED = 47,
  555. VK_FORMAT_B8G8R8A8_UINT = 48,
  556. VK_FORMAT_B8G8R8A8_SINT = 49,
  557. VK_FORMAT_B8G8R8A8_SRGB = 50,
  558. VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
  559. VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
  560. VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
  561. VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
  562. VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
  563. VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
  564. VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
  565. VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
  566. VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
  567. VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
  568. VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
  569. VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
  570. VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
  571. VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
  572. VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
  573. VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
  574. VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
  575. VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
  576. VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
  577. VK_FORMAT_R16_UNORM = 70,
  578. VK_FORMAT_R16_SNORM = 71,
  579. VK_FORMAT_R16_USCALED = 72,
  580. VK_FORMAT_R16_SSCALED = 73,
  581. VK_FORMAT_R16_UINT = 74,
  582. VK_FORMAT_R16_SINT = 75,
  583. VK_FORMAT_R16_SFLOAT = 76,
  584. VK_FORMAT_R16G16_UNORM = 77,
  585. VK_FORMAT_R16G16_SNORM = 78,
  586. VK_FORMAT_R16G16_USCALED = 79,
  587. VK_FORMAT_R16G16_SSCALED = 80,
  588. VK_FORMAT_R16G16_UINT = 81,
  589. VK_FORMAT_R16G16_SINT = 82,
  590. VK_FORMAT_R16G16_SFLOAT = 83,
  591. VK_FORMAT_R16G16B16_UNORM = 84,
  592. VK_FORMAT_R16G16B16_SNORM = 85,
  593. VK_FORMAT_R16G16B16_USCALED = 86,
  594. VK_FORMAT_R16G16B16_SSCALED = 87,
  595. VK_FORMAT_R16G16B16_UINT = 88,
  596. VK_FORMAT_R16G16B16_SINT = 89,
  597. VK_FORMAT_R16G16B16_SFLOAT = 90,
  598. VK_FORMAT_R16G16B16A16_UNORM = 91,
  599. VK_FORMAT_R16G16B16A16_SNORM = 92,
  600. VK_FORMAT_R16G16B16A16_USCALED = 93,
  601. VK_FORMAT_R16G16B16A16_SSCALED = 94,
  602. VK_FORMAT_R16G16B16A16_UINT = 95,
  603. VK_FORMAT_R16G16B16A16_SINT = 96,
  604. VK_FORMAT_R16G16B16A16_SFLOAT = 97,
  605. VK_FORMAT_R32_UINT = 98,
  606. VK_FORMAT_R32_SINT = 99,
  607. VK_FORMAT_R32_SFLOAT = 100,
  608. VK_FORMAT_R32G32_UINT = 101,
  609. VK_FORMAT_R32G32_SINT = 102,
  610. VK_FORMAT_R32G32_SFLOAT = 103,
  611. VK_FORMAT_R32G32B32_UINT = 104,
  612. VK_FORMAT_R32G32B32_SINT = 105,
  613. VK_FORMAT_R32G32B32_SFLOAT = 106,
  614. VK_FORMAT_R32G32B32A32_UINT = 107,
  615. VK_FORMAT_R32G32B32A32_SINT = 108,
  616. VK_FORMAT_R32G32B32A32_SFLOAT = 109,
  617. VK_FORMAT_R64_UINT = 110,
  618. VK_FORMAT_R64_SINT = 111,
  619. VK_FORMAT_R64_SFLOAT = 112,
  620. VK_FORMAT_R64G64_UINT = 113,
  621. VK_FORMAT_R64G64_SINT = 114,
  622. VK_FORMAT_R64G64_SFLOAT = 115,
  623. VK_FORMAT_R64G64B64_UINT = 116,
  624. VK_FORMAT_R64G64B64_SINT = 117,
  625. VK_FORMAT_R64G64B64_SFLOAT = 118,
  626. VK_FORMAT_R64G64B64A64_UINT = 119,
  627. VK_FORMAT_R64G64B64A64_SINT = 120,
  628. VK_FORMAT_R64G64B64A64_SFLOAT = 121,
  629. VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
  630. VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
  631. VK_FORMAT_D16_UNORM = 124,
  632. VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
  633. VK_FORMAT_D32_SFLOAT = 126,
  634. VK_FORMAT_S8_UINT = 127,
  635. VK_FORMAT_D16_UNORM_S8_UINT = 128,
  636. VK_FORMAT_D24_UNORM_S8_UINT = 129,
  637. VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
  638. VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
  639. VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
  640. VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
  641. VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
  642. VK_FORMAT_BC2_UNORM_BLOCK = 135,
  643. VK_FORMAT_BC2_SRGB_BLOCK = 136,
  644. VK_FORMAT_BC3_UNORM_BLOCK = 137,
  645. VK_FORMAT_BC3_SRGB_BLOCK = 138,
  646. VK_FORMAT_BC4_UNORM_BLOCK = 139,
  647. VK_FORMAT_BC4_SNORM_BLOCK = 140,
  648. VK_FORMAT_BC5_UNORM_BLOCK = 141,
  649. VK_FORMAT_BC5_SNORM_BLOCK = 142,
  650. VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
  651. VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
  652. VK_FORMAT_BC7_UNORM_BLOCK = 145,
  653. VK_FORMAT_BC7_SRGB_BLOCK = 146,
  654. VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
  655. VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
  656. VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
  657. VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
  658. VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
  659. VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
  660. VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
  661. VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
  662. VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
  663. VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
  664. VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
  665. VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
  666. VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
  667. VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
  668. VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
  669. VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
  670. VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
  671. VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
  672. VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
  673. VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
  674. VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
  675. VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
  676. VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
  677. VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
  678. VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
  679. VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
  680. VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
  681. VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
  682. VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
  683. VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
  684. VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
  685. VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
  686. VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
  687. VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
  688. VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
  689. VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
  690. VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
  691. VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
  692. VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
  693. VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
  694. VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
  695. VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
  696. VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
  697. VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
  698. VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
  699. VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
  700. VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
  701. VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
  702. VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
  703. VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
  704. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
  705. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
  706. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
  707. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
  708. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
  709. VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
  710. VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
  711. VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
  712. VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
  713. VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
  714. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
  715. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
  716. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
  717. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
  718. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
  719. VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
  720. VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
  721. VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
  722. VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
  723. VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
  724. VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
  725. VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
  726. VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
  727. VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
  728. VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
  729. VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
  730. VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
  731. VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
  732. VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
  733. VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
  734. VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
  735. VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
  736. VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
  737. VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
  738. VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
  739. VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
  740. VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
  741. VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
  742. VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
  743. VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
  744. VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
  745. VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
  746. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
  747. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
  748. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
  749. VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
  750. VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
  751. VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
  752. VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
  753. VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
  754. VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
  755. VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
  756. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
  757. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
  758. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
  759. VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
  760. VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
  761. VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
  762. VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
  763. VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
  764. VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
  765. VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
  766. VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
  767. VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
  768. VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
  769. VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
  770. VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
  771. VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
  772. } VkFormat;
  773. typedef enum VkImageType {
  774. VK_IMAGE_TYPE_1D = 0,
  775. VK_IMAGE_TYPE_2D = 1,
  776. VK_IMAGE_TYPE_3D = 2,
  777. VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
  778. VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
  779. VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
  780. VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
  781. } VkImageType;
  782. typedef enum VkImageTiling {
  783. VK_IMAGE_TILING_OPTIMAL = 0,
  784. VK_IMAGE_TILING_LINEAR = 1,
  785. VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
  786. VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
  787. VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
  788. VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
  789. } VkImageTiling;
  790. typedef enum VkPhysicalDeviceType {
  791. VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
  792. VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
  793. VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
  794. VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
  795. VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
  796. VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
  797. VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
  798. VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
  799. VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
  800. } VkPhysicalDeviceType;
  801. typedef enum VkQueryType {
  802. VK_QUERY_TYPE_OCCLUSION = 0,
  803. VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
  804. VK_QUERY_TYPE_TIMESTAMP = 2,
  805. VK_QUERY_TYPE_COMPACTED_SIZE_NVX = 1000165000,
  806. VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
  807. VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
  808. VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
  809. VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
  810. } VkQueryType;
  811. typedef enum VkSharingMode {
  812. VK_SHARING_MODE_EXCLUSIVE = 0,
  813. VK_SHARING_MODE_CONCURRENT = 1,
  814. VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
  815. VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
  816. VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
  817. VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
  818. } VkSharingMode;
  819. typedef enum VkImageLayout {
  820. VK_IMAGE_LAYOUT_UNDEFINED = 0,
  821. VK_IMAGE_LAYOUT_GENERAL = 1,
  822. VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
  823. VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
  824. VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
  825. VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
  826. VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
  827. VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
  828. VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
  829. VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
  830. VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
  831. VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
  832. VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
  833. VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
  834. VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
  835. VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
  836. VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
  837. VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
  838. VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
  839. VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
  840. } VkImageLayout;
  841. typedef enum VkImageViewType {
  842. VK_IMAGE_VIEW_TYPE_1D = 0,
  843. VK_IMAGE_VIEW_TYPE_2D = 1,
  844. VK_IMAGE_VIEW_TYPE_3D = 2,
  845. VK_IMAGE_VIEW_TYPE_CUBE = 3,
  846. VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
  847. VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
  848. VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
  849. VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
  850. VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
  851. VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
  852. VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
  853. } VkImageViewType;
  854. typedef enum VkComponentSwizzle {
  855. VK_COMPONENT_SWIZZLE_IDENTITY = 0,
  856. VK_COMPONENT_SWIZZLE_ZERO = 1,
  857. VK_COMPONENT_SWIZZLE_ONE = 2,
  858. VK_COMPONENT_SWIZZLE_R = 3,
  859. VK_COMPONENT_SWIZZLE_G = 4,
  860. VK_COMPONENT_SWIZZLE_B = 5,
  861. VK_COMPONENT_SWIZZLE_A = 6,
  862. VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
  863. VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
  864. VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
  865. VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
  866. } VkComponentSwizzle;
  867. typedef enum VkVertexInputRate {
  868. VK_VERTEX_INPUT_RATE_VERTEX = 0,
  869. VK_VERTEX_INPUT_RATE_INSTANCE = 1,
  870. VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
  871. VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
  872. VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
  873. VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
  874. } VkVertexInputRate;
  875. typedef enum VkPrimitiveTopology {
  876. VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
  877. VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
  878. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
  879. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
  880. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
  881. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
  882. VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
  883. VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
  884. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
  885. VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
  886. VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
  887. VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
  888. VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
  889. VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
  890. VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
  891. } VkPrimitiveTopology;
  892. typedef enum VkPolygonMode {
  893. VK_POLYGON_MODE_FILL = 0,
  894. VK_POLYGON_MODE_LINE = 1,
  895. VK_POLYGON_MODE_POINT = 2,
  896. VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
  897. VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
  898. VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
  899. VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
  900. VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
  901. } VkPolygonMode;
  902. typedef enum VkFrontFace {
  903. VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
  904. VK_FRONT_FACE_CLOCKWISE = 1,
  905. VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
  906. VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
  907. VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
  908. VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
  909. } VkFrontFace;
  910. typedef enum VkCompareOp {
  911. VK_COMPARE_OP_NEVER = 0,
  912. VK_COMPARE_OP_LESS = 1,
  913. VK_COMPARE_OP_EQUAL = 2,
  914. VK_COMPARE_OP_LESS_OR_EQUAL = 3,
  915. VK_COMPARE_OP_GREATER = 4,
  916. VK_COMPARE_OP_NOT_EQUAL = 5,
  917. VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
  918. VK_COMPARE_OP_ALWAYS = 7,
  919. VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
  920. VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
  921. VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
  922. VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
  923. } VkCompareOp;
  924. typedef enum VkStencilOp {
  925. VK_STENCIL_OP_KEEP = 0,
  926. VK_STENCIL_OP_ZERO = 1,
  927. VK_STENCIL_OP_REPLACE = 2,
  928. VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
  929. VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
  930. VK_STENCIL_OP_INVERT = 5,
  931. VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
  932. VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
  933. VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
  934. VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
  935. VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
  936. VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
  937. } VkStencilOp;
  938. typedef enum VkLogicOp {
  939. VK_LOGIC_OP_CLEAR = 0,
  940. VK_LOGIC_OP_AND = 1,
  941. VK_LOGIC_OP_AND_REVERSE = 2,
  942. VK_LOGIC_OP_COPY = 3,
  943. VK_LOGIC_OP_AND_INVERTED = 4,
  944. VK_LOGIC_OP_NO_OP = 5,
  945. VK_LOGIC_OP_XOR = 6,
  946. VK_LOGIC_OP_OR = 7,
  947. VK_LOGIC_OP_NOR = 8,
  948. VK_LOGIC_OP_EQUIVALENT = 9,
  949. VK_LOGIC_OP_INVERT = 10,
  950. VK_LOGIC_OP_OR_REVERSE = 11,
  951. VK_LOGIC_OP_COPY_INVERTED = 12,
  952. VK_LOGIC_OP_OR_INVERTED = 13,
  953. VK_LOGIC_OP_NAND = 14,
  954. VK_LOGIC_OP_SET = 15,
  955. VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
  956. VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
  957. VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
  958. VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
  959. } VkLogicOp;
  960. typedef enum VkBlendFactor {
  961. VK_BLEND_FACTOR_ZERO = 0,
  962. VK_BLEND_FACTOR_ONE = 1,
  963. VK_BLEND_FACTOR_SRC_COLOR = 2,
  964. VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
  965. VK_BLEND_FACTOR_DST_COLOR = 4,
  966. VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
  967. VK_BLEND_FACTOR_SRC_ALPHA = 6,
  968. VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
  969. VK_BLEND_FACTOR_DST_ALPHA = 8,
  970. VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
  971. VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
  972. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
  973. VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
  974. VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
  975. VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
  976. VK_BLEND_FACTOR_SRC1_COLOR = 15,
  977. VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
  978. VK_BLEND_FACTOR_SRC1_ALPHA = 17,
  979. VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
  980. VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
  981. VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
  982. VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
  983. VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
  984. } VkBlendFactor;
  985. typedef enum VkBlendOp {
  986. VK_BLEND_OP_ADD = 0,
  987. VK_BLEND_OP_SUBTRACT = 1,
  988. VK_BLEND_OP_REVERSE_SUBTRACT = 2,
  989. VK_BLEND_OP_MIN = 3,
  990. VK_BLEND_OP_MAX = 4,
  991. VK_BLEND_OP_ZERO_EXT = 1000148000,
  992. VK_BLEND_OP_SRC_EXT = 1000148001,
  993. VK_BLEND_OP_DST_EXT = 1000148002,
  994. VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
  995. VK_BLEND_OP_DST_OVER_EXT = 1000148004,
  996. VK_BLEND_OP_SRC_IN_EXT = 1000148005,
  997. VK_BLEND_OP_DST_IN_EXT = 1000148006,
  998. VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
  999. VK_BLEND_OP_DST_OUT_EXT = 1000148008,
  1000. VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
  1001. VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
  1002. VK_BLEND_OP_XOR_EXT = 1000148011,
  1003. VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
  1004. VK_BLEND_OP_SCREEN_EXT = 1000148013,
  1005. VK_BLEND_OP_OVERLAY_EXT = 1000148014,
  1006. VK_BLEND_OP_DARKEN_EXT = 1000148015,
  1007. VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
  1008. VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
  1009. VK_BLEND_OP_COLORBURN_EXT = 1000148018,
  1010. VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
  1011. VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
  1012. VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
  1013. VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
  1014. VK_BLEND_OP_INVERT_EXT = 1000148023,
  1015. VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
  1016. VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
  1017. VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
  1018. VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
  1019. VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
  1020. VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
  1021. VK_BLEND_OP_HARDMIX_EXT = 1000148030,
  1022. VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
  1023. VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
  1024. VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
  1025. VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
  1026. VK_BLEND_OP_PLUS_EXT = 1000148035,
  1027. VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
  1028. VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
  1029. VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
  1030. VK_BLEND_OP_MINUS_EXT = 1000148039,
  1031. VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
  1032. VK_BLEND_OP_CONTRAST_EXT = 1000148041,
  1033. VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
  1034. VK_BLEND_OP_RED_EXT = 1000148043,
  1035. VK_BLEND_OP_GREEN_EXT = 1000148044,
  1036. VK_BLEND_OP_BLUE_EXT = 1000148045,
  1037. VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
  1038. VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
  1039. VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
  1040. VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
  1041. } VkBlendOp;
  1042. typedef enum VkDynamicState {
  1043. VK_DYNAMIC_STATE_VIEWPORT = 0,
  1044. VK_DYNAMIC_STATE_SCISSOR = 1,
  1045. VK_DYNAMIC_STATE_LINE_WIDTH = 2,
  1046. VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
  1047. VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
  1048. VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
  1049. VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
  1050. VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
  1051. VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
  1052. VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
  1053. VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
  1054. VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
  1055. VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
  1056. VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
  1057. VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
  1058. VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
  1059. VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
  1060. VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
  1061. VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
  1062. } VkDynamicState;
  1063. typedef enum VkFilter {
  1064. VK_FILTER_NEAREST = 0,
  1065. VK_FILTER_LINEAR = 1,
  1066. VK_FILTER_CUBIC_IMG = 1000015000,
  1067. VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
  1068. VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
  1069. VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
  1070. VK_FILTER_MAX_ENUM = 0x7FFFFFFF
  1071. } VkFilter;
  1072. typedef enum VkSamplerMipmapMode {
  1073. VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
  1074. VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
  1075. VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
  1076. VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
  1077. VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
  1078. VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
  1079. } VkSamplerMipmapMode;
  1080. typedef enum VkSamplerAddressMode {
  1081. VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
  1082. VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
  1083. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
  1084. VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
  1085. VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
  1086. VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
  1087. VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
  1088. VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
  1089. VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
  1090. } VkSamplerAddressMode;
  1091. typedef enum VkBorderColor {
  1092. VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
  1093. VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
  1094. VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
  1095. VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
  1096. VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
  1097. VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
  1098. VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
  1099. VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
  1100. VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
  1101. VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
  1102. } VkBorderColor;
  1103. typedef enum VkDescriptorType {
  1104. VK_DESCRIPTOR_TYPE_SAMPLER = 0,
  1105. VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
  1106. VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
  1107. VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
  1108. VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
  1109. VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
  1110. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
  1111. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
  1112. VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
  1113. VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
  1114. VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
  1115. VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
  1116. VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000,
  1117. VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
  1118. VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
  1119. VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
  1120. VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
  1121. } VkDescriptorType;
  1122. typedef enum VkAttachmentLoadOp {
  1123. VK_ATTACHMENT_LOAD_OP_LOAD = 0,
  1124. VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
  1125. VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
  1126. VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
  1127. VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
  1128. VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
  1129. VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
  1130. } VkAttachmentLoadOp;
  1131. typedef enum VkAttachmentStoreOp {
  1132. VK_ATTACHMENT_STORE_OP_STORE = 0,
  1133. VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
  1134. VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
  1135. VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
  1136. VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
  1137. VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
  1138. } VkAttachmentStoreOp;
  1139. typedef enum VkPipelineBindPoint {
  1140. VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
  1141. VK_PIPELINE_BIND_POINT_COMPUTE = 1,
  1142. VK_PIPELINE_BIND_POINT_RAYTRACING_NVX = 1000165000,
  1143. VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
  1144. VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
  1145. VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
  1146. VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
  1147. } VkPipelineBindPoint;
  1148. typedef enum VkCommandBufferLevel {
  1149. VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
  1150. VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
  1151. VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
  1152. VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
  1153. VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
  1154. VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
  1155. } VkCommandBufferLevel;
  1156. typedef enum VkIndexType {
  1157. VK_INDEX_TYPE_UINT16 = 0,
  1158. VK_INDEX_TYPE_UINT32 = 1,
  1159. VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
  1160. VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
  1161. VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
  1162. VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
  1163. } VkIndexType;
  1164. typedef enum VkSubpassContents {
  1165. VK_SUBPASS_CONTENTS_INLINE = 0,
  1166. VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
  1167. VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
  1168. VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
  1169. VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
  1170. VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
  1171. } VkSubpassContents;
  1172. typedef enum VkObjectType {
  1173. VK_OBJECT_TYPE_UNKNOWN = 0,
  1174. VK_OBJECT_TYPE_INSTANCE = 1,
  1175. VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
  1176. VK_OBJECT_TYPE_DEVICE = 3,
  1177. VK_OBJECT_TYPE_QUEUE = 4,
  1178. VK_OBJECT_TYPE_SEMAPHORE = 5,
  1179. VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
  1180. VK_OBJECT_TYPE_FENCE = 7,
  1181. VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
  1182. VK_OBJECT_TYPE_BUFFER = 9,
  1183. VK_OBJECT_TYPE_IMAGE = 10,
  1184. VK_OBJECT_TYPE_EVENT = 11,
  1185. VK_OBJECT_TYPE_QUERY_POOL = 12,
  1186. VK_OBJECT_TYPE_BUFFER_VIEW = 13,
  1187. VK_OBJECT_TYPE_IMAGE_VIEW = 14,
  1188. VK_OBJECT_TYPE_SHADER_MODULE = 15,
  1189. VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
  1190. VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
  1191. VK_OBJECT_TYPE_RENDER_PASS = 18,
  1192. VK_OBJECT_TYPE_PIPELINE = 19,
  1193. VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
  1194. VK_OBJECT_TYPE_SAMPLER = 21,
  1195. VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
  1196. VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
  1197. VK_OBJECT_TYPE_FRAMEBUFFER = 24,
  1198. VK_OBJECT_TYPE_COMMAND_POOL = 25,
  1199. VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
  1200. VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
  1201. VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
  1202. VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
  1203. VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
  1204. VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
  1205. VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
  1206. VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
  1207. VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
  1208. VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
  1209. VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
  1210. VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX = 1000165000,
  1211. VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
  1212. VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
  1213. VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN,
  1214. VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL,
  1215. VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1),
  1216. VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
  1217. } VkObjectType;
  1218. typedef enum VkVendorId {
  1219. VK_VENDOR_ID_VIV = 0x10001,
  1220. VK_VENDOR_ID_VSI = 0x10002,
  1221. VK_VENDOR_ID_KAZAN = 0x10003,
  1222. VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV,
  1223. VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN,
  1224. VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1),
  1225. VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
  1226. } VkVendorId;
  1227. typedef VkFlags VkInstanceCreateFlags;
  1228. typedef enum VkFormatFeatureFlagBits {
  1229. VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
  1230. VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
  1231. VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
  1232. VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
  1233. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
  1234. VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
  1235. VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
  1236. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
  1237. VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
  1238. VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
  1239. VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
  1240. VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
  1241. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
  1242. VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
  1243. VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
  1244. VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
  1245. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
  1246. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
  1247. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
  1248. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
  1249. VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
  1250. VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
  1251. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
  1252. VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
  1253. VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
  1254. VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
  1255. VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
  1256. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
  1257. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
  1258. VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
  1259. 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,
  1260. VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
  1261. VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
  1262. VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1263. } VkFormatFeatureFlagBits;
  1264. typedef VkFlags VkFormatFeatureFlags;
  1265. typedef enum VkImageUsageFlagBits {
  1266. VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
  1267. VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
  1268. VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
  1269. VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
  1270. VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
  1271. VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
  1272. VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
  1273. VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
  1274. VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
  1275. VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1276. } VkImageUsageFlagBits;
  1277. typedef VkFlags VkImageUsageFlags;
  1278. typedef enum VkImageCreateFlagBits {
  1279. VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
  1280. VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
  1281. VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
  1282. VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
  1283. VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
  1284. VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
  1285. VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
  1286. VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
  1287. VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
  1288. VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
  1289. VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
  1290. VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
  1291. VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
  1292. VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
  1293. VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
  1294. VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
  1295. VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
  1296. VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
  1297. VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
  1298. VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
  1299. VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1300. } VkImageCreateFlagBits;
  1301. typedef VkFlags VkImageCreateFlags;
  1302. typedef enum VkSampleCountFlagBits {
  1303. VK_SAMPLE_COUNT_1_BIT = 0x00000001,
  1304. VK_SAMPLE_COUNT_2_BIT = 0x00000002,
  1305. VK_SAMPLE_COUNT_4_BIT = 0x00000004,
  1306. VK_SAMPLE_COUNT_8_BIT = 0x00000008,
  1307. VK_SAMPLE_COUNT_16_BIT = 0x00000010,
  1308. VK_SAMPLE_COUNT_32_BIT = 0x00000020,
  1309. VK_SAMPLE_COUNT_64_BIT = 0x00000040,
  1310. VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1311. } VkSampleCountFlagBits;
  1312. typedef VkFlags VkSampleCountFlags;
  1313. typedef enum VkQueueFlagBits {
  1314. VK_QUEUE_GRAPHICS_BIT = 0x00000001,
  1315. VK_QUEUE_COMPUTE_BIT = 0x00000002,
  1316. VK_QUEUE_TRANSFER_BIT = 0x00000004,
  1317. VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
  1318. VK_QUEUE_PROTECTED_BIT = 0x00000010,
  1319. VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1320. } VkQueueFlagBits;
  1321. typedef VkFlags VkQueueFlags;
  1322. typedef enum VkMemoryPropertyFlagBits {
  1323. VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
  1324. VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
  1325. VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
  1326. VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
  1327. VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
  1328. VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
  1329. VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1330. } VkMemoryPropertyFlagBits;
  1331. typedef VkFlags VkMemoryPropertyFlags;
  1332. typedef enum VkMemoryHeapFlagBits {
  1333. VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
  1334. VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
  1335. VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
  1336. VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1337. } VkMemoryHeapFlagBits;
  1338. typedef VkFlags VkMemoryHeapFlags;
  1339. typedef VkFlags VkDeviceCreateFlags;
  1340. typedef enum VkDeviceQueueCreateFlagBits {
  1341. VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
  1342. VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1343. } VkDeviceQueueCreateFlagBits;
  1344. typedef VkFlags VkDeviceQueueCreateFlags;
  1345. typedef enum VkPipelineStageFlagBits {
  1346. VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
  1347. VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
  1348. VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
  1349. VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
  1350. VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
  1351. VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
  1352. VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
  1353. VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
  1354. VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
  1355. VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
  1356. VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
  1357. VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
  1358. VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
  1359. VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
  1360. VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
  1361. VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
  1362. VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
  1363. VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
  1364. VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
  1365. VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
  1366. VK_PIPELINE_STAGE_RAYTRACING_BIT_NVX = 0x00200000,
  1367. VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
  1368. VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
  1369. VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1370. } VkPipelineStageFlagBits;
  1371. typedef VkFlags VkPipelineStageFlags;
  1372. typedef VkFlags VkMemoryMapFlags;
  1373. typedef enum VkImageAspectFlagBits {
  1374. VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
  1375. VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
  1376. VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
  1377. VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
  1378. VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
  1379. VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
  1380. VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
  1381. VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
  1382. VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
  1383. VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
  1384. VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1385. } VkImageAspectFlagBits;
  1386. typedef VkFlags VkImageAspectFlags;
  1387. typedef enum VkSparseImageFormatFlagBits {
  1388. VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
  1389. VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
  1390. VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
  1391. VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1392. } VkSparseImageFormatFlagBits;
  1393. typedef VkFlags VkSparseImageFormatFlags;
  1394. typedef enum VkSparseMemoryBindFlagBits {
  1395. VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
  1396. VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1397. } VkSparseMemoryBindFlagBits;
  1398. typedef VkFlags VkSparseMemoryBindFlags;
  1399. typedef enum VkFenceCreateFlagBits {
  1400. VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
  1401. VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1402. } VkFenceCreateFlagBits;
  1403. typedef VkFlags VkFenceCreateFlags;
  1404. typedef VkFlags VkSemaphoreCreateFlags;
  1405. typedef VkFlags VkEventCreateFlags;
  1406. typedef VkFlags VkQueryPoolCreateFlags;
  1407. typedef enum VkQueryPipelineStatisticFlagBits {
  1408. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
  1409. VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
  1410. VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
  1411. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
  1412. VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
  1413. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
  1414. VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
  1415. VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
  1416. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
  1417. VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
  1418. VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
  1419. VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1420. } VkQueryPipelineStatisticFlagBits;
  1421. typedef VkFlags VkQueryPipelineStatisticFlags;
  1422. typedef enum VkQueryResultFlagBits {
  1423. VK_QUERY_RESULT_64_BIT = 0x00000001,
  1424. VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
  1425. VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
  1426. VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
  1427. VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1428. } VkQueryResultFlagBits;
  1429. typedef VkFlags VkQueryResultFlags;
  1430. typedef enum VkBufferCreateFlagBits {
  1431. VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
  1432. VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
  1433. VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
  1434. VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
  1435. VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1436. } VkBufferCreateFlagBits;
  1437. typedef VkFlags VkBufferCreateFlags;
  1438. typedef enum VkBufferUsageFlagBits {
  1439. VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
  1440. VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
  1441. VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
  1442. VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
  1443. VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
  1444. VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
  1445. VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
  1446. VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
  1447. VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
  1448. VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
  1449. VK_BUFFER_USAGE_RAYTRACING_BIT_NVX = 0x00000400,
  1450. VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1451. } VkBufferUsageFlagBits;
  1452. typedef VkFlags VkBufferUsageFlags;
  1453. typedef VkFlags VkBufferViewCreateFlags;
  1454. typedef VkFlags VkImageViewCreateFlags;
  1455. typedef VkFlags VkShaderModuleCreateFlags;
  1456. typedef VkFlags VkPipelineCacheCreateFlags;
  1457. typedef enum VkPipelineCreateFlagBits {
  1458. VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
  1459. VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
  1460. VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
  1461. VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
  1462. VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
  1463. VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NVX = 0x00000020,
  1464. VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
  1465. VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
  1466. VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1467. } VkPipelineCreateFlagBits;
  1468. typedef VkFlags VkPipelineCreateFlags;
  1469. typedef VkFlags VkPipelineShaderStageCreateFlags;
  1470. typedef enum VkShaderStageFlagBits {
  1471. VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
  1472. VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
  1473. VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
  1474. VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
  1475. VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
  1476. VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
  1477. VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
  1478. VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
  1479. VK_SHADER_STAGE_RAYGEN_BIT_NVX = 0x00000100,
  1480. VK_SHADER_STAGE_ANY_HIT_BIT_NVX = 0x00000200,
  1481. VK_SHADER_STAGE_CLOSEST_HIT_BIT_NVX = 0x00000400,
  1482. VK_SHADER_STAGE_MISS_BIT_NVX = 0x00000800,
  1483. VK_SHADER_STAGE_INTERSECTION_BIT_NVX = 0x00001000,
  1484. VK_SHADER_STAGE_CALLABLE_BIT_NVX = 0x00002000,
  1485. VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
  1486. VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
  1487. VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1488. } VkShaderStageFlagBits;
  1489. typedef VkFlags VkPipelineVertexInputStateCreateFlags;
  1490. typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
  1491. typedef VkFlags VkPipelineTessellationStateCreateFlags;
  1492. typedef VkFlags VkPipelineViewportStateCreateFlags;
  1493. typedef VkFlags VkPipelineRasterizationStateCreateFlags;
  1494. typedef enum VkCullModeFlagBits {
  1495. VK_CULL_MODE_NONE = 0,
  1496. VK_CULL_MODE_FRONT_BIT = 0x00000001,
  1497. VK_CULL_MODE_BACK_BIT = 0x00000002,
  1498. VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
  1499. VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1500. } VkCullModeFlagBits;
  1501. typedef VkFlags VkCullModeFlags;
  1502. typedef VkFlags VkPipelineMultisampleStateCreateFlags;
  1503. typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
  1504. typedef VkFlags VkPipelineColorBlendStateCreateFlags;
  1505. typedef enum VkColorComponentFlagBits {
  1506. VK_COLOR_COMPONENT_R_BIT = 0x00000001,
  1507. VK_COLOR_COMPONENT_G_BIT = 0x00000002,
  1508. VK_COLOR_COMPONENT_B_BIT = 0x00000004,
  1509. VK_COLOR_COMPONENT_A_BIT = 0x00000008,
  1510. VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1511. } VkColorComponentFlagBits;
  1512. typedef VkFlags VkColorComponentFlags;
  1513. typedef VkFlags VkPipelineDynamicStateCreateFlags;
  1514. typedef VkFlags VkPipelineLayoutCreateFlags;
  1515. typedef VkFlags VkShaderStageFlags;
  1516. typedef VkFlags VkSamplerCreateFlags;
  1517. typedef enum VkDescriptorSetLayoutCreateFlagBits {
  1518. VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
  1519. VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
  1520. VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1521. } VkDescriptorSetLayoutCreateFlagBits;
  1522. typedef VkFlags VkDescriptorSetLayoutCreateFlags;
  1523. typedef enum VkDescriptorPoolCreateFlagBits {
  1524. VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
  1525. VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
  1526. VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1527. } VkDescriptorPoolCreateFlagBits;
  1528. typedef VkFlags VkDescriptorPoolCreateFlags;
  1529. typedef VkFlags VkDescriptorPoolResetFlags;
  1530. typedef VkFlags VkFramebufferCreateFlags;
  1531. typedef VkFlags VkRenderPassCreateFlags;
  1532. typedef enum VkAttachmentDescriptionFlagBits {
  1533. VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
  1534. VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1535. } VkAttachmentDescriptionFlagBits;
  1536. typedef VkFlags VkAttachmentDescriptionFlags;
  1537. typedef enum VkSubpassDescriptionFlagBits {
  1538. VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
  1539. VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
  1540. VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1541. } VkSubpassDescriptionFlagBits;
  1542. typedef VkFlags VkSubpassDescriptionFlags;
  1543. typedef enum VkAccessFlagBits {
  1544. VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
  1545. VK_ACCESS_INDEX_READ_BIT = 0x00000002,
  1546. VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
  1547. VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
  1548. VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
  1549. VK_ACCESS_SHADER_READ_BIT = 0x00000020,
  1550. VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
  1551. VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
  1552. VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
  1553. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
  1554. VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
  1555. VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
  1556. VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
  1557. VK_ACCESS_HOST_READ_BIT = 0x00002000,
  1558. VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
  1559. VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
  1560. VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
  1561. VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
  1562. VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
  1563. VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
  1564. VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
  1565. VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
  1566. VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NVX = 0x00200000,
  1567. VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NVX = 0x00400000,
  1568. VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1569. } VkAccessFlagBits;
  1570. typedef VkFlags VkAccessFlags;
  1571. typedef enum VkDependencyFlagBits {
  1572. VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
  1573. VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
  1574. VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
  1575. VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
  1576. VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
  1577. VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1578. } VkDependencyFlagBits;
  1579. typedef VkFlags VkDependencyFlags;
  1580. typedef enum VkCommandPoolCreateFlagBits {
  1581. VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
  1582. VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
  1583. VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
  1584. VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1585. } VkCommandPoolCreateFlagBits;
  1586. typedef VkFlags VkCommandPoolCreateFlags;
  1587. typedef enum VkCommandPoolResetFlagBits {
  1588. VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
  1589. VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1590. } VkCommandPoolResetFlagBits;
  1591. typedef VkFlags VkCommandPoolResetFlags;
  1592. typedef enum VkCommandBufferUsageFlagBits {
  1593. VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
  1594. VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
  1595. VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
  1596. VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1597. } VkCommandBufferUsageFlagBits;
  1598. typedef VkFlags VkCommandBufferUsageFlags;
  1599. typedef enum VkQueryControlFlagBits {
  1600. VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
  1601. VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1602. } VkQueryControlFlagBits;
  1603. typedef VkFlags VkQueryControlFlags;
  1604. typedef enum VkCommandBufferResetFlagBits {
  1605. VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
  1606. VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1607. } VkCommandBufferResetFlagBits;
  1608. typedef VkFlags VkCommandBufferResetFlags;
  1609. typedef enum VkStencilFaceFlagBits {
  1610. VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
  1611. VK_STENCIL_FACE_BACK_BIT = 0x00000002,
  1612. VK_STENCIL_FRONT_AND_BACK = 0x00000003,
  1613. VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  1614. } VkStencilFaceFlagBits;
  1615. typedef VkFlags VkStencilFaceFlags;
  1616. typedef struct VkApplicationInfo {
  1617. VkStructureType sType;
  1618. const void* pNext;
  1619. const char* pApplicationName;
  1620. uint32_t applicationVersion;
  1621. const char* pEngineName;
  1622. uint32_t engineVersion;
  1623. uint32_t apiVersion;
  1624. } VkApplicationInfo;
  1625. typedef struct VkInstanceCreateInfo {
  1626. VkStructureType sType;
  1627. const void* pNext;
  1628. VkInstanceCreateFlags flags;
  1629. const VkApplicationInfo* pApplicationInfo;
  1630. uint32_t enabledLayerCount;
  1631. const char* const* ppEnabledLayerNames;
  1632. uint32_t enabledExtensionCount;
  1633. const char* const* ppEnabledExtensionNames;
  1634. } VkInstanceCreateInfo;
  1635. typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
  1636. void* pUserData,
  1637. size_t size,
  1638. size_t alignment,
  1639. VkSystemAllocationScope allocationScope);
  1640. typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
  1641. void* pUserData,
  1642. void* pOriginal,
  1643. size_t size,
  1644. size_t alignment,
  1645. VkSystemAllocationScope allocationScope);
  1646. typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
  1647. void* pUserData,
  1648. void* pMemory);
  1649. typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
  1650. void* pUserData,
  1651. size_t size,
  1652. VkInternalAllocationType allocationType,
  1653. VkSystemAllocationScope allocationScope);
  1654. typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
  1655. void* pUserData,
  1656. size_t size,
  1657. VkInternalAllocationType allocationType,
  1658. VkSystemAllocationScope allocationScope);
  1659. typedef struct VkAllocationCallbacks {
  1660. void* pUserData;
  1661. PFN_vkAllocationFunction pfnAllocation;
  1662. PFN_vkReallocationFunction pfnReallocation;
  1663. PFN_vkFreeFunction pfnFree;
  1664. PFN_vkInternalAllocationNotification pfnInternalAllocation;
  1665. PFN_vkInternalFreeNotification pfnInternalFree;
  1666. } VkAllocationCallbacks;
  1667. typedef struct VkPhysicalDeviceFeatures {
  1668. VkBool32 robustBufferAccess;
  1669. VkBool32 fullDrawIndexUint32;
  1670. VkBool32 imageCubeArray;
  1671. VkBool32 independentBlend;
  1672. VkBool32 geometryShader;
  1673. VkBool32 tessellationShader;
  1674. VkBool32 sampleRateShading;
  1675. VkBool32 dualSrcBlend;
  1676. VkBool32 logicOp;
  1677. VkBool32 multiDrawIndirect;
  1678. VkBool32 drawIndirectFirstInstance;
  1679. VkBool32 depthClamp;
  1680. VkBool32 depthBiasClamp;
  1681. VkBool32 fillModeNonSolid;
  1682. VkBool32 depthBounds;
  1683. VkBool32 wideLines;
  1684. VkBool32 largePoints;
  1685. VkBool32 alphaToOne;
  1686. VkBool32 multiViewport;
  1687. VkBool32 samplerAnisotropy;
  1688. VkBool32 textureCompressionETC2;
  1689. VkBool32 textureCompressionASTC_LDR;
  1690. VkBool32 textureCompressionBC;
  1691. VkBool32 occlusionQueryPrecise;
  1692. VkBool32 pipelineStatisticsQuery;
  1693. VkBool32 vertexPipelineStoresAndAtomics;
  1694. VkBool32 fragmentStoresAndAtomics;
  1695. VkBool32 shaderTessellationAndGeometryPointSize;
  1696. VkBool32 shaderImageGatherExtended;
  1697. VkBool32 shaderStorageImageExtendedFormats;
  1698. VkBool32 shaderStorageImageMultisample;
  1699. VkBool32 shaderStorageImageReadWithoutFormat;
  1700. VkBool32 shaderStorageImageWriteWithoutFormat;
  1701. VkBool32 shaderUniformBufferArrayDynamicIndexing;
  1702. VkBool32 shaderSampledImageArrayDynamicIndexing;
  1703. VkBool32 shaderStorageBufferArrayDynamicIndexing;
  1704. VkBool32 shaderStorageImageArrayDynamicIndexing;
  1705. VkBool32 shaderClipDistance;
  1706. VkBool32 shaderCullDistance;
  1707. VkBool32 shaderFloat64;
  1708. VkBool32 shaderInt64;
  1709. VkBool32 shaderInt16;
  1710. VkBool32 shaderResourceResidency;
  1711. VkBool32 shaderResourceMinLod;
  1712. VkBool32 sparseBinding;
  1713. VkBool32 sparseResidencyBuffer;
  1714. VkBool32 sparseResidencyImage2D;
  1715. VkBool32 sparseResidencyImage3D;
  1716. VkBool32 sparseResidency2Samples;
  1717. VkBool32 sparseResidency4Samples;
  1718. VkBool32 sparseResidency8Samples;
  1719. VkBool32 sparseResidency16Samples;
  1720. VkBool32 sparseResidencyAliased;
  1721. VkBool32 variableMultisampleRate;
  1722. VkBool32 inheritedQueries;
  1723. } VkPhysicalDeviceFeatures;
  1724. typedef struct VkFormatProperties {
  1725. VkFormatFeatureFlags linearTilingFeatures;
  1726. VkFormatFeatureFlags optimalTilingFeatures;
  1727. VkFormatFeatureFlags bufferFeatures;
  1728. } VkFormatProperties;
  1729. typedef struct VkExtent3D {
  1730. uint32_t width;
  1731. uint32_t height;
  1732. uint32_t depth;
  1733. } VkExtent3D;
  1734. typedef struct VkImageFormatProperties {
  1735. VkExtent3D maxExtent;
  1736. uint32_t maxMipLevels;
  1737. uint32_t maxArrayLayers;
  1738. VkSampleCountFlags sampleCounts;
  1739. VkDeviceSize maxResourceSize;
  1740. } VkImageFormatProperties;
  1741. typedef struct VkPhysicalDeviceLimits {
  1742. uint32_t maxImageDimension1D;
  1743. uint32_t maxImageDimension2D;
  1744. uint32_t maxImageDimension3D;
  1745. uint32_t maxImageDimensionCube;
  1746. uint32_t maxImageArrayLayers;
  1747. uint32_t maxTexelBufferElements;
  1748. uint32_t maxUniformBufferRange;
  1749. uint32_t maxStorageBufferRange;
  1750. uint32_t maxPushConstantsSize;
  1751. uint32_t maxMemoryAllocationCount;
  1752. uint32_t maxSamplerAllocationCount;
  1753. VkDeviceSize bufferImageGranularity;
  1754. VkDeviceSize sparseAddressSpaceSize;
  1755. uint32_t maxBoundDescriptorSets;
  1756. uint32_t maxPerStageDescriptorSamplers;
  1757. uint32_t maxPerStageDescriptorUniformBuffers;
  1758. uint32_t maxPerStageDescriptorStorageBuffers;
  1759. uint32_t maxPerStageDescriptorSampledImages;
  1760. uint32_t maxPerStageDescriptorStorageImages;
  1761. uint32_t maxPerStageDescriptorInputAttachments;
  1762. uint32_t maxPerStageResources;
  1763. uint32_t maxDescriptorSetSamplers;
  1764. uint32_t maxDescriptorSetUniformBuffers;
  1765. uint32_t maxDescriptorSetUniformBuffersDynamic;
  1766. uint32_t maxDescriptorSetStorageBuffers;
  1767. uint32_t maxDescriptorSetStorageBuffersDynamic;
  1768. uint32_t maxDescriptorSetSampledImages;
  1769. uint32_t maxDescriptorSetStorageImages;
  1770. uint32_t maxDescriptorSetInputAttachments;
  1771. uint32_t maxVertexInputAttributes;
  1772. uint32_t maxVertexInputBindings;
  1773. uint32_t maxVertexInputAttributeOffset;
  1774. uint32_t maxVertexInputBindingStride;
  1775. uint32_t maxVertexOutputComponents;
  1776. uint32_t maxTessellationGenerationLevel;
  1777. uint32_t maxTessellationPatchSize;
  1778. uint32_t maxTessellationControlPerVertexInputComponents;
  1779. uint32_t maxTessellationControlPerVertexOutputComponents;
  1780. uint32_t maxTessellationControlPerPatchOutputComponents;
  1781. uint32_t maxTessellationControlTotalOutputComponents;
  1782. uint32_t maxTessellationEvaluationInputComponents;
  1783. uint32_t maxTessellationEvaluationOutputComponents;
  1784. uint32_t maxGeometryShaderInvocations;
  1785. uint32_t maxGeometryInputComponents;
  1786. uint32_t maxGeometryOutputComponents;
  1787. uint32_t maxGeometryOutputVertices;
  1788. uint32_t maxGeometryTotalOutputComponents;
  1789. uint32_t maxFragmentInputComponents;
  1790. uint32_t maxFragmentOutputAttachments;
  1791. uint32_t maxFragmentDualSrcAttachments;
  1792. uint32_t maxFragmentCombinedOutputResources;
  1793. uint32_t maxComputeSharedMemorySize;
  1794. uint32_t maxComputeWorkGroupCount[3];
  1795. uint32_t maxComputeWorkGroupInvocations;
  1796. uint32_t maxComputeWorkGroupSize[3];
  1797. uint32_t subPixelPrecisionBits;
  1798. uint32_t subTexelPrecisionBits;
  1799. uint32_t mipmapPrecisionBits;
  1800. uint32_t maxDrawIndexedIndexValue;
  1801. uint32_t maxDrawIndirectCount;
  1802. float maxSamplerLodBias;
  1803. float maxSamplerAnisotropy;
  1804. uint32_t maxViewports;
  1805. uint32_t maxViewportDimensions[2];
  1806. float viewportBoundsRange[2];
  1807. uint32_t viewportSubPixelBits;
  1808. size_t minMemoryMapAlignment;
  1809. VkDeviceSize minTexelBufferOffsetAlignment;
  1810. VkDeviceSize minUniformBufferOffsetAlignment;
  1811. VkDeviceSize minStorageBufferOffsetAlignment;
  1812. int32_t minTexelOffset;
  1813. uint32_t maxTexelOffset;
  1814. int32_t minTexelGatherOffset;
  1815. uint32_t maxTexelGatherOffset;
  1816. float minInterpolationOffset;
  1817. float maxInterpolationOffset;
  1818. uint32_t subPixelInterpolationOffsetBits;
  1819. uint32_t maxFramebufferWidth;
  1820. uint32_t maxFramebufferHeight;
  1821. uint32_t maxFramebufferLayers;
  1822. VkSampleCountFlags framebufferColorSampleCounts;
  1823. VkSampleCountFlags framebufferDepthSampleCounts;
  1824. VkSampleCountFlags framebufferStencilSampleCounts;
  1825. VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
  1826. uint32_t maxColorAttachments;
  1827. VkSampleCountFlags sampledImageColorSampleCounts;
  1828. VkSampleCountFlags sampledImageIntegerSampleCounts;
  1829. VkSampleCountFlags sampledImageDepthSampleCounts;
  1830. VkSampleCountFlags sampledImageStencilSampleCounts;
  1831. VkSampleCountFlags storageImageSampleCounts;
  1832. uint32_t maxSampleMaskWords;
  1833. VkBool32 timestampComputeAndGraphics;
  1834. float timestampPeriod;
  1835. uint32_t maxClipDistances;
  1836. uint32_t maxCullDistances;
  1837. uint32_t maxCombinedClipAndCullDistances;
  1838. uint32_t discreteQueuePriorities;
  1839. float pointSizeRange[2];
  1840. float lineWidthRange[2];
  1841. float pointSizeGranularity;
  1842. float lineWidthGranularity;
  1843. VkBool32 strictLines;
  1844. VkBool32 standardSampleLocations;
  1845. VkDeviceSize optimalBufferCopyOffsetAlignment;
  1846. VkDeviceSize optimalBufferCopyRowPitchAlignment;
  1847. VkDeviceSize nonCoherentAtomSize;
  1848. } VkPhysicalDeviceLimits;
  1849. typedef struct VkPhysicalDeviceSparseProperties {
  1850. VkBool32 residencyStandard2DBlockShape;
  1851. VkBool32 residencyStandard2DMultisampleBlockShape;
  1852. VkBool32 residencyStandard3DBlockShape;
  1853. VkBool32 residencyAlignedMipSize;
  1854. VkBool32 residencyNonResidentStrict;
  1855. } VkPhysicalDeviceSparseProperties;
  1856. typedef struct VkPhysicalDeviceProperties {
  1857. uint32_t apiVersion;
  1858. uint32_t driverVersion;
  1859. uint32_t vendorID;
  1860. uint32_t deviceID;
  1861. VkPhysicalDeviceType deviceType;
  1862. char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
  1863. uint8_t pipelineCacheUUID[VK_UUID_SIZE];
  1864. VkPhysicalDeviceLimits limits;
  1865. VkPhysicalDeviceSparseProperties sparseProperties;
  1866. } VkPhysicalDeviceProperties;
  1867. typedef struct VkQueueFamilyProperties {
  1868. VkQueueFlags queueFlags;
  1869. uint32_t queueCount;
  1870. uint32_t timestampValidBits;
  1871. VkExtent3D minImageTransferGranularity;
  1872. } VkQueueFamilyProperties;
  1873. typedef struct VkMemoryType {
  1874. VkMemoryPropertyFlags propertyFlags;
  1875. uint32_t heapIndex;
  1876. } VkMemoryType;
  1877. typedef struct VkMemoryHeap {
  1878. VkDeviceSize size;
  1879. VkMemoryHeapFlags flags;
  1880. } VkMemoryHeap;
  1881. typedef struct VkPhysicalDeviceMemoryProperties {
  1882. uint32_t memoryTypeCount;
  1883. VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
  1884. uint32_t memoryHeapCount;
  1885. VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
  1886. } VkPhysicalDeviceMemoryProperties;
  1887. typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
  1888. typedef struct VkDeviceQueueCreateInfo {
  1889. VkStructureType sType;
  1890. const void* pNext;
  1891. VkDeviceQueueCreateFlags flags;
  1892. uint32_t queueFamilyIndex;
  1893. uint32_t queueCount;
  1894. const float* pQueuePriorities;
  1895. } VkDeviceQueueCreateInfo;
  1896. typedef struct VkDeviceCreateInfo {
  1897. VkStructureType sType;
  1898. const void* pNext;
  1899. VkDeviceCreateFlags flags;
  1900. uint32_t queueCreateInfoCount;
  1901. const VkDeviceQueueCreateInfo* pQueueCreateInfos;
  1902. uint32_t enabledLayerCount;
  1903. const char* const* ppEnabledLayerNames;
  1904. uint32_t enabledExtensionCount;
  1905. const char* const* ppEnabledExtensionNames;
  1906. const VkPhysicalDeviceFeatures* pEnabledFeatures;
  1907. } VkDeviceCreateInfo;
  1908. typedef struct VkExtensionProperties {
  1909. char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
  1910. uint32_t specVersion;
  1911. } VkExtensionProperties;
  1912. typedef struct VkLayerProperties {
  1913. char layerName[VK_MAX_EXTENSION_NAME_SIZE];
  1914. uint32_t specVersion;
  1915. uint32_t implementationVersion;
  1916. char description[VK_MAX_DESCRIPTION_SIZE];
  1917. } VkLayerProperties;
  1918. typedef struct VkSubmitInfo {
  1919. VkStructureType sType;
  1920. const void* pNext;
  1921. uint32_t waitSemaphoreCount;
  1922. const VkSemaphore* pWaitSemaphores;
  1923. const VkPipelineStageFlags* pWaitDstStageMask;
  1924. uint32_t commandBufferCount;
  1925. const VkCommandBuffer* pCommandBuffers;
  1926. uint32_t signalSemaphoreCount;
  1927. const VkSemaphore* pSignalSemaphores;
  1928. } VkSubmitInfo;
  1929. typedef struct VkMemoryAllocateInfo {
  1930. VkStructureType sType;
  1931. const void* pNext;
  1932. VkDeviceSize allocationSize;
  1933. uint32_t memoryTypeIndex;
  1934. } VkMemoryAllocateInfo;
  1935. typedef struct VkMappedMemoryRange {
  1936. VkStructureType sType;
  1937. const void* pNext;
  1938. VkDeviceMemory memory;
  1939. VkDeviceSize offset;
  1940. VkDeviceSize size;
  1941. } VkMappedMemoryRange;
  1942. typedef struct VkMemoryRequirements {
  1943. VkDeviceSize size;
  1944. VkDeviceSize alignment;
  1945. uint32_t memoryTypeBits;
  1946. } VkMemoryRequirements;
  1947. typedef struct VkSparseImageFormatProperties {
  1948. VkImageAspectFlags aspectMask;
  1949. VkExtent3D imageGranularity;
  1950. VkSparseImageFormatFlags flags;
  1951. } VkSparseImageFormatProperties;
  1952. typedef struct VkSparseImageMemoryRequirements {
  1953. VkSparseImageFormatProperties formatProperties;
  1954. uint32_t imageMipTailFirstLod;
  1955. VkDeviceSize imageMipTailSize;
  1956. VkDeviceSize imageMipTailOffset;
  1957. VkDeviceSize imageMipTailStride;
  1958. } VkSparseImageMemoryRequirements;
  1959. typedef struct VkSparseMemoryBind {
  1960. VkDeviceSize resourceOffset;
  1961. VkDeviceSize size;
  1962. VkDeviceMemory memory;
  1963. VkDeviceSize memoryOffset;
  1964. VkSparseMemoryBindFlags flags;
  1965. } VkSparseMemoryBind;
  1966. typedef struct VkSparseBufferMemoryBindInfo {
  1967. VkBuffer buffer;
  1968. uint32_t bindCount;
  1969. const VkSparseMemoryBind* pBinds;
  1970. } VkSparseBufferMemoryBindInfo;
  1971. typedef struct VkSparseImageOpaqueMemoryBindInfo {
  1972. VkImage image;
  1973. uint32_t bindCount;
  1974. const VkSparseMemoryBind* pBinds;
  1975. } VkSparseImageOpaqueMemoryBindInfo;
  1976. typedef struct VkImageSubresource {
  1977. VkImageAspectFlags aspectMask;
  1978. uint32_t mipLevel;
  1979. uint32_t arrayLayer;
  1980. } VkImageSubresource;
  1981. typedef struct VkOffset3D {
  1982. int32_t x;
  1983. int32_t y;
  1984. int32_t z;
  1985. } VkOffset3D;
  1986. typedef struct VkSparseImageMemoryBind {
  1987. VkImageSubresource subresource;
  1988. VkOffset3D offset;
  1989. VkExtent3D extent;
  1990. VkDeviceMemory memory;
  1991. VkDeviceSize memoryOffset;
  1992. VkSparseMemoryBindFlags flags;
  1993. } VkSparseImageMemoryBind;
  1994. typedef struct VkSparseImageMemoryBindInfo {
  1995. VkImage image;
  1996. uint32_t bindCount;
  1997. const VkSparseImageMemoryBind* pBinds;
  1998. } VkSparseImageMemoryBindInfo;
  1999. typedef struct VkBindSparseInfo {
  2000. VkStructureType sType;
  2001. const void* pNext;
  2002. uint32_t waitSemaphoreCount;
  2003. const VkSemaphore* pWaitSemaphores;
  2004. uint32_t bufferBindCount;
  2005. const VkSparseBufferMemoryBindInfo* pBufferBinds;
  2006. uint32_t imageOpaqueBindCount;
  2007. const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
  2008. uint32_t imageBindCount;
  2009. const VkSparseImageMemoryBindInfo* pImageBinds;
  2010. uint32_t signalSemaphoreCount;
  2011. const VkSemaphore* pSignalSemaphores;
  2012. } VkBindSparseInfo;
  2013. typedef struct VkFenceCreateInfo {
  2014. VkStructureType sType;
  2015. const void* pNext;
  2016. VkFenceCreateFlags flags;
  2017. } VkFenceCreateInfo;
  2018. typedef struct VkSemaphoreCreateInfo {
  2019. VkStructureType sType;
  2020. const void* pNext;
  2021. VkSemaphoreCreateFlags flags;
  2022. } VkSemaphoreCreateInfo;
  2023. typedef struct VkEventCreateInfo {
  2024. VkStructureType sType;
  2025. const void* pNext;
  2026. VkEventCreateFlags flags;
  2027. } VkEventCreateInfo;
  2028. typedef struct VkQueryPoolCreateInfo {
  2029. VkStructureType sType;
  2030. const void* pNext;
  2031. VkQueryPoolCreateFlags flags;
  2032. VkQueryType queryType;
  2033. uint32_t queryCount;
  2034. VkQueryPipelineStatisticFlags pipelineStatistics;
  2035. } VkQueryPoolCreateInfo;
  2036. typedef struct VkBufferCreateInfo {
  2037. VkStructureType sType;
  2038. const void* pNext;
  2039. VkBufferCreateFlags flags;
  2040. VkDeviceSize size;
  2041. VkBufferUsageFlags usage;
  2042. VkSharingMode sharingMode;
  2043. uint32_t queueFamilyIndexCount;
  2044. const uint32_t* pQueueFamilyIndices;
  2045. } VkBufferCreateInfo;
  2046. typedef struct VkBufferViewCreateInfo {
  2047. VkStructureType sType;
  2048. const void* pNext;
  2049. VkBufferViewCreateFlags flags;
  2050. VkBuffer buffer;
  2051. VkFormat format;
  2052. VkDeviceSize offset;
  2053. VkDeviceSize range;
  2054. } VkBufferViewCreateInfo;
  2055. typedef struct VkImageCreateInfo {
  2056. VkStructureType sType;
  2057. const void* pNext;
  2058. VkImageCreateFlags flags;
  2059. VkImageType imageType;
  2060. VkFormat format;
  2061. VkExtent3D extent;
  2062. uint32_t mipLevels;
  2063. uint32_t arrayLayers;
  2064. VkSampleCountFlagBits samples;
  2065. VkImageTiling tiling;
  2066. VkImageUsageFlags usage;
  2067. VkSharingMode sharingMode;
  2068. uint32_t queueFamilyIndexCount;
  2069. const uint32_t* pQueueFamilyIndices;
  2070. VkImageLayout initialLayout;
  2071. } VkImageCreateInfo;
  2072. typedef struct VkSubresourceLayout {
  2073. VkDeviceSize offset;
  2074. VkDeviceSize size;
  2075. VkDeviceSize rowPitch;
  2076. VkDeviceSize arrayPitch;
  2077. VkDeviceSize depthPitch;
  2078. } VkSubresourceLayout;
  2079. typedef struct VkComponentMapping {
  2080. VkComponentSwizzle r;
  2081. VkComponentSwizzle g;
  2082. VkComponentSwizzle b;
  2083. VkComponentSwizzle a;
  2084. } VkComponentMapping;
  2085. typedef struct VkImageSubresourceRange {
  2086. VkImageAspectFlags aspectMask;
  2087. uint32_t baseMipLevel;
  2088. uint32_t levelCount;
  2089. uint32_t baseArrayLayer;
  2090. uint32_t layerCount;
  2091. } VkImageSubresourceRange;
  2092. typedef struct VkImageViewCreateInfo {
  2093. VkStructureType sType;
  2094. const void* pNext;
  2095. VkImageViewCreateFlags flags;
  2096. VkImage image;
  2097. VkImageViewType viewType;
  2098. VkFormat format;
  2099. VkComponentMapping components;
  2100. VkImageSubresourceRange subresourceRange;
  2101. } VkImageViewCreateInfo;
  2102. typedef struct VkShaderModuleCreateInfo {
  2103. VkStructureType sType;
  2104. const void* pNext;
  2105. VkShaderModuleCreateFlags flags;
  2106. size_t codeSize;
  2107. const uint32_t* pCode;
  2108. } VkShaderModuleCreateInfo;
  2109. typedef struct VkPipelineCacheCreateInfo {
  2110. VkStructureType sType;
  2111. const void* pNext;
  2112. VkPipelineCacheCreateFlags flags;
  2113. size_t initialDataSize;
  2114. const void* pInitialData;
  2115. } VkPipelineCacheCreateInfo;
  2116. typedef struct VkSpecializationMapEntry {
  2117. uint32_t constantID;
  2118. uint32_t offset;
  2119. size_t size;
  2120. } VkSpecializationMapEntry;
  2121. typedef struct VkSpecializationInfo {
  2122. uint32_t mapEntryCount;
  2123. const VkSpecializationMapEntry* pMapEntries;
  2124. size_t dataSize;
  2125. const void* pData;
  2126. } VkSpecializationInfo;
  2127. typedef struct VkPipelineShaderStageCreateInfo {
  2128. VkStructureType sType;
  2129. const void* pNext;
  2130. VkPipelineShaderStageCreateFlags flags;
  2131. VkShaderStageFlagBits stage;
  2132. VkShaderModule module;
  2133. const char* pName;
  2134. const VkSpecializationInfo* pSpecializationInfo;
  2135. } VkPipelineShaderStageCreateInfo;
  2136. typedef struct VkVertexInputBindingDescription {
  2137. uint32_t binding;
  2138. uint32_t stride;
  2139. VkVertexInputRate inputRate;
  2140. } VkVertexInputBindingDescription;
  2141. typedef struct VkVertexInputAttributeDescription {
  2142. uint32_t location;
  2143. uint32_t binding;
  2144. VkFormat format;
  2145. uint32_t offset;
  2146. } VkVertexInputAttributeDescription;
  2147. typedef struct VkPipelineVertexInputStateCreateInfo {
  2148. VkStructureType sType;
  2149. const void* pNext;
  2150. VkPipelineVertexInputStateCreateFlags flags;
  2151. uint32_t vertexBindingDescriptionCount;
  2152. const VkVertexInputBindingDescription* pVertexBindingDescriptions;
  2153. uint32_t vertexAttributeDescriptionCount;
  2154. const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
  2155. } VkPipelineVertexInputStateCreateInfo;
  2156. typedef struct VkPipelineInputAssemblyStateCreateInfo {
  2157. VkStructureType sType;
  2158. const void* pNext;
  2159. VkPipelineInputAssemblyStateCreateFlags flags;
  2160. VkPrimitiveTopology topology;
  2161. VkBool32 primitiveRestartEnable;
  2162. } VkPipelineInputAssemblyStateCreateInfo;
  2163. typedef struct VkPipelineTessellationStateCreateInfo {
  2164. VkStructureType sType;
  2165. const void* pNext;
  2166. VkPipelineTessellationStateCreateFlags flags;
  2167. uint32_t patchControlPoints;
  2168. } VkPipelineTessellationStateCreateInfo;
  2169. typedef struct VkViewport {
  2170. float x;
  2171. float y;
  2172. float width;
  2173. float height;
  2174. float minDepth;
  2175. float maxDepth;
  2176. } VkViewport;
  2177. typedef struct VkOffset2D {
  2178. int32_t x;
  2179. int32_t y;
  2180. } VkOffset2D;
  2181. typedef struct VkExtent2D {
  2182. uint32_t width;
  2183. uint32_t height;
  2184. } VkExtent2D;
  2185. typedef struct VkRect2D {
  2186. VkOffset2D offset;
  2187. VkExtent2D extent;
  2188. } VkRect2D;
  2189. typedef struct VkPipelineViewportStateCreateInfo {
  2190. VkStructureType sType;
  2191. const void* pNext;
  2192. VkPipelineViewportStateCreateFlags flags;
  2193. uint32_t viewportCount;
  2194. const VkViewport* pViewports;
  2195. uint32_t scissorCount;
  2196. const VkRect2D* pScissors;
  2197. } VkPipelineViewportStateCreateInfo;
  2198. typedef struct VkPipelineRasterizationStateCreateInfo {
  2199. VkStructureType sType;
  2200. const void* pNext;
  2201. VkPipelineRasterizationStateCreateFlags flags;
  2202. VkBool32 depthClampEnable;
  2203. VkBool32 rasterizerDiscardEnable;
  2204. VkPolygonMode polygonMode;
  2205. VkCullModeFlags cullMode;
  2206. VkFrontFace frontFace;
  2207. VkBool32 depthBiasEnable;
  2208. float depthBiasConstantFactor;
  2209. float depthBiasClamp;
  2210. float depthBiasSlopeFactor;
  2211. float lineWidth;
  2212. } VkPipelineRasterizationStateCreateInfo;
  2213. typedef struct VkPipelineMultisampleStateCreateInfo {
  2214. VkStructureType sType;
  2215. const void* pNext;
  2216. VkPipelineMultisampleStateCreateFlags flags;
  2217. VkSampleCountFlagBits rasterizationSamples;
  2218. VkBool32 sampleShadingEnable;
  2219. float minSampleShading;
  2220. const VkSampleMask* pSampleMask;
  2221. VkBool32 alphaToCoverageEnable;
  2222. VkBool32 alphaToOneEnable;
  2223. } VkPipelineMultisampleStateCreateInfo;
  2224. typedef struct VkStencilOpState {
  2225. VkStencilOp failOp;
  2226. VkStencilOp passOp;
  2227. VkStencilOp depthFailOp;
  2228. VkCompareOp compareOp;
  2229. uint32_t compareMask;
  2230. uint32_t writeMask;
  2231. uint32_t reference;
  2232. } VkStencilOpState;
  2233. typedef struct VkPipelineDepthStencilStateCreateInfo {
  2234. VkStructureType sType;
  2235. const void* pNext;
  2236. VkPipelineDepthStencilStateCreateFlags flags;
  2237. VkBool32 depthTestEnable;
  2238. VkBool32 depthWriteEnable;
  2239. VkCompareOp depthCompareOp;
  2240. VkBool32 depthBoundsTestEnable;
  2241. VkBool32 stencilTestEnable;
  2242. VkStencilOpState front;
  2243. VkStencilOpState back;
  2244. float minDepthBounds;
  2245. float maxDepthBounds;
  2246. } VkPipelineDepthStencilStateCreateInfo;
  2247. typedef struct VkPipelineColorBlendAttachmentState {
  2248. VkBool32 blendEnable;
  2249. VkBlendFactor srcColorBlendFactor;
  2250. VkBlendFactor dstColorBlendFactor;
  2251. VkBlendOp colorBlendOp;
  2252. VkBlendFactor srcAlphaBlendFactor;
  2253. VkBlendFactor dstAlphaBlendFactor;
  2254. VkBlendOp alphaBlendOp;
  2255. VkColorComponentFlags colorWriteMask;
  2256. } VkPipelineColorBlendAttachmentState;
  2257. typedef struct VkPipelineColorBlendStateCreateInfo {
  2258. VkStructureType sType;
  2259. const void* pNext;
  2260. VkPipelineColorBlendStateCreateFlags flags;
  2261. VkBool32 logicOpEnable;
  2262. VkLogicOp logicOp;
  2263. uint32_t attachmentCount;
  2264. const VkPipelineColorBlendAttachmentState* pAttachments;
  2265. float blendConstants[4];
  2266. } VkPipelineColorBlendStateCreateInfo;
  2267. typedef struct VkPipelineDynamicStateCreateInfo {
  2268. VkStructureType sType;
  2269. const void* pNext;
  2270. VkPipelineDynamicStateCreateFlags flags;
  2271. uint32_t dynamicStateCount;
  2272. const VkDynamicState* pDynamicStates;
  2273. } VkPipelineDynamicStateCreateInfo;
  2274. typedef struct VkGraphicsPipelineCreateInfo {
  2275. VkStructureType sType;
  2276. const void* pNext;
  2277. VkPipelineCreateFlags flags;
  2278. uint32_t stageCount;
  2279. const VkPipelineShaderStageCreateInfo* pStages;
  2280. const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
  2281. const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
  2282. const VkPipelineTessellationStateCreateInfo* pTessellationState;
  2283. const VkPipelineViewportStateCreateInfo* pViewportState;
  2284. const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
  2285. const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
  2286. const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
  2287. const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
  2288. const VkPipelineDynamicStateCreateInfo* pDynamicState;
  2289. VkPipelineLayout layout;
  2290. VkRenderPass renderPass;
  2291. uint32_t subpass;
  2292. VkPipeline basePipelineHandle;
  2293. int32_t basePipelineIndex;
  2294. } VkGraphicsPipelineCreateInfo;
  2295. typedef struct VkComputePipelineCreateInfo {
  2296. VkStructureType sType;
  2297. const void* pNext;
  2298. VkPipelineCreateFlags flags;
  2299. VkPipelineShaderStageCreateInfo stage;
  2300. VkPipelineLayout layout;
  2301. VkPipeline basePipelineHandle;
  2302. int32_t basePipelineIndex;
  2303. } VkComputePipelineCreateInfo;
  2304. typedef struct VkPushConstantRange {
  2305. VkShaderStageFlags stageFlags;
  2306. uint32_t offset;
  2307. uint32_t size;
  2308. } VkPushConstantRange;
  2309. typedef struct VkPipelineLayoutCreateInfo {
  2310. VkStructureType sType;
  2311. const void* pNext;
  2312. VkPipelineLayoutCreateFlags flags;
  2313. uint32_t setLayoutCount;
  2314. const VkDescriptorSetLayout* pSetLayouts;
  2315. uint32_t pushConstantRangeCount;
  2316. const VkPushConstantRange* pPushConstantRanges;
  2317. } VkPipelineLayoutCreateInfo;
  2318. typedef struct VkSamplerCreateInfo {
  2319. VkStructureType sType;
  2320. const void* pNext;
  2321. VkSamplerCreateFlags flags;
  2322. VkFilter magFilter;
  2323. VkFilter minFilter;
  2324. VkSamplerMipmapMode mipmapMode;
  2325. VkSamplerAddressMode addressModeU;
  2326. VkSamplerAddressMode addressModeV;
  2327. VkSamplerAddressMode addressModeW;
  2328. float mipLodBias;
  2329. VkBool32 anisotropyEnable;
  2330. float maxAnisotropy;
  2331. VkBool32 compareEnable;
  2332. VkCompareOp compareOp;
  2333. float minLod;
  2334. float maxLod;
  2335. VkBorderColor borderColor;
  2336. VkBool32 unnormalizedCoordinates;
  2337. } VkSamplerCreateInfo;
  2338. typedef struct VkDescriptorSetLayoutBinding {
  2339. uint32_t binding;
  2340. VkDescriptorType descriptorType;
  2341. uint32_t descriptorCount;
  2342. VkShaderStageFlags stageFlags;
  2343. const VkSampler* pImmutableSamplers;
  2344. } VkDescriptorSetLayoutBinding;
  2345. typedef struct VkDescriptorSetLayoutCreateInfo {
  2346. VkStructureType sType;
  2347. const void* pNext;
  2348. VkDescriptorSetLayoutCreateFlags flags;
  2349. uint32_t bindingCount;
  2350. const VkDescriptorSetLayoutBinding* pBindings;
  2351. } VkDescriptorSetLayoutCreateInfo;
  2352. typedef struct VkDescriptorPoolSize {
  2353. VkDescriptorType type;
  2354. uint32_t descriptorCount;
  2355. } VkDescriptorPoolSize;
  2356. typedef struct VkDescriptorPoolCreateInfo {
  2357. VkStructureType sType;
  2358. const void* pNext;
  2359. VkDescriptorPoolCreateFlags flags;
  2360. uint32_t maxSets;
  2361. uint32_t poolSizeCount;
  2362. const VkDescriptorPoolSize* pPoolSizes;
  2363. } VkDescriptorPoolCreateInfo;
  2364. typedef struct VkDescriptorSetAllocateInfo {
  2365. VkStructureType sType;
  2366. const void* pNext;
  2367. VkDescriptorPool descriptorPool;
  2368. uint32_t descriptorSetCount;
  2369. const VkDescriptorSetLayout* pSetLayouts;
  2370. } VkDescriptorSetAllocateInfo;
  2371. typedef struct VkDescriptorImageInfo {
  2372. VkSampler sampler;
  2373. VkImageView imageView;
  2374. VkImageLayout imageLayout;
  2375. } VkDescriptorImageInfo;
  2376. typedef struct VkDescriptorBufferInfo {
  2377. VkBuffer buffer;
  2378. VkDeviceSize offset;
  2379. VkDeviceSize range;
  2380. } VkDescriptorBufferInfo;
  2381. typedef struct VkWriteDescriptorSet {
  2382. VkStructureType sType;
  2383. const void* pNext;
  2384. VkDescriptorSet dstSet;
  2385. uint32_t dstBinding;
  2386. uint32_t dstArrayElement;
  2387. uint32_t descriptorCount;
  2388. VkDescriptorType descriptorType;
  2389. const VkDescriptorImageInfo* pImageInfo;
  2390. const VkDescriptorBufferInfo* pBufferInfo;
  2391. const VkBufferView* pTexelBufferView;
  2392. } VkWriteDescriptorSet;
  2393. typedef struct VkCopyDescriptorSet {
  2394. VkStructureType sType;
  2395. const void* pNext;
  2396. VkDescriptorSet srcSet;
  2397. uint32_t srcBinding;
  2398. uint32_t srcArrayElement;
  2399. VkDescriptorSet dstSet;
  2400. uint32_t dstBinding;
  2401. uint32_t dstArrayElement;
  2402. uint32_t descriptorCount;
  2403. } VkCopyDescriptorSet;
  2404. typedef struct VkFramebufferCreateInfo {
  2405. VkStructureType sType;
  2406. const void* pNext;
  2407. VkFramebufferCreateFlags flags;
  2408. VkRenderPass renderPass;
  2409. uint32_t attachmentCount;
  2410. const VkImageView* pAttachments;
  2411. uint32_t width;
  2412. uint32_t height;
  2413. uint32_t layers;
  2414. } VkFramebufferCreateInfo;
  2415. typedef struct VkAttachmentDescription {
  2416. VkAttachmentDescriptionFlags flags;
  2417. VkFormat format;
  2418. VkSampleCountFlagBits samples;
  2419. VkAttachmentLoadOp loadOp;
  2420. VkAttachmentStoreOp storeOp;
  2421. VkAttachmentLoadOp stencilLoadOp;
  2422. VkAttachmentStoreOp stencilStoreOp;
  2423. VkImageLayout initialLayout;
  2424. VkImageLayout finalLayout;
  2425. } VkAttachmentDescription;
  2426. typedef struct VkAttachmentReference {
  2427. uint32_t attachment;
  2428. VkImageLayout layout;
  2429. } VkAttachmentReference;
  2430. typedef struct VkSubpassDescription {
  2431. VkSubpassDescriptionFlags flags;
  2432. VkPipelineBindPoint pipelineBindPoint;
  2433. uint32_t inputAttachmentCount;
  2434. const VkAttachmentReference* pInputAttachments;
  2435. uint32_t colorAttachmentCount;
  2436. const VkAttachmentReference* pColorAttachments;
  2437. const VkAttachmentReference* pResolveAttachments;
  2438. const VkAttachmentReference* pDepthStencilAttachment;
  2439. uint32_t preserveAttachmentCount;
  2440. const uint32_t* pPreserveAttachments;
  2441. } VkSubpassDescription;
  2442. typedef struct VkSubpassDependency {
  2443. uint32_t srcSubpass;
  2444. uint32_t dstSubpass;
  2445. VkPipelineStageFlags srcStageMask;
  2446. VkPipelineStageFlags dstStageMask;
  2447. VkAccessFlags srcAccessMask;
  2448. VkAccessFlags dstAccessMask;
  2449. VkDependencyFlags dependencyFlags;
  2450. } VkSubpassDependency;
  2451. typedef struct VkRenderPassCreateInfo {
  2452. VkStructureType sType;
  2453. const void* pNext;
  2454. VkRenderPassCreateFlags flags;
  2455. uint32_t attachmentCount;
  2456. const VkAttachmentDescription* pAttachments;
  2457. uint32_t subpassCount;
  2458. const VkSubpassDescription* pSubpasses;
  2459. uint32_t dependencyCount;
  2460. const VkSubpassDependency* pDependencies;
  2461. } VkRenderPassCreateInfo;
  2462. typedef struct VkCommandPoolCreateInfo {
  2463. VkStructureType sType;
  2464. const void* pNext;
  2465. VkCommandPoolCreateFlags flags;
  2466. uint32_t queueFamilyIndex;
  2467. } VkCommandPoolCreateInfo;
  2468. typedef struct VkCommandBufferAllocateInfo {
  2469. VkStructureType sType;
  2470. const void* pNext;
  2471. VkCommandPool commandPool;
  2472. VkCommandBufferLevel level;
  2473. uint32_t commandBufferCount;
  2474. } VkCommandBufferAllocateInfo;
  2475. typedef struct VkCommandBufferInheritanceInfo {
  2476. VkStructureType sType;
  2477. const void* pNext;
  2478. VkRenderPass renderPass;
  2479. uint32_t subpass;
  2480. VkFramebuffer framebuffer;
  2481. VkBool32 occlusionQueryEnable;
  2482. VkQueryControlFlags queryFlags;
  2483. VkQueryPipelineStatisticFlags pipelineStatistics;
  2484. } VkCommandBufferInheritanceInfo;
  2485. typedef struct VkCommandBufferBeginInfo {
  2486. VkStructureType sType;
  2487. const void* pNext;
  2488. VkCommandBufferUsageFlags flags;
  2489. const VkCommandBufferInheritanceInfo* pInheritanceInfo;
  2490. } VkCommandBufferBeginInfo;
  2491. typedef struct VkBufferCopy {
  2492. VkDeviceSize srcOffset;
  2493. VkDeviceSize dstOffset;
  2494. VkDeviceSize size;
  2495. } VkBufferCopy;
  2496. typedef struct VkImageSubresourceLayers {
  2497. VkImageAspectFlags aspectMask;
  2498. uint32_t mipLevel;
  2499. uint32_t baseArrayLayer;
  2500. uint32_t layerCount;
  2501. } VkImageSubresourceLayers;
  2502. typedef struct VkImageCopy {
  2503. VkImageSubresourceLayers srcSubresource;
  2504. VkOffset3D srcOffset;
  2505. VkImageSubresourceLayers dstSubresource;
  2506. VkOffset3D dstOffset;
  2507. VkExtent3D extent;
  2508. } VkImageCopy;
  2509. typedef struct VkImageBlit {
  2510. VkImageSubresourceLayers srcSubresource;
  2511. VkOffset3D srcOffsets[2];
  2512. VkImageSubresourceLayers dstSubresource;
  2513. VkOffset3D dstOffsets[2];
  2514. } VkImageBlit;
  2515. typedef struct VkBufferImageCopy {
  2516. VkDeviceSize bufferOffset;
  2517. uint32_t bufferRowLength;
  2518. uint32_t bufferImageHeight;
  2519. VkImageSubresourceLayers imageSubresource;
  2520. VkOffset3D imageOffset;
  2521. VkExtent3D imageExtent;
  2522. } VkBufferImageCopy;
  2523. typedef union VkClearColorValue {
  2524. float float32[4];
  2525. int32_t int32[4];
  2526. uint32_t uint32[4];
  2527. } VkClearColorValue;
  2528. typedef struct VkClearDepthStencilValue {
  2529. float depth;
  2530. uint32_t stencil;
  2531. } VkClearDepthStencilValue;
  2532. typedef union VkClearValue {
  2533. VkClearColorValue color;
  2534. VkClearDepthStencilValue depthStencil;
  2535. } VkClearValue;
  2536. typedef struct VkClearAttachment {
  2537. VkImageAspectFlags aspectMask;
  2538. uint32_t colorAttachment;
  2539. VkClearValue clearValue;
  2540. } VkClearAttachment;
  2541. typedef struct VkClearRect {
  2542. VkRect2D rect;
  2543. uint32_t baseArrayLayer;
  2544. uint32_t layerCount;
  2545. } VkClearRect;
  2546. typedef struct VkImageResolve {
  2547. VkImageSubresourceLayers srcSubresource;
  2548. VkOffset3D srcOffset;
  2549. VkImageSubresourceLayers dstSubresource;
  2550. VkOffset3D dstOffset;
  2551. VkExtent3D extent;
  2552. } VkImageResolve;
  2553. typedef struct VkMemoryBarrier {
  2554. VkStructureType sType;
  2555. const void* pNext;
  2556. VkAccessFlags srcAccessMask;
  2557. VkAccessFlags dstAccessMask;
  2558. } VkMemoryBarrier;
  2559. typedef struct VkBufferMemoryBarrier {
  2560. VkStructureType sType;
  2561. const void* pNext;
  2562. VkAccessFlags srcAccessMask;
  2563. VkAccessFlags dstAccessMask;
  2564. uint32_t srcQueueFamilyIndex;
  2565. uint32_t dstQueueFamilyIndex;
  2566. VkBuffer buffer;
  2567. VkDeviceSize offset;
  2568. VkDeviceSize size;
  2569. } VkBufferMemoryBarrier;
  2570. typedef struct VkImageMemoryBarrier {
  2571. VkStructureType sType;
  2572. const void* pNext;
  2573. VkAccessFlags srcAccessMask;
  2574. VkAccessFlags dstAccessMask;
  2575. VkImageLayout oldLayout;
  2576. VkImageLayout newLayout;
  2577. uint32_t srcQueueFamilyIndex;
  2578. uint32_t dstQueueFamilyIndex;
  2579. VkImage image;
  2580. VkImageSubresourceRange subresourceRange;
  2581. } VkImageMemoryBarrier;
  2582. typedef struct VkRenderPassBeginInfo {
  2583. VkStructureType sType;
  2584. const void* pNext;
  2585. VkRenderPass renderPass;
  2586. VkFramebuffer framebuffer;
  2587. VkRect2D renderArea;
  2588. uint32_t clearValueCount;
  2589. const VkClearValue* pClearValues;
  2590. } VkRenderPassBeginInfo;
  2591. typedef struct VkDispatchIndirectCommand {
  2592. uint32_t x;
  2593. uint32_t y;
  2594. uint32_t z;
  2595. } VkDispatchIndirectCommand;
  2596. typedef struct VkDrawIndexedIndirectCommand {
  2597. uint32_t indexCount;
  2598. uint32_t instanceCount;
  2599. uint32_t firstIndex;
  2600. int32_t vertexOffset;
  2601. uint32_t firstInstance;
  2602. } VkDrawIndexedIndirectCommand;
  2603. typedef struct VkDrawIndirectCommand {
  2604. uint32_t vertexCount;
  2605. uint32_t instanceCount;
  2606. uint32_t firstVertex;
  2607. uint32_t firstInstance;
  2608. } VkDrawIndirectCommand;
  2609. typedef struct VkBaseOutStructure {
  2610. VkStructureType sType;
  2611. struct VkBaseOutStructure* pNext;
  2612. } VkBaseOutStructure;
  2613. typedef struct VkBaseInStructure {
  2614. VkStructureType sType;
  2615. const struct VkBaseInStructure* pNext;
  2616. } VkBaseInStructure;
  2617. typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
  2618. typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
  2619. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
  2620. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
  2621. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
  2622. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
  2623. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
  2624. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
  2625. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
  2626. typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
  2627. typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
  2628. typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
  2629. typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
  2630. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
  2631. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
  2632. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
  2633. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
  2634. typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
  2635. typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
  2636. typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
  2637. typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
  2638. typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
  2639. typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
  2640. typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
  2641. typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
  2642. typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
  2643. typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
  2644. typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
  2645. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  2646. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
  2647. typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
  2648. typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
  2649. typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
  2650. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
  2651. typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
  2652. typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  2653. typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
  2654. typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
  2655. typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
  2656. typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
  2657. typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
  2658. typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
  2659. typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
  2660. typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
  2661. typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
  2662. typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
  2663. typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
  2664. typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
  2665. typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
  2666. 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);
  2667. typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
  2668. typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
  2669. typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
  2670. typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
  2671. typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
  2672. typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
  2673. typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
  2674. typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
  2675. typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
  2676. typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
  2677. typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
  2678. typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
  2679. typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
  2680. typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
  2681. typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
  2682. typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  2683. typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  2684. typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
  2685. typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
  2686. typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
  2687. typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
  2688. typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
  2689. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
  2690. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
  2691. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
  2692. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
  2693. typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
  2694. typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
  2695. typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
  2696. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
  2697. typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
  2698. typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
  2699. typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
  2700. typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
  2701. typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
  2702. typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
  2703. typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
  2704. typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
  2705. typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
  2706. typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
  2707. typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
  2708. typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
  2709. typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
  2710. typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
  2711. typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
  2712. typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
  2713. typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
  2714. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
  2715. typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
  2716. typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
  2717. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
  2718. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
  2719. typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
  2720. 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);
  2721. typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
  2722. typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
  2723. typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
  2724. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
  2725. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  2726. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  2727. typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
  2728. typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
  2729. typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
  2730. typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
  2731. typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
  2732. typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
  2733. typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
  2734. typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
  2735. typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
  2736. typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
  2737. typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
  2738. typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
  2739. typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
  2740. typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  2741. typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
  2742. 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);
  2743. 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);
  2744. typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
  2745. typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
  2746. typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
  2747. typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
  2748. typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
  2749. typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
  2750. typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
  2751. typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
  2752. typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
  2753. typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
  2754. #ifndef VK_NO_PROTOTYPES
  2755. VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
  2756. const VkInstanceCreateInfo* pCreateInfo,
  2757. const VkAllocationCallbacks* pAllocator,
  2758. VkInstance* pInstance);
  2759. VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
  2760. VkInstance instance,
  2761. const VkAllocationCallbacks* pAllocator);
  2762. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
  2763. VkInstance instance,
  2764. uint32_t* pPhysicalDeviceCount,
  2765. VkPhysicalDevice* pPhysicalDevices);
  2766. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
  2767. VkPhysicalDevice physicalDevice,
  2768. VkPhysicalDeviceFeatures* pFeatures);
  2769. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
  2770. VkPhysicalDevice physicalDevice,
  2771. VkFormat format,
  2772. VkFormatProperties* pFormatProperties);
  2773. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
  2774. VkPhysicalDevice physicalDevice,
  2775. VkFormat format,
  2776. VkImageType type,
  2777. VkImageTiling tiling,
  2778. VkImageUsageFlags usage,
  2779. VkImageCreateFlags flags,
  2780. VkImageFormatProperties* pImageFormatProperties);
  2781. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
  2782. VkPhysicalDevice physicalDevice,
  2783. VkPhysicalDeviceProperties* pProperties);
  2784. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
  2785. VkPhysicalDevice physicalDevice,
  2786. uint32_t* pQueueFamilyPropertyCount,
  2787. VkQueueFamilyProperties* pQueueFamilyProperties);
  2788. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
  2789. VkPhysicalDevice physicalDevice,
  2790. VkPhysicalDeviceMemoryProperties* pMemoryProperties);
  2791. VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
  2792. VkInstance instance,
  2793. const char* pName);
  2794. VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
  2795. VkDevice device,
  2796. const char* pName);
  2797. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
  2798. VkPhysicalDevice physicalDevice,
  2799. const VkDeviceCreateInfo* pCreateInfo,
  2800. const VkAllocationCallbacks* pAllocator,
  2801. VkDevice* pDevice);
  2802. VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
  2803. VkDevice device,
  2804. const VkAllocationCallbacks* pAllocator);
  2805. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
  2806. const char* pLayerName,
  2807. uint32_t* pPropertyCount,
  2808. VkExtensionProperties* pProperties);
  2809. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
  2810. VkPhysicalDevice physicalDevice,
  2811. const char* pLayerName,
  2812. uint32_t* pPropertyCount,
  2813. VkExtensionProperties* pProperties);
  2814. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
  2815. uint32_t* pPropertyCount,
  2816. VkLayerProperties* pProperties);
  2817. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
  2818. VkPhysicalDevice physicalDevice,
  2819. uint32_t* pPropertyCount,
  2820. VkLayerProperties* pProperties);
  2821. VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
  2822. VkDevice device,
  2823. uint32_t queueFamilyIndex,
  2824. uint32_t queueIndex,
  2825. VkQueue* pQueue);
  2826. VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
  2827. VkQueue queue,
  2828. uint32_t submitCount,
  2829. const VkSubmitInfo* pSubmits,
  2830. VkFence fence);
  2831. VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
  2832. VkQueue queue);
  2833. VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
  2834. VkDevice device);
  2835. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
  2836. VkDevice device,
  2837. const VkMemoryAllocateInfo* pAllocateInfo,
  2838. const VkAllocationCallbacks* pAllocator,
  2839. VkDeviceMemory* pMemory);
  2840. VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
  2841. VkDevice device,
  2842. VkDeviceMemory memory,
  2843. const VkAllocationCallbacks* pAllocator);
  2844. VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
  2845. VkDevice device,
  2846. VkDeviceMemory memory,
  2847. VkDeviceSize offset,
  2848. VkDeviceSize size,
  2849. VkMemoryMapFlags flags,
  2850. void** ppData);
  2851. VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
  2852. VkDevice device,
  2853. VkDeviceMemory memory);
  2854. VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
  2855. VkDevice device,
  2856. uint32_t memoryRangeCount,
  2857. const VkMappedMemoryRange* pMemoryRanges);
  2858. VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
  2859. VkDevice device,
  2860. uint32_t memoryRangeCount,
  2861. const VkMappedMemoryRange* pMemoryRanges);
  2862. VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
  2863. VkDevice device,
  2864. VkDeviceMemory memory,
  2865. VkDeviceSize* pCommittedMemoryInBytes);
  2866. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
  2867. VkDevice device,
  2868. VkBuffer buffer,
  2869. VkDeviceMemory memory,
  2870. VkDeviceSize memoryOffset);
  2871. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
  2872. VkDevice device,
  2873. VkImage image,
  2874. VkDeviceMemory memory,
  2875. VkDeviceSize memoryOffset);
  2876. VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
  2877. VkDevice device,
  2878. VkBuffer buffer,
  2879. VkMemoryRequirements* pMemoryRequirements);
  2880. VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
  2881. VkDevice device,
  2882. VkImage image,
  2883. VkMemoryRequirements* pMemoryRequirements);
  2884. VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
  2885. VkDevice device,
  2886. VkImage image,
  2887. uint32_t* pSparseMemoryRequirementCount,
  2888. VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
  2889. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
  2890. VkPhysicalDevice physicalDevice,
  2891. VkFormat format,
  2892. VkImageType type,
  2893. VkSampleCountFlagBits samples,
  2894. VkImageUsageFlags usage,
  2895. VkImageTiling tiling,
  2896. uint32_t* pPropertyCount,
  2897. VkSparseImageFormatProperties* pProperties);
  2898. VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
  2899. VkQueue queue,
  2900. uint32_t bindInfoCount,
  2901. const VkBindSparseInfo* pBindInfo,
  2902. VkFence fence);
  2903. VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
  2904. VkDevice device,
  2905. const VkFenceCreateInfo* pCreateInfo,
  2906. const VkAllocationCallbacks* pAllocator,
  2907. VkFence* pFence);
  2908. VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
  2909. VkDevice device,
  2910. VkFence fence,
  2911. const VkAllocationCallbacks* pAllocator);
  2912. VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
  2913. VkDevice device,
  2914. uint32_t fenceCount,
  2915. const VkFence* pFences);
  2916. VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
  2917. VkDevice device,
  2918. VkFence fence);
  2919. VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
  2920. VkDevice device,
  2921. uint32_t fenceCount,
  2922. const VkFence* pFences,
  2923. VkBool32 waitAll,
  2924. uint64_t timeout);
  2925. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
  2926. VkDevice device,
  2927. const VkSemaphoreCreateInfo* pCreateInfo,
  2928. const VkAllocationCallbacks* pAllocator,
  2929. VkSemaphore* pSemaphore);
  2930. VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
  2931. VkDevice device,
  2932. VkSemaphore semaphore,
  2933. const VkAllocationCallbacks* pAllocator);
  2934. VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
  2935. VkDevice device,
  2936. const VkEventCreateInfo* pCreateInfo,
  2937. const VkAllocationCallbacks* pAllocator,
  2938. VkEvent* pEvent);
  2939. VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
  2940. VkDevice device,
  2941. VkEvent event,
  2942. const VkAllocationCallbacks* pAllocator);
  2943. VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
  2944. VkDevice device,
  2945. VkEvent event);
  2946. VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
  2947. VkDevice device,
  2948. VkEvent event);
  2949. VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
  2950. VkDevice device,
  2951. VkEvent event);
  2952. VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
  2953. VkDevice device,
  2954. const VkQueryPoolCreateInfo* pCreateInfo,
  2955. const VkAllocationCallbacks* pAllocator,
  2956. VkQueryPool* pQueryPool);
  2957. VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
  2958. VkDevice device,
  2959. VkQueryPool queryPool,
  2960. const VkAllocationCallbacks* pAllocator);
  2961. VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
  2962. VkDevice device,
  2963. VkQueryPool queryPool,
  2964. uint32_t firstQuery,
  2965. uint32_t queryCount,
  2966. size_t dataSize,
  2967. void* pData,
  2968. VkDeviceSize stride,
  2969. VkQueryResultFlags flags);
  2970. VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
  2971. VkDevice device,
  2972. const VkBufferCreateInfo* pCreateInfo,
  2973. const VkAllocationCallbacks* pAllocator,
  2974. VkBuffer* pBuffer);
  2975. VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
  2976. VkDevice device,
  2977. VkBuffer buffer,
  2978. const VkAllocationCallbacks* pAllocator);
  2979. VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
  2980. VkDevice device,
  2981. const VkBufferViewCreateInfo* pCreateInfo,
  2982. const VkAllocationCallbacks* pAllocator,
  2983. VkBufferView* pView);
  2984. VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
  2985. VkDevice device,
  2986. VkBufferView bufferView,
  2987. const VkAllocationCallbacks* pAllocator);
  2988. VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
  2989. VkDevice device,
  2990. const VkImageCreateInfo* pCreateInfo,
  2991. const VkAllocationCallbacks* pAllocator,
  2992. VkImage* pImage);
  2993. VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
  2994. VkDevice device,
  2995. VkImage image,
  2996. const VkAllocationCallbacks* pAllocator);
  2997. VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
  2998. VkDevice device,
  2999. VkImage image,
  3000. const VkImageSubresource* pSubresource,
  3001. VkSubresourceLayout* pLayout);
  3002. VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
  3003. VkDevice device,
  3004. const VkImageViewCreateInfo* pCreateInfo,
  3005. const VkAllocationCallbacks* pAllocator,
  3006. VkImageView* pView);
  3007. VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
  3008. VkDevice device,
  3009. VkImageView imageView,
  3010. const VkAllocationCallbacks* pAllocator);
  3011. VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
  3012. VkDevice device,
  3013. const VkShaderModuleCreateInfo* pCreateInfo,
  3014. const VkAllocationCallbacks* pAllocator,
  3015. VkShaderModule* pShaderModule);
  3016. VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
  3017. VkDevice device,
  3018. VkShaderModule shaderModule,
  3019. const VkAllocationCallbacks* pAllocator);
  3020. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
  3021. VkDevice device,
  3022. const VkPipelineCacheCreateInfo* pCreateInfo,
  3023. const VkAllocationCallbacks* pAllocator,
  3024. VkPipelineCache* pPipelineCache);
  3025. VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
  3026. VkDevice device,
  3027. VkPipelineCache pipelineCache,
  3028. const VkAllocationCallbacks* pAllocator);
  3029. VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
  3030. VkDevice device,
  3031. VkPipelineCache pipelineCache,
  3032. size_t* pDataSize,
  3033. void* pData);
  3034. VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
  3035. VkDevice device,
  3036. VkPipelineCache dstCache,
  3037. uint32_t srcCacheCount,
  3038. const VkPipelineCache* pSrcCaches);
  3039. VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
  3040. VkDevice device,
  3041. VkPipelineCache pipelineCache,
  3042. uint32_t createInfoCount,
  3043. const VkGraphicsPipelineCreateInfo* pCreateInfos,
  3044. const VkAllocationCallbacks* pAllocator,
  3045. VkPipeline* pPipelines);
  3046. VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
  3047. VkDevice device,
  3048. VkPipelineCache pipelineCache,
  3049. uint32_t createInfoCount,
  3050. const VkComputePipelineCreateInfo* pCreateInfos,
  3051. const VkAllocationCallbacks* pAllocator,
  3052. VkPipeline* pPipelines);
  3053. VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
  3054. VkDevice device,
  3055. VkPipeline pipeline,
  3056. const VkAllocationCallbacks* pAllocator);
  3057. VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
  3058. VkDevice device,
  3059. const VkPipelineLayoutCreateInfo* pCreateInfo,
  3060. const VkAllocationCallbacks* pAllocator,
  3061. VkPipelineLayout* pPipelineLayout);
  3062. VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
  3063. VkDevice device,
  3064. VkPipelineLayout pipelineLayout,
  3065. const VkAllocationCallbacks* pAllocator);
  3066. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
  3067. VkDevice device,
  3068. const VkSamplerCreateInfo* pCreateInfo,
  3069. const VkAllocationCallbacks* pAllocator,
  3070. VkSampler* pSampler);
  3071. VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
  3072. VkDevice device,
  3073. VkSampler sampler,
  3074. const VkAllocationCallbacks* pAllocator);
  3075. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
  3076. VkDevice device,
  3077. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  3078. const VkAllocationCallbacks* pAllocator,
  3079. VkDescriptorSetLayout* pSetLayout);
  3080. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
  3081. VkDevice device,
  3082. VkDescriptorSetLayout descriptorSetLayout,
  3083. const VkAllocationCallbacks* pAllocator);
  3084. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
  3085. VkDevice device,
  3086. const VkDescriptorPoolCreateInfo* pCreateInfo,
  3087. const VkAllocationCallbacks* pAllocator,
  3088. VkDescriptorPool* pDescriptorPool);
  3089. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
  3090. VkDevice device,
  3091. VkDescriptorPool descriptorPool,
  3092. const VkAllocationCallbacks* pAllocator);
  3093. VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
  3094. VkDevice device,
  3095. VkDescriptorPool descriptorPool,
  3096. VkDescriptorPoolResetFlags flags);
  3097. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
  3098. VkDevice device,
  3099. const VkDescriptorSetAllocateInfo* pAllocateInfo,
  3100. VkDescriptorSet* pDescriptorSets);
  3101. VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
  3102. VkDevice device,
  3103. VkDescriptorPool descriptorPool,
  3104. uint32_t descriptorSetCount,
  3105. const VkDescriptorSet* pDescriptorSets);
  3106. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
  3107. VkDevice device,
  3108. uint32_t descriptorWriteCount,
  3109. const VkWriteDescriptorSet* pDescriptorWrites,
  3110. uint32_t descriptorCopyCount,
  3111. const VkCopyDescriptorSet* pDescriptorCopies);
  3112. VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
  3113. VkDevice device,
  3114. const VkFramebufferCreateInfo* pCreateInfo,
  3115. const VkAllocationCallbacks* pAllocator,
  3116. VkFramebuffer* pFramebuffer);
  3117. VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
  3118. VkDevice device,
  3119. VkFramebuffer framebuffer,
  3120. const VkAllocationCallbacks* pAllocator);
  3121. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
  3122. VkDevice device,
  3123. const VkRenderPassCreateInfo* pCreateInfo,
  3124. const VkAllocationCallbacks* pAllocator,
  3125. VkRenderPass* pRenderPass);
  3126. VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
  3127. VkDevice device,
  3128. VkRenderPass renderPass,
  3129. const VkAllocationCallbacks* pAllocator);
  3130. VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
  3131. VkDevice device,
  3132. VkRenderPass renderPass,
  3133. VkExtent2D* pGranularity);
  3134. VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
  3135. VkDevice device,
  3136. const VkCommandPoolCreateInfo* pCreateInfo,
  3137. const VkAllocationCallbacks* pAllocator,
  3138. VkCommandPool* pCommandPool);
  3139. VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
  3140. VkDevice device,
  3141. VkCommandPool commandPool,
  3142. const VkAllocationCallbacks* pAllocator);
  3143. VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
  3144. VkDevice device,
  3145. VkCommandPool commandPool,
  3146. VkCommandPoolResetFlags flags);
  3147. VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
  3148. VkDevice device,
  3149. const VkCommandBufferAllocateInfo* pAllocateInfo,
  3150. VkCommandBuffer* pCommandBuffers);
  3151. VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
  3152. VkDevice device,
  3153. VkCommandPool commandPool,
  3154. uint32_t commandBufferCount,
  3155. const VkCommandBuffer* pCommandBuffers);
  3156. VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
  3157. VkCommandBuffer commandBuffer,
  3158. const VkCommandBufferBeginInfo* pBeginInfo);
  3159. VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
  3160. VkCommandBuffer commandBuffer);
  3161. VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
  3162. VkCommandBuffer commandBuffer,
  3163. VkCommandBufferResetFlags flags);
  3164. VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
  3165. VkCommandBuffer commandBuffer,
  3166. VkPipelineBindPoint pipelineBindPoint,
  3167. VkPipeline pipeline);
  3168. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
  3169. VkCommandBuffer commandBuffer,
  3170. uint32_t firstViewport,
  3171. uint32_t viewportCount,
  3172. const VkViewport* pViewports);
  3173. VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
  3174. VkCommandBuffer commandBuffer,
  3175. uint32_t firstScissor,
  3176. uint32_t scissorCount,
  3177. const VkRect2D* pScissors);
  3178. VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
  3179. VkCommandBuffer commandBuffer,
  3180. float lineWidth);
  3181. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
  3182. VkCommandBuffer commandBuffer,
  3183. float depthBiasConstantFactor,
  3184. float depthBiasClamp,
  3185. float depthBiasSlopeFactor);
  3186. VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
  3187. VkCommandBuffer commandBuffer,
  3188. const float blendConstants[4]);
  3189. VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
  3190. VkCommandBuffer commandBuffer,
  3191. float minDepthBounds,
  3192. float maxDepthBounds);
  3193. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
  3194. VkCommandBuffer commandBuffer,
  3195. VkStencilFaceFlags faceMask,
  3196. uint32_t compareMask);
  3197. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
  3198. VkCommandBuffer commandBuffer,
  3199. VkStencilFaceFlags faceMask,
  3200. uint32_t writeMask);
  3201. VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
  3202. VkCommandBuffer commandBuffer,
  3203. VkStencilFaceFlags faceMask,
  3204. uint32_t reference);
  3205. VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
  3206. VkCommandBuffer commandBuffer,
  3207. VkPipelineBindPoint pipelineBindPoint,
  3208. VkPipelineLayout layout,
  3209. uint32_t firstSet,
  3210. uint32_t descriptorSetCount,
  3211. const VkDescriptorSet* pDescriptorSets,
  3212. uint32_t dynamicOffsetCount,
  3213. const uint32_t* pDynamicOffsets);
  3214. VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
  3215. VkCommandBuffer commandBuffer,
  3216. VkBuffer buffer,
  3217. VkDeviceSize offset,
  3218. VkIndexType indexType);
  3219. VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
  3220. VkCommandBuffer commandBuffer,
  3221. uint32_t firstBinding,
  3222. uint32_t bindingCount,
  3223. const VkBuffer* pBuffers,
  3224. const VkDeviceSize* pOffsets);
  3225. VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
  3226. VkCommandBuffer commandBuffer,
  3227. uint32_t vertexCount,
  3228. uint32_t instanceCount,
  3229. uint32_t firstVertex,
  3230. uint32_t firstInstance);
  3231. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
  3232. VkCommandBuffer commandBuffer,
  3233. uint32_t indexCount,
  3234. uint32_t instanceCount,
  3235. uint32_t firstIndex,
  3236. int32_t vertexOffset,
  3237. uint32_t firstInstance);
  3238. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
  3239. VkCommandBuffer commandBuffer,
  3240. VkBuffer buffer,
  3241. VkDeviceSize offset,
  3242. uint32_t drawCount,
  3243. uint32_t stride);
  3244. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
  3245. VkCommandBuffer commandBuffer,
  3246. VkBuffer buffer,
  3247. VkDeviceSize offset,
  3248. uint32_t drawCount,
  3249. uint32_t stride);
  3250. VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
  3251. VkCommandBuffer commandBuffer,
  3252. uint32_t groupCountX,
  3253. uint32_t groupCountY,
  3254. uint32_t groupCountZ);
  3255. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
  3256. VkCommandBuffer commandBuffer,
  3257. VkBuffer buffer,
  3258. VkDeviceSize offset);
  3259. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
  3260. VkCommandBuffer commandBuffer,
  3261. VkBuffer srcBuffer,
  3262. VkBuffer dstBuffer,
  3263. uint32_t regionCount,
  3264. const VkBufferCopy* pRegions);
  3265. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
  3266. VkCommandBuffer commandBuffer,
  3267. VkImage srcImage,
  3268. VkImageLayout srcImageLayout,
  3269. VkImage dstImage,
  3270. VkImageLayout dstImageLayout,
  3271. uint32_t regionCount,
  3272. const VkImageCopy* pRegions);
  3273. VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
  3274. VkCommandBuffer commandBuffer,
  3275. VkImage srcImage,
  3276. VkImageLayout srcImageLayout,
  3277. VkImage dstImage,
  3278. VkImageLayout dstImageLayout,
  3279. uint32_t regionCount,
  3280. const VkImageBlit* pRegions,
  3281. VkFilter filter);
  3282. VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
  3283. VkCommandBuffer commandBuffer,
  3284. VkBuffer srcBuffer,
  3285. VkImage dstImage,
  3286. VkImageLayout dstImageLayout,
  3287. uint32_t regionCount,
  3288. const VkBufferImageCopy* pRegions);
  3289. VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
  3290. VkCommandBuffer commandBuffer,
  3291. VkImage srcImage,
  3292. VkImageLayout srcImageLayout,
  3293. VkBuffer dstBuffer,
  3294. uint32_t regionCount,
  3295. const VkBufferImageCopy* pRegions);
  3296. VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
  3297. VkCommandBuffer commandBuffer,
  3298. VkBuffer dstBuffer,
  3299. VkDeviceSize dstOffset,
  3300. VkDeviceSize dataSize,
  3301. const void* pData);
  3302. VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
  3303. VkCommandBuffer commandBuffer,
  3304. VkBuffer dstBuffer,
  3305. VkDeviceSize dstOffset,
  3306. VkDeviceSize size,
  3307. uint32_t data);
  3308. VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
  3309. VkCommandBuffer commandBuffer,
  3310. VkImage image,
  3311. VkImageLayout imageLayout,
  3312. const VkClearColorValue* pColor,
  3313. uint32_t rangeCount,
  3314. const VkImageSubresourceRange* pRanges);
  3315. VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
  3316. VkCommandBuffer commandBuffer,
  3317. VkImage image,
  3318. VkImageLayout imageLayout,
  3319. const VkClearDepthStencilValue* pDepthStencil,
  3320. uint32_t rangeCount,
  3321. const VkImageSubresourceRange* pRanges);
  3322. VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
  3323. VkCommandBuffer commandBuffer,
  3324. uint32_t attachmentCount,
  3325. const VkClearAttachment* pAttachments,
  3326. uint32_t rectCount,
  3327. const VkClearRect* pRects);
  3328. VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
  3329. VkCommandBuffer commandBuffer,
  3330. VkImage srcImage,
  3331. VkImageLayout srcImageLayout,
  3332. VkImage dstImage,
  3333. VkImageLayout dstImageLayout,
  3334. uint32_t regionCount,
  3335. const VkImageResolve* pRegions);
  3336. VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
  3337. VkCommandBuffer commandBuffer,
  3338. VkEvent event,
  3339. VkPipelineStageFlags stageMask);
  3340. VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
  3341. VkCommandBuffer commandBuffer,
  3342. VkEvent event,
  3343. VkPipelineStageFlags stageMask);
  3344. VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
  3345. VkCommandBuffer commandBuffer,
  3346. uint32_t eventCount,
  3347. const VkEvent* pEvents,
  3348. VkPipelineStageFlags srcStageMask,
  3349. VkPipelineStageFlags dstStageMask,
  3350. uint32_t memoryBarrierCount,
  3351. const VkMemoryBarrier* pMemoryBarriers,
  3352. uint32_t bufferMemoryBarrierCount,
  3353. const VkBufferMemoryBarrier* pBufferMemoryBarriers,
  3354. uint32_t imageMemoryBarrierCount,
  3355. const VkImageMemoryBarrier* pImageMemoryBarriers);
  3356. VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
  3357. VkCommandBuffer commandBuffer,
  3358. VkPipelineStageFlags srcStageMask,
  3359. VkPipelineStageFlags dstStageMask,
  3360. VkDependencyFlags dependencyFlags,
  3361. uint32_t memoryBarrierCount,
  3362. const VkMemoryBarrier* pMemoryBarriers,
  3363. uint32_t bufferMemoryBarrierCount,
  3364. const VkBufferMemoryBarrier* pBufferMemoryBarriers,
  3365. uint32_t imageMemoryBarrierCount,
  3366. const VkImageMemoryBarrier* pImageMemoryBarriers);
  3367. VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
  3368. VkCommandBuffer commandBuffer,
  3369. VkQueryPool queryPool,
  3370. uint32_t query,
  3371. VkQueryControlFlags flags);
  3372. VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
  3373. VkCommandBuffer commandBuffer,
  3374. VkQueryPool queryPool,
  3375. uint32_t query);
  3376. VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
  3377. VkCommandBuffer commandBuffer,
  3378. VkQueryPool queryPool,
  3379. uint32_t firstQuery,
  3380. uint32_t queryCount);
  3381. VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
  3382. VkCommandBuffer commandBuffer,
  3383. VkPipelineStageFlagBits pipelineStage,
  3384. VkQueryPool queryPool,
  3385. uint32_t query);
  3386. VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
  3387. VkCommandBuffer commandBuffer,
  3388. VkQueryPool queryPool,
  3389. uint32_t firstQuery,
  3390. uint32_t queryCount,
  3391. VkBuffer dstBuffer,
  3392. VkDeviceSize dstOffset,
  3393. VkDeviceSize stride,
  3394. VkQueryResultFlags flags);
  3395. VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
  3396. VkCommandBuffer commandBuffer,
  3397. VkPipelineLayout layout,
  3398. VkShaderStageFlags stageFlags,
  3399. uint32_t offset,
  3400. uint32_t size,
  3401. const void* pValues);
  3402. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
  3403. VkCommandBuffer commandBuffer,
  3404. const VkRenderPassBeginInfo* pRenderPassBegin,
  3405. VkSubpassContents contents);
  3406. VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
  3407. VkCommandBuffer commandBuffer,
  3408. VkSubpassContents contents);
  3409. VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
  3410. VkCommandBuffer commandBuffer);
  3411. VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
  3412. VkCommandBuffer commandBuffer,
  3413. uint32_t commandBufferCount,
  3414. const VkCommandBuffer* pCommandBuffers);
  3415. #endif
  3416. #define VK_VERSION_1_1 1
  3417. // Vulkan 1.1 version number
  3418. #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0
  3419. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
  3420. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
  3421. #define VK_MAX_DEVICE_GROUP_SIZE 32
  3422. #define VK_LUID_SIZE 8
  3423. #define VK_QUEUE_FAMILY_EXTERNAL (~0U-1)
  3424. typedef enum VkPointClippingBehavior {
  3425. VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
  3426. VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
  3427. VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
  3428. VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
  3429. VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
  3430. VK_POINT_CLIPPING_BEHAVIOR_END_RANGE = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
  3431. VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES + 1),
  3432. VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
  3433. } VkPointClippingBehavior;
  3434. typedef enum VkTessellationDomainOrigin {
  3435. VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
  3436. VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
  3437. VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
  3438. VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
  3439. VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
  3440. VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
  3441. VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT + 1),
  3442. VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
  3443. } VkTessellationDomainOrigin;
  3444. typedef enum VkSamplerYcbcrModelConversion {
  3445. VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
  3446. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
  3447. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
  3448. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
  3449. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
  3450. VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
  3451. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
  3452. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
  3453. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
  3454. VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
  3455. VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
  3456. VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
  3457. VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY + 1),
  3458. VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
  3459. } VkSamplerYcbcrModelConversion;
  3460. typedef enum VkSamplerYcbcrRange {
  3461. VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
  3462. VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
  3463. VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
  3464. VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
  3465. VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
  3466. VK_SAMPLER_YCBCR_RANGE_END_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
  3467. VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - VK_SAMPLER_YCBCR_RANGE_ITU_FULL + 1),
  3468. VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
  3469. } VkSamplerYcbcrRange;
  3470. typedef enum VkChromaLocation {
  3471. VK_CHROMA_LOCATION_COSITED_EVEN = 0,
  3472. VK_CHROMA_LOCATION_MIDPOINT = 1,
  3473. VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
  3474. VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
  3475. VK_CHROMA_LOCATION_BEGIN_RANGE = VK_CHROMA_LOCATION_COSITED_EVEN,
  3476. VK_CHROMA_LOCATION_END_RANGE = VK_CHROMA_LOCATION_MIDPOINT,
  3477. VK_CHROMA_LOCATION_RANGE_SIZE = (VK_CHROMA_LOCATION_MIDPOINT - VK_CHROMA_LOCATION_COSITED_EVEN + 1),
  3478. VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
  3479. } VkChromaLocation;
  3480. typedef enum VkDescriptorUpdateTemplateType {
  3481. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
  3482. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
  3483. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
  3484. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
  3485. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
  3486. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET + 1),
  3487. VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
  3488. } VkDescriptorUpdateTemplateType;
  3489. typedef enum VkSubgroupFeatureFlagBits {
  3490. VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
  3491. VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
  3492. VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
  3493. VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
  3494. VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
  3495. VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
  3496. VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
  3497. VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
  3498. VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
  3499. VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3500. } VkSubgroupFeatureFlagBits;
  3501. typedef VkFlags VkSubgroupFeatureFlags;
  3502. typedef enum VkPeerMemoryFeatureFlagBits {
  3503. VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
  3504. VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
  3505. VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
  3506. VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
  3507. VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
  3508. VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
  3509. VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
  3510. VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
  3511. VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3512. } VkPeerMemoryFeatureFlagBits;
  3513. typedef VkFlags VkPeerMemoryFeatureFlags;
  3514. typedef enum VkMemoryAllocateFlagBits {
  3515. VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
  3516. VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
  3517. VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3518. } VkMemoryAllocateFlagBits;
  3519. typedef VkFlags VkMemoryAllocateFlags;
  3520. typedef VkFlags VkCommandPoolTrimFlags;
  3521. typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
  3522. typedef enum VkExternalMemoryHandleTypeFlagBits {
  3523. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
  3524. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
  3525. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
  3526. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
  3527. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
  3528. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
  3529. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
  3530. VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
  3531. VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
  3532. VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
  3533. VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
  3534. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
  3535. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  3536. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  3537. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
  3538. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
  3539. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
  3540. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
  3541. VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3542. } VkExternalMemoryHandleTypeFlagBits;
  3543. typedef VkFlags VkExternalMemoryHandleTypeFlags;
  3544. typedef enum VkExternalMemoryFeatureFlagBits {
  3545. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
  3546. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
  3547. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
  3548. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
  3549. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
  3550. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
  3551. VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3552. } VkExternalMemoryFeatureFlagBits;
  3553. typedef VkFlags VkExternalMemoryFeatureFlags;
  3554. typedef enum VkExternalFenceHandleTypeFlagBits {
  3555. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
  3556. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
  3557. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
  3558. VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
  3559. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
  3560. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  3561. VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  3562. VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
  3563. VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3564. } VkExternalFenceHandleTypeFlagBits;
  3565. typedef VkFlags VkExternalFenceHandleTypeFlags;
  3566. typedef enum VkExternalFenceFeatureFlagBits {
  3567. VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
  3568. VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
  3569. VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
  3570. VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
  3571. VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3572. } VkExternalFenceFeatureFlagBits;
  3573. typedef VkFlags VkExternalFenceFeatureFlags;
  3574. typedef enum VkFenceImportFlagBits {
  3575. VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
  3576. VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
  3577. VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3578. } VkFenceImportFlagBits;
  3579. typedef VkFlags VkFenceImportFlags;
  3580. typedef enum VkSemaphoreImportFlagBits {
  3581. VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
  3582. VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
  3583. VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3584. } VkSemaphoreImportFlagBits;
  3585. typedef VkFlags VkSemaphoreImportFlags;
  3586. typedef enum VkExternalSemaphoreHandleTypeFlagBits {
  3587. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
  3588. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
  3589. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
  3590. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
  3591. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
  3592. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
  3593. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
  3594. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
  3595. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
  3596. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
  3597. VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3598. } VkExternalSemaphoreHandleTypeFlagBits;
  3599. typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
  3600. typedef enum VkExternalSemaphoreFeatureFlagBits {
  3601. VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
  3602. VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
  3603. VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
  3604. VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
  3605. VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
  3606. } VkExternalSemaphoreFeatureFlagBits;
  3607. typedef VkFlags VkExternalSemaphoreFeatureFlags;
  3608. typedef struct VkPhysicalDeviceSubgroupProperties {
  3609. VkStructureType sType;
  3610. void* pNext;
  3611. uint32_t subgroupSize;
  3612. VkShaderStageFlags supportedStages;
  3613. VkSubgroupFeatureFlags supportedOperations;
  3614. VkBool32 quadOperationsInAllStages;
  3615. } VkPhysicalDeviceSubgroupProperties;
  3616. typedef struct VkBindBufferMemoryInfo {
  3617. VkStructureType sType;
  3618. const void* pNext;
  3619. VkBuffer buffer;
  3620. VkDeviceMemory memory;
  3621. VkDeviceSize memoryOffset;
  3622. } VkBindBufferMemoryInfo;
  3623. typedef struct VkBindImageMemoryInfo {
  3624. VkStructureType sType;
  3625. const void* pNext;
  3626. VkImage image;
  3627. VkDeviceMemory memory;
  3628. VkDeviceSize memoryOffset;
  3629. } VkBindImageMemoryInfo;
  3630. typedef struct VkPhysicalDevice16BitStorageFeatures {
  3631. VkStructureType sType;
  3632. void* pNext;
  3633. VkBool32 storageBuffer16BitAccess;
  3634. VkBool32 uniformAndStorageBuffer16BitAccess;
  3635. VkBool32 storagePushConstant16;
  3636. VkBool32 storageInputOutput16;
  3637. } VkPhysicalDevice16BitStorageFeatures;
  3638. typedef struct VkMemoryDedicatedRequirements {
  3639. VkStructureType sType;
  3640. void* pNext;
  3641. VkBool32 prefersDedicatedAllocation;
  3642. VkBool32 requiresDedicatedAllocation;
  3643. } VkMemoryDedicatedRequirements;
  3644. typedef struct VkMemoryDedicatedAllocateInfo {
  3645. VkStructureType sType;
  3646. const void* pNext;
  3647. VkImage image;
  3648. VkBuffer buffer;
  3649. } VkMemoryDedicatedAllocateInfo;
  3650. typedef struct VkMemoryAllocateFlagsInfo {
  3651. VkStructureType sType;
  3652. const void* pNext;
  3653. VkMemoryAllocateFlags flags;
  3654. uint32_t deviceMask;
  3655. } VkMemoryAllocateFlagsInfo;
  3656. typedef struct VkDeviceGroupRenderPassBeginInfo {
  3657. VkStructureType sType;
  3658. const void* pNext;
  3659. uint32_t deviceMask;
  3660. uint32_t deviceRenderAreaCount;
  3661. const VkRect2D* pDeviceRenderAreas;
  3662. } VkDeviceGroupRenderPassBeginInfo;
  3663. typedef struct VkDeviceGroupCommandBufferBeginInfo {
  3664. VkStructureType sType;
  3665. const void* pNext;
  3666. uint32_t deviceMask;
  3667. } VkDeviceGroupCommandBufferBeginInfo;
  3668. typedef struct VkDeviceGroupSubmitInfo {
  3669. VkStructureType sType;
  3670. const void* pNext;
  3671. uint32_t waitSemaphoreCount;
  3672. const uint32_t* pWaitSemaphoreDeviceIndices;
  3673. uint32_t commandBufferCount;
  3674. const uint32_t* pCommandBufferDeviceMasks;
  3675. uint32_t signalSemaphoreCount;
  3676. const uint32_t* pSignalSemaphoreDeviceIndices;
  3677. } VkDeviceGroupSubmitInfo;
  3678. typedef struct VkDeviceGroupBindSparseInfo {
  3679. VkStructureType sType;
  3680. const void* pNext;
  3681. uint32_t resourceDeviceIndex;
  3682. uint32_t memoryDeviceIndex;
  3683. } VkDeviceGroupBindSparseInfo;
  3684. typedef struct VkBindBufferMemoryDeviceGroupInfo {
  3685. VkStructureType sType;
  3686. const void* pNext;
  3687. uint32_t deviceIndexCount;
  3688. const uint32_t* pDeviceIndices;
  3689. } VkBindBufferMemoryDeviceGroupInfo;
  3690. typedef struct VkBindImageMemoryDeviceGroupInfo {
  3691. VkStructureType sType;
  3692. const void* pNext;
  3693. uint32_t deviceIndexCount;
  3694. const uint32_t* pDeviceIndices;
  3695. uint32_t splitInstanceBindRegionCount;
  3696. const VkRect2D* pSplitInstanceBindRegions;
  3697. } VkBindImageMemoryDeviceGroupInfo;
  3698. typedef struct VkPhysicalDeviceGroupProperties {
  3699. VkStructureType sType;
  3700. void* pNext;
  3701. uint32_t physicalDeviceCount;
  3702. VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
  3703. VkBool32 subsetAllocation;
  3704. } VkPhysicalDeviceGroupProperties;
  3705. typedef struct VkDeviceGroupDeviceCreateInfo {
  3706. VkStructureType sType;
  3707. const void* pNext;
  3708. uint32_t physicalDeviceCount;
  3709. const VkPhysicalDevice* pPhysicalDevices;
  3710. } VkDeviceGroupDeviceCreateInfo;
  3711. typedef struct VkBufferMemoryRequirementsInfo2 {
  3712. VkStructureType sType;
  3713. const void* pNext;
  3714. VkBuffer buffer;
  3715. } VkBufferMemoryRequirementsInfo2;
  3716. typedef struct VkImageMemoryRequirementsInfo2 {
  3717. VkStructureType sType;
  3718. const void* pNext;
  3719. VkImage image;
  3720. } VkImageMemoryRequirementsInfo2;
  3721. typedef struct VkImageSparseMemoryRequirementsInfo2 {
  3722. VkStructureType sType;
  3723. const void* pNext;
  3724. VkImage image;
  3725. } VkImageSparseMemoryRequirementsInfo2;
  3726. typedef struct VkMemoryRequirements2 {
  3727. VkStructureType sType;
  3728. void* pNext;
  3729. VkMemoryRequirements memoryRequirements;
  3730. } VkMemoryRequirements2;
  3731. typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
  3732. typedef struct VkSparseImageMemoryRequirements2 {
  3733. VkStructureType sType;
  3734. void* pNext;
  3735. VkSparseImageMemoryRequirements memoryRequirements;
  3736. } VkSparseImageMemoryRequirements2;
  3737. typedef struct VkPhysicalDeviceFeatures2 {
  3738. VkStructureType sType;
  3739. void* pNext;
  3740. VkPhysicalDeviceFeatures features;
  3741. } VkPhysicalDeviceFeatures2;
  3742. typedef struct VkPhysicalDeviceProperties2 {
  3743. VkStructureType sType;
  3744. void* pNext;
  3745. VkPhysicalDeviceProperties properties;
  3746. } VkPhysicalDeviceProperties2;
  3747. typedef struct VkFormatProperties2 {
  3748. VkStructureType sType;
  3749. void* pNext;
  3750. VkFormatProperties formatProperties;
  3751. } VkFormatProperties2;
  3752. typedef struct VkImageFormatProperties2 {
  3753. VkStructureType sType;
  3754. void* pNext;
  3755. VkImageFormatProperties imageFormatProperties;
  3756. } VkImageFormatProperties2;
  3757. typedef struct VkPhysicalDeviceImageFormatInfo2 {
  3758. VkStructureType sType;
  3759. const void* pNext;
  3760. VkFormat format;
  3761. VkImageType type;
  3762. VkImageTiling tiling;
  3763. VkImageUsageFlags usage;
  3764. VkImageCreateFlags flags;
  3765. } VkPhysicalDeviceImageFormatInfo2;
  3766. typedef struct VkQueueFamilyProperties2 {
  3767. VkStructureType sType;
  3768. void* pNext;
  3769. VkQueueFamilyProperties queueFamilyProperties;
  3770. } VkQueueFamilyProperties2;
  3771. typedef struct VkPhysicalDeviceMemoryProperties2 {
  3772. VkStructureType sType;
  3773. void* pNext;
  3774. VkPhysicalDeviceMemoryProperties memoryProperties;
  3775. } VkPhysicalDeviceMemoryProperties2;
  3776. typedef struct VkSparseImageFormatProperties2 {
  3777. VkStructureType sType;
  3778. void* pNext;
  3779. VkSparseImageFormatProperties properties;
  3780. } VkSparseImageFormatProperties2;
  3781. typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
  3782. VkStructureType sType;
  3783. const void* pNext;
  3784. VkFormat format;
  3785. VkImageType type;
  3786. VkSampleCountFlagBits samples;
  3787. VkImageUsageFlags usage;
  3788. VkImageTiling tiling;
  3789. } VkPhysicalDeviceSparseImageFormatInfo2;
  3790. typedef struct VkPhysicalDevicePointClippingProperties {
  3791. VkStructureType sType;
  3792. void* pNext;
  3793. VkPointClippingBehavior pointClippingBehavior;
  3794. } VkPhysicalDevicePointClippingProperties;
  3795. typedef struct VkInputAttachmentAspectReference {
  3796. uint32_t subpass;
  3797. uint32_t inputAttachmentIndex;
  3798. VkImageAspectFlags aspectMask;
  3799. } VkInputAttachmentAspectReference;
  3800. typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
  3801. VkStructureType sType;
  3802. const void* pNext;
  3803. uint32_t aspectReferenceCount;
  3804. const VkInputAttachmentAspectReference* pAspectReferences;
  3805. } VkRenderPassInputAttachmentAspectCreateInfo;
  3806. typedef struct VkImageViewUsageCreateInfo {
  3807. VkStructureType sType;
  3808. const void* pNext;
  3809. VkImageUsageFlags usage;
  3810. } VkImageViewUsageCreateInfo;
  3811. typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
  3812. VkStructureType sType;
  3813. const void* pNext;
  3814. VkTessellationDomainOrigin domainOrigin;
  3815. } VkPipelineTessellationDomainOriginStateCreateInfo;
  3816. typedef struct VkRenderPassMultiviewCreateInfo {
  3817. VkStructureType sType;
  3818. const void* pNext;
  3819. uint32_t subpassCount;
  3820. const uint32_t* pViewMasks;
  3821. uint32_t dependencyCount;
  3822. const int32_t* pViewOffsets;
  3823. uint32_t correlationMaskCount;
  3824. const uint32_t* pCorrelationMasks;
  3825. } VkRenderPassMultiviewCreateInfo;
  3826. typedef struct VkPhysicalDeviceMultiviewFeatures {
  3827. VkStructureType sType;
  3828. void* pNext;
  3829. VkBool32 multiview;
  3830. VkBool32 multiviewGeometryShader;
  3831. VkBool32 multiviewTessellationShader;
  3832. } VkPhysicalDeviceMultiviewFeatures;
  3833. typedef struct VkPhysicalDeviceMultiviewProperties {
  3834. VkStructureType sType;
  3835. void* pNext;
  3836. uint32_t maxMultiviewViewCount;
  3837. uint32_t maxMultiviewInstanceIndex;
  3838. } VkPhysicalDeviceMultiviewProperties;
  3839. typedef struct VkPhysicalDeviceVariablePointerFeatures {
  3840. VkStructureType sType;
  3841. void* pNext;
  3842. VkBool32 variablePointersStorageBuffer;
  3843. VkBool32 variablePointers;
  3844. } VkPhysicalDeviceVariablePointerFeatures;
  3845. typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
  3846. VkStructureType sType;
  3847. void* pNext;
  3848. VkBool32 protectedMemory;
  3849. } VkPhysicalDeviceProtectedMemoryFeatures;
  3850. typedef struct VkPhysicalDeviceProtectedMemoryProperties {
  3851. VkStructureType sType;
  3852. void* pNext;
  3853. VkBool32 protectedNoFault;
  3854. } VkPhysicalDeviceProtectedMemoryProperties;
  3855. typedef struct VkDeviceQueueInfo2 {
  3856. VkStructureType sType;
  3857. const void* pNext;
  3858. VkDeviceQueueCreateFlags flags;
  3859. uint32_t queueFamilyIndex;
  3860. uint32_t queueIndex;
  3861. } VkDeviceQueueInfo2;
  3862. typedef struct VkProtectedSubmitInfo {
  3863. VkStructureType sType;
  3864. const void* pNext;
  3865. VkBool32 protectedSubmit;
  3866. } VkProtectedSubmitInfo;
  3867. typedef struct VkSamplerYcbcrConversionCreateInfo {
  3868. VkStructureType sType;
  3869. const void* pNext;
  3870. VkFormat format;
  3871. VkSamplerYcbcrModelConversion ycbcrModel;
  3872. VkSamplerYcbcrRange ycbcrRange;
  3873. VkComponentMapping components;
  3874. VkChromaLocation xChromaOffset;
  3875. VkChromaLocation yChromaOffset;
  3876. VkFilter chromaFilter;
  3877. VkBool32 forceExplicitReconstruction;
  3878. } VkSamplerYcbcrConversionCreateInfo;
  3879. typedef struct VkSamplerYcbcrConversionInfo {
  3880. VkStructureType sType;
  3881. const void* pNext;
  3882. VkSamplerYcbcrConversion conversion;
  3883. } VkSamplerYcbcrConversionInfo;
  3884. typedef struct VkBindImagePlaneMemoryInfo {
  3885. VkStructureType sType;
  3886. const void* pNext;
  3887. VkImageAspectFlagBits planeAspect;
  3888. } VkBindImagePlaneMemoryInfo;
  3889. typedef struct VkImagePlaneMemoryRequirementsInfo {
  3890. VkStructureType sType;
  3891. const void* pNext;
  3892. VkImageAspectFlagBits planeAspect;
  3893. } VkImagePlaneMemoryRequirementsInfo;
  3894. typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
  3895. VkStructureType sType;
  3896. void* pNext;
  3897. VkBool32 samplerYcbcrConversion;
  3898. } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
  3899. typedef struct VkSamplerYcbcrConversionImageFormatProperties {
  3900. VkStructureType sType;
  3901. void* pNext;
  3902. uint32_t combinedImageSamplerDescriptorCount;
  3903. } VkSamplerYcbcrConversionImageFormatProperties;
  3904. typedef struct VkDescriptorUpdateTemplateEntry {
  3905. uint32_t dstBinding;
  3906. uint32_t dstArrayElement;
  3907. uint32_t descriptorCount;
  3908. VkDescriptorType descriptorType;
  3909. size_t offset;
  3910. size_t stride;
  3911. } VkDescriptorUpdateTemplateEntry;
  3912. typedef struct VkDescriptorUpdateTemplateCreateInfo {
  3913. VkStructureType sType;
  3914. void* pNext;
  3915. VkDescriptorUpdateTemplateCreateFlags flags;
  3916. uint32_t descriptorUpdateEntryCount;
  3917. const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
  3918. VkDescriptorUpdateTemplateType templateType;
  3919. VkDescriptorSetLayout descriptorSetLayout;
  3920. VkPipelineBindPoint pipelineBindPoint;
  3921. VkPipelineLayout pipelineLayout;
  3922. uint32_t set;
  3923. } VkDescriptorUpdateTemplateCreateInfo;
  3924. typedef struct VkExternalMemoryProperties {
  3925. VkExternalMemoryFeatureFlags externalMemoryFeatures;
  3926. VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
  3927. VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
  3928. } VkExternalMemoryProperties;
  3929. typedef struct VkPhysicalDeviceExternalImageFormatInfo {
  3930. VkStructureType sType;
  3931. const void* pNext;
  3932. VkExternalMemoryHandleTypeFlagBits handleType;
  3933. } VkPhysicalDeviceExternalImageFormatInfo;
  3934. typedef struct VkExternalImageFormatProperties {
  3935. VkStructureType sType;
  3936. void* pNext;
  3937. VkExternalMemoryProperties externalMemoryProperties;
  3938. } VkExternalImageFormatProperties;
  3939. typedef struct VkPhysicalDeviceExternalBufferInfo {
  3940. VkStructureType sType;
  3941. const void* pNext;
  3942. VkBufferCreateFlags flags;
  3943. VkBufferUsageFlags usage;
  3944. VkExternalMemoryHandleTypeFlagBits handleType;
  3945. } VkPhysicalDeviceExternalBufferInfo;
  3946. typedef struct VkExternalBufferProperties {
  3947. VkStructureType sType;
  3948. void* pNext;
  3949. VkExternalMemoryProperties externalMemoryProperties;
  3950. } VkExternalBufferProperties;
  3951. typedef struct VkPhysicalDeviceIDProperties {
  3952. VkStructureType sType;
  3953. void* pNext;
  3954. uint8_t deviceUUID[VK_UUID_SIZE];
  3955. uint8_t driverUUID[VK_UUID_SIZE];
  3956. uint8_t deviceLUID[VK_LUID_SIZE];
  3957. uint32_t deviceNodeMask;
  3958. VkBool32 deviceLUIDValid;
  3959. } VkPhysicalDeviceIDProperties;
  3960. typedef struct VkExternalMemoryImageCreateInfo {
  3961. VkStructureType sType;
  3962. const void* pNext;
  3963. VkExternalMemoryHandleTypeFlags handleTypes;
  3964. } VkExternalMemoryImageCreateInfo;
  3965. typedef struct VkExternalMemoryBufferCreateInfo {
  3966. VkStructureType sType;
  3967. const void* pNext;
  3968. VkExternalMemoryHandleTypeFlags handleTypes;
  3969. } VkExternalMemoryBufferCreateInfo;
  3970. typedef struct VkExportMemoryAllocateInfo {
  3971. VkStructureType sType;
  3972. const void* pNext;
  3973. VkExternalMemoryHandleTypeFlags handleTypes;
  3974. } VkExportMemoryAllocateInfo;
  3975. typedef struct VkPhysicalDeviceExternalFenceInfo {
  3976. VkStructureType sType;
  3977. const void* pNext;
  3978. VkExternalFenceHandleTypeFlagBits handleType;
  3979. } VkPhysicalDeviceExternalFenceInfo;
  3980. typedef struct VkExternalFenceProperties {
  3981. VkStructureType sType;
  3982. void* pNext;
  3983. VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
  3984. VkExternalFenceHandleTypeFlags compatibleHandleTypes;
  3985. VkExternalFenceFeatureFlags externalFenceFeatures;
  3986. } VkExternalFenceProperties;
  3987. typedef struct VkExportFenceCreateInfo {
  3988. VkStructureType sType;
  3989. const void* pNext;
  3990. VkExternalFenceHandleTypeFlags handleTypes;
  3991. } VkExportFenceCreateInfo;
  3992. typedef struct VkExportSemaphoreCreateInfo {
  3993. VkStructureType sType;
  3994. const void* pNext;
  3995. VkExternalSemaphoreHandleTypeFlags handleTypes;
  3996. } VkExportSemaphoreCreateInfo;
  3997. typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
  3998. VkStructureType sType;
  3999. const void* pNext;
  4000. VkExternalSemaphoreHandleTypeFlagBits handleType;
  4001. } VkPhysicalDeviceExternalSemaphoreInfo;
  4002. typedef struct VkExternalSemaphoreProperties {
  4003. VkStructureType sType;
  4004. void* pNext;
  4005. VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
  4006. VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
  4007. VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
  4008. } VkExternalSemaphoreProperties;
  4009. typedef struct VkPhysicalDeviceMaintenance3Properties {
  4010. VkStructureType sType;
  4011. void* pNext;
  4012. uint32_t maxPerSetDescriptors;
  4013. VkDeviceSize maxMemoryAllocationSize;
  4014. } VkPhysicalDeviceMaintenance3Properties;
  4015. typedef struct VkDescriptorSetLayoutSupport {
  4016. VkStructureType sType;
  4017. void* pNext;
  4018. VkBool32 supported;
  4019. } VkDescriptorSetLayoutSupport;
  4020. typedef struct VkPhysicalDeviceShaderDrawParameterFeatures {
  4021. VkStructureType sType;
  4022. void* pNext;
  4023. VkBool32 shaderDrawParameters;
  4024. } VkPhysicalDeviceShaderDrawParameterFeatures;
  4025. typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
  4026. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
  4027. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
  4028. typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  4029. typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
  4030. 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);
  4031. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  4032. typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  4033. typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  4034. typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  4035. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
  4036. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
  4037. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
  4038. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
  4039. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
  4040. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  4041. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
  4042. typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
  4043. typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
  4044. typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
  4045. typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
  4046. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  4047. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
  4048. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
  4049. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
  4050. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
  4051. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  4052. typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
  4053. #ifndef VK_NO_PROTOTYPES
  4054. VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
  4055. uint32_t* pApiVersion);
  4056. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
  4057. VkDevice device,
  4058. uint32_t bindInfoCount,
  4059. const VkBindBufferMemoryInfo* pBindInfos);
  4060. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
  4061. VkDevice device,
  4062. uint32_t bindInfoCount,
  4063. const VkBindImageMemoryInfo* pBindInfos);
  4064. VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
  4065. VkDevice device,
  4066. uint32_t heapIndex,
  4067. uint32_t localDeviceIndex,
  4068. uint32_t remoteDeviceIndex,
  4069. VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  4070. VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
  4071. VkCommandBuffer commandBuffer,
  4072. uint32_t deviceMask);
  4073. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
  4074. VkCommandBuffer commandBuffer,
  4075. uint32_t baseGroupX,
  4076. uint32_t baseGroupY,
  4077. uint32_t baseGroupZ,
  4078. uint32_t groupCountX,
  4079. uint32_t groupCountY,
  4080. uint32_t groupCountZ);
  4081. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
  4082. VkInstance instance,
  4083. uint32_t* pPhysicalDeviceGroupCount,
  4084. VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  4085. VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
  4086. VkDevice device,
  4087. const VkImageMemoryRequirementsInfo2* pInfo,
  4088. VkMemoryRequirements2* pMemoryRequirements);
  4089. VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
  4090. VkDevice device,
  4091. const VkBufferMemoryRequirementsInfo2* pInfo,
  4092. VkMemoryRequirements2* pMemoryRequirements);
  4093. VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
  4094. VkDevice device,
  4095. const VkImageSparseMemoryRequirementsInfo2* pInfo,
  4096. uint32_t* pSparseMemoryRequirementCount,
  4097. VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  4098. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
  4099. VkPhysicalDevice physicalDevice,
  4100. VkPhysicalDeviceFeatures2* pFeatures);
  4101. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
  4102. VkPhysicalDevice physicalDevice,
  4103. VkPhysicalDeviceProperties2* pProperties);
  4104. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
  4105. VkPhysicalDevice physicalDevice,
  4106. VkFormat format,
  4107. VkFormatProperties2* pFormatProperties);
  4108. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
  4109. VkPhysicalDevice physicalDevice,
  4110. const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
  4111. VkImageFormatProperties2* pImageFormatProperties);
  4112. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
  4113. VkPhysicalDevice physicalDevice,
  4114. uint32_t* pQueueFamilyPropertyCount,
  4115. VkQueueFamilyProperties2* pQueueFamilyProperties);
  4116. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
  4117. VkPhysicalDevice physicalDevice,
  4118. VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  4119. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
  4120. VkPhysicalDevice physicalDevice,
  4121. const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
  4122. uint32_t* pPropertyCount,
  4123. VkSparseImageFormatProperties2* pProperties);
  4124. VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
  4125. VkDevice device,
  4126. VkCommandPool commandPool,
  4127. VkCommandPoolTrimFlags flags);
  4128. VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
  4129. VkDevice device,
  4130. const VkDeviceQueueInfo2* pQueueInfo,
  4131. VkQueue* pQueue);
  4132. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
  4133. VkDevice device,
  4134. const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
  4135. const VkAllocationCallbacks* pAllocator,
  4136. VkSamplerYcbcrConversion* pYcbcrConversion);
  4137. VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
  4138. VkDevice device,
  4139. VkSamplerYcbcrConversion ycbcrConversion,
  4140. const VkAllocationCallbacks* pAllocator);
  4141. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
  4142. VkDevice device,
  4143. const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
  4144. const VkAllocationCallbacks* pAllocator,
  4145. VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  4146. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
  4147. VkDevice device,
  4148. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  4149. const VkAllocationCallbacks* pAllocator);
  4150. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
  4151. VkDevice device,
  4152. VkDescriptorSet descriptorSet,
  4153. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  4154. const void* pData);
  4155. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
  4156. VkPhysicalDevice physicalDevice,
  4157. const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
  4158. VkExternalBufferProperties* pExternalBufferProperties);
  4159. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
  4160. VkPhysicalDevice physicalDevice,
  4161. const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
  4162. VkExternalFenceProperties* pExternalFenceProperties);
  4163. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
  4164. VkPhysicalDevice physicalDevice,
  4165. const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
  4166. VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  4167. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
  4168. VkDevice device,
  4169. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  4170. VkDescriptorSetLayoutSupport* pSupport);
  4171. #endif
  4172. #define VK_KHR_surface 1
  4173. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
  4174. #define VK_KHR_SURFACE_SPEC_VERSION 25
  4175. #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
  4176. typedef enum VkColorSpaceKHR {
  4177. VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
  4178. VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
  4179. VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
  4180. VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
  4181. VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
  4182. VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
  4183. VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
  4184. VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
  4185. VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
  4186. VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
  4187. VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
  4188. VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
  4189. VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
  4190. VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
  4191. VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
  4192. VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
  4193. VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
  4194. VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
  4195. VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
  4196. VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
  4197. } VkColorSpaceKHR;
  4198. typedef enum VkPresentModeKHR {
  4199. VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
  4200. VK_PRESENT_MODE_MAILBOX_KHR = 1,
  4201. VK_PRESENT_MODE_FIFO_KHR = 2,
  4202. VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
  4203. VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
  4204. VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
  4205. VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
  4206. VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
  4207. VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
  4208. VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
  4209. } VkPresentModeKHR;
  4210. typedef enum VkSurfaceTransformFlagBitsKHR {
  4211. VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
  4212. VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
  4213. VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
  4214. VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
  4215. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
  4216. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
  4217. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
  4218. VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
  4219. VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
  4220. VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  4221. } VkSurfaceTransformFlagBitsKHR;
  4222. typedef VkFlags VkSurfaceTransformFlagsKHR;
  4223. typedef enum VkCompositeAlphaFlagBitsKHR {
  4224. VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
  4225. VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
  4226. VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
  4227. VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
  4228. VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  4229. } VkCompositeAlphaFlagBitsKHR;
  4230. typedef VkFlags VkCompositeAlphaFlagsKHR;
  4231. typedef struct VkSurfaceCapabilitiesKHR {
  4232. uint32_t minImageCount;
  4233. uint32_t maxImageCount;
  4234. VkExtent2D currentExtent;
  4235. VkExtent2D minImageExtent;
  4236. VkExtent2D maxImageExtent;
  4237. uint32_t maxImageArrayLayers;
  4238. VkSurfaceTransformFlagsKHR supportedTransforms;
  4239. VkSurfaceTransformFlagBitsKHR currentTransform;
  4240. VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
  4241. VkImageUsageFlags supportedUsageFlags;
  4242. } VkSurfaceCapabilitiesKHR;
  4243. typedef struct VkSurfaceFormatKHR {
  4244. VkFormat format;
  4245. VkColorSpaceKHR colorSpace;
  4246. } VkSurfaceFormatKHR;
  4247. typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
  4248. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
  4249. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
  4250. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
  4251. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
  4252. #ifndef VK_NO_PROTOTYPES
  4253. VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
  4254. VkInstance instance,
  4255. VkSurfaceKHR surface,
  4256. const VkAllocationCallbacks* pAllocator);
  4257. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
  4258. VkPhysicalDevice physicalDevice,
  4259. uint32_t queueFamilyIndex,
  4260. VkSurfaceKHR surface,
  4261. VkBool32* pSupported);
  4262. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
  4263. VkPhysicalDevice physicalDevice,
  4264. VkSurfaceKHR surface,
  4265. VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
  4266. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
  4267. VkPhysicalDevice physicalDevice,
  4268. VkSurfaceKHR surface,
  4269. uint32_t* pSurfaceFormatCount,
  4270. VkSurfaceFormatKHR* pSurfaceFormats);
  4271. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
  4272. VkPhysicalDevice physicalDevice,
  4273. VkSurfaceKHR surface,
  4274. uint32_t* pPresentModeCount,
  4275. VkPresentModeKHR* pPresentModes);
  4276. #endif
  4277. #define VK_KHR_swapchain 1
  4278. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
  4279. #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
  4280. #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
  4281. typedef enum VkSwapchainCreateFlagBitsKHR {
  4282. VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
  4283. VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
  4284. VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  4285. } VkSwapchainCreateFlagBitsKHR;
  4286. typedef VkFlags VkSwapchainCreateFlagsKHR;
  4287. typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
  4288. VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
  4289. VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
  4290. VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
  4291. VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
  4292. VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  4293. } VkDeviceGroupPresentModeFlagBitsKHR;
  4294. typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
  4295. typedef struct VkSwapchainCreateInfoKHR {
  4296. VkStructureType sType;
  4297. const void* pNext;
  4298. VkSwapchainCreateFlagsKHR flags;
  4299. VkSurfaceKHR surface;
  4300. uint32_t minImageCount;
  4301. VkFormat imageFormat;
  4302. VkColorSpaceKHR imageColorSpace;
  4303. VkExtent2D imageExtent;
  4304. uint32_t imageArrayLayers;
  4305. VkImageUsageFlags imageUsage;
  4306. VkSharingMode imageSharingMode;
  4307. uint32_t queueFamilyIndexCount;
  4308. const uint32_t* pQueueFamilyIndices;
  4309. VkSurfaceTransformFlagBitsKHR preTransform;
  4310. VkCompositeAlphaFlagBitsKHR compositeAlpha;
  4311. VkPresentModeKHR presentMode;
  4312. VkBool32 clipped;
  4313. VkSwapchainKHR oldSwapchain;
  4314. } VkSwapchainCreateInfoKHR;
  4315. typedef struct VkPresentInfoKHR {
  4316. VkStructureType sType;
  4317. const void* pNext;
  4318. uint32_t waitSemaphoreCount;
  4319. const VkSemaphore* pWaitSemaphores;
  4320. uint32_t swapchainCount;
  4321. const VkSwapchainKHR* pSwapchains;
  4322. const uint32_t* pImageIndices;
  4323. VkResult* pResults;
  4324. } VkPresentInfoKHR;
  4325. typedef struct VkImageSwapchainCreateInfoKHR {
  4326. VkStructureType sType;
  4327. const void* pNext;
  4328. VkSwapchainKHR swapchain;
  4329. } VkImageSwapchainCreateInfoKHR;
  4330. typedef struct VkBindImageMemorySwapchainInfoKHR {
  4331. VkStructureType sType;
  4332. const void* pNext;
  4333. VkSwapchainKHR swapchain;
  4334. uint32_t imageIndex;
  4335. } VkBindImageMemorySwapchainInfoKHR;
  4336. typedef struct VkAcquireNextImageInfoKHR {
  4337. VkStructureType sType;
  4338. const void* pNext;
  4339. VkSwapchainKHR swapchain;
  4340. uint64_t timeout;
  4341. VkSemaphore semaphore;
  4342. VkFence fence;
  4343. uint32_t deviceMask;
  4344. } VkAcquireNextImageInfoKHR;
  4345. typedef struct VkDeviceGroupPresentCapabilitiesKHR {
  4346. VkStructureType sType;
  4347. const void* pNext;
  4348. uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
  4349. VkDeviceGroupPresentModeFlagsKHR modes;
  4350. } VkDeviceGroupPresentCapabilitiesKHR;
  4351. typedef struct VkDeviceGroupPresentInfoKHR {
  4352. VkStructureType sType;
  4353. const void* pNext;
  4354. uint32_t swapchainCount;
  4355. const uint32_t* pDeviceMasks;
  4356. VkDeviceGroupPresentModeFlagBitsKHR mode;
  4357. } VkDeviceGroupPresentInfoKHR;
  4358. typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
  4359. VkStructureType sType;
  4360. const void* pNext;
  4361. VkDeviceGroupPresentModeFlagsKHR modes;
  4362. } VkDeviceGroupSwapchainCreateInfoKHR;
  4363. typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
  4364. typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
  4365. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
  4366. typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
  4367. typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
  4368. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
  4369. typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
  4370. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
  4371. typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
  4372. #ifndef VK_NO_PROTOTYPES
  4373. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
  4374. VkDevice device,
  4375. const VkSwapchainCreateInfoKHR* pCreateInfo,
  4376. const VkAllocationCallbacks* pAllocator,
  4377. VkSwapchainKHR* pSwapchain);
  4378. VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
  4379. VkDevice device,
  4380. VkSwapchainKHR swapchain,
  4381. const VkAllocationCallbacks* pAllocator);
  4382. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
  4383. VkDevice device,
  4384. VkSwapchainKHR swapchain,
  4385. uint32_t* pSwapchainImageCount,
  4386. VkImage* pSwapchainImages);
  4387. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
  4388. VkDevice device,
  4389. VkSwapchainKHR swapchain,
  4390. uint64_t timeout,
  4391. VkSemaphore semaphore,
  4392. VkFence fence,
  4393. uint32_t* pImageIndex);
  4394. VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
  4395. VkQueue queue,
  4396. const VkPresentInfoKHR* pPresentInfo);
  4397. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
  4398. VkDevice device,
  4399. VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
  4400. VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
  4401. VkDevice device,
  4402. VkSurfaceKHR surface,
  4403. VkDeviceGroupPresentModeFlagsKHR* pModes);
  4404. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
  4405. VkPhysicalDevice physicalDevice,
  4406. VkSurfaceKHR surface,
  4407. uint32_t* pRectCount,
  4408. VkRect2D* pRects);
  4409. VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
  4410. VkDevice device,
  4411. const VkAcquireNextImageInfoKHR* pAcquireInfo,
  4412. uint32_t* pImageIndex);
  4413. #endif
  4414. #define VK_KHR_display 1
  4415. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
  4416. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
  4417. #define VK_KHR_DISPLAY_SPEC_VERSION 21
  4418. #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
  4419. typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
  4420. VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
  4421. VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
  4422. VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
  4423. VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
  4424. VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
  4425. } VkDisplayPlaneAlphaFlagBitsKHR;
  4426. typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
  4427. typedef VkFlags VkDisplayModeCreateFlagsKHR;
  4428. typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
  4429. typedef struct VkDisplayPropertiesKHR {
  4430. VkDisplayKHR display;
  4431. const char* displayName;
  4432. VkExtent2D physicalDimensions;
  4433. VkExtent2D physicalResolution;
  4434. VkSurfaceTransformFlagsKHR supportedTransforms;
  4435. VkBool32 planeReorderPossible;
  4436. VkBool32 persistentContent;
  4437. } VkDisplayPropertiesKHR;
  4438. typedef struct VkDisplayModeParametersKHR {
  4439. VkExtent2D visibleRegion;
  4440. uint32_t refreshRate;
  4441. } VkDisplayModeParametersKHR;
  4442. typedef struct VkDisplayModePropertiesKHR {
  4443. VkDisplayModeKHR displayMode;
  4444. VkDisplayModeParametersKHR parameters;
  4445. } VkDisplayModePropertiesKHR;
  4446. typedef struct VkDisplayModeCreateInfoKHR {
  4447. VkStructureType sType;
  4448. const void* pNext;
  4449. VkDisplayModeCreateFlagsKHR flags;
  4450. VkDisplayModeParametersKHR parameters;
  4451. } VkDisplayModeCreateInfoKHR;
  4452. typedef struct VkDisplayPlaneCapabilitiesKHR {
  4453. VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
  4454. VkOffset2D minSrcPosition;
  4455. VkOffset2D maxSrcPosition;
  4456. VkExtent2D minSrcExtent;
  4457. VkExtent2D maxSrcExtent;
  4458. VkOffset2D minDstPosition;
  4459. VkOffset2D maxDstPosition;
  4460. VkExtent2D minDstExtent;
  4461. VkExtent2D maxDstExtent;
  4462. } VkDisplayPlaneCapabilitiesKHR;
  4463. typedef struct VkDisplayPlanePropertiesKHR {
  4464. VkDisplayKHR currentDisplay;
  4465. uint32_t currentStackIndex;
  4466. } VkDisplayPlanePropertiesKHR;
  4467. typedef struct VkDisplaySurfaceCreateInfoKHR {
  4468. VkStructureType sType;
  4469. const void* pNext;
  4470. VkDisplaySurfaceCreateFlagsKHR flags;
  4471. VkDisplayModeKHR displayMode;
  4472. uint32_t planeIndex;
  4473. uint32_t planeStackIndex;
  4474. VkSurfaceTransformFlagBitsKHR transform;
  4475. float globalAlpha;
  4476. VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
  4477. VkExtent2D imageExtent;
  4478. } VkDisplaySurfaceCreateInfoKHR;
  4479. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
  4480. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
  4481. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
  4482. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
  4483. typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
  4484. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
  4485. typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  4486. #ifndef VK_NO_PROTOTYPES
  4487. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
  4488. VkPhysicalDevice physicalDevice,
  4489. uint32_t* pPropertyCount,
  4490. VkDisplayPropertiesKHR* pProperties);
  4491. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
  4492. VkPhysicalDevice physicalDevice,
  4493. uint32_t* pPropertyCount,
  4494. VkDisplayPlanePropertiesKHR* pProperties);
  4495. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
  4496. VkPhysicalDevice physicalDevice,
  4497. uint32_t planeIndex,
  4498. uint32_t* pDisplayCount,
  4499. VkDisplayKHR* pDisplays);
  4500. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
  4501. VkPhysicalDevice physicalDevice,
  4502. VkDisplayKHR display,
  4503. uint32_t* pPropertyCount,
  4504. VkDisplayModePropertiesKHR* pProperties);
  4505. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
  4506. VkPhysicalDevice physicalDevice,
  4507. VkDisplayKHR display,
  4508. const VkDisplayModeCreateInfoKHR* pCreateInfo,
  4509. const VkAllocationCallbacks* pAllocator,
  4510. VkDisplayModeKHR* pMode);
  4511. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
  4512. VkPhysicalDevice physicalDevice,
  4513. VkDisplayModeKHR mode,
  4514. uint32_t planeIndex,
  4515. VkDisplayPlaneCapabilitiesKHR* pCapabilities);
  4516. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
  4517. VkInstance instance,
  4518. const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
  4519. const VkAllocationCallbacks* pAllocator,
  4520. VkSurfaceKHR* pSurface);
  4521. #endif
  4522. #define VK_KHR_display_swapchain 1
  4523. #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
  4524. #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
  4525. typedef struct VkDisplayPresentInfoKHR {
  4526. VkStructureType sType;
  4527. const void* pNext;
  4528. VkRect2D srcRect;
  4529. VkRect2D dstRect;
  4530. VkBool32 persistent;
  4531. } VkDisplayPresentInfoKHR;
  4532. typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
  4533. #ifndef VK_NO_PROTOTYPES
  4534. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
  4535. VkDevice device,
  4536. uint32_t swapchainCount,
  4537. const VkSwapchainCreateInfoKHR* pCreateInfos,
  4538. const VkAllocationCallbacks* pAllocator,
  4539. VkSwapchainKHR* pSwapchains);
  4540. #endif
  4541. #define VK_KHR_sampler_mirror_clamp_to_edge 1
  4542. #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
  4543. #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
  4544. #define VK_KHR_multiview 1
  4545. #define VK_KHR_MULTIVIEW_SPEC_VERSION 1
  4546. #define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
  4547. typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
  4548. typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
  4549. typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
  4550. #define VK_KHR_get_physical_device_properties2 1
  4551. #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
  4552. #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
  4553. typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
  4554. typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
  4555. typedef VkFormatProperties2 VkFormatProperties2KHR;
  4556. typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
  4557. typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
  4558. typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
  4559. typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
  4560. typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
  4561. typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
  4562. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
  4563. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
  4564. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
  4565. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
  4566. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
  4567. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  4568. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
  4569. #ifndef VK_NO_PROTOTYPES
  4570. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
  4571. VkPhysicalDevice physicalDevice,
  4572. VkPhysicalDeviceFeatures2* pFeatures);
  4573. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
  4574. VkPhysicalDevice physicalDevice,
  4575. VkPhysicalDeviceProperties2* pProperties);
  4576. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
  4577. VkPhysicalDevice physicalDevice,
  4578. VkFormat format,
  4579. VkFormatProperties2* pFormatProperties);
  4580. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
  4581. VkPhysicalDevice physicalDevice,
  4582. const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
  4583. VkImageFormatProperties2* pImageFormatProperties);
  4584. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
  4585. VkPhysicalDevice physicalDevice,
  4586. uint32_t* pQueueFamilyPropertyCount,
  4587. VkQueueFamilyProperties2* pQueueFamilyProperties);
  4588. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
  4589. VkPhysicalDevice physicalDevice,
  4590. VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
  4591. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
  4592. VkPhysicalDevice physicalDevice,
  4593. const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
  4594. uint32_t* pPropertyCount,
  4595. VkSparseImageFormatProperties2* pProperties);
  4596. #endif
  4597. #define VK_KHR_device_group 1
  4598. #define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
  4599. #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
  4600. typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
  4601. typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
  4602. typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
  4603. typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
  4604. typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
  4605. typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
  4606. typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
  4607. typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
  4608. typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
  4609. typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
  4610. typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
  4611. typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  4612. typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
  4613. 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);
  4614. #ifndef VK_NO_PROTOTYPES
  4615. VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
  4616. VkDevice device,
  4617. uint32_t heapIndex,
  4618. uint32_t localDeviceIndex,
  4619. uint32_t remoteDeviceIndex,
  4620. VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
  4621. VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
  4622. VkCommandBuffer commandBuffer,
  4623. uint32_t deviceMask);
  4624. VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
  4625. VkCommandBuffer commandBuffer,
  4626. uint32_t baseGroupX,
  4627. uint32_t baseGroupY,
  4628. uint32_t baseGroupZ,
  4629. uint32_t groupCountX,
  4630. uint32_t groupCountY,
  4631. uint32_t groupCountZ);
  4632. #endif
  4633. #define VK_KHR_shader_draw_parameters 1
  4634. #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
  4635. #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
  4636. #define VK_KHR_maintenance1 1
  4637. #define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
  4638. #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
  4639. typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
  4640. typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
  4641. #ifndef VK_NO_PROTOTYPES
  4642. VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
  4643. VkDevice device,
  4644. VkCommandPool commandPool,
  4645. VkCommandPoolTrimFlags flags);
  4646. #endif
  4647. #define VK_KHR_device_group_creation 1
  4648. #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
  4649. #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
  4650. #define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
  4651. typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
  4652. typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
  4653. typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  4654. #ifndef VK_NO_PROTOTYPES
  4655. VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
  4656. VkInstance instance,
  4657. uint32_t* pPhysicalDeviceGroupCount,
  4658. VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
  4659. #endif
  4660. #define VK_KHR_external_memory_capabilities 1
  4661. #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
  4662. #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
  4663. #define VK_LUID_SIZE_KHR VK_LUID_SIZE
  4664. typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
  4665. typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
  4666. typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
  4667. typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
  4668. typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
  4669. typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
  4670. typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
  4671. typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
  4672. typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
  4673. typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
  4674. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
  4675. #ifndef VK_NO_PROTOTYPES
  4676. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
  4677. VkPhysicalDevice physicalDevice,
  4678. const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
  4679. VkExternalBufferProperties* pExternalBufferProperties);
  4680. #endif
  4681. #define VK_KHR_external_memory 1
  4682. #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
  4683. #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
  4684. #define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
  4685. typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
  4686. typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
  4687. typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
  4688. #define VK_KHR_external_memory_fd 1
  4689. #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
  4690. #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
  4691. typedef struct VkImportMemoryFdInfoKHR {
  4692. VkStructureType sType;
  4693. const void* pNext;
  4694. VkExternalMemoryHandleTypeFlagBits handleType;
  4695. int fd;
  4696. } VkImportMemoryFdInfoKHR;
  4697. typedef struct VkMemoryFdPropertiesKHR {
  4698. VkStructureType sType;
  4699. void* pNext;
  4700. uint32_t memoryTypeBits;
  4701. } VkMemoryFdPropertiesKHR;
  4702. typedef struct VkMemoryGetFdInfoKHR {
  4703. VkStructureType sType;
  4704. const void* pNext;
  4705. VkDeviceMemory memory;
  4706. VkExternalMemoryHandleTypeFlagBits handleType;
  4707. } VkMemoryGetFdInfoKHR;
  4708. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
  4709. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
  4710. #ifndef VK_NO_PROTOTYPES
  4711. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
  4712. VkDevice device,
  4713. const VkMemoryGetFdInfoKHR* pGetFdInfo,
  4714. int* pFd);
  4715. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
  4716. VkDevice device,
  4717. VkExternalMemoryHandleTypeFlagBits handleType,
  4718. int fd,
  4719. VkMemoryFdPropertiesKHR* pMemoryFdProperties);
  4720. #endif
  4721. #define VK_KHR_external_semaphore_capabilities 1
  4722. #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
  4723. #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
  4724. typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
  4725. typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
  4726. typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
  4727. typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
  4728. typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
  4729. typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
  4730. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  4731. #ifndef VK_NO_PROTOTYPES
  4732. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
  4733. VkPhysicalDevice physicalDevice,
  4734. const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
  4735. VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
  4736. #endif
  4737. #define VK_KHR_external_semaphore 1
  4738. #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
  4739. #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
  4740. typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
  4741. typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
  4742. typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
  4743. #define VK_KHR_external_semaphore_fd 1
  4744. #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
  4745. #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
  4746. typedef struct VkImportSemaphoreFdInfoKHR {
  4747. VkStructureType sType;
  4748. const void* pNext;
  4749. VkSemaphore semaphore;
  4750. VkSemaphoreImportFlags flags;
  4751. VkExternalSemaphoreHandleTypeFlagBits handleType;
  4752. int fd;
  4753. } VkImportSemaphoreFdInfoKHR;
  4754. typedef struct VkSemaphoreGetFdInfoKHR {
  4755. VkStructureType sType;
  4756. const void* pNext;
  4757. VkSemaphore semaphore;
  4758. VkExternalSemaphoreHandleTypeFlagBits handleType;
  4759. } VkSemaphoreGetFdInfoKHR;
  4760. typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
  4761. typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
  4762. #ifndef VK_NO_PROTOTYPES
  4763. VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
  4764. VkDevice device,
  4765. const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
  4766. VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
  4767. VkDevice device,
  4768. const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
  4769. int* pFd);
  4770. #endif
  4771. #define VK_KHR_push_descriptor 1
  4772. #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
  4773. #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
  4774. typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
  4775. VkStructureType sType;
  4776. void* pNext;
  4777. uint32_t maxPushDescriptors;
  4778. } VkPhysicalDevicePushDescriptorPropertiesKHR;
  4779. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
  4780. typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
  4781. #ifndef VK_NO_PROTOTYPES
  4782. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
  4783. VkCommandBuffer commandBuffer,
  4784. VkPipelineBindPoint pipelineBindPoint,
  4785. VkPipelineLayout layout,
  4786. uint32_t set,
  4787. uint32_t descriptorWriteCount,
  4788. const VkWriteDescriptorSet* pDescriptorWrites);
  4789. VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
  4790. VkCommandBuffer commandBuffer,
  4791. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  4792. VkPipelineLayout layout,
  4793. uint32_t set,
  4794. const void* pData);
  4795. #endif
  4796. #define VK_KHR_16bit_storage 1
  4797. #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
  4798. #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
  4799. typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
  4800. #define VK_KHR_incremental_present 1
  4801. #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
  4802. #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
  4803. typedef struct VkRectLayerKHR {
  4804. VkOffset2D offset;
  4805. VkExtent2D extent;
  4806. uint32_t layer;
  4807. } VkRectLayerKHR;
  4808. typedef struct VkPresentRegionKHR {
  4809. uint32_t rectangleCount;
  4810. const VkRectLayerKHR* pRectangles;
  4811. } VkPresentRegionKHR;
  4812. typedef struct VkPresentRegionsKHR {
  4813. VkStructureType sType;
  4814. const void* pNext;
  4815. uint32_t swapchainCount;
  4816. const VkPresentRegionKHR* pRegions;
  4817. } VkPresentRegionsKHR;
  4818. #define VK_KHR_descriptor_update_template 1
  4819. typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
  4820. #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
  4821. #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
  4822. typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
  4823. typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
  4824. typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
  4825. typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
  4826. typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  4827. typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
  4828. typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
  4829. #ifndef VK_NO_PROTOTYPES
  4830. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
  4831. VkDevice device,
  4832. const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
  4833. const VkAllocationCallbacks* pAllocator,
  4834. VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
  4835. VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
  4836. VkDevice device,
  4837. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  4838. const VkAllocationCallbacks* pAllocator);
  4839. VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
  4840. VkDevice device,
  4841. VkDescriptorSet descriptorSet,
  4842. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  4843. const void* pData);
  4844. #endif
  4845. #define VK_KHR_create_renderpass2 1
  4846. #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
  4847. #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
  4848. typedef struct VkAttachmentDescription2KHR {
  4849. VkStructureType sType;
  4850. const void* pNext;
  4851. VkAttachmentDescriptionFlags flags;
  4852. VkFormat format;
  4853. VkSampleCountFlagBits samples;
  4854. VkAttachmentLoadOp loadOp;
  4855. VkAttachmentStoreOp storeOp;
  4856. VkAttachmentLoadOp stencilLoadOp;
  4857. VkAttachmentStoreOp stencilStoreOp;
  4858. VkImageLayout initialLayout;
  4859. VkImageLayout finalLayout;
  4860. } VkAttachmentDescription2KHR;
  4861. typedef struct VkAttachmentReference2KHR {
  4862. VkStructureType sType;
  4863. const void* pNext;
  4864. uint32_t attachment;
  4865. VkImageLayout layout;
  4866. VkImageAspectFlags aspectMask;
  4867. } VkAttachmentReference2KHR;
  4868. typedef struct VkSubpassDescription2KHR {
  4869. VkStructureType sType;
  4870. const void* pNext;
  4871. VkSubpassDescriptionFlags flags;
  4872. VkPipelineBindPoint pipelineBindPoint;
  4873. uint32_t viewMask;
  4874. uint32_t inputAttachmentCount;
  4875. const VkAttachmentReference2KHR* pInputAttachments;
  4876. uint32_t colorAttachmentCount;
  4877. const VkAttachmentReference2KHR* pColorAttachments;
  4878. const VkAttachmentReference2KHR* pResolveAttachments;
  4879. const VkAttachmentReference2KHR* pDepthStencilAttachment;
  4880. uint32_t preserveAttachmentCount;
  4881. const uint32_t* pPreserveAttachments;
  4882. } VkSubpassDescription2KHR;
  4883. typedef struct VkSubpassDependency2KHR {
  4884. VkStructureType sType;
  4885. const void* pNext;
  4886. uint32_t srcSubpass;
  4887. uint32_t dstSubpass;
  4888. VkPipelineStageFlags srcStageMask;
  4889. VkPipelineStageFlags dstStageMask;
  4890. VkAccessFlags srcAccessMask;
  4891. VkAccessFlags dstAccessMask;
  4892. VkDependencyFlags dependencyFlags;
  4893. int32_t viewOffset;
  4894. } VkSubpassDependency2KHR;
  4895. typedef struct VkRenderPassCreateInfo2KHR {
  4896. VkStructureType sType;
  4897. const void* pNext;
  4898. VkRenderPassCreateFlags flags;
  4899. uint32_t attachmentCount;
  4900. const VkAttachmentDescription2KHR* pAttachments;
  4901. uint32_t subpassCount;
  4902. const VkSubpassDescription2KHR* pSubpasses;
  4903. uint32_t dependencyCount;
  4904. const VkSubpassDependency2KHR* pDependencies;
  4905. uint32_t correlatedViewMaskCount;
  4906. const uint32_t* pCorrelatedViewMasks;
  4907. } VkRenderPassCreateInfo2KHR;
  4908. typedef struct VkSubpassBeginInfoKHR {
  4909. VkStructureType sType;
  4910. const void* pNext;
  4911. VkSubpassContents contents;
  4912. } VkSubpassBeginInfoKHR;
  4913. typedef struct VkSubpassEndInfoKHR {
  4914. VkStructureType sType;
  4915. const void* pNext;
  4916. } VkSubpassEndInfoKHR;
  4917. typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
  4918. typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo);
  4919. typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo);
  4920. typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo);
  4921. #ifndef VK_NO_PROTOTYPES
  4922. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
  4923. VkDevice device,
  4924. const VkRenderPassCreateInfo2KHR* pCreateInfo,
  4925. const VkAllocationCallbacks* pAllocator,
  4926. VkRenderPass* pRenderPass);
  4927. VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
  4928. VkCommandBuffer commandBuffer,
  4929. const VkRenderPassBeginInfo* pRenderPassBegin,
  4930. const VkSubpassBeginInfoKHR* pSubpassBeginInfo);
  4931. VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
  4932. VkCommandBuffer commandBuffer,
  4933. const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
  4934. const VkSubpassEndInfoKHR* pSubpassEndInfo);
  4935. VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
  4936. VkCommandBuffer commandBuffer,
  4937. const VkSubpassEndInfoKHR* pSubpassEndInfo);
  4938. #endif
  4939. #define VK_KHR_shared_presentable_image 1
  4940. #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
  4941. #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
  4942. typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
  4943. VkStructureType sType;
  4944. void* pNext;
  4945. VkImageUsageFlags sharedPresentSupportedUsageFlags;
  4946. } VkSharedPresentSurfaceCapabilitiesKHR;
  4947. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
  4948. #ifndef VK_NO_PROTOTYPES
  4949. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
  4950. VkDevice device,
  4951. VkSwapchainKHR swapchain);
  4952. #endif
  4953. #define VK_KHR_external_fence_capabilities 1
  4954. #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
  4955. #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
  4956. typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
  4957. typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
  4958. typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
  4959. typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
  4960. typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
  4961. typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
  4962. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
  4963. #ifndef VK_NO_PROTOTYPES
  4964. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
  4965. VkPhysicalDevice physicalDevice,
  4966. const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
  4967. VkExternalFenceProperties* pExternalFenceProperties);
  4968. #endif
  4969. #define VK_KHR_external_fence 1
  4970. #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
  4971. #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
  4972. typedef VkFenceImportFlags VkFenceImportFlagsKHR;
  4973. typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
  4974. typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
  4975. #define VK_KHR_external_fence_fd 1
  4976. #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
  4977. #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
  4978. typedef struct VkImportFenceFdInfoKHR {
  4979. VkStructureType sType;
  4980. const void* pNext;
  4981. VkFence fence;
  4982. VkFenceImportFlags flags;
  4983. VkExternalFenceHandleTypeFlagBits handleType;
  4984. int fd;
  4985. } VkImportFenceFdInfoKHR;
  4986. typedef struct VkFenceGetFdInfoKHR {
  4987. VkStructureType sType;
  4988. const void* pNext;
  4989. VkFence fence;
  4990. VkExternalFenceHandleTypeFlagBits handleType;
  4991. } VkFenceGetFdInfoKHR;
  4992. typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
  4993. typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
  4994. #ifndef VK_NO_PROTOTYPES
  4995. VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
  4996. VkDevice device,
  4997. const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
  4998. VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
  4999. VkDevice device,
  5000. const VkFenceGetFdInfoKHR* pGetFdInfo,
  5001. int* pFd);
  5002. #endif
  5003. #define VK_KHR_maintenance2 1
  5004. #define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
  5005. #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
  5006. typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
  5007. typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
  5008. typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
  5009. typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
  5010. typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
  5011. typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
  5012. typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
  5013. #define VK_KHR_get_surface_capabilities2 1
  5014. #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
  5015. #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
  5016. typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
  5017. VkStructureType sType;
  5018. const void* pNext;
  5019. VkSurfaceKHR surface;
  5020. } VkPhysicalDeviceSurfaceInfo2KHR;
  5021. typedef struct VkSurfaceCapabilities2KHR {
  5022. VkStructureType sType;
  5023. void* pNext;
  5024. VkSurfaceCapabilitiesKHR surfaceCapabilities;
  5025. } VkSurfaceCapabilities2KHR;
  5026. typedef struct VkSurfaceFormat2KHR {
  5027. VkStructureType sType;
  5028. void* pNext;
  5029. VkSurfaceFormatKHR surfaceFormat;
  5030. } VkSurfaceFormat2KHR;
  5031. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
  5032. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
  5033. #ifndef VK_NO_PROTOTYPES
  5034. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
  5035. VkPhysicalDevice physicalDevice,
  5036. const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
  5037. VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
  5038. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
  5039. VkPhysicalDevice physicalDevice,
  5040. const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
  5041. uint32_t* pSurfaceFormatCount,
  5042. VkSurfaceFormat2KHR* pSurfaceFormats);
  5043. #endif
  5044. #define VK_KHR_variable_pointers 1
  5045. #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
  5046. #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
  5047. typedef VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
  5048. #define VK_KHR_get_display_properties2 1
  5049. #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
  5050. #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
  5051. typedef struct VkDisplayProperties2KHR {
  5052. VkStructureType sType;
  5053. void* pNext;
  5054. VkDisplayPropertiesKHR displayProperties;
  5055. } VkDisplayProperties2KHR;
  5056. typedef struct VkDisplayPlaneProperties2KHR {
  5057. VkStructureType sType;
  5058. void* pNext;
  5059. VkDisplayPlanePropertiesKHR displayPlaneProperties;
  5060. } VkDisplayPlaneProperties2KHR;
  5061. typedef struct VkDisplayModeProperties2KHR {
  5062. VkStructureType sType;
  5063. void* pNext;
  5064. VkDisplayModePropertiesKHR displayModeProperties;
  5065. } VkDisplayModeProperties2KHR;
  5066. typedef struct VkDisplayPlaneInfo2KHR {
  5067. VkStructureType sType;
  5068. const void* pNext;
  5069. VkDisplayModeKHR mode;
  5070. uint32_t planeIndex;
  5071. } VkDisplayPlaneInfo2KHR;
  5072. typedef struct VkDisplayPlaneCapabilities2KHR {
  5073. VkStructureType sType;
  5074. void* pNext;
  5075. VkDisplayPlaneCapabilitiesKHR capabilities;
  5076. } VkDisplayPlaneCapabilities2KHR;
  5077. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
  5078. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
  5079. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
  5080. typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
  5081. #ifndef VK_NO_PROTOTYPES
  5082. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
  5083. VkPhysicalDevice physicalDevice,
  5084. uint32_t* pPropertyCount,
  5085. VkDisplayProperties2KHR* pProperties);
  5086. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
  5087. VkPhysicalDevice physicalDevice,
  5088. uint32_t* pPropertyCount,
  5089. VkDisplayPlaneProperties2KHR* pProperties);
  5090. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
  5091. VkPhysicalDevice physicalDevice,
  5092. VkDisplayKHR display,
  5093. uint32_t* pPropertyCount,
  5094. VkDisplayModeProperties2KHR* pProperties);
  5095. VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
  5096. VkPhysicalDevice physicalDevice,
  5097. const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
  5098. VkDisplayPlaneCapabilities2KHR* pCapabilities);
  5099. #endif
  5100. #define VK_KHR_dedicated_allocation 1
  5101. #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
  5102. #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
  5103. typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
  5104. typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
  5105. #define VK_KHR_storage_buffer_storage_class 1
  5106. #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
  5107. #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
  5108. #define VK_KHR_relaxed_block_layout 1
  5109. #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
  5110. #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
  5111. #define VK_KHR_get_memory_requirements2 1
  5112. #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
  5113. #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
  5114. typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
  5115. typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
  5116. typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
  5117. typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
  5118. typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  5119. typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
  5120. typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  5121. #ifndef VK_NO_PROTOTYPES
  5122. VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
  5123. VkDevice device,
  5124. const VkImageMemoryRequirementsInfo2* pInfo,
  5125. VkMemoryRequirements2* pMemoryRequirements);
  5126. VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
  5127. VkDevice device,
  5128. const VkBufferMemoryRequirementsInfo2* pInfo,
  5129. VkMemoryRequirements2* pMemoryRequirements);
  5130. VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
  5131. VkDevice device,
  5132. const VkImageSparseMemoryRequirementsInfo2* pInfo,
  5133. uint32_t* pSparseMemoryRequirementCount,
  5134. VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
  5135. #endif
  5136. #define VK_KHR_image_format_list 1
  5137. #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
  5138. #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
  5139. typedef struct VkImageFormatListCreateInfoKHR {
  5140. VkStructureType sType;
  5141. const void* pNext;
  5142. uint32_t viewFormatCount;
  5143. const VkFormat* pViewFormats;
  5144. } VkImageFormatListCreateInfoKHR;
  5145. #define VK_KHR_sampler_ycbcr_conversion 1
  5146. typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
  5147. #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
  5148. #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
  5149. typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
  5150. typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
  5151. typedef VkChromaLocation VkChromaLocationKHR;
  5152. typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
  5153. typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
  5154. typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
  5155. typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
  5156. typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
  5157. typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
  5158. typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
  5159. typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
  5160. #ifndef VK_NO_PROTOTYPES
  5161. VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
  5162. VkDevice device,
  5163. const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
  5164. const VkAllocationCallbacks* pAllocator,
  5165. VkSamplerYcbcrConversion* pYcbcrConversion);
  5166. VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
  5167. VkDevice device,
  5168. VkSamplerYcbcrConversion ycbcrConversion,
  5169. const VkAllocationCallbacks* pAllocator);
  5170. #endif
  5171. #define VK_KHR_bind_memory2 1
  5172. #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
  5173. #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
  5174. typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
  5175. typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
  5176. typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
  5177. typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
  5178. #ifndef VK_NO_PROTOTYPES
  5179. VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
  5180. VkDevice device,
  5181. uint32_t bindInfoCount,
  5182. const VkBindBufferMemoryInfo* pBindInfos);
  5183. VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
  5184. VkDevice device,
  5185. uint32_t bindInfoCount,
  5186. const VkBindImageMemoryInfo* pBindInfos);
  5187. #endif
  5188. #define VK_KHR_maintenance3 1
  5189. #define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
  5190. #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
  5191. typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
  5192. typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
  5193. typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
  5194. #ifndef VK_NO_PROTOTYPES
  5195. VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
  5196. VkDevice device,
  5197. const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
  5198. VkDescriptorSetLayoutSupport* pSupport);
  5199. #endif
  5200. #define VK_KHR_draw_indirect_count 1
  5201. #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
  5202. #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
  5203. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  5204. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  5205. #ifndef VK_NO_PROTOTYPES
  5206. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
  5207. VkCommandBuffer commandBuffer,
  5208. VkBuffer buffer,
  5209. VkDeviceSize offset,
  5210. VkBuffer countBuffer,
  5211. VkDeviceSize countBufferOffset,
  5212. uint32_t maxDrawCount,
  5213. uint32_t stride);
  5214. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
  5215. VkCommandBuffer commandBuffer,
  5216. VkBuffer buffer,
  5217. VkDeviceSize offset,
  5218. VkBuffer countBuffer,
  5219. VkDeviceSize countBufferOffset,
  5220. uint32_t maxDrawCount,
  5221. uint32_t stride);
  5222. #endif
  5223. #define VK_KHR_8bit_storage 1
  5224. #define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
  5225. #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
  5226. typedef struct VkPhysicalDevice8BitStorageFeaturesKHR {
  5227. VkStructureType sType;
  5228. void* pNext;
  5229. VkBool32 storageBuffer8BitAccess;
  5230. VkBool32 uniformAndStorageBuffer8BitAccess;
  5231. VkBool32 storagePushConstant8;
  5232. } VkPhysicalDevice8BitStorageFeaturesKHR;
  5233. #define VK_KHR_shader_atomic_int64 1
  5234. #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
  5235. #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
  5236. typedef struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR {
  5237. VkStructureType sType;
  5238. void* pNext;
  5239. VkBool32 shaderBufferInt64Atomics;
  5240. VkBool32 shaderSharedInt64Atomics;
  5241. } VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
  5242. #define VK_KHR_driver_properties 1
  5243. #define VK_MAX_DRIVER_NAME_SIZE_KHR 256
  5244. #define VK_MAX_DRIVER_INFO_SIZE_KHR 256
  5245. #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
  5246. #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
  5247. typedef enum VkDriverIdKHR {
  5248. VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1,
  5249. VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2,
  5250. VK_DRIVER_ID_MESA_RADV_KHR = 3,
  5251. VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4,
  5252. VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5,
  5253. VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6,
  5254. VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7,
  5255. VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8,
  5256. VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9,
  5257. VK_DRIVER_ID_BEGIN_RANGE_KHR = VK_DRIVER_ID_AMD_PROPRIETARY_KHR,
  5258. VK_DRIVER_ID_END_RANGE_KHR = VK_DRIVER_ID_ARM_PROPRIETARY_KHR,
  5259. VK_DRIVER_ID_RANGE_SIZE_KHR = (VK_DRIVER_ID_ARM_PROPRIETARY_KHR - VK_DRIVER_ID_AMD_PROPRIETARY_KHR + 1),
  5260. VK_DRIVER_ID_MAX_ENUM_KHR = 0x7FFFFFFF
  5261. } VkDriverIdKHR;
  5262. typedef struct VkConformanceVersionKHR {
  5263. uint8_t major;
  5264. uint8_t minor;
  5265. uint8_t subminor;
  5266. uint8_t patch;
  5267. } VkConformanceVersionKHR;
  5268. typedef struct VkPhysicalDeviceDriverPropertiesKHR {
  5269. VkStructureType sType;
  5270. void* pNext;
  5271. uint32_t driverID;
  5272. char driverName[VK_MAX_DRIVER_NAME_SIZE_KHR];
  5273. char driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR];
  5274. VkConformanceVersionKHR conformanceVersion;
  5275. } VkPhysicalDeviceDriverPropertiesKHR;
  5276. #define VK_KHR_vulkan_memory_model 1
  5277. #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2
  5278. #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
  5279. typedef struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
  5280. VkStructureType sType;
  5281. void* pNext;
  5282. VkBool32 vulkanMemoryModel;
  5283. VkBool32 vulkanMemoryModelDeviceScope;
  5284. } VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
  5285. #define VK_EXT_debug_report 1
  5286. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
  5287. #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
  5288. #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
  5289. typedef enum VkDebugReportObjectTypeEXT {
  5290. VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
  5291. VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
  5292. VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
  5293. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
  5294. VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
  5295. VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
  5296. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
  5297. VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
  5298. VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
  5299. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
  5300. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
  5301. VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
  5302. VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
  5303. VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
  5304. VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
  5305. VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
  5306. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
  5307. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
  5308. VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
  5309. VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
  5310. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
  5311. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
  5312. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
  5313. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
  5314. VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
  5315. VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
  5316. VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
  5317. VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
  5318. VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
  5319. VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
  5320. VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
  5321. VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
  5322. VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
  5323. VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
  5324. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
  5325. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
  5326. VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NVX_EXT = 1000165000,
  5327. VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
  5328. VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
  5329. VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
  5330. VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
  5331. VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
  5332. VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
  5333. VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
  5334. VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  5335. } VkDebugReportObjectTypeEXT;
  5336. typedef enum VkDebugReportFlagBitsEXT {
  5337. VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
  5338. VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
  5339. VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
  5340. VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
  5341. VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
  5342. VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  5343. } VkDebugReportFlagBitsEXT;
  5344. typedef VkFlags VkDebugReportFlagsEXT;
  5345. typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
  5346. VkDebugReportFlagsEXT flags,
  5347. VkDebugReportObjectTypeEXT objectType,
  5348. uint64_t object,
  5349. size_t location,
  5350. int32_t messageCode,
  5351. const char* pLayerPrefix,
  5352. const char* pMessage,
  5353. void* pUserData);
  5354. typedef struct VkDebugReportCallbackCreateInfoEXT {
  5355. VkStructureType sType;
  5356. const void* pNext;
  5357. VkDebugReportFlagsEXT flags;
  5358. PFN_vkDebugReportCallbackEXT pfnCallback;
  5359. void* pUserData;
  5360. } VkDebugReportCallbackCreateInfoEXT;
  5361. typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
  5362. typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
  5363. 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);
  5364. #ifndef VK_NO_PROTOTYPES
  5365. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
  5366. VkInstance instance,
  5367. const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
  5368. const VkAllocationCallbacks* pAllocator,
  5369. VkDebugReportCallbackEXT* pCallback);
  5370. VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
  5371. VkInstance instance,
  5372. VkDebugReportCallbackEXT callback,
  5373. const VkAllocationCallbacks* pAllocator);
  5374. VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
  5375. VkInstance instance,
  5376. VkDebugReportFlagsEXT flags,
  5377. VkDebugReportObjectTypeEXT objectType,
  5378. uint64_t object,
  5379. size_t location,
  5380. int32_t messageCode,
  5381. const char* pLayerPrefix,
  5382. const char* pMessage);
  5383. #endif
  5384. #define VK_NV_glsl_shader 1
  5385. #define VK_NV_GLSL_SHADER_SPEC_VERSION 1
  5386. #define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
  5387. #define VK_EXT_depth_range_unrestricted 1
  5388. #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
  5389. #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
  5390. #define VK_IMG_filter_cubic 1
  5391. #define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
  5392. #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
  5393. #define VK_AMD_rasterization_order 1
  5394. #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
  5395. #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
  5396. typedef enum VkRasterizationOrderAMD {
  5397. VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
  5398. VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
  5399. VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
  5400. VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
  5401. VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
  5402. VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
  5403. } VkRasterizationOrderAMD;
  5404. typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
  5405. VkStructureType sType;
  5406. const void* pNext;
  5407. VkRasterizationOrderAMD rasterizationOrder;
  5408. } VkPipelineRasterizationStateRasterizationOrderAMD;
  5409. #define VK_AMD_shader_trinary_minmax 1
  5410. #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
  5411. #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
  5412. #define VK_AMD_shader_explicit_vertex_parameter 1
  5413. #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
  5414. #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
  5415. #define VK_EXT_debug_marker 1
  5416. #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
  5417. #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
  5418. typedef struct VkDebugMarkerObjectNameInfoEXT {
  5419. VkStructureType sType;
  5420. const void* pNext;
  5421. VkDebugReportObjectTypeEXT objectType;
  5422. uint64_t object;
  5423. const char* pObjectName;
  5424. } VkDebugMarkerObjectNameInfoEXT;
  5425. typedef struct VkDebugMarkerObjectTagInfoEXT {
  5426. VkStructureType sType;
  5427. const void* pNext;
  5428. VkDebugReportObjectTypeEXT objectType;
  5429. uint64_t object;
  5430. uint64_t tagName;
  5431. size_t tagSize;
  5432. const void* pTag;
  5433. } VkDebugMarkerObjectTagInfoEXT;
  5434. typedef struct VkDebugMarkerMarkerInfoEXT {
  5435. VkStructureType sType;
  5436. const void* pNext;
  5437. const char* pMarkerName;
  5438. float color[4];
  5439. } VkDebugMarkerMarkerInfoEXT;
  5440. typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
  5441. typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
  5442. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  5443. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
  5444. typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  5445. #ifndef VK_NO_PROTOTYPES
  5446. VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
  5447. VkDevice device,
  5448. const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
  5449. VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
  5450. VkDevice device,
  5451. const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
  5452. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
  5453. VkCommandBuffer commandBuffer,
  5454. const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  5455. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
  5456. VkCommandBuffer commandBuffer);
  5457. VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
  5458. VkCommandBuffer commandBuffer,
  5459. const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
  5460. #endif
  5461. #define VK_AMD_gcn_shader 1
  5462. #define VK_AMD_GCN_SHADER_SPEC_VERSION 1
  5463. #define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
  5464. #define VK_NV_dedicated_allocation 1
  5465. #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
  5466. #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
  5467. typedef struct VkDedicatedAllocationImageCreateInfoNV {
  5468. VkStructureType sType;
  5469. const void* pNext;
  5470. VkBool32 dedicatedAllocation;
  5471. } VkDedicatedAllocationImageCreateInfoNV;
  5472. typedef struct VkDedicatedAllocationBufferCreateInfoNV {
  5473. VkStructureType sType;
  5474. const void* pNext;
  5475. VkBool32 dedicatedAllocation;
  5476. } VkDedicatedAllocationBufferCreateInfoNV;
  5477. typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
  5478. VkStructureType sType;
  5479. const void* pNext;
  5480. VkImage image;
  5481. VkBuffer buffer;
  5482. } VkDedicatedAllocationMemoryAllocateInfoNV;
  5483. #define VK_AMD_draw_indirect_count 1
  5484. #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
  5485. #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
  5486. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  5487. typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  5488. #ifndef VK_NO_PROTOTYPES
  5489. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
  5490. VkCommandBuffer commandBuffer,
  5491. VkBuffer buffer,
  5492. VkDeviceSize offset,
  5493. VkBuffer countBuffer,
  5494. VkDeviceSize countBufferOffset,
  5495. uint32_t maxDrawCount,
  5496. uint32_t stride);
  5497. VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
  5498. VkCommandBuffer commandBuffer,
  5499. VkBuffer buffer,
  5500. VkDeviceSize offset,
  5501. VkBuffer countBuffer,
  5502. VkDeviceSize countBufferOffset,
  5503. uint32_t maxDrawCount,
  5504. uint32_t stride);
  5505. #endif
  5506. #define VK_AMD_negative_viewport_height 1
  5507. #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
  5508. #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
  5509. #define VK_AMD_gpu_shader_half_float 1
  5510. #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
  5511. #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
  5512. #define VK_AMD_shader_ballot 1
  5513. #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
  5514. #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
  5515. #define VK_AMD_texture_gather_bias_lod 1
  5516. #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
  5517. #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
  5518. typedef struct VkTextureLODGatherFormatPropertiesAMD {
  5519. VkStructureType sType;
  5520. void* pNext;
  5521. VkBool32 supportsTextureGatherLODBiasAMD;
  5522. } VkTextureLODGatherFormatPropertiesAMD;
  5523. #define VK_AMD_shader_info 1
  5524. #define VK_AMD_SHADER_INFO_SPEC_VERSION 1
  5525. #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
  5526. typedef enum VkShaderInfoTypeAMD {
  5527. VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
  5528. VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
  5529. VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
  5530. VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
  5531. VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD,
  5532. VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1),
  5533. VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
  5534. } VkShaderInfoTypeAMD;
  5535. typedef struct VkShaderResourceUsageAMD {
  5536. uint32_t numUsedVgprs;
  5537. uint32_t numUsedSgprs;
  5538. uint32_t ldsSizePerLocalWorkGroup;
  5539. size_t ldsUsageSizeInBytes;
  5540. size_t scratchMemUsageInBytes;
  5541. } VkShaderResourceUsageAMD;
  5542. typedef struct VkShaderStatisticsInfoAMD {
  5543. VkShaderStageFlags shaderStageMask;
  5544. VkShaderResourceUsageAMD resourceUsage;
  5545. uint32_t numPhysicalVgprs;
  5546. uint32_t numPhysicalSgprs;
  5547. uint32_t numAvailableVgprs;
  5548. uint32_t numAvailableSgprs;
  5549. uint32_t computeWorkGroupSize[3];
  5550. } VkShaderStatisticsInfoAMD;
  5551. typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
  5552. #ifndef VK_NO_PROTOTYPES
  5553. VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
  5554. VkDevice device,
  5555. VkPipeline pipeline,
  5556. VkShaderStageFlagBits shaderStage,
  5557. VkShaderInfoTypeAMD infoType,
  5558. size_t* pInfoSize,
  5559. void* pInfo);
  5560. #endif
  5561. #define VK_AMD_shader_image_load_store_lod 1
  5562. #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
  5563. #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
  5564. #define VK_NV_corner_sampled_image 1
  5565. #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
  5566. #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
  5567. typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
  5568. VkStructureType sType;
  5569. void* pNext;
  5570. VkBool32 cornerSampledImage;
  5571. } VkPhysicalDeviceCornerSampledImageFeaturesNV;
  5572. #define VK_IMG_format_pvrtc 1
  5573. #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
  5574. #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
  5575. #define VK_NV_external_memory_capabilities 1
  5576. #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
  5577. #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
  5578. typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
  5579. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
  5580. VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
  5581. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
  5582. VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
  5583. VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  5584. } VkExternalMemoryHandleTypeFlagBitsNV;
  5585. typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
  5586. typedef enum VkExternalMemoryFeatureFlagBitsNV {
  5587. VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
  5588. VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
  5589. VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
  5590. VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
  5591. } VkExternalMemoryFeatureFlagBitsNV;
  5592. typedef VkFlags VkExternalMemoryFeatureFlagsNV;
  5593. typedef struct VkExternalImageFormatPropertiesNV {
  5594. VkImageFormatProperties imageFormatProperties;
  5595. VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
  5596. VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
  5597. VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
  5598. } VkExternalImageFormatPropertiesNV;
  5599. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
  5600. #ifndef VK_NO_PROTOTYPES
  5601. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
  5602. VkPhysicalDevice physicalDevice,
  5603. VkFormat format,
  5604. VkImageType type,
  5605. VkImageTiling tiling,
  5606. VkImageUsageFlags usage,
  5607. VkImageCreateFlags flags,
  5608. VkExternalMemoryHandleTypeFlagsNV externalHandleType,
  5609. VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
  5610. #endif
  5611. #define VK_NV_external_memory 1
  5612. #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
  5613. #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
  5614. typedef struct VkExternalMemoryImageCreateInfoNV {
  5615. VkStructureType sType;
  5616. const void* pNext;
  5617. VkExternalMemoryHandleTypeFlagsNV handleTypes;
  5618. } VkExternalMemoryImageCreateInfoNV;
  5619. typedef struct VkExportMemoryAllocateInfoNV {
  5620. VkStructureType sType;
  5621. const void* pNext;
  5622. VkExternalMemoryHandleTypeFlagsNV handleTypes;
  5623. } VkExportMemoryAllocateInfoNV;
  5624. #define VK_EXT_validation_flags 1
  5625. #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
  5626. #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
  5627. typedef enum VkValidationCheckEXT {
  5628. VK_VALIDATION_CHECK_ALL_EXT = 0,
  5629. VK_VALIDATION_CHECK_SHADERS_EXT = 1,
  5630. VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
  5631. VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT,
  5632. VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
  5633. VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
  5634. } VkValidationCheckEXT;
  5635. typedef struct VkValidationFlagsEXT {
  5636. VkStructureType sType;
  5637. const void* pNext;
  5638. uint32_t disabledValidationCheckCount;
  5639. const VkValidationCheckEXT* pDisabledValidationChecks;
  5640. } VkValidationFlagsEXT;
  5641. #define VK_EXT_shader_subgroup_ballot 1
  5642. #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
  5643. #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
  5644. #define VK_EXT_shader_subgroup_vote 1
  5645. #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
  5646. #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
  5647. #define VK_EXT_astc_decode_mode 1
  5648. #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
  5649. #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
  5650. typedef struct VkImageViewASTCDecodeModeEXT {
  5651. VkStructureType sType;
  5652. const void* pNext;
  5653. VkFormat decodeMode;
  5654. } VkImageViewASTCDecodeModeEXT;
  5655. typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
  5656. VkStructureType sType;
  5657. void* pNext;
  5658. VkBool32 decodeModeSharedExponent;
  5659. } VkPhysicalDeviceASTCDecodeFeaturesEXT;
  5660. #define VK_EXT_conditional_rendering 1
  5661. #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
  5662. #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
  5663. typedef enum VkConditionalRenderingFlagBitsEXT {
  5664. VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
  5665. VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  5666. } VkConditionalRenderingFlagBitsEXT;
  5667. typedef VkFlags VkConditionalRenderingFlagsEXT;
  5668. typedef struct VkConditionalRenderingBeginInfoEXT {
  5669. VkStructureType sType;
  5670. const void* pNext;
  5671. VkBuffer buffer;
  5672. VkDeviceSize offset;
  5673. VkConditionalRenderingFlagsEXT flags;
  5674. } VkConditionalRenderingBeginInfoEXT;
  5675. typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
  5676. VkStructureType sType;
  5677. void* pNext;
  5678. VkBool32 conditionalRendering;
  5679. VkBool32 inheritedConditionalRendering;
  5680. } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
  5681. typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
  5682. VkStructureType sType;
  5683. const void* pNext;
  5684. VkBool32 conditionalRenderingEnable;
  5685. } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
  5686. typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
  5687. typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
  5688. #ifndef VK_NO_PROTOTYPES
  5689. VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
  5690. VkCommandBuffer commandBuffer,
  5691. const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
  5692. VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
  5693. VkCommandBuffer commandBuffer);
  5694. #endif
  5695. #define VK_NVX_device_generated_commands 1
  5696. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
  5697. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
  5698. #define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
  5699. #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
  5700. typedef enum VkIndirectCommandsTokenTypeNVX {
  5701. VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
  5702. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
  5703. VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
  5704. VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
  5705. VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
  5706. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
  5707. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
  5708. VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
  5709. VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
  5710. VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX,
  5711. VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1),
  5712. VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
  5713. } VkIndirectCommandsTokenTypeNVX;
  5714. typedef enum VkObjectEntryTypeNVX {
  5715. VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
  5716. VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
  5717. VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
  5718. VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
  5719. VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
  5720. VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
  5721. VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX,
  5722. VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1),
  5723. VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
  5724. } VkObjectEntryTypeNVX;
  5725. typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
  5726. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
  5727. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
  5728. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
  5729. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
  5730. VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
  5731. } VkIndirectCommandsLayoutUsageFlagBitsNVX;
  5732. typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
  5733. typedef enum VkObjectEntryUsageFlagBitsNVX {
  5734. VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
  5735. VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
  5736. VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
  5737. } VkObjectEntryUsageFlagBitsNVX;
  5738. typedef VkFlags VkObjectEntryUsageFlagsNVX;
  5739. typedef struct VkDeviceGeneratedCommandsFeaturesNVX {
  5740. VkStructureType sType;
  5741. const void* pNext;
  5742. VkBool32 computeBindingPointSupport;
  5743. } VkDeviceGeneratedCommandsFeaturesNVX;
  5744. typedef struct VkDeviceGeneratedCommandsLimitsNVX {
  5745. VkStructureType sType;
  5746. const void* pNext;
  5747. uint32_t maxIndirectCommandsLayoutTokenCount;
  5748. uint32_t maxObjectEntryCounts;
  5749. uint32_t minSequenceCountBufferOffsetAlignment;
  5750. uint32_t minSequenceIndexBufferOffsetAlignment;
  5751. uint32_t minCommandsTokenBufferOffsetAlignment;
  5752. } VkDeviceGeneratedCommandsLimitsNVX;
  5753. typedef struct VkIndirectCommandsTokenNVX {
  5754. VkIndirectCommandsTokenTypeNVX tokenType;
  5755. VkBuffer buffer;
  5756. VkDeviceSize offset;
  5757. } VkIndirectCommandsTokenNVX;
  5758. typedef struct VkIndirectCommandsLayoutTokenNVX {
  5759. VkIndirectCommandsTokenTypeNVX tokenType;
  5760. uint32_t bindingUnit;
  5761. uint32_t dynamicCount;
  5762. uint32_t divisor;
  5763. } VkIndirectCommandsLayoutTokenNVX;
  5764. typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
  5765. VkStructureType sType;
  5766. const void* pNext;
  5767. VkPipelineBindPoint pipelineBindPoint;
  5768. VkIndirectCommandsLayoutUsageFlagsNVX flags;
  5769. uint32_t tokenCount;
  5770. const VkIndirectCommandsLayoutTokenNVX* pTokens;
  5771. } VkIndirectCommandsLayoutCreateInfoNVX;
  5772. typedef struct VkCmdProcessCommandsInfoNVX {
  5773. VkStructureType sType;
  5774. const void* pNext;
  5775. VkObjectTableNVX objectTable;
  5776. VkIndirectCommandsLayoutNVX indirectCommandsLayout;
  5777. uint32_t indirectCommandsTokenCount;
  5778. const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens;
  5779. uint32_t maxSequencesCount;
  5780. VkCommandBuffer targetCommandBuffer;
  5781. VkBuffer sequencesCountBuffer;
  5782. VkDeviceSize sequencesCountOffset;
  5783. VkBuffer sequencesIndexBuffer;
  5784. VkDeviceSize sequencesIndexOffset;
  5785. } VkCmdProcessCommandsInfoNVX;
  5786. typedef struct VkCmdReserveSpaceForCommandsInfoNVX {
  5787. VkStructureType sType;
  5788. const void* pNext;
  5789. VkObjectTableNVX objectTable;
  5790. VkIndirectCommandsLayoutNVX indirectCommandsLayout;
  5791. uint32_t maxSequencesCount;
  5792. } VkCmdReserveSpaceForCommandsInfoNVX;
  5793. typedef struct VkObjectTableCreateInfoNVX {
  5794. VkStructureType sType;
  5795. const void* pNext;
  5796. uint32_t objectCount;
  5797. const VkObjectEntryTypeNVX* pObjectEntryTypes;
  5798. const uint32_t* pObjectEntryCounts;
  5799. const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags;
  5800. uint32_t maxUniformBuffersPerDescriptor;
  5801. uint32_t maxStorageBuffersPerDescriptor;
  5802. uint32_t maxStorageImagesPerDescriptor;
  5803. uint32_t maxSampledImagesPerDescriptor;
  5804. uint32_t maxPipelineLayouts;
  5805. } VkObjectTableCreateInfoNVX;
  5806. typedef struct VkObjectTableEntryNVX {
  5807. VkObjectEntryTypeNVX type;
  5808. VkObjectEntryUsageFlagsNVX flags;
  5809. } VkObjectTableEntryNVX;
  5810. typedef struct VkObjectTablePipelineEntryNVX {
  5811. VkObjectEntryTypeNVX type;
  5812. VkObjectEntryUsageFlagsNVX flags;
  5813. VkPipeline pipeline;
  5814. } VkObjectTablePipelineEntryNVX;
  5815. typedef struct VkObjectTableDescriptorSetEntryNVX {
  5816. VkObjectEntryTypeNVX type;
  5817. VkObjectEntryUsageFlagsNVX flags;
  5818. VkPipelineLayout pipelineLayout;
  5819. VkDescriptorSet descriptorSet;
  5820. } VkObjectTableDescriptorSetEntryNVX;
  5821. typedef struct VkObjectTableVertexBufferEntryNVX {
  5822. VkObjectEntryTypeNVX type;
  5823. VkObjectEntryUsageFlagsNVX flags;
  5824. VkBuffer buffer;
  5825. } VkObjectTableVertexBufferEntryNVX;
  5826. typedef struct VkObjectTableIndexBufferEntryNVX {
  5827. VkObjectEntryTypeNVX type;
  5828. VkObjectEntryUsageFlagsNVX flags;
  5829. VkBuffer buffer;
  5830. VkIndexType indexType;
  5831. } VkObjectTableIndexBufferEntryNVX;
  5832. typedef struct VkObjectTablePushConstantEntryNVX {
  5833. VkObjectEntryTypeNVX type;
  5834. VkObjectEntryUsageFlagsNVX flags;
  5835. VkPipelineLayout pipelineLayout;
  5836. VkShaderStageFlags stageFlags;
  5837. } VkObjectTablePushConstantEntryNVX;
  5838. typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
  5839. typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
  5840. typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
  5841. typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
  5842. typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
  5843. typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
  5844. typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices);
  5845. typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
  5846. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
  5847. #ifndef VK_NO_PROTOTYPES
  5848. VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
  5849. VkCommandBuffer commandBuffer,
  5850. const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
  5851. VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
  5852. VkCommandBuffer commandBuffer,
  5853. const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
  5854. VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
  5855. VkDevice device,
  5856. const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
  5857. const VkAllocationCallbacks* pAllocator,
  5858. VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
  5859. VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
  5860. VkDevice device,
  5861. VkIndirectCommandsLayoutNVX indirectCommandsLayout,
  5862. const VkAllocationCallbacks* pAllocator);
  5863. VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
  5864. VkDevice device,
  5865. const VkObjectTableCreateInfoNVX* pCreateInfo,
  5866. const VkAllocationCallbacks* pAllocator,
  5867. VkObjectTableNVX* pObjectTable);
  5868. VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
  5869. VkDevice device,
  5870. VkObjectTableNVX objectTable,
  5871. const VkAllocationCallbacks* pAllocator);
  5872. VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
  5873. VkDevice device,
  5874. VkObjectTableNVX objectTable,
  5875. uint32_t objectCount,
  5876. const VkObjectTableEntryNVX* const* ppObjectTableEntries,
  5877. const uint32_t* pObjectIndices);
  5878. VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
  5879. VkDevice device,
  5880. VkObjectTableNVX objectTable,
  5881. uint32_t objectCount,
  5882. const VkObjectEntryTypeNVX* pObjectEntryTypes,
  5883. const uint32_t* pObjectIndices);
  5884. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
  5885. VkPhysicalDevice physicalDevice,
  5886. VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
  5887. VkDeviceGeneratedCommandsLimitsNVX* pLimits);
  5888. #endif
  5889. #define VK_NV_clip_space_w_scaling 1
  5890. #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
  5891. #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
  5892. typedef struct VkViewportWScalingNV {
  5893. float xcoeff;
  5894. float ycoeff;
  5895. } VkViewportWScalingNV;
  5896. typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
  5897. VkStructureType sType;
  5898. const void* pNext;
  5899. VkBool32 viewportWScalingEnable;
  5900. uint32_t viewportCount;
  5901. const VkViewportWScalingNV* pViewportWScalings;
  5902. } VkPipelineViewportWScalingStateCreateInfoNV;
  5903. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
  5904. #ifndef VK_NO_PROTOTYPES
  5905. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
  5906. VkCommandBuffer commandBuffer,
  5907. uint32_t firstViewport,
  5908. uint32_t viewportCount,
  5909. const VkViewportWScalingNV* pViewportWScalings);
  5910. #endif
  5911. #define VK_EXT_direct_mode_display 1
  5912. #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
  5913. #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
  5914. typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
  5915. #ifndef VK_NO_PROTOTYPES
  5916. VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
  5917. VkPhysicalDevice physicalDevice,
  5918. VkDisplayKHR display);
  5919. #endif
  5920. #define VK_EXT_display_surface_counter 1
  5921. #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
  5922. #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
  5923. typedef enum VkSurfaceCounterFlagBitsEXT {
  5924. VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
  5925. VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  5926. } VkSurfaceCounterFlagBitsEXT;
  5927. typedef VkFlags VkSurfaceCounterFlagsEXT;
  5928. typedef struct VkSurfaceCapabilities2EXT {
  5929. VkStructureType sType;
  5930. void* pNext;
  5931. uint32_t minImageCount;
  5932. uint32_t maxImageCount;
  5933. VkExtent2D currentExtent;
  5934. VkExtent2D minImageExtent;
  5935. VkExtent2D maxImageExtent;
  5936. uint32_t maxImageArrayLayers;
  5937. VkSurfaceTransformFlagsKHR supportedTransforms;
  5938. VkSurfaceTransformFlagBitsKHR currentTransform;
  5939. VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
  5940. VkImageUsageFlags supportedUsageFlags;
  5941. VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
  5942. } VkSurfaceCapabilities2EXT;
  5943. typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
  5944. #ifndef VK_NO_PROTOTYPES
  5945. VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
  5946. VkPhysicalDevice physicalDevice,
  5947. VkSurfaceKHR surface,
  5948. VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
  5949. #endif
  5950. #define VK_EXT_display_control 1
  5951. #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
  5952. #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
  5953. typedef enum VkDisplayPowerStateEXT {
  5954. VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
  5955. VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
  5956. VK_DISPLAY_POWER_STATE_ON_EXT = 2,
  5957. VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
  5958. VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
  5959. VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
  5960. VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
  5961. } VkDisplayPowerStateEXT;
  5962. typedef enum VkDeviceEventTypeEXT {
  5963. VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
  5964. VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
  5965. VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
  5966. VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
  5967. VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  5968. } VkDeviceEventTypeEXT;
  5969. typedef enum VkDisplayEventTypeEXT {
  5970. VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
  5971. VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
  5972. VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
  5973. VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1),
  5974. VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
  5975. } VkDisplayEventTypeEXT;
  5976. typedef struct VkDisplayPowerInfoEXT {
  5977. VkStructureType sType;
  5978. const void* pNext;
  5979. VkDisplayPowerStateEXT powerState;
  5980. } VkDisplayPowerInfoEXT;
  5981. typedef struct VkDeviceEventInfoEXT {
  5982. VkStructureType sType;
  5983. const void* pNext;
  5984. VkDeviceEventTypeEXT deviceEvent;
  5985. } VkDeviceEventInfoEXT;
  5986. typedef struct VkDisplayEventInfoEXT {
  5987. VkStructureType sType;
  5988. const void* pNext;
  5989. VkDisplayEventTypeEXT displayEvent;
  5990. } VkDisplayEventInfoEXT;
  5991. typedef struct VkSwapchainCounterCreateInfoEXT {
  5992. VkStructureType sType;
  5993. const void* pNext;
  5994. VkSurfaceCounterFlagsEXT surfaceCounters;
  5995. } VkSwapchainCounterCreateInfoEXT;
  5996. typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
  5997. typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  5998. typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
  5999. typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
  6000. #ifndef VK_NO_PROTOTYPES
  6001. VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
  6002. VkDevice device,
  6003. VkDisplayKHR display,
  6004. const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
  6005. VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
  6006. VkDevice device,
  6007. const VkDeviceEventInfoEXT* pDeviceEventInfo,
  6008. const VkAllocationCallbacks* pAllocator,
  6009. VkFence* pFence);
  6010. VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
  6011. VkDevice device,
  6012. VkDisplayKHR display,
  6013. const VkDisplayEventInfoEXT* pDisplayEventInfo,
  6014. const VkAllocationCallbacks* pAllocator,
  6015. VkFence* pFence);
  6016. VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
  6017. VkDevice device,
  6018. VkSwapchainKHR swapchain,
  6019. VkSurfaceCounterFlagBitsEXT counter,
  6020. uint64_t* pCounterValue);
  6021. #endif
  6022. #define VK_GOOGLE_display_timing 1
  6023. #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
  6024. #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
  6025. typedef struct VkRefreshCycleDurationGOOGLE {
  6026. uint64_t refreshDuration;
  6027. } VkRefreshCycleDurationGOOGLE;
  6028. typedef struct VkPastPresentationTimingGOOGLE {
  6029. uint32_t presentID;
  6030. uint64_t desiredPresentTime;
  6031. uint64_t actualPresentTime;
  6032. uint64_t earliestPresentTime;
  6033. uint64_t presentMargin;
  6034. } VkPastPresentationTimingGOOGLE;
  6035. typedef struct VkPresentTimeGOOGLE {
  6036. uint32_t presentID;
  6037. uint64_t desiredPresentTime;
  6038. } VkPresentTimeGOOGLE;
  6039. typedef struct VkPresentTimesInfoGOOGLE {
  6040. VkStructureType sType;
  6041. const void* pNext;
  6042. uint32_t swapchainCount;
  6043. const VkPresentTimeGOOGLE* pTimes;
  6044. } VkPresentTimesInfoGOOGLE;
  6045. typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
  6046. typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
  6047. #ifndef VK_NO_PROTOTYPES
  6048. VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
  6049. VkDevice device,
  6050. VkSwapchainKHR swapchain,
  6051. VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
  6052. VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
  6053. VkDevice device,
  6054. VkSwapchainKHR swapchain,
  6055. uint32_t* pPresentationTimingCount,
  6056. VkPastPresentationTimingGOOGLE* pPresentationTimings);
  6057. #endif
  6058. #define VK_NV_sample_mask_override_coverage 1
  6059. #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
  6060. #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
  6061. #define VK_NV_geometry_shader_passthrough 1
  6062. #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
  6063. #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
  6064. #define VK_NV_viewport_array2 1
  6065. #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
  6066. #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
  6067. #define VK_NVX_multiview_per_view_attributes 1
  6068. #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
  6069. #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
  6070. typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
  6071. VkStructureType sType;
  6072. void* pNext;
  6073. VkBool32 perViewPositionAllComponents;
  6074. } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
  6075. #define VK_NV_viewport_swizzle 1
  6076. #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
  6077. #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
  6078. typedef enum VkViewportCoordinateSwizzleNV {
  6079. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
  6080. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
  6081. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
  6082. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
  6083. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
  6084. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
  6085. VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
  6086. VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
  6087. VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
  6088. VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
  6089. VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
  6090. VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
  6091. } VkViewportCoordinateSwizzleNV;
  6092. typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
  6093. typedef struct VkViewportSwizzleNV {
  6094. VkViewportCoordinateSwizzleNV x;
  6095. VkViewportCoordinateSwizzleNV y;
  6096. VkViewportCoordinateSwizzleNV z;
  6097. VkViewportCoordinateSwizzleNV w;
  6098. } VkViewportSwizzleNV;
  6099. typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
  6100. VkStructureType sType;
  6101. const void* pNext;
  6102. VkPipelineViewportSwizzleStateCreateFlagsNV flags;
  6103. uint32_t viewportCount;
  6104. const VkViewportSwizzleNV* pViewportSwizzles;
  6105. } VkPipelineViewportSwizzleStateCreateInfoNV;
  6106. #define VK_EXT_discard_rectangles 1
  6107. #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
  6108. #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
  6109. typedef enum VkDiscardRectangleModeEXT {
  6110. VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
  6111. VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
  6112. VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
  6113. VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
  6114. VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
  6115. VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  6116. } VkDiscardRectangleModeEXT;
  6117. typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
  6118. typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
  6119. VkStructureType sType;
  6120. void* pNext;
  6121. uint32_t maxDiscardRectangles;
  6122. } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
  6123. typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
  6124. VkStructureType sType;
  6125. const void* pNext;
  6126. VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
  6127. VkDiscardRectangleModeEXT discardRectangleMode;
  6128. uint32_t discardRectangleCount;
  6129. const VkRect2D* pDiscardRectangles;
  6130. } VkPipelineDiscardRectangleStateCreateInfoEXT;
  6131. typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
  6132. #ifndef VK_NO_PROTOTYPES
  6133. VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
  6134. VkCommandBuffer commandBuffer,
  6135. uint32_t firstDiscardRectangle,
  6136. uint32_t discardRectangleCount,
  6137. const VkRect2D* pDiscardRectangles);
  6138. #endif
  6139. #define VK_EXT_conservative_rasterization 1
  6140. #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
  6141. #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
  6142. typedef enum VkConservativeRasterizationModeEXT {
  6143. VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
  6144. VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
  6145. VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
  6146. VK_CONSERVATIVE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
  6147. VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT,
  6148. VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1),
  6149. VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  6150. } VkConservativeRasterizationModeEXT;
  6151. typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
  6152. typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
  6153. VkStructureType sType;
  6154. void* pNext;
  6155. float primitiveOverestimationSize;
  6156. float maxExtraPrimitiveOverestimationSize;
  6157. float extraPrimitiveOverestimationSizeGranularity;
  6158. VkBool32 primitiveUnderestimation;
  6159. VkBool32 conservativePointAndLineRasterization;
  6160. VkBool32 degenerateTrianglesRasterized;
  6161. VkBool32 degenerateLinesRasterized;
  6162. VkBool32 fullyCoveredFragmentShaderInputVariable;
  6163. VkBool32 conservativeRasterizationPostDepthCoverage;
  6164. } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
  6165. typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
  6166. VkStructureType sType;
  6167. const void* pNext;
  6168. VkPipelineRasterizationConservativeStateCreateFlagsEXT flags;
  6169. VkConservativeRasterizationModeEXT conservativeRasterizationMode;
  6170. float extraPrimitiveOverestimationSize;
  6171. } VkPipelineRasterizationConservativeStateCreateInfoEXT;
  6172. #define VK_EXT_swapchain_colorspace 1
  6173. #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3
  6174. #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
  6175. #define VK_EXT_hdr_metadata 1
  6176. #define VK_EXT_HDR_METADATA_SPEC_VERSION 1
  6177. #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
  6178. typedef struct VkXYColorEXT {
  6179. float x;
  6180. float y;
  6181. } VkXYColorEXT;
  6182. typedef struct VkHdrMetadataEXT {
  6183. VkStructureType sType;
  6184. const void* pNext;
  6185. VkXYColorEXT displayPrimaryRed;
  6186. VkXYColorEXT displayPrimaryGreen;
  6187. VkXYColorEXT displayPrimaryBlue;
  6188. VkXYColorEXT whitePoint;
  6189. float maxLuminance;
  6190. float minLuminance;
  6191. float maxContentLightLevel;
  6192. float maxFrameAverageLightLevel;
  6193. } VkHdrMetadataEXT;
  6194. typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
  6195. #ifndef VK_NO_PROTOTYPES
  6196. VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
  6197. VkDevice device,
  6198. uint32_t swapchainCount,
  6199. const VkSwapchainKHR* pSwapchains,
  6200. const VkHdrMetadataEXT* pMetadata);
  6201. #endif
  6202. #define VK_EXT_external_memory_dma_buf 1
  6203. #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
  6204. #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
  6205. #define VK_EXT_queue_family_foreign 1
  6206. #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
  6207. #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
  6208. #define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2)
  6209. #define VK_EXT_debug_utils 1
  6210. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
  6211. #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
  6212. #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
  6213. typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
  6214. typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
  6215. typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
  6216. VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
  6217. VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
  6218. VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
  6219. VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
  6220. VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  6221. } VkDebugUtilsMessageSeverityFlagBitsEXT;
  6222. typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
  6223. typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
  6224. VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
  6225. VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
  6226. VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
  6227. VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  6228. } VkDebugUtilsMessageTypeFlagBitsEXT;
  6229. typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
  6230. typedef struct VkDebugUtilsObjectNameInfoEXT {
  6231. VkStructureType sType;
  6232. const void* pNext;
  6233. VkObjectType objectType;
  6234. uint64_t objectHandle;
  6235. const char* pObjectName;
  6236. } VkDebugUtilsObjectNameInfoEXT;
  6237. typedef struct VkDebugUtilsObjectTagInfoEXT {
  6238. VkStructureType sType;
  6239. const void* pNext;
  6240. VkObjectType objectType;
  6241. uint64_t objectHandle;
  6242. uint64_t tagName;
  6243. size_t tagSize;
  6244. const void* pTag;
  6245. } VkDebugUtilsObjectTagInfoEXT;
  6246. typedef struct VkDebugUtilsLabelEXT {
  6247. VkStructureType sType;
  6248. const void* pNext;
  6249. const char* pLabelName;
  6250. float color[4];
  6251. } VkDebugUtilsLabelEXT;
  6252. typedef struct VkDebugUtilsMessengerCallbackDataEXT {
  6253. VkStructureType sType;
  6254. const void* pNext;
  6255. VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
  6256. const char* pMessageIdName;
  6257. int32_t messageIdNumber;
  6258. const char* pMessage;
  6259. uint32_t queueLabelCount;
  6260. VkDebugUtilsLabelEXT* pQueueLabels;
  6261. uint32_t cmdBufLabelCount;
  6262. VkDebugUtilsLabelEXT* pCmdBufLabels;
  6263. uint32_t objectCount;
  6264. VkDebugUtilsObjectNameInfoEXT* pObjects;
  6265. } VkDebugUtilsMessengerCallbackDataEXT;
  6266. typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
  6267. VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
  6268. VkDebugUtilsMessageTypeFlagsEXT messageType,
  6269. const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
  6270. void* pUserData);
  6271. typedef struct VkDebugUtilsMessengerCreateInfoEXT {
  6272. VkStructureType sType;
  6273. const void* pNext;
  6274. VkDebugUtilsMessengerCreateFlagsEXT flags;
  6275. VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
  6276. VkDebugUtilsMessageTypeFlagsEXT messageType;
  6277. PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
  6278. void* pUserData;
  6279. } VkDebugUtilsMessengerCreateInfoEXT;
  6280. typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
  6281. typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
  6282. typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
  6283. typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
  6284. typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
  6285. typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
  6286. typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
  6287. typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
  6288. typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
  6289. typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
  6290. typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
  6291. #ifndef VK_NO_PROTOTYPES
  6292. VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
  6293. VkDevice device,
  6294. const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
  6295. VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
  6296. VkDevice device,
  6297. const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
  6298. VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
  6299. VkQueue queue,
  6300. const VkDebugUtilsLabelEXT* pLabelInfo);
  6301. VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
  6302. VkQueue queue);
  6303. VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
  6304. VkQueue queue,
  6305. const VkDebugUtilsLabelEXT* pLabelInfo);
  6306. VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
  6307. VkCommandBuffer commandBuffer,
  6308. const VkDebugUtilsLabelEXT* pLabelInfo);
  6309. VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
  6310. VkCommandBuffer commandBuffer);
  6311. VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
  6312. VkCommandBuffer commandBuffer,
  6313. const VkDebugUtilsLabelEXT* pLabelInfo);
  6314. VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
  6315. VkInstance instance,
  6316. const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
  6317. const VkAllocationCallbacks* pAllocator,
  6318. VkDebugUtilsMessengerEXT* pMessenger);
  6319. VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
  6320. VkInstance instance,
  6321. VkDebugUtilsMessengerEXT messenger,
  6322. const VkAllocationCallbacks* pAllocator);
  6323. VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
  6324. VkInstance instance,
  6325. VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
  6326. VkDebugUtilsMessageTypeFlagsEXT messageTypes,
  6327. const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
  6328. #endif
  6329. #define VK_EXT_sampler_filter_minmax 1
  6330. #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
  6331. #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
  6332. typedef enum VkSamplerReductionModeEXT {
  6333. VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
  6334. VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
  6335. VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
  6336. VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT,
  6337. VK_SAMPLER_REDUCTION_MODE_END_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_MAX_EXT,
  6338. VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1),
  6339. VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
  6340. } VkSamplerReductionModeEXT;
  6341. typedef struct VkSamplerReductionModeCreateInfoEXT {
  6342. VkStructureType sType;
  6343. const void* pNext;
  6344. VkSamplerReductionModeEXT reductionMode;
  6345. } VkSamplerReductionModeCreateInfoEXT;
  6346. typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
  6347. VkStructureType sType;
  6348. void* pNext;
  6349. VkBool32 filterMinmaxSingleComponentFormats;
  6350. VkBool32 filterMinmaxImageComponentMapping;
  6351. } VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
  6352. #define VK_AMD_gpu_shader_int16 1
  6353. #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
  6354. #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
  6355. #define VK_AMD_mixed_attachment_samples 1
  6356. #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
  6357. #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
  6358. #define VK_AMD_shader_fragment_mask 1
  6359. #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
  6360. #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
  6361. #define VK_EXT_inline_uniform_block 1
  6362. #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
  6363. #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
  6364. typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
  6365. VkStructureType sType;
  6366. void* pNext;
  6367. VkBool32 inlineUniformBlock;
  6368. VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
  6369. } VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
  6370. typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
  6371. VkStructureType sType;
  6372. void* pNext;
  6373. uint32_t maxInlineUniformBlockSize;
  6374. uint32_t maxPerStageDescriptorInlineUniformBlocks;
  6375. uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
  6376. uint32_t maxDescriptorSetInlineUniformBlocks;
  6377. uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
  6378. } VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
  6379. typedef struct VkWriteDescriptorSetInlineUniformBlockEXT {
  6380. VkStructureType sType;
  6381. const void* pNext;
  6382. uint32_t dataSize;
  6383. const void* pData;
  6384. } VkWriteDescriptorSetInlineUniformBlockEXT;
  6385. typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
  6386. VkStructureType sType;
  6387. const void* pNext;
  6388. uint32_t maxInlineUniformBlockBindings;
  6389. } VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
  6390. #define VK_EXT_shader_stencil_export 1
  6391. #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
  6392. #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
  6393. #define VK_EXT_sample_locations 1
  6394. #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
  6395. #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
  6396. typedef struct VkSampleLocationEXT {
  6397. float x;
  6398. float y;
  6399. } VkSampleLocationEXT;
  6400. typedef struct VkSampleLocationsInfoEXT {
  6401. VkStructureType sType;
  6402. const void* pNext;
  6403. VkSampleCountFlagBits sampleLocationsPerPixel;
  6404. VkExtent2D sampleLocationGridSize;
  6405. uint32_t sampleLocationsCount;
  6406. const VkSampleLocationEXT* pSampleLocations;
  6407. } VkSampleLocationsInfoEXT;
  6408. typedef struct VkAttachmentSampleLocationsEXT {
  6409. uint32_t attachmentIndex;
  6410. VkSampleLocationsInfoEXT sampleLocationsInfo;
  6411. } VkAttachmentSampleLocationsEXT;
  6412. typedef struct VkSubpassSampleLocationsEXT {
  6413. uint32_t subpassIndex;
  6414. VkSampleLocationsInfoEXT sampleLocationsInfo;
  6415. } VkSubpassSampleLocationsEXT;
  6416. typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
  6417. VkStructureType sType;
  6418. const void* pNext;
  6419. uint32_t attachmentInitialSampleLocationsCount;
  6420. const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
  6421. uint32_t postSubpassSampleLocationsCount;
  6422. const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
  6423. } VkRenderPassSampleLocationsBeginInfoEXT;
  6424. typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
  6425. VkStructureType sType;
  6426. const void* pNext;
  6427. VkBool32 sampleLocationsEnable;
  6428. VkSampleLocationsInfoEXT sampleLocationsInfo;
  6429. } VkPipelineSampleLocationsStateCreateInfoEXT;
  6430. typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
  6431. VkStructureType sType;
  6432. void* pNext;
  6433. VkSampleCountFlags sampleLocationSampleCounts;
  6434. VkExtent2D maxSampleLocationGridSize;
  6435. float sampleLocationCoordinateRange[2];
  6436. uint32_t sampleLocationSubPixelBits;
  6437. VkBool32 variableSampleLocations;
  6438. } VkPhysicalDeviceSampleLocationsPropertiesEXT;
  6439. typedef struct VkMultisamplePropertiesEXT {
  6440. VkStructureType sType;
  6441. void* pNext;
  6442. VkExtent2D maxSampleLocationGridSize;
  6443. } VkMultisamplePropertiesEXT;
  6444. typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
  6445. typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
  6446. #ifndef VK_NO_PROTOTYPES
  6447. VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
  6448. VkCommandBuffer commandBuffer,
  6449. const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
  6450. VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
  6451. VkPhysicalDevice physicalDevice,
  6452. VkSampleCountFlagBits samples,
  6453. VkMultisamplePropertiesEXT* pMultisampleProperties);
  6454. #endif
  6455. #define VK_EXT_blend_operation_advanced 1
  6456. #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
  6457. #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
  6458. typedef enum VkBlendOverlapEXT {
  6459. VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
  6460. VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
  6461. VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
  6462. VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
  6463. VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT,
  6464. VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1),
  6465. VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
  6466. } VkBlendOverlapEXT;
  6467. typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
  6468. VkStructureType sType;
  6469. void* pNext;
  6470. VkBool32 advancedBlendCoherentOperations;
  6471. } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
  6472. typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
  6473. VkStructureType sType;
  6474. void* pNext;
  6475. uint32_t advancedBlendMaxColorAttachments;
  6476. VkBool32 advancedBlendIndependentBlend;
  6477. VkBool32 advancedBlendNonPremultipliedSrcColor;
  6478. VkBool32 advancedBlendNonPremultipliedDstColor;
  6479. VkBool32 advancedBlendCorrelatedOverlap;
  6480. VkBool32 advancedBlendAllOperations;
  6481. } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
  6482. typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
  6483. VkStructureType sType;
  6484. const void* pNext;
  6485. VkBool32 srcPremultiplied;
  6486. VkBool32 dstPremultiplied;
  6487. VkBlendOverlapEXT blendOverlap;
  6488. } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
  6489. #define VK_NV_fragment_coverage_to_color 1
  6490. #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
  6491. #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
  6492. typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
  6493. typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
  6494. VkStructureType sType;
  6495. const void* pNext;
  6496. VkPipelineCoverageToColorStateCreateFlagsNV flags;
  6497. VkBool32 coverageToColorEnable;
  6498. uint32_t coverageToColorLocation;
  6499. } VkPipelineCoverageToColorStateCreateInfoNV;
  6500. #define VK_NV_framebuffer_mixed_samples 1
  6501. #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
  6502. #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
  6503. typedef enum VkCoverageModulationModeNV {
  6504. VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
  6505. VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
  6506. VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
  6507. VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
  6508. VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV,
  6509. VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV,
  6510. VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1),
  6511. VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
  6512. } VkCoverageModulationModeNV;
  6513. typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
  6514. typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
  6515. VkStructureType sType;
  6516. const void* pNext;
  6517. VkPipelineCoverageModulationStateCreateFlagsNV flags;
  6518. VkCoverageModulationModeNV coverageModulationMode;
  6519. VkBool32 coverageModulationTableEnable;
  6520. uint32_t coverageModulationTableCount;
  6521. const float* pCoverageModulationTable;
  6522. } VkPipelineCoverageModulationStateCreateInfoNV;
  6523. #define VK_NV_fill_rectangle 1
  6524. #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
  6525. #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
  6526. #define VK_EXT_post_depth_coverage 1
  6527. #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
  6528. #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
  6529. #define VK_EXT_validation_cache 1
  6530. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
  6531. #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
  6532. #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
  6533. typedef enum VkValidationCacheHeaderVersionEXT {
  6534. VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
  6535. VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
  6536. VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
  6537. VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1),
  6538. VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
  6539. } VkValidationCacheHeaderVersionEXT;
  6540. typedef VkFlags VkValidationCacheCreateFlagsEXT;
  6541. typedef struct VkValidationCacheCreateInfoEXT {
  6542. VkStructureType sType;
  6543. const void* pNext;
  6544. VkValidationCacheCreateFlagsEXT flags;
  6545. size_t initialDataSize;
  6546. const void* pInitialData;
  6547. } VkValidationCacheCreateInfoEXT;
  6548. typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
  6549. VkStructureType sType;
  6550. const void* pNext;
  6551. VkValidationCacheEXT validationCache;
  6552. } VkShaderModuleValidationCacheCreateInfoEXT;
  6553. typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
  6554. typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
  6555. typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
  6556. typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
  6557. #ifndef VK_NO_PROTOTYPES
  6558. VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
  6559. VkDevice device,
  6560. const VkValidationCacheCreateInfoEXT* pCreateInfo,
  6561. const VkAllocationCallbacks* pAllocator,
  6562. VkValidationCacheEXT* pValidationCache);
  6563. VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
  6564. VkDevice device,
  6565. VkValidationCacheEXT validationCache,
  6566. const VkAllocationCallbacks* pAllocator);
  6567. VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
  6568. VkDevice device,
  6569. VkValidationCacheEXT dstCache,
  6570. uint32_t srcCacheCount,
  6571. const VkValidationCacheEXT* pSrcCaches);
  6572. VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
  6573. VkDevice device,
  6574. VkValidationCacheEXT validationCache,
  6575. size_t* pDataSize,
  6576. void* pData);
  6577. #endif
  6578. #define VK_EXT_descriptor_indexing 1
  6579. #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
  6580. #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
  6581. typedef enum VkDescriptorBindingFlagBitsEXT {
  6582. VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
  6583. VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
  6584. VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
  6585. VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
  6586. VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
  6587. } VkDescriptorBindingFlagBitsEXT;
  6588. typedef VkFlags VkDescriptorBindingFlagsEXT;
  6589. typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
  6590. VkStructureType sType;
  6591. const void* pNext;
  6592. uint32_t bindingCount;
  6593. const VkDescriptorBindingFlagsEXT* pBindingFlags;
  6594. } VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
  6595. typedef struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
  6596. VkStructureType sType;
  6597. void* pNext;
  6598. VkBool32 shaderInputAttachmentArrayDynamicIndexing;
  6599. VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
  6600. VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
  6601. VkBool32 shaderUniformBufferArrayNonUniformIndexing;
  6602. VkBool32 shaderSampledImageArrayNonUniformIndexing;
  6603. VkBool32 shaderStorageBufferArrayNonUniformIndexing;
  6604. VkBool32 shaderStorageImageArrayNonUniformIndexing;
  6605. VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
  6606. VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
  6607. VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
  6608. VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
  6609. VkBool32 descriptorBindingSampledImageUpdateAfterBind;
  6610. VkBool32 descriptorBindingStorageImageUpdateAfterBind;
  6611. VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
  6612. VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
  6613. VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
  6614. VkBool32 descriptorBindingUpdateUnusedWhilePending;
  6615. VkBool32 descriptorBindingPartiallyBound;
  6616. VkBool32 descriptorBindingVariableDescriptorCount;
  6617. VkBool32 runtimeDescriptorArray;
  6618. } VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
  6619. typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
  6620. VkStructureType sType;
  6621. void* pNext;
  6622. uint32_t maxUpdateAfterBindDescriptorsInAllPools;
  6623. VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
  6624. VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
  6625. VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
  6626. VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
  6627. VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
  6628. VkBool32 robustBufferAccessUpdateAfterBind;
  6629. VkBool32 quadDivergentImplicitLod;
  6630. uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
  6631. uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
  6632. uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
  6633. uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
  6634. uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
  6635. uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
  6636. uint32_t maxPerStageUpdateAfterBindResources;
  6637. uint32_t maxDescriptorSetUpdateAfterBindSamplers;
  6638. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
  6639. uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
  6640. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
  6641. uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
  6642. uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
  6643. uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
  6644. uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
  6645. } VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
  6646. typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
  6647. VkStructureType sType;
  6648. const void* pNext;
  6649. uint32_t descriptorSetCount;
  6650. const uint32_t* pDescriptorCounts;
  6651. } VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
  6652. typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
  6653. VkStructureType sType;
  6654. void* pNext;
  6655. uint32_t maxVariableDescriptorCount;
  6656. } VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
  6657. #define VK_EXT_shader_viewport_index_layer 1
  6658. #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
  6659. #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
  6660. #define VK_NV_shading_rate_image 1
  6661. #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
  6662. #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
  6663. typedef enum VkShadingRatePaletteEntryNV {
  6664. VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
  6665. VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
  6666. VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
  6667. VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
  6668. VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
  6669. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
  6670. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
  6671. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
  6672. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
  6673. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
  6674. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
  6675. VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
  6676. VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
  6677. VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV,
  6678. VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1),
  6679. VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
  6680. } VkShadingRatePaletteEntryNV;
  6681. typedef enum VkCoarseSampleOrderTypeNV {
  6682. VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
  6683. VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
  6684. VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
  6685. VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
  6686. VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
  6687. VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV,
  6688. VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1),
  6689. VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
  6690. } VkCoarseSampleOrderTypeNV;
  6691. typedef struct VkShadingRatePaletteNV {
  6692. uint32_t shadingRatePaletteEntryCount;
  6693. const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
  6694. } VkShadingRatePaletteNV;
  6695. typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
  6696. VkStructureType sType;
  6697. const void* pNext;
  6698. VkBool32 shadingRateImageEnable;
  6699. uint32_t viewportCount;
  6700. const VkShadingRatePaletteNV* pShadingRatePalettes;
  6701. } VkPipelineViewportShadingRateImageStateCreateInfoNV;
  6702. typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
  6703. VkStructureType sType;
  6704. void* pNext;
  6705. VkBool32 shadingRateImage;
  6706. VkBool32 shadingRateCoarseSampleOrder;
  6707. } VkPhysicalDeviceShadingRateImageFeaturesNV;
  6708. typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
  6709. VkStructureType sType;
  6710. void* pNext;
  6711. VkExtent2D shadingRateTexelSize;
  6712. uint32_t shadingRatePaletteSize;
  6713. uint32_t shadingRateMaxCoarseSamples;
  6714. } VkPhysicalDeviceShadingRateImagePropertiesNV;
  6715. typedef struct VkCoarseSampleLocationNV {
  6716. uint32_t pixelX;
  6717. uint32_t pixelY;
  6718. uint32_t sample;
  6719. } VkCoarseSampleLocationNV;
  6720. typedef struct VkCoarseSampleOrderCustomNV {
  6721. VkShadingRatePaletteEntryNV shadingRate;
  6722. uint32_t sampleCount;
  6723. uint32_t sampleLocationCount;
  6724. const VkCoarseSampleLocationNV* pSampleLocations;
  6725. } VkCoarseSampleOrderCustomNV;
  6726. typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
  6727. VkStructureType sType;
  6728. const void* pNext;
  6729. VkCoarseSampleOrderTypeNV sampleOrderType;
  6730. uint32_t customSampleOrderCount;
  6731. const VkCoarseSampleOrderCustomNV* pCustomSampleOrders;
  6732. } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
  6733. typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
  6734. typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
  6735. typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
  6736. #ifndef VK_NO_PROTOTYPES
  6737. VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
  6738. VkCommandBuffer commandBuffer,
  6739. VkImageView imageView,
  6740. VkImageLayout imageLayout);
  6741. VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
  6742. VkCommandBuffer commandBuffer,
  6743. uint32_t firstViewport,
  6744. uint32_t viewportCount,
  6745. const VkShadingRatePaletteNV* pShadingRatePalettes);
  6746. VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
  6747. VkCommandBuffer commandBuffer,
  6748. VkCoarseSampleOrderTypeNV sampleOrderType,
  6749. uint32_t customSampleOrderCount,
  6750. const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
  6751. #endif
  6752. #define VK_NVX_raytracing 1
  6753. VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNVX)
  6754. #define VK_NVX_RAYTRACING_SPEC_VERSION 1
  6755. #define VK_NVX_RAYTRACING_EXTENSION_NAME "VK_NVX_raytracing"
  6756. typedef enum VkGeometryTypeNVX {
  6757. VK_GEOMETRY_TYPE_TRIANGLES_NVX = 0,
  6758. VK_GEOMETRY_TYPE_AABBS_NVX = 1,
  6759. VK_GEOMETRY_TYPE_BEGIN_RANGE_NVX = VK_GEOMETRY_TYPE_TRIANGLES_NVX,
  6760. VK_GEOMETRY_TYPE_END_RANGE_NVX = VK_GEOMETRY_TYPE_AABBS_NVX,
  6761. VK_GEOMETRY_TYPE_RANGE_SIZE_NVX = (VK_GEOMETRY_TYPE_AABBS_NVX - VK_GEOMETRY_TYPE_TRIANGLES_NVX + 1),
  6762. VK_GEOMETRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
  6763. } VkGeometryTypeNVX;
  6764. typedef enum VkAccelerationStructureTypeNVX {
  6765. VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX = 0,
  6766. VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX = 1,
  6767. VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NVX = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX,
  6768. VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NVX = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX,
  6769. VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NVX = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NVX - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NVX + 1),
  6770. VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
  6771. } VkAccelerationStructureTypeNVX;
  6772. typedef enum VkCopyAccelerationStructureModeNVX {
  6773. VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX = 0,
  6774. VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX = 1,
  6775. VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NVX = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX,
  6776. VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NVX = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX,
  6777. VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NVX = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NVX - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NVX + 1),
  6778. VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NVX = 0x7FFFFFFF
  6779. } VkCopyAccelerationStructureModeNVX;
  6780. typedef enum VkGeometryFlagBitsNVX {
  6781. VK_GEOMETRY_OPAQUE_BIT_NVX = 0x00000001,
  6782. VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NVX = 0x00000002,
  6783. VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
  6784. } VkGeometryFlagBitsNVX;
  6785. typedef VkFlags VkGeometryFlagsNVX;
  6786. typedef enum VkGeometryInstanceFlagBitsNVX {
  6787. VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NVX = 0x00000001,
  6788. VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_FLIP_WINDING_BIT_NVX = 0x00000002,
  6789. VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NVX = 0x00000004,
  6790. VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NVX = 0x00000008,
  6791. VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
  6792. } VkGeometryInstanceFlagBitsNVX;
  6793. typedef VkFlags VkGeometryInstanceFlagsNVX;
  6794. typedef enum VkBuildAccelerationStructureFlagBitsNVX {
  6795. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NVX = 0x00000001,
  6796. VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NVX = 0x00000002,
  6797. VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NVX = 0x00000004,
  6798. VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NVX = 0x00000008,
  6799. VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NVX = 0x00000010,
  6800. VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
  6801. } VkBuildAccelerationStructureFlagBitsNVX;
  6802. typedef VkFlags VkBuildAccelerationStructureFlagsNVX;
  6803. typedef struct VkRaytracingPipelineCreateInfoNVX {
  6804. VkStructureType sType;
  6805. const void* pNext;
  6806. VkPipelineCreateFlags flags;
  6807. uint32_t stageCount;
  6808. const VkPipelineShaderStageCreateInfo* pStages;
  6809. const uint32_t* pGroupNumbers;
  6810. uint32_t maxRecursionDepth;
  6811. VkPipelineLayout layout;
  6812. VkPipeline basePipelineHandle;
  6813. int32_t basePipelineIndex;
  6814. } VkRaytracingPipelineCreateInfoNVX;
  6815. typedef struct VkGeometryTrianglesNVX {
  6816. VkStructureType sType;
  6817. const void* pNext;
  6818. VkBuffer vertexData;
  6819. VkDeviceSize vertexOffset;
  6820. uint32_t vertexCount;
  6821. VkDeviceSize vertexStride;
  6822. VkFormat vertexFormat;
  6823. VkBuffer indexData;
  6824. VkDeviceSize indexOffset;
  6825. uint32_t indexCount;
  6826. VkIndexType indexType;
  6827. VkBuffer transformData;
  6828. VkDeviceSize transformOffset;
  6829. } VkGeometryTrianglesNVX;
  6830. typedef struct VkGeometryAABBNVX {
  6831. VkStructureType sType;
  6832. const void* pNext;
  6833. VkBuffer aabbData;
  6834. uint32_t numAABBs;
  6835. uint32_t stride;
  6836. VkDeviceSize offset;
  6837. } VkGeometryAABBNVX;
  6838. typedef struct VkGeometryDataNVX {
  6839. VkGeometryTrianglesNVX triangles;
  6840. VkGeometryAABBNVX aabbs;
  6841. } VkGeometryDataNVX;
  6842. typedef struct VkGeometryNVX {
  6843. VkStructureType sType;
  6844. const void* pNext;
  6845. VkGeometryTypeNVX geometryType;
  6846. VkGeometryDataNVX geometry;
  6847. VkGeometryFlagsNVX flags;
  6848. } VkGeometryNVX;
  6849. typedef struct VkAccelerationStructureCreateInfoNVX {
  6850. VkStructureType sType;
  6851. const void* pNext;
  6852. VkAccelerationStructureTypeNVX type;
  6853. VkBuildAccelerationStructureFlagsNVX flags;
  6854. VkDeviceSize compactedSize;
  6855. uint32_t instanceCount;
  6856. uint32_t geometryCount;
  6857. const VkGeometryNVX* pGeometries;
  6858. } VkAccelerationStructureCreateInfoNVX;
  6859. typedef struct VkBindAccelerationStructureMemoryInfoNVX {
  6860. VkStructureType sType;
  6861. const void* pNext;
  6862. VkAccelerationStructureNVX accelerationStructure;
  6863. VkDeviceMemory memory;
  6864. VkDeviceSize memoryOffset;
  6865. uint32_t deviceIndexCount;
  6866. const uint32_t* pDeviceIndices;
  6867. } VkBindAccelerationStructureMemoryInfoNVX;
  6868. typedef struct VkDescriptorAccelerationStructureInfoNVX {
  6869. VkStructureType sType;
  6870. const void* pNext;
  6871. uint32_t accelerationStructureCount;
  6872. const VkAccelerationStructureNVX* pAccelerationStructures;
  6873. } VkDescriptorAccelerationStructureInfoNVX;
  6874. typedef struct VkAccelerationStructureMemoryRequirementsInfoNVX {
  6875. VkStructureType sType;
  6876. const void* pNext;
  6877. VkAccelerationStructureNVX accelerationStructure;
  6878. } VkAccelerationStructureMemoryRequirementsInfoNVX;
  6879. typedef struct VkPhysicalDeviceRaytracingPropertiesNVX {
  6880. VkStructureType sType;
  6881. void* pNext;
  6882. uint32_t shaderHeaderSize;
  6883. uint32_t maxRecursionDepth;
  6884. uint32_t maxGeometryCount;
  6885. } VkPhysicalDeviceRaytracingPropertiesNVX;
  6886. typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNVX)(VkDevice device, const VkAccelerationStructureCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNVX* pAccelerationStructure);
  6887. typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNVX)(VkDevice device, VkAccelerationStructureNVX accelerationStructure, const VkAllocationCallbacks* pAllocator);
  6888. typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNVX)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
  6889. typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureScratchMemoryRequirementsNVX)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
  6890. typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNVX)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos);
  6891. typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNVX)(VkCommandBuffer commandBuffer, VkAccelerationStructureTypeNVX type, uint32_t instanceCount, VkBuffer instanceData, VkDeviceSize instanceOffset, uint32_t geometryCount, const VkGeometryNVX* pGeometries, VkBuildAccelerationStructureFlagsNVX flags, VkBool32 update, VkAccelerationStructureNVX dst, VkAccelerationStructureNVX src, VkBuffer scratch, VkDeviceSize scratchOffset);
  6892. typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNVX)(VkCommandBuffer commandBuffer, VkAccelerationStructureNVX dst, VkAccelerationStructureNVX src, VkCopyAccelerationStructureModeNVX mode);
  6893. typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNVX)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, uint32_t width, uint32_t height);
  6894. typedef VkResult (VKAPI_PTR *PFN_vkCreateRaytracingPipelinesNVX)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRaytracingPipelineCreateInfoNVX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
  6895. typedef VkResult (VKAPI_PTR *PFN_vkGetRaytracingShaderHandlesNVX)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
  6896. typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNVX)(VkDevice device, VkAccelerationStructureNVX accelerationStructure, size_t dataSize, void* pData);
  6897. typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructurePropertiesNVX)(VkCommandBuffer commandBuffer, VkAccelerationStructureNVX accelerationStructure, VkQueryType queryType, VkQueryPool queryPool, uint32_t query);
  6898. typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNVX)(VkDevice device, VkPipeline pipeline, uint32_t shader);
  6899. #ifndef VK_NO_PROTOTYPES
  6900. VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNVX(
  6901. VkDevice device,
  6902. const VkAccelerationStructureCreateInfoNVX* pCreateInfo,
  6903. const VkAllocationCallbacks* pAllocator,
  6904. VkAccelerationStructureNVX* pAccelerationStructure);
  6905. VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNVX(
  6906. VkDevice device,
  6907. VkAccelerationStructureNVX accelerationStructure,
  6908. const VkAllocationCallbacks* pAllocator);
  6909. VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNVX(
  6910. VkDevice device,
  6911. const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo,
  6912. VkMemoryRequirements2KHR* pMemoryRequirements);
  6913. VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureScratchMemoryRequirementsNVX(
  6914. VkDevice device,
  6915. const VkAccelerationStructureMemoryRequirementsInfoNVX* pInfo,
  6916. VkMemoryRequirements2KHR* pMemoryRequirements);
  6917. VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNVX(
  6918. VkDevice device,
  6919. uint32_t bindInfoCount,
  6920. const VkBindAccelerationStructureMemoryInfoNVX* pBindInfos);
  6921. VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNVX(
  6922. VkCommandBuffer commandBuffer,
  6923. VkAccelerationStructureTypeNVX type,
  6924. uint32_t instanceCount,
  6925. VkBuffer instanceData,
  6926. VkDeviceSize instanceOffset,
  6927. uint32_t geometryCount,
  6928. const VkGeometryNVX* pGeometries,
  6929. VkBuildAccelerationStructureFlagsNVX flags,
  6930. VkBool32 update,
  6931. VkAccelerationStructureNVX dst,
  6932. VkAccelerationStructureNVX src,
  6933. VkBuffer scratch,
  6934. VkDeviceSize scratchOffset);
  6935. VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNVX(
  6936. VkCommandBuffer commandBuffer,
  6937. VkAccelerationStructureNVX dst,
  6938. VkAccelerationStructureNVX src,
  6939. VkCopyAccelerationStructureModeNVX mode);
  6940. VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNVX(
  6941. VkCommandBuffer commandBuffer,
  6942. VkBuffer raygenShaderBindingTableBuffer,
  6943. VkDeviceSize raygenShaderBindingOffset,
  6944. VkBuffer missShaderBindingTableBuffer,
  6945. VkDeviceSize missShaderBindingOffset,
  6946. VkDeviceSize missShaderBindingStride,
  6947. VkBuffer hitShaderBindingTableBuffer,
  6948. VkDeviceSize hitShaderBindingOffset,
  6949. VkDeviceSize hitShaderBindingStride,
  6950. uint32_t width,
  6951. uint32_t height);
  6952. VKAPI_ATTR VkResult VKAPI_CALL vkCreateRaytracingPipelinesNVX(
  6953. VkDevice device,
  6954. VkPipelineCache pipelineCache,
  6955. uint32_t createInfoCount,
  6956. const VkRaytracingPipelineCreateInfoNVX* pCreateInfos,
  6957. const VkAllocationCallbacks* pAllocator,
  6958. VkPipeline* pPipelines);
  6959. VKAPI_ATTR VkResult VKAPI_CALL vkGetRaytracingShaderHandlesNVX(
  6960. VkDevice device,
  6961. VkPipeline pipeline,
  6962. uint32_t firstGroup,
  6963. uint32_t groupCount,
  6964. size_t dataSize,
  6965. void* pData);
  6966. VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNVX(
  6967. VkDevice device,
  6968. VkAccelerationStructureNVX accelerationStructure,
  6969. size_t dataSize,
  6970. void* pData);
  6971. VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructurePropertiesNVX(
  6972. VkCommandBuffer commandBuffer,
  6973. VkAccelerationStructureNVX accelerationStructure,
  6974. VkQueryType queryType,
  6975. VkQueryPool queryPool,
  6976. uint32_t query);
  6977. VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNVX(
  6978. VkDevice device,
  6979. VkPipeline pipeline,
  6980. uint32_t shader);
  6981. #endif
  6982. #define VK_NV_representative_fragment_test 1
  6983. #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1
  6984. #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
  6985. typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
  6986. VkStructureType sType;
  6987. void* pNext;
  6988. VkBool32 representativeFragmentTest;
  6989. } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
  6990. typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
  6991. VkStructureType sType;
  6992. const void* pNext;
  6993. VkBool32 representativeFragmentTestEnable;
  6994. } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
  6995. #define VK_EXT_global_priority 1
  6996. #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
  6997. #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
  6998. typedef enum VkQueueGlobalPriorityEXT {
  6999. VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
  7000. VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
  7001. VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
  7002. VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
  7003. VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
  7004. VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT,
  7005. VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1),
  7006. VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF
  7007. } VkQueueGlobalPriorityEXT;
  7008. typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
  7009. VkStructureType sType;
  7010. const void* pNext;
  7011. VkQueueGlobalPriorityEXT globalPriority;
  7012. } VkDeviceQueueGlobalPriorityCreateInfoEXT;
  7013. #define VK_EXT_external_memory_host 1
  7014. #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
  7015. #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
  7016. typedef struct VkImportMemoryHostPointerInfoEXT {
  7017. VkStructureType sType;
  7018. const void* pNext;
  7019. VkExternalMemoryHandleTypeFlagBits handleType;
  7020. void* pHostPointer;
  7021. } VkImportMemoryHostPointerInfoEXT;
  7022. typedef struct VkMemoryHostPointerPropertiesEXT {
  7023. VkStructureType sType;
  7024. void* pNext;
  7025. uint32_t memoryTypeBits;
  7026. } VkMemoryHostPointerPropertiesEXT;
  7027. typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
  7028. VkStructureType sType;
  7029. void* pNext;
  7030. VkDeviceSize minImportedHostPointerAlignment;
  7031. } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
  7032. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
  7033. #ifndef VK_NO_PROTOTYPES
  7034. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
  7035. VkDevice device,
  7036. VkExternalMemoryHandleTypeFlagBits handleType,
  7037. const void* pHostPointer,
  7038. VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
  7039. #endif
  7040. #define VK_AMD_buffer_marker 1
  7041. #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
  7042. #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
  7043. typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
  7044. #ifndef VK_NO_PROTOTYPES
  7045. VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
  7046. VkCommandBuffer commandBuffer,
  7047. VkPipelineStageFlagBits pipelineStage,
  7048. VkBuffer dstBuffer,
  7049. VkDeviceSize dstOffset,
  7050. uint32_t marker);
  7051. #endif
  7052. #define VK_AMD_shader_core_properties 1
  7053. #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
  7054. #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
  7055. typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
  7056. VkStructureType sType;
  7057. void* pNext;
  7058. uint32_t shaderEngineCount;
  7059. uint32_t shaderArraysPerEngineCount;
  7060. uint32_t computeUnitsPerShaderArray;
  7061. uint32_t simdPerComputeUnit;
  7062. uint32_t wavefrontsPerSimd;
  7063. uint32_t wavefrontSize;
  7064. uint32_t sgprsPerSimd;
  7065. uint32_t minSgprAllocation;
  7066. uint32_t maxSgprAllocation;
  7067. uint32_t sgprAllocationGranularity;
  7068. uint32_t vgprsPerSimd;
  7069. uint32_t minVgprAllocation;
  7070. uint32_t maxVgprAllocation;
  7071. uint32_t vgprAllocationGranularity;
  7072. } VkPhysicalDeviceShaderCorePropertiesAMD;
  7073. #define VK_EXT_vertex_attribute_divisor 1
  7074. #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
  7075. #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
  7076. typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
  7077. VkStructureType sType;
  7078. void* pNext;
  7079. uint32_t maxVertexAttribDivisor;
  7080. } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
  7081. typedef struct VkVertexInputBindingDivisorDescriptionEXT {
  7082. uint32_t binding;
  7083. uint32_t divisor;
  7084. } VkVertexInputBindingDivisorDescriptionEXT;
  7085. typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
  7086. VkStructureType sType;
  7087. const void* pNext;
  7088. uint32_t vertexBindingDivisorCount;
  7089. const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors;
  7090. } VkPipelineVertexInputDivisorStateCreateInfoEXT;
  7091. typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
  7092. VkStructureType sType;
  7093. void* pNext;
  7094. VkBool32 vertexAttributeInstanceRateDivisor;
  7095. VkBool32 vertexAttributeInstanceRateZeroDivisor;
  7096. } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
  7097. #define VK_NV_shader_subgroup_partitioned 1
  7098. #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
  7099. #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
  7100. #define VK_NV_compute_shader_derivatives 1
  7101. #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
  7102. #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
  7103. typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
  7104. VkStructureType sType;
  7105. void* pNext;
  7106. VkBool32 computeDerivativeGroupQuads;
  7107. VkBool32 computeDerivativeGroupLinear;
  7108. } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
  7109. #define VK_NV_mesh_shader 1
  7110. #define VK_NV_MESH_SHADER_SPEC_VERSION 1
  7111. #define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
  7112. typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
  7113. VkStructureType sType;
  7114. void* pNext;
  7115. VkBool32 taskShader;
  7116. VkBool32 meshShader;
  7117. } VkPhysicalDeviceMeshShaderFeaturesNV;
  7118. typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
  7119. VkStructureType sType;
  7120. void* pNext;
  7121. uint32_t maxDrawMeshTasksCount;
  7122. uint32_t maxTaskWorkGroupInvocations;
  7123. uint32_t maxTaskWorkGroupSize[3];
  7124. uint32_t maxTaskTotalMemorySize;
  7125. uint32_t maxTaskOutputCount;
  7126. uint32_t maxMeshWorkGroupInvocations;
  7127. uint32_t maxMeshWorkGroupSize[3];
  7128. uint32_t maxMeshTotalMemorySize;
  7129. uint32_t maxMeshOutputVertices;
  7130. uint32_t maxMeshOutputPrimitives;
  7131. uint32_t maxMeshMultiviewViewCount;
  7132. uint32_t meshOutputPerVertexGranularity;
  7133. uint32_t meshOutputPerPrimitiveGranularity;
  7134. } VkPhysicalDeviceMeshShaderPropertiesNV;
  7135. typedef struct VkDrawMeshTasksIndirectCommandNV {
  7136. uint32_t taskCount;
  7137. uint32_t firstTask;
  7138. } VkDrawMeshTasksIndirectCommandNV;
  7139. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
  7140. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
  7141. typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
  7142. #ifndef VK_NO_PROTOTYPES
  7143. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
  7144. VkCommandBuffer commandBuffer,
  7145. uint32_t taskCount,
  7146. uint32_t firstTask);
  7147. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
  7148. VkCommandBuffer commandBuffer,
  7149. VkBuffer buffer,
  7150. VkDeviceSize offset,
  7151. uint32_t drawCount,
  7152. uint32_t stride);
  7153. VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
  7154. VkCommandBuffer commandBuffer,
  7155. VkBuffer buffer,
  7156. VkDeviceSize offset,
  7157. VkBuffer countBuffer,
  7158. VkDeviceSize countBufferOffset,
  7159. uint32_t maxDrawCount,
  7160. uint32_t stride);
  7161. #endif
  7162. #define VK_NV_fragment_shader_barycentric 1
  7163. #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
  7164. #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
  7165. typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
  7166. VkStructureType sType;
  7167. void* pNext;
  7168. VkBool32 fragmentShaderBarycentric;
  7169. } VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
  7170. #define VK_NV_shader_image_footprint 1
  7171. #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1
  7172. #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
  7173. typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
  7174. VkStructureType sType;
  7175. void* pNext;
  7176. VkBool32 imageFootprint;
  7177. } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
  7178. #define VK_NV_scissor_exclusive 1
  7179. #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
  7180. #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
  7181. typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
  7182. VkStructureType sType;
  7183. const void* pNext;
  7184. uint32_t exclusiveScissorCount;
  7185. const VkRect2D* pExclusiveScissors;
  7186. } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
  7187. typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
  7188. VkStructureType sType;
  7189. void* pNext;
  7190. VkBool32 exclusiveScissor;
  7191. } VkPhysicalDeviceExclusiveScissorFeaturesNV;
  7192. typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
  7193. #ifndef VK_NO_PROTOTYPES
  7194. VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
  7195. VkCommandBuffer commandBuffer,
  7196. uint32_t firstExclusiveScissor,
  7197. uint32_t exclusiveScissorCount,
  7198. const VkRect2D* pExclusiveScissors);
  7199. #endif
  7200. #define VK_NV_device_diagnostic_checkpoints 1
  7201. #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
  7202. #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
  7203. typedef struct VkQueueFamilyCheckpointPropertiesNV {
  7204. VkStructureType sType;
  7205. void* pNext;
  7206. VkPipelineStageFlags checkpointExecutionStageMask;
  7207. } VkQueueFamilyCheckpointPropertiesNV;
  7208. typedef struct VkCheckpointDataNV {
  7209. VkStructureType sType;
  7210. void* pNext;
  7211. VkPipelineStageFlagBits stage;
  7212. void* pCheckpointMarker;
  7213. } VkCheckpointDataNV;
  7214. typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
  7215. typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
  7216. #ifndef VK_NO_PROTOTYPES
  7217. VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
  7218. VkCommandBuffer commandBuffer,
  7219. const void* pCheckpointMarker);
  7220. VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
  7221. VkQueue queue,
  7222. uint32_t* pCheckpointDataCount,
  7223. VkCheckpointDataNV* pCheckpointData);
  7224. #endif
  7225. #ifdef __cplusplus
  7226. }
  7227. #endif
  7228. #endif