vulkan.hpp 614 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519
  1. // Copyright 2015-2022 The Khronos Group Inc.
  2. //
  3. // SPDX-License-Identifier: Apache-2.0 OR MIT
  4. //
  5. // This header is generated from the Khronos Vulkan XML API Registry.
  6. #ifndef VULKAN_HPP
  7. #define VULKAN_HPP
  8. #if defined( _MSVC_LANG )
  9. # define VULKAN_HPP_CPLUSPLUS _MSVC_LANG
  10. #else
  11. # define VULKAN_HPP_CPLUSPLUS __cplusplus
  12. #endif
  13. #if 201703L < VULKAN_HPP_CPLUSPLUS
  14. # define VULKAN_HPP_CPP_VERSION 20
  15. #elif 201402L < VULKAN_HPP_CPLUSPLUS
  16. # define VULKAN_HPP_CPP_VERSION 17
  17. #elif 201103L < VULKAN_HPP_CPLUSPLUS
  18. # define VULKAN_HPP_CPP_VERSION 14
  19. #elif 199711L < VULKAN_HPP_CPLUSPLUS
  20. # define VULKAN_HPP_CPP_VERSION 11
  21. #else
  22. # error "vulkan.hpp needs at least c++ standard version 11"
  23. #endif
  24. #include <array> // ArrayWrapperND
  25. #include <string> // std::string
  26. #include <vulkan/vulkan.h>
  27. #if 17 <= VULKAN_HPP_CPP_VERSION
  28. # include <string_view> // std::string_view
  29. #endif
  30. #if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  31. # if !defined( VULKAN_HPP_NO_SMART_HANDLE )
  32. # define VULKAN_HPP_NO_SMART_HANDLE
  33. # endif
  34. #else
  35. # include <tuple> // std::tie
  36. # include <vector> // std::vector
  37. #endif
  38. #if !defined( VULKAN_HPP_NO_EXCEPTIONS )
  39. # include <system_error> // std::is_error_code_enum
  40. #endif
  41. #if !defined( VULKAN_HPP_NO_SMART_HANDLE )
  42. # include <algorithm> // std::transform
  43. #endif
  44. #if defined( VULKAN_HPP_NO_CONSTRUCTORS )
  45. # if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
  46. # define VULKAN_HPP_NO_STRUCT_CONSTRUCTORS
  47. # endif
  48. # if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
  49. # define VULKAN_HPP_NO_UNION_CONSTRUCTORS
  50. # endif
  51. #endif
  52. #if defined( VULKAN_HPP_NO_SETTERS )
  53. # if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
  54. # define VULKAN_HPP_NO_STRUCT_SETTERS
  55. # endif
  56. # if !defined( VULKAN_HPP_NO_UNION_SETTERS )
  57. # define VULKAN_HPP_NO_UNION_SETTERS
  58. # endif
  59. #endif
  60. #if !defined( VULKAN_HPP_ASSERT )
  61. # include <cassert>
  62. # define VULKAN_HPP_ASSERT assert
  63. #endif
  64. #if !defined( VULKAN_HPP_ASSERT_ON_RESULT )
  65. # define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT
  66. #endif
  67. #if !defined( VULKAN_HPP_STATIC_ASSERT )
  68. # define VULKAN_HPP_STATIC_ASSERT static_assert
  69. #endif
  70. #if !defined( VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL )
  71. # define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1
  72. #endif
  73. #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1
  74. # if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
  75. # include <dlfcn.h>
  76. # elif defined( _WIN32 )
  77. typedef struct HINSTANCE__ * HINSTANCE;
  78. # if defined( _WIN64 )
  79. typedef int64_t( __stdcall * FARPROC )();
  80. # else
  81. typedef int( __stdcall * FARPROC )();
  82. # endif
  83. extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName );
  84. extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule );
  85. extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName );
  86. # endif
  87. #endif
  88. #if !defined( __has_include )
  89. # define __has_include( x ) false
  90. #endif
  91. #if ( 201907 <= __cpp_lib_three_way_comparison ) && __has_include( <compare> ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR )
  92. # define VULKAN_HPP_HAS_SPACESHIP_OPERATOR
  93. #endif
  94. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  95. # include <compare>
  96. #endif
  97. #if ( 201803 <= __cpp_lib_span )
  98. # define VULKAN_HPP_SUPPORT_SPAN
  99. # include <span>
  100. #endif
  101. static_assert( VK_HEADER_VERSION == 226, "Wrong VK_HEADER_VERSION!" );
  102. // 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default.
  103. // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
  104. #if ( VK_USE_64_BIT_PTR_DEFINES == 1 )
  105. # if !defined( VULKAN_HPP_TYPESAFE_CONVERSION )
  106. # define VULKAN_HPP_TYPESAFE_CONVERSION
  107. # endif
  108. #endif
  109. // <tuple> includes <sys/sysmacros.h> through some other header
  110. // this results in major(x) being resolved to gnu_dev_major(x)
  111. // which is an expression in a constructor initializer list.
  112. #if defined( major )
  113. # undef major
  114. #endif
  115. #if defined( minor )
  116. # undef minor
  117. #endif
  118. // Windows defines MemoryBarrier which is deprecated and collides
  119. // with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct.
  120. #if defined( MemoryBarrier )
  121. # undef MemoryBarrier
  122. #endif
  123. #if !defined( VULKAN_HPP_HAS_UNRESTRICTED_UNIONS )
  124. # if defined( __clang__ )
  125. # if __has_feature( cxx_unrestricted_unions )
  126. # define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  127. # endif
  128. # elif defined( __GNUC__ )
  129. # define GCC_VERSION ( __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ )
  130. # if 40600 <= GCC_VERSION
  131. # define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  132. # endif
  133. # elif defined( _MSC_VER )
  134. # if 1900 <= _MSC_VER
  135. # define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
  136. # endif
  137. # endif
  138. #endif
  139. #if !defined( VULKAN_HPP_INLINE )
  140. # if defined( __clang__ )
  141. # if __has_attribute( always_inline )
  142. # define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
  143. # else
  144. # define VULKAN_HPP_INLINE inline
  145. # endif
  146. # elif defined( __GNUC__ )
  147. # define VULKAN_HPP_INLINE __attribute__( ( always_inline ) ) __inline__
  148. # elif defined( _MSC_VER )
  149. # define VULKAN_HPP_INLINE inline
  150. # else
  151. # define VULKAN_HPP_INLINE inline
  152. # endif
  153. #endif
  154. #if defined( VULKAN_HPP_TYPESAFE_CONVERSION )
  155. # define VULKAN_HPP_TYPESAFE_EXPLICIT
  156. #else
  157. # define VULKAN_HPP_TYPESAFE_EXPLICIT explicit
  158. #endif
  159. #if defined( __cpp_constexpr )
  160. # define VULKAN_HPP_CONSTEXPR constexpr
  161. # if __cpp_constexpr >= 201304
  162. # define VULKAN_HPP_CONSTEXPR_14 constexpr
  163. # else
  164. # define VULKAN_HPP_CONSTEXPR_14
  165. # endif
  166. # define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr
  167. #else
  168. # define VULKAN_HPP_CONSTEXPR
  169. # define VULKAN_HPP_CONSTEXPR_14
  170. # define VULKAN_HPP_CONST_OR_CONSTEXPR const
  171. #endif
  172. #if !defined( VULKAN_HPP_NOEXCEPT )
  173. # if defined( _MSC_VER ) && ( _MSC_VER <= 1800 )
  174. # define VULKAN_HPP_NOEXCEPT
  175. # else
  176. # define VULKAN_HPP_NOEXCEPT noexcept
  177. # define VULKAN_HPP_HAS_NOEXCEPT 1
  178. # if defined( VULKAN_HPP_NO_EXCEPTIONS )
  179. # define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept
  180. # else
  181. # define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
  182. # endif
  183. # endif
  184. #endif
  185. #if 14 <= VULKAN_HPP_CPP_VERSION
  186. # define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]]
  187. #else
  188. # define VULKAN_HPP_DEPRECATED( msg )
  189. #endif
  190. #if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
  191. # define VULKAN_HPP_NODISCARD [[nodiscard]]
  192. # if defined( VULKAN_HPP_NO_EXCEPTIONS )
  193. # define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]]
  194. # else
  195. # define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
  196. # endif
  197. #else
  198. # define VULKAN_HPP_NODISCARD
  199. # define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS
  200. #endif
  201. #if !defined( VULKAN_HPP_NAMESPACE )
  202. # define VULKAN_HPP_NAMESPACE vk
  203. #endif
  204. #define VULKAN_HPP_STRINGIFY2( text ) #text
  205. #define VULKAN_HPP_STRINGIFY( text ) VULKAN_HPP_STRINGIFY2( text )
  206. #define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE )
  207. namespace VULKAN_HPP_NAMESPACE
  208. {
  209. template <typename T, size_t N>
  210. class ArrayWrapper1D : public std::array<T, N>
  211. {
  212. public:
  213. VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT : std::array<T, N>() {}
  214. VULKAN_HPP_CONSTEXPR ArrayWrapper1D( std::array<T, N> const & data ) VULKAN_HPP_NOEXCEPT : std::array<T, N>( data ) {}
  215. #if ( VK_USE_64_BIT_PTR_DEFINES == 0 )
  216. // on 32 bit compiles, needs overloads on index type int to resolve ambiguities
  217. VULKAN_HPP_CONSTEXPR T const & operator[]( int index ) const VULKAN_HPP_NOEXCEPT
  218. {
  219. return std::array<T, N>::operator[]( index );
  220. }
  221. T & operator[]( int index ) VULKAN_HPP_NOEXCEPT
  222. {
  223. return std::array<T, N>::operator[]( index );
  224. }
  225. #endif
  226. operator T const *() const VULKAN_HPP_NOEXCEPT
  227. {
  228. return this->data();
  229. }
  230. operator T *() VULKAN_HPP_NOEXCEPT
  231. {
  232. return this->data();
  233. }
  234. template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
  235. operator std::string() const
  236. {
  237. return std::string( this->data() );
  238. }
  239. #if 17 <= VULKAN_HPP_CPP_VERSION
  240. template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
  241. operator std::string_view() const
  242. {
  243. return std::string_view( this->data() );
  244. }
  245. #endif
  246. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  247. template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
  248. std::strong_ordering operator<=>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
  249. {
  250. return *static_cast<std::array<char, N> const *>( this ) <=> *static_cast<std::array<char, N> const *>( &rhs );
  251. }
  252. #else
  253. template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
  254. bool operator<( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
  255. {
  256. return *static_cast<std::array<char, N> const *>( this ) < *static_cast<std::array<char, N> const *>( &rhs );
  257. }
  258. template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
  259. bool operator<=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
  260. {
  261. return *static_cast<std::array<char, N> const *>( this ) <= *static_cast<std::array<char, N> const *>( &rhs );
  262. }
  263. template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
  264. bool operator>( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
  265. {
  266. return *static_cast<std::array<char, N> const *>( this ) > *static_cast<std::array<char, N> const *>( &rhs );
  267. }
  268. template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
  269. bool operator>=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
  270. {
  271. return *static_cast<std::array<char, N> const *>( this ) >= *static_cast<std::array<char, N> const *>( &rhs );
  272. }
  273. #endif
  274. template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
  275. bool operator==( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
  276. {
  277. return *static_cast<std::array<char, N> const *>( this ) == *static_cast<std::array<char, N> const *>( &rhs );
  278. }
  279. template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
  280. bool operator!=( ArrayWrapper1D<char, N> const & rhs ) const VULKAN_HPP_NOEXCEPT
  281. {
  282. return *static_cast<std::array<char, N> const *>( this ) != *static_cast<std::array<char, N> const *>( &rhs );
  283. }
  284. };
  285. // specialization of relational operators between std::string and arrays of chars
  286. template <size_t N>
  287. bool operator<( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
  288. {
  289. return lhs < rhs.data();
  290. }
  291. template <size_t N>
  292. bool operator<=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
  293. {
  294. return lhs <= rhs.data();
  295. }
  296. template <size_t N>
  297. bool operator>( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
  298. {
  299. return lhs > rhs.data();
  300. }
  301. template <size_t N>
  302. bool operator>=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
  303. {
  304. return lhs >= rhs.data();
  305. }
  306. template <size_t N>
  307. bool operator==( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
  308. {
  309. return lhs == rhs.data();
  310. }
  311. template <size_t N>
  312. bool operator!=( std::string const & lhs, ArrayWrapper1D<char, N> const & rhs ) VULKAN_HPP_NOEXCEPT
  313. {
  314. return lhs != rhs.data();
  315. }
  316. template <typename T, size_t N, size_t M>
  317. class ArrayWrapper2D : public std::array<ArrayWrapper1D<T, M>, N>
  318. {
  319. public:
  320. VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT : std::array<ArrayWrapper1D<T, M>, N>() {}
  321. VULKAN_HPP_CONSTEXPR ArrayWrapper2D( std::array<std::array<T, M>, N> const & data ) VULKAN_HPP_NOEXCEPT
  322. : std::array<ArrayWrapper1D<T, M>, N>( *reinterpret_cast<std::array<ArrayWrapper1D<T, M>, N> const *>( &data ) )
  323. {
  324. }
  325. };
  326. template <typename FlagBitsType>
  327. struct FlagTraits
  328. {
  329. };
  330. template <typename BitType>
  331. class Flags
  332. {
  333. public:
  334. using MaskType = typename std::underlying_type<BitType>::type;
  335. // constructors
  336. VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT : m_mask( 0 ) {}
  337. VULKAN_HPP_CONSTEXPR Flags( BitType bit ) VULKAN_HPP_NOEXCEPT : m_mask( static_cast<MaskType>( bit ) ) {}
  338. VULKAN_HPP_CONSTEXPR Flags( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  339. VULKAN_HPP_CONSTEXPR explicit Flags( MaskType flags ) VULKAN_HPP_NOEXCEPT : m_mask( flags ) {}
  340. // relational operators
  341. #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  342. auto operator<=>( Flags<BitType> const & ) const = default;
  343. #else
  344. VULKAN_HPP_CONSTEXPR bool operator<( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
  345. {
  346. return m_mask < rhs.m_mask;
  347. }
  348. VULKAN_HPP_CONSTEXPR bool operator<=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
  349. {
  350. return m_mask <= rhs.m_mask;
  351. }
  352. VULKAN_HPP_CONSTEXPR bool operator>( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
  353. {
  354. return m_mask > rhs.m_mask;
  355. }
  356. VULKAN_HPP_CONSTEXPR bool operator>=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
  357. {
  358. return m_mask >= rhs.m_mask;
  359. }
  360. VULKAN_HPP_CONSTEXPR bool operator==( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
  361. {
  362. return m_mask == rhs.m_mask;
  363. }
  364. VULKAN_HPP_CONSTEXPR bool operator!=( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
  365. {
  366. return m_mask != rhs.m_mask;
  367. }
  368. #endif
  369. // logical operator
  370. VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT
  371. {
  372. return !m_mask;
  373. }
  374. // bitwise operators
  375. VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
  376. {
  377. return Flags<BitType>( m_mask & rhs.m_mask );
  378. }
  379. VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
  380. {
  381. return Flags<BitType>( m_mask | rhs.m_mask );
  382. }
  383. VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( Flags<BitType> const & rhs ) const VULKAN_HPP_NOEXCEPT
  384. {
  385. return Flags<BitType>( m_mask ^ rhs.m_mask );
  386. }
  387. VULKAN_HPP_CONSTEXPR Flags<BitType> operator~() const VULKAN_HPP_NOEXCEPT
  388. {
  389. return Flags<BitType>( m_mask ^ FlagTraits<BitType>::allFlags );
  390. }
  391. // assignment operators
  392. VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  393. VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator|=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
  394. {
  395. m_mask |= rhs.m_mask;
  396. return *this;
  397. }
  398. VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator&=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
  399. {
  400. m_mask &= rhs.m_mask;
  401. return *this;
  402. }
  403. VULKAN_HPP_CONSTEXPR_14 Flags<BitType> & operator^=( Flags<BitType> const & rhs ) VULKAN_HPP_NOEXCEPT
  404. {
  405. m_mask ^= rhs.m_mask;
  406. return *this;
  407. }
  408. // cast operators
  409. explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT
  410. {
  411. return !!m_mask;
  412. }
  413. explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT
  414. {
  415. return m_mask;
  416. }
  417. #if defined( VULKAN_HPP_FLAGS_MASK_TYPE_AS_PUBLIC )
  418. public:
  419. #else
  420. private:
  421. #endif
  422. MaskType m_mask;
  423. };
  424. #if !defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
  425. // relational operators only needed for pre C++20
  426. template <typename BitType>
  427. VULKAN_HPP_CONSTEXPR bool operator<( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
  428. {
  429. return flags.operator>( bit );
  430. }
  431. template <typename BitType>
  432. VULKAN_HPP_CONSTEXPR bool operator<=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
  433. {
  434. return flags.operator>=( bit );
  435. }
  436. template <typename BitType>
  437. VULKAN_HPP_CONSTEXPR bool operator>( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
  438. {
  439. return flags.operator<( bit );
  440. }
  441. template <typename BitType>
  442. VULKAN_HPP_CONSTEXPR bool operator>=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
  443. {
  444. return flags.operator<=( bit );
  445. }
  446. template <typename BitType>
  447. VULKAN_HPP_CONSTEXPR bool operator==( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
  448. {
  449. return flags.operator==( bit );
  450. }
  451. template <typename BitType>
  452. VULKAN_HPP_CONSTEXPR bool operator!=( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
  453. {
  454. return flags.operator!=( bit );
  455. }
  456. #endif
  457. // bitwise operators
  458. template <typename BitType>
  459. VULKAN_HPP_CONSTEXPR Flags<BitType> operator&( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
  460. {
  461. return flags.operator&( bit );
  462. }
  463. template <typename BitType>
  464. VULKAN_HPP_CONSTEXPR Flags<BitType> operator|( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
  465. {
  466. return flags.operator|( bit );
  467. }
  468. template <typename BitType>
  469. VULKAN_HPP_CONSTEXPR Flags<BitType> operator^( BitType bit, Flags<BitType> const & flags ) VULKAN_HPP_NOEXCEPT
  470. {
  471. return flags.operator^( bit );
  472. }
  473. #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  474. template <typename T>
  475. class ArrayProxy
  476. {
  477. public:
  478. VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT
  479. : m_count( 0 )
  480. , m_ptr( nullptr )
  481. {
  482. }
  483. VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
  484. : m_count( 0 )
  485. , m_ptr( nullptr )
  486. {
  487. }
  488. ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT
  489. : m_count( 1 )
  490. , m_ptr( &value )
  491. {
  492. }
  493. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  494. ArrayProxy( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
  495. : m_count( 1 )
  496. , m_ptr( &value )
  497. {
  498. }
  499. ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
  500. : m_count( count )
  501. , m_ptr( ptr )
  502. {
  503. }
  504. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  505. ArrayProxy( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
  506. : m_count( count )
  507. , m_ptr( ptr )
  508. {
  509. }
  510. template <std::size_t C>
  511. ArrayProxy( T ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
  512. : m_count( C )
  513. , m_ptr( ptr )
  514. {
  515. }
  516. template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  517. ArrayProxy( typename std::remove_const<T>::type ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
  518. : m_count( C )
  519. , m_ptr( ptr )
  520. {
  521. }
  522. # if __GNUC__ >= 9
  523. # pragma GCC diagnostic push
  524. # pragma GCC diagnostic ignored "-Winit-list-lifetime"
  525. # endif
  526. ArrayProxy( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
  527. : m_count( static_cast<uint32_t>( list.size() ) )
  528. , m_ptr( list.begin() )
  529. {
  530. }
  531. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  532. ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
  533. : m_count( static_cast<uint32_t>( list.size() ) )
  534. , m_ptr( list.begin() )
  535. {
  536. }
  537. ArrayProxy( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
  538. : m_count( static_cast<uint32_t>( list.size() ) )
  539. , m_ptr( list.begin() )
  540. {
  541. }
  542. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  543. ArrayProxy( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
  544. : m_count( static_cast<uint32_t>( list.size() ) )
  545. , m_ptr( list.begin() )
  546. {
  547. }
  548. # if __GNUC__ >= 9
  549. # pragma GCC diagnostic pop
  550. # endif
  551. // Any type with a .data() return type implicitly convertible to T*, and a .size() return type implicitly
  552. // convertible to size_t. The const version can capture temporaries, with lifetime ending at end of statement.
  553. template <typename V,
  554. typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
  555. std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
  556. ArrayProxy( V const & v ) VULKAN_HPP_NOEXCEPT
  557. : m_count( static_cast<uint32_t>( v.size() ) )
  558. , m_ptr( v.data() )
  559. {
  560. }
  561. template <typename V,
  562. typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
  563. std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
  564. ArrayProxy( V & v ) VULKAN_HPP_NOEXCEPT
  565. : m_count( static_cast<uint32_t>( v.size() ) )
  566. , m_ptr( v.data() )
  567. {
  568. }
  569. const T * begin() const VULKAN_HPP_NOEXCEPT
  570. {
  571. return m_ptr;
  572. }
  573. const T * end() const VULKAN_HPP_NOEXCEPT
  574. {
  575. return m_ptr + m_count;
  576. }
  577. const T & front() const VULKAN_HPP_NOEXCEPT
  578. {
  579. VULKAN_HPP_ASSERT( m_count && m_ptr );
  580. return *m_ptr;
  581. }
  582. const T & back() const VULKAN_HPP_NOEXCEPT
  583. {
  584. VULKAN_HPP_ASSERT( m_count && m_ptr );
  585. return *( m_ptr + m_count - 1 );
  586. }
  587. bool empty() const VULKAN_HPP_NOEXCEPT
  588. {
  589. return ( m_count == 0 );
  590. }
  591. uint32_t size() const VULKAN_HPP_NOEXCEPT
  592. {
  593. return m_count;
  594. }
  595. T * data() const VULKAN_HPP_NOEXCEPT
  596. {
  597. return m_ptr;
  598. }
  599. private:
  600. uint32_t m_count;
  601. T * m_ptr;
  602. };
  603. template <typename T>
  604. class ArrayProxyNoTemporaries
  605. {
  606. public:
  607. VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT
  608. : m_count( 0 )
  609. , m_ptr( nullptr )
  610. {
  611. }
  612. VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
  613. : m_count( 0 )
  614. , m_ptr( nullptr )
  615. {
  616. }
  617. ArrayProxyNoTemporaries( T & value ) VULKAN_HPP_NOEXCEPT
  618. : m_count( 1 )
  619. , m_ptr( &value )
  620. {
  621. }
  622. template <typename V>
  623. ArrayProxyNoTemporaries( V && value ) = delete;
  624. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  625. ArrayProxyNoTemporaries( typename std::remove_const<T>::type & value ) VULKAN_HPP_NOEXCEPT
  626. : m_count( 1 )
  627. , m_ptr( &value )
  628. {
  629. }
  630. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  631. ArrayProxyNoTemporaries( typename std::remove_const<T>::type && value ) = delete;
  632. ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT
  633. : m_count( count )
  634. , m_ptr( ptr )
  635. {
  636. }
  637. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  638. ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const<T>::type * ptr ) VULKAN_HPP_NOEXCEPT
  639. : m_count( count )
  640. , m_ptr( ptr )
  641. {
  642. }
  643. template <std::size_t C>
  644. ArrayProxyNoTemporaries( T ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
  645. : m_count( C )
  646. , m_ptr( ptr )
  647. {
  648. }
  649. template <std::size_t C>
  650. ArrayProxyNoTemporaries( T( &&ptr )[C] ) = delete;
  651. template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  652. ArrayProxyNoTemporaries( typename std::remove_const<T>::type ( &ptr )[C] ) VULKAN_HPP_NOEXCEPT
  653. : m_count( C )
  654. , m_ptr( ptr )
  655. {
  656. }
  657. template <std::size_t C, typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  658. ArrayProxyNoTemporaries( typename std::remove_const<T>::type( &&ptr )[C] ) = delete;
  659. ArrayProxyNoTemporaries( std::initializer_list<T> const & list ) VULKAN_HPP_NOEXCEPT
  660. : m_count( static_cast<uint32_t>( list.size() ) )
  661. , m_ptr( list.begin() )
  662. {
  663. }
  664. ArrayProxyNoTemporaries( std::initializer_list<T> const && list ) = delete;
  665. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  666. ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const & list ) VULKAN_HPP_NOEXCEPT
  667. : m_count( static_cast<uint32_t>( list.size() ) )
  668. , m_ptr( list.begin() )
  669. {
  670. }
  671. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  672. ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> const && list ) = delete;
  673. ArrayProxyNoTemporaries( std::initializer_list<T> & list ) VULKAN_HPP_NOEXCEPT
  674. : m_count( static_cast<uint32_t>( list.size() ) )
  675. , m_ptr( list.begin() )
  676. {
  677. }
  678. ArrayProxyNoTemporaries( std::initializer_list<T> && list ) = delete;
  679. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  680. ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> & list ) VULKAN_HPP_NOEXCEPT
  681. : m_count( static_cast<uint32_t>( list.size() ) )
  682. , m_ptr( list.begin() )
  683. {
  684. }
  685. template <typename B = T, typename std::enable_if<std::is_const<B>::value, int>::type = 0>
  686. ArrayProxyNoTemporaries( std::initializer_list<typename std::remove_const<T>::type> && list ) = delete;
  687. // Any type with a .data() return type implicitly convertible to T*, and a // .size() return type implicitly
  688. // convertible to size_t.
  689. template <typename V,
  690. typename std::enable_if<std::is_convertible<decltype( std::declval<V>().data() ), T *>::value &&
  691. std::is_convertible<decltype( std::declval<V>().size() ), std::size_t>::value>::type * = nullptr>
  692. ArrayProxyNoTemporaries( V & v ) VULKAN_HPP_NOEXCEPT
  693. : m_count( static_cast<uint32_t>( v.size() ) )
  694. , m_ptr( v.data() )
  695. {
  696. }
  697. const T * begin() const VULKAN_HPP_NOEXCEPT
  698. {
  699. return m_ptr;
  700. }
  701. const T * end() const VULKAN_HPP_NOEXCEPT
  702. {
  703. return m_ptr + m_count;
  704. }
  705. const T & front() const VULKAN_HPP_NOEXCEPT
  706. {
  707. VULKAN_HPP_ASSERT( m_count && m_ptr );
  708. return *m_ptr;
  709. }
  710. const T & back() const VULKAN_HPP_NOEXCEPT
  711. {
  712. VULKAN_HPP_ASSERT( m_count && m_ptr );
  713. return *( m_ptr + m_count - 1 );
  714. }
  715. bool empty() const VULKAN_HPP_NOEXCEPT
  716. {
  717. return ( m_count == 0 );
  718. }
  719. uint32_t size() const VULKAN_HPP_NOEXCEPT
  720. {
  721. return m_count;
  722. }
  723. T * data() const VULKAN_HPP_NOEXCEPT
  724. {
  725. return m_ptr;
  726. }
  727. private:
  728. uint32_t m_count;
  729. T * m_ptr;
  730. };
  731. template <typename RefType>
  732. class Optional
  733. {
  734. public:
  735. Optional( RefType & reference ) VULKAN_HPP_NOEXCEPT
  736. {
  737. m_ptr = &reference;
  738. }
  739. Optional( RefType * ptr ) VULKAN_HPP_NOEXCEPT
  740. {
  741. m_ptr = ptr;
  742. }
  743. Optional( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
  744. {
  745. m_ptr = nullptr;
  746. }
  747. operator RefType *() const VULKAN_HPP_NOEXCEPT
  748. {
  749. return m_ptr;
  750. }
  751. RefType const * operator->() const VULKAN_HPP_NOEXCEPT
  752. {
  753. return m_ptr;
  754. }
  755. explicit operator bool() const VULKAN_HPP_NOEXCEPT
  756. {
  757. return !!m_ptr;
  758. }
  759. private:
  760. RefType * m_ptr;
  761. };
  762. template <typename X, typename Y>
  763. struct StructExtends
  764. {
  765. enum
  766. {
  767. value = false
  768. };
  769. };
  770. template <typename Type, class...>
  771. struct IsPartOfStructureChain
  772. {
  773. static const bool valid = false;
  774. };
  775. template <typename Type, typename Head, typename... Tail>
  776. struct IsPartOfStructureChain<Type, Head, Tail...>
  777. {
  778. static const bool valid = std::is_same<Type, Head>::value || IsPartOfStructureChain<Type, Tail...>::valid;
  779. };
  780. template <size_t Index, typename T, typename... ChainElements>
  781. struct StructureChainContains
  782. {
  783. static const bool value = std::is_same<T, typename std::tuple_element<Index, std::tuple<ChainElements...>>::type>::value ||
  784. StructureChainContains<Index - 1, T, ChainElements...>::value;
  785. };
  786. template <typename T, typename... ChainElements>
  787. struct StructureChainContains<0, T, ChainElements...>
  788. {
  789. static const bool value = std::is_same<T, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value;
  790. };
  791. template <size_t Index, typename... ChainElements>
  792. struct StructureChainValidation
  793. {
  794. using TestType = typename std::tuple_element<Index, std::tuple<ChainElements...>>::type;
  795. static const bool valid = StructExtends<TestType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value &&
  796. ( TestType::allowDuplicate || !StructureChainContains<Index - 1, TestType, ChainElements...>::value ) &&
  797. StructureChainValidation<Index - 1, ChainElements...>::valid;
  798. };
  799. template <typename... ChainElements>
  800. struct StructureChainValidation<0, ChainElements...>
  801. {
  802. static const bool valid = true;
  803. };
  804. template <typename... ChainElements>
  805. class StructureChain : public std::tuple<ChainElements...>
  806. {
  807. public:
  808. StructureChain() VULKAN_HPP_NOEXCEPT
  809. {
  810. static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
  811. link<sizeof...( ChainElements ) - 1>();
  812. }
  813. StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( rhs )
  814. {
  815. static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
  816. link( &std::get<0>( *this ),
  817. &std::get<0>( rhs ),
  818. reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( *this ) ),
  819. reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( rhs ) ) );
  820. }
  821. StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( std::forward<std::tuple<ChainElements...>>( rhs ) )
  822. {
  823. static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
  824. link( &std::get<0>( *this ),
  825. &std::get<0>( rhs ),
  826. reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( *this ) ),
  827. reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( rhs ) ) );
  828. }
  829. StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple<ChainElements...>( elems... )
  830. {
  831. static_assert( StructureChainValidation<sizeof...( ChainElements ) - 1, ChainElements...>::valid, "The structure chain is not valid!" );
  832. link<sizeof...( ChainElements ) - 1>();
  833. }
  834. StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT
  835. {
  836. std::tuple<ChainElements...>::operator=( rhs );
  837. link( &std::get<0>( *this ),
  838. &std::get<0>( rhs ),
  839. reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( *this ) ),
  840. reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( rhs ) ) );
  841. return *this;
  842. }
  843. StructureChain & operator=( StructureChain && rhs ) = delete;
  844. template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
  845. T & get() VULKAN_HPP_NOEXCEPT
  846. {
  847. return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...> &>( *this ) );
  848. }
  849. template <typename T = typename std::tuple_element<0, std::tuple<ChainElements...>>::type, size_t Which = 0>
  850. T const & get() const VULKAN_HPP_NOEXCEPT
  851. {
  852. return std::get<ChainElementIndex<0, T, Which, void, ChainElements...>::value>( static_cast<std::tuple<ChainElements...> const &>( *this ) );
  853. }
  854. template <typename T0, typename T1, typename... Ts>
  855. std::tuple<T0 &, T1 &, Ts &...> get() VULKAN_HPP_NOEXCEPT
  856. {
  857. return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
  858. }
  859. template <typename T0, typename T1, typename... Ts>
  860. std::tuple<T0 const &, T1 const &, Ts const &...> get() const VULKAN_HPP_NOEXCEPT
  861. {
  862. return std::tie( get<T0>(), get<T1>(), get<Ts>()... );
  863. }
  864. template <typename ClassType, size_t Which = 0>
  865. typename std::enable_if<std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value && ( Which == 0 ), bool>::type
  866. isLinked() const VULKAN_HPP_NOEXCEPT
  867. {
  868. return true;
  869. }
  870. template <typename ClassType, size_t Which = 0>
  871. typename std::enable_if<!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || ( Which != 0 ), bool>::type
  872. isLinked() const VULKAN_HPP_NOEXCEPT
  873. {
  874. static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid, "Can't unlink Structure that's not part of this StructureChain!" );
  875. return isLinked( reinterpret_cast<VkBaseInStructure const *>( &get<ClassType, Which>() ) );
  876. }
  877. template <typename ClassType, size_t Which = 0>
  878. typename std::enable_if<!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || ( Which != 0 ), void>::type
  879. relink() VULKAN_HPP_NOEXCEPT
  880. {
  881. static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid, "Can't relink Structure that's not part of this StructureChain!" );
  882. auto pNext = reinterpret_cast<VkBaseInStructure *>( &get<ClassType, Which>() );
  883. VULKAN_HPP_ASSERT( !isLinked( pNext ) );
  884. auto & headElement = std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) );
  885. pNext->pNext = reinterpret_cast<VkBaseInStructure const *>( headElement.pNext );
  886. headElement.pNext = pNext;
  887. }
  888. template <typename ClassType, size_t Which = 0>
  889. typename std::enable_if<!std::is_same<ClassType, typename std::tuple_element<0, std::tuple<ChainElements...>>::type>::value || ( Which != 0 ), void>::type
  890. unlink() VULKAN_HPP_NOEXCEPT
  891. {
  892. static_assert( IsPartOfStructureChain<ClassType, ChainElements...>::valid, "Can't unlink Structure that's not part of this StructureChain!" );
  893. unlink( reinterpret_cast<VkBaseOutStructure const *>( &get<ClassType, Which>() ) );
  894. }
  895. private:
  896. template <int Index, typename T, int Which, typename, class First, class... Types>
  897. struct ChainElementIndex : ChainElementIndex<Index + 1, T, Which, void, Types...>
  898. {
  899. };
  900. template <int Index, typename T, int Which, class First, class... Types>
  901. struct ChainElementIndex<Index, T, Which, typename std::enable_if<!std::is_same<T, First>::value, void>::type, First, Types...>
  902. : ChainElementIndex<Index + 1, T, Which, void, Types...>
  903. {
  904. };
  905. template <int Index, typename T, int Which, class First, class... Types>
  906. struct ChainElementIndex<Index, T, Which, typename std::enable_if<std::is_same<T, First>::value, void>::type, First, Types...>
  907. : ChainElementIndex<Index + 1, T, Which - 1, void, Types...>
  908. {
  909. };
  910. template <int Index, typename T, class First, class... Types>
  911. struct ChainElementIndex<Index, T, 0, typename std::enable_if<std::is_same<T, First>::value, void>::type, First, Types...>
  912. : std::integral_constant<int, Index>
  913. {
  914. };
  915. bool isLinked( VkBaseInStructure const * pNext ) const VULKAN_HPP_NOEXCEPT
  916. {
  917. VkBaseInStructure const * elementPtr =
  918. reinterpret_cast<VkBaseInStructure const *>( &std::get<0>( static_cast<std::tuple<ChainElements...> const &>( *this ) ) );
  919. while ( elementPtr )
  920. {
  921. if ( elementPtr->pNext == pNext )
  922. {
  923. return true;
  924. }
  925. elementPtr = elementPtr->pNext;
  926. }
  927. return false;
  928. }
  929. template <size_t Index>
  930. typename std::enable_if<Index != 0, void>::type link() VULKAN_HPP_NOEXCEPT
  931. {
  932. auto & x = std::get<Index - 1>( static_cast<std::tuple<ChainElements...> &>( *this ) );
  933. x.pNext = &std::get<Index>( static_cast<std::tuple<ChainElements...> &>( *this ) );
  934. link<Index - 1>();
  935. }
  936. template <size_t Index>
  937. typename std::enable_if<Index == 0, void>::type link() VULKAN_HPP_NOEXCEPT
  938. {
  939. }
  940. void link( void * dstBase, void const * srcBase, VkBaseOutStructure * dst, VkBaseInStructure const * src )
  941. {
  942. while ( src->pNext )
  943. {
  944. std::ptrdiff_t offset = reinterpret_cast<char const *>( src->pNext ) - reinterpret_cast<char const *>( srcBase );
  945. dst->pNext = reinterpret_cast<VkBaseOutStructure *>( reinterpret_cast<char *>( dstBase ) + offset );
  946. dst = dst->pNext;
  947. src = src->pNext;
  948. }
  949. dst->pNext = nullptr;
  950. }
  951. void unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT
  952. {
  953. VkBaseOutStructure * elementPtr = reinterpret_cast<VkBaseOutStructure *>( &std::get<0>( static_cast<std::tuple<ChainElements...> &>( *this ) ) );
  954. while ( elementPtr && ( elementPtr->pNext != pNext ) )
  955. {
  956. elementPtr = elementPtr->pNext;
  957. }
  958. if ( elementPtr )
  959. {
  960. elementPtr->pNext = pNext->pNext;
  961. }
  962. else
  963. {
  964. VULKAN_HPP_ASSERT( false ); // fires, if the ClassType member has already been unlinked !
  965. }
  966. }
  967. };
  968. # if !defined( VULKAN_HPP_NO_SMART_HANDLE )
  969. template <typename Type, typename Dispatch>
  970. class UniqueHandleTraits;
  971. template <typename Type, typename Dispatch>
  972. class UniqueHandle : public UniqueHandleTraits<Type, Dispatch>::deleter
  973. {
  974. private:
  975. using Deleter = typename UniqueHandleTraits<Type, Dispatch>::deleter;
  976. public:
  977. using element_type = Type;
  978. UniqueHandle() : Deleter(), m_value() {}
  979. explicit UniqueHandle( Type const & value, Deleter const & deleter = Deleter() ) VULKAN_HPP_NOEXCEPT
  980. : Deleter( deleter )
  981. , m_value( value )
  982. {
  983. }
  984. UniqueHandle( UniqueHandle const & ) = delete;
  985. UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
  986. : Deleter( std::move( static_cast<Deleter &>( other ) ) )
  987. , m_value( other.release() )
  988. {
  989. }
  990. ~UniqueHandle() VULKAN_HPP_NOEXCEPT
  991. {
  992. if ( m_value )
  993. {
  994. this->destroy( m_value );
  995. }
  996. }
  997. UniqueHandle & operator=( UniqueHandle const & ) = delete;
  998. UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT
  999. {
  1000. reset( other.release() );
  1001. *static_cast<Deleter *>( this ) = std::move( static_cast<Deleter &>( other ) );
  1002. return *this;
  1003. }
  1004. explicit operator bool() const VULKAN_HPP_NOEXCEPT
  1005. {
  1006. return m_value.operator bool();
  1007. }
  1008. Type const * operator->() const VULKAN_HPP_NOEXCEPT
  1009. {
  1010. return &m_value;
  1011. }
  1012. Type * operator->() VULKAN_HPP_NOEXCEPT
  1013. {
  1014. return &m_value;
  1015. }
  1016. Type const & operator*() const VULKAN_HPP_NOEXCEPT
  1017. {
  1018. return m_value;
  1019. }
  1020. Type & operator*() VULKAN_HPP_NOEXCEPT
  1021. {
  1022. return m_value;
  1023. }
  1024. const Type & get() const VULKAN_HPP_NOEXCEPT
  1025. {
  1026. return m_value;
  1027. }
  1028. Type & get() VULKAN_HPP_NOEXCEPT
  1029. {
  1030. return m_value;
  1031. }
  1032. void reset( Type const & value = Type() ) VULKAN_HPP_NOEXCEPT
  1033. {
  1034. if ( m_value != value )
  1035. {
  1036. if ( m_value )
  1037. {
  1038. this->destroy( m_value );
  1039. }
  1040. m_value = value;
  1041. }
  1042. }
  1043. Type release() VULKAN_HPP_NOEXCEPT
  1044. {
  1045. Type value = m_value;
  1046. m_value = nullptr;
  1047. return value;
  1048. }
  1049. void swap( UniqueHandle<Type, Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
  1050. {
  1051. std::swap( m_value, rhs.m_value );
  1052. std::swap( static_cast<Deleter &>( *this ), static_cast<Deleter &>( rhs ) );
  1053. }
  1054. private:
  1055. Type m_value;
  1056. };
  1057. template <typename UniqueType>
  1058. VULKAN_HPP_INLINE std::vector<typename UniqueType::element_type> uniqueToRaw( std::vector<UniqueType> const & handles )
  1059. {
  1060. std::vector<typename UniqueType::element_type> newBuffer( handles.size() );
  1061. std::transform( handles.begin(), handles.end(), newBuffer.begin(), []( UniqueType const & handle ) { return handle.get(); } );
  1062. return newBuffer;
  1063. }
  1064. template <typename Type, typename Dispatch>
  1065. VULKAN_HPP_INLINE void swap( UniqueHandle<Type, Dispatch> & lhs, UniqueHandle<Type, Dispatch> & rhs ) VULKAN_HPP_NOEXCEPT
  1066. {
  1067. lhs.swap( rhs );
  1068. }
  1069. # endif
  1070. #endif // VULKAN_HPP_DISABLE_ENHANCED_MODE
  1071. class DispatchLoaderBase
  1072. {
  1073. public:
  1074. DispatchLoaderBase() = default;
  1075. DispatchLoaderBase( std::nullptr_t )
  1076. #if !defined( NDEBUG )
  1077. : m_valid( false )
  1078. #endif
  1079. {
  1080. }
  1081. #if !defined( NDEBUG )
  1082. size_t getVkHeaderVersion() const
  1083. {
  1084. VULKAN_HPP_ASSERT( m_valid );
  1085. return vkHeaderVersion;
  1086. }
  1087. private:
  1088. size_t vkHeaderVersion = VK_HEADER_VERSION;
  1089. bool m_valid = true;
  1090. #endif
  1091. };
  1092. #if !defined( VK_NO_PROTOTYPES )
  1093. class DispatchLoaderStatic : public DispatchLoaderBase
  1094. {
  1095. public:
  1096. //=== VK_VERSION_1_0 ===
  1097. VkResult
  1098. vkCreateInstance( const VkInstanceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkInstance * pInstance ) const VULKAN_HPP_NOEXCEPT
  1099. {
  1100. return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance );
  1101. }
  1102. void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1103. {
  1104. return ::vkDestroyInstance( instance, pAllocator );
  1105. }
  1106. VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t * pPhysicalDeviceCount, VkPhysicalDevice * pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT
  1107. {
  1108. return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices );
  1109. }
  1110. void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures * pFeatures ) const VULKAN_HPP_NOEXCEPT
  1111. {
  1112. return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures );
  1113. }
  1114. void
  1115. vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
  1116. {
  1117. return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties );
  1118. }
  1119. VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice,
  1120. VkFormat format,
  1121. VkImageType type,
  1122. VkImageTiling tiling,
  1123. VkImageUsageFlags usage,
  1124. VkImageCreateFlags flags,
  1125. VkImageFormatProperties * pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
  1126. {
  1127. return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties );
  1128. }
  1129. void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
  1130. {
  1131. return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties );
  1132. }
  1133. void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice,
  1134. uint32_t * pQueueFamilyPropertyCount,
  1135. VkQueueFamilyProperties * pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
  1136. {
  1137. return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
  1138. }
  1139. void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
  1140. {
  1141. return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties );
  1142. }
  1143. PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char * pName ) const VULKAN_HPP_NOEXCEPT
  1144. {
  1145. return ::vkGetInstanceProcAddr( instance, pName );
  1146. }
  1147. PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char * pName ) const VULKAN_HPP_NOEXCEPT
  1148. {
  1149. return ::vkGetDeviceProcAddr( device, pName );
  1150. }
  1151. VkResult vkCreateDevice( VkPhysicalDevice physicalDevice,
  1152. const VkDeviceCreateInfo * pCreateInfo,
  1153. const VkAllocationCallbacks * pAllocator,
  1154. VkDevice * pDevice ) const VULKAN_HPP_NOEXCEPT
  1155. {
  1156. return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice );
  1157. }
  1158. void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1159. {
  1160. return ::vkDestroyDevice( device, pAllocator );
  1161. }
  1162. VkResult vkEnumerateInstanceExtensionProperties( const char * pLayerName,
  1163. uint32_t * pPropertyCount,
  1164. VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
  1165. {
  1166. return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties );
  1167. }
  1168. VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice,
  1169. const char * pLayerName,
  1170. uint32_t * pPropertyCount,
  1171. VkExtensionProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
  1172. {
  1173. return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties );
  1174. }
  1175. VkResult vkEnumerateInstanceLayerProperties( uint32_t * pPropertyCount, VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
  1176. {
  1177. return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties );
  1178. }
  1179. VkResult
  1180. vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkLayerProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
  1181. {
  1182. return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties );
  1183. }
  1184. void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT
  1185. {
  1186. return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue );
  1187. }
  1188. VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo * pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
  1189. {
  1190. return ::vkQueueSubmit( queue, submitCount, pSubmits, fence );
  1191. }
  1192. VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
  1193. {
  1194. return ::vkQueueWaitIdle( queue );
  1195. }
  1196. VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT
  1197. {
  1198. return ::vkDeviceWaitIdle( device );
  1199. }
  1200. VkResult vkAllocateMemory( VkDevice device,
  1201. const VkMemoryAllocateInfo * pAllocateInfo,
  1202. const VkAllocationCallbacks * pAllocator,
  1203. VkDeviceMemory * pMemory ) const VULKAN_HPP_NOEXCEPT
  1204. {
  1205. return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory );
  1206. }
  1207. void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1208. {
  1209. return ::vkFreeMemory( device, memory, pAllocator );
  1210. }
  1211. VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void ** ppData ) const
  1212. VULKAN_HPP_NOEXCEPT
  1213. {
  1214. return ::vkMapMemory( device, memory, offset, size, flags, ppData );
  1215. }
  1216. void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT
  1217. {
  1218. return ::vkUnmapMemory( device, memory );
  1219. }
  1220. VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
  1221. {
  1222. return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
  1223. }
  1224. VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges ) const VULKAN_HPP_NOEXCEPT
  1225. {
  1226. return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges );
  1227. }
  1228. void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize * pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT
  1229. {
  1230. return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes );
  1231. }
  1232. VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
  1233. {
  1234. return ::vkBindBufferMemory( device, buffer, memory, memoryOffset );
  1235. }
  1236. VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT
  1237. {
  1238. return ::vkBindImageMemory( device, image, memory, memoryOffset );
  1239. }
  1240. void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  1241. {
  1242. return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements );
  1243. }
  1244. void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  1245. {
  1246. return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements );
  1247. }
  1248. void vkGetImageSparseMemoryRequirements( VkDevice device,
  1249. VkImage image,
  1250. uint32_t * pSparseMemoryRequirementCount,
  1251. VkSparseImageMemoryRequirements * pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  1252. {
  1253. return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
  1254. }
  1255. void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice,
  1256. VkFormat format,
  1257. VkImageType type,
  1258. VkSampleCountFlagBits samples,
  1259. VkImageUsageFlags usage,
  1260. VkImageTiling tiling,
  1261. uint32_t * pPropertyCount,
  1262. VkSparseImageFormatProperties * pProperties ) const VULKAN_HPP_NOEXCEPT
  1263. {
  1264. return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties );
  1265. }
  1266. VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo * pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT
  1267. {
  1268. return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence );
  1269. }
  1270. VkResult vkCreateFence( VkDevice device,
  1271. const VkFenceCreateInfo * pCreateInfo,
  1272. const VkAllocationCallbacks * pAllocator,
  1273. VkFence * pFence ) const VULKAN_HPP_NOEXCEPT
  1274. {
  1275. return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence );
  1276. }
  1277. void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1278. {
  1279. return ::vkDestroyFence( device, fence, pAllocator );
  1280. }
  1281. VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence * pFences ) const VULKAN_HPP_NOEXCEPT
  1282. {
  1283. return ::vkResetFences( device, fenceCount, pFences );
  1284. }
  1285. VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT
  1286. {
  1287. return ::vkGetFenceStatus( device, fence );
  1288. }
  1289. VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence * pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
  1290. {
  1291. return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout );
  1292. }
  1293. VkResult vkCreateSemaphore( VkDevice device,
  1294. const VkSemaphoreCreateInfo * pCreateInfo,
  1295. const VkAllocationCallbacks * pAllocator,
  1296. VkSemaphore * pSemaphore ) const VULKAN_HPP_NOEXCEPT
  1297. {
  1298. return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore );
  1299. }
  1300. void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1301. {
  1302. return ::vkDestroySemaphore( device, semaphore, pAllocator );
  1303. }
  1304. VkResult vkCreateEvent( VkDevice device,
  1305. const VkEventCreateInfo * pCreateInfo,
  1306. const VkAllocationCallbacks * pAllocator,
  1307. VkEvent * pEvent ) const VULKAN_HPP_NOEXCEPT
  1308. {
  1309. return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent );
  1310. }
  1311. void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1312. {
  1313. return ::vkDestroyEvent( device, event, pAllocator );
  1314. }
  1315. VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
  1316. {
  1317. return ::vkGetEventStatus( device, event );
  1318. }
  1319. VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
  1320. {
  1321. return ::vkSetEvent( device, event );
  1322. }
  1323. VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT
  1324. {
  1325. return ::vkResetEvent( device, event );
  1326. }
  1327. VkResult vkCreateQueryPool( VkDevice device,
  1328. const VkQueryPoolCreateInfo * pCreateInfo,
  1329. const VkAllocationCallbacks * pAllocator,
  1330. VkQueryPool * pQueryPool ) const VULKAN_HPP_NOEXCEPT
  1331. {
  1332. return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool );
  1333. }
  1334. void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1335. {
  1336. return ::vkDestroyQueryPool( device, queryPool, pAllocator );
  1337. }
  1338. VkResult vkGetQueryPoolResults( VkDevice device,
  1339. VkQueryPool queryPool,
  1340. uint32_t firstQuery,
  1341. uint32_t queryCount,
  1342. size_t dataSize,
  1343. void * pData,
  1344. VkDeviceSize stride,
  1345. VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
  1346. {
  1347. return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags );
  1348. }
  1349. VkResult vkCreateBuffer( VkDevice device,
  1350. const VkBufferCreateInfo * pCreateInfo,
  1351. const VkAllocationCallbacks * pAllocator,
  1352. VkBuffer * pBuffer ) const VULKAN_HPP_NOEXCEPT
  1353. {
  1354. return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer );
  1355. }
  1356. void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1357. {
  1358. return ::vkDestroyBuffer( device, buffer, pAllocator );
  1359. }
  1360. VkResult vkCreateBufferView( VkDevice device,
  1361. const VkBufferViewCreateInfo * pCreateInfo,
  1362. const VkAllocationCallbacks * pAllocator,
  1363. VkBufferView * pView ) const VULKAN_HPP_NOEXCEPT
  1364. {
  1365. return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView );
  1366. }
  1367. void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1368. {
  1369. return ::vkDestroyBufferView( device, bufferView, pAllocator );
  1370. }
  1371. VkResult vkCreateImage( VkDevice device,
  1372. const VkImageCreateInfo * pCreateInfo,
  1373. const VkAllocationCallbacks * pAllocator,
  1374. VkImage * pImage ) const VULKAN_HPP_NOEXCEPT
  1375. {
  1376. return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage );
  1377. }
  1378. void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1379. {
  1380. return ::vkDestroyImage( device, image, pAllocator );
  1381. }
  1382. void vkGetImageSubresourceLayout( VkDevice device,
  1383. VkImage image,
  1384. const VkImageSubresource * pSubresource,
  1385. VkSubresourceLayout * pLayout ) const VULKAN_HPP_NOEXCEPT
  1386. {
  1387. return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout );
  1388. }
  1389. VkResult vkCreateImageView( VkDevice device,
  1390. const VkImageViewCreateInfo * pCreateInfo,
  1391. const VkAllocationCallbacks * pAllocator,
  1392. VkImageView * pView ) const VULKAN_HPP_NOEXCEPT
  1393. {
  1394. return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView );
  1395. }
  1396. void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1397. {
  1398. return ::vkDestroyImageView( device, imageView, pAllocator );
  1399. }
  1400. VkResult vkCreateShaderModule( VkDevice device,
  1401. const VkShaderModuleCreateInfo * pCreateInfo,
  1402. const VkAllocationCallbacks * pAllocator,
  1403. VkShaderModule * pShaderModule ) const VULKAN_HPP_NOEXCEPT
  1404. {
  1405. return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule );
  1406. }
  1407. void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1408. {
  1409. return ::vkDestroyShaderModule( device, shaderModule, pAllocator );
  1410. }
  1411. VkResult vkCreatePipelineCache( VkDevice device,
  1412. const VkPipelineCacheCreateInfo * pCreateInfo,
  1413. const VkAllocationCallbacks * pAllocator,
  1414. VkPipelineCache * pPipelineCache ) const VULKAN_HPP_NOEXCEPT
  1415. {
  1416. return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache );
  1417. }
  1418. void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1419. {
  1420. return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator );
  1421. }
  1422. VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t * pDataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
  1423. {
  1424. return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData );
  1425. }
  1426. VkResult
  1427. vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache * pSrcCaches ) const VULKAN_HPP_NOEXCEPT
  1428. {
  1429. return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches );
  1430. }
  1431. VkResult vkCreateGraphicsPipelines( VkDevice device,
  1432. VkPipelineCache pipelineCache,
  1433. uint32_t createInfoCount,
  1434. const VkGraphicsPipelineCreateInfo * pCreateInfos,
  1435. const VkAllocationCallbacks * pAllocator,
  1436. VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT
  1437. {
  1438. return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
  1439. }
  1440. VkResult vkCreateComputePipelines( VkDevice device,
  1441. VkPipelineCache pipelineCache,
  1442. uint32_t createInfoCount,
  1443. const VkComputePipelineCreateInfo * pCreateInfos,
  1444. const VkAllocationCallbacks * pAllocator,
  1445. VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT
  1446. {
  1447. return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
  1448. }
  1449. void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1450. {
  1451. return ::vkDestroyPipeline( device, pipeline, pAllocator );
  1452. }
  1453. VkResult vkCreatePipelineLayout( VkDevice device,
  1454. const VkPipelineLayoutCreateInfo * pCreateInfo,
  1455. const VkAllocationCallbacks * pAllocator,
  1456. VkPipelineLayout * pPipelineLayout ) const VULKAN_HPP_NOEXCEPT
  1457. {
  1458. return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout );
  1459. }
  1460. void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1461. {
  1462. return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator );
  1463. }
  1464. VkResult vkCreateSampler( VkDevice device,
  1465. const VkSamplerCreateInfo * pCreateInfo,
  1466. const VkAllocationCallbacks * pAllocator,
  1467. VkSampler * pSampler ) const VULKAN_HPP_NOEXCEPT
  1468. {
  1469. return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler );
  1470. }
  1471. void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1472. {
  1473. return ::vkDestroySampler( device, sampler, pAllocator );
  1474. }
  1475. VkResult vkCreateDescriptorSetLayout( VkDevice device,
  1476. const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
  1477. const VkAllocationCallbacks * pAllocator,
  1478. VkDescriptorSetLayout * pSetLayout ) const VULKAN_HPP_NOEXCEPT
  1479. {
  1480. return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout );
  1481. }
  1482. void vkDestroyDescriptorSetLayout( VkDevice device,
  1483. VkDescriptorSetLayout descriptorSetLayout,
  1484. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1485. {
  1486. return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator );
  1487. }
  1488. VkResult vkCreateDescriptorPool( VkDevice device,
  1489. const VkDescriptorPoolCreateInfo * pCreateInfo,
  1490. const VkAllocationCallbacks * pAllocator,
  1491. VkDescriptorPool * pDescriptorPool ) const VULKAN_HPP_NOEXCEPT
  1492. {
  1493. return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool );
  1494. }
  1495. void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1496. {
  1497. return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator );
  1498. }
  1499. VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
  1500. {
  1501. return ::vkResetDescriptorPool( device, descriptorPool, flags );
  1502. }
  1503. VkResult vkAllocateDescriptorSets( VkDevice device,
  1504. const VkDescriptorSetAllocateInfo * pAllocateInfo,
  1505. VkDescriptorSet * pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
  1506. {
  1507. return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets );
  1508. }
  1509. VkResult vkFreeDescriptorSets( VkDevice device,
  1510. VkDescriptorPool descriptorPool,
  1511. uint32_t descriptorSetCount,
  1512. const VkDescriptorSet * pDescriptorSets ) const VULKAN_HPP_NOEXCEPT
  1513. {
  1514. return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets );
  1515. }
  1516. void vkUpdateDescriptorSets( VkDevice device,
  1517. uint32_t descriptorWriteCount,
  1518. const VkWriteDescriptorSet * pDescriptorWrites,
  1519. uint32_t descriptorCopyCount,
  1520. const VkCopyDescriptorSet * pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT
  1521. {
  1522. return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies );
  1523. }
  1524. VkResult vkCreateFramebuffer( VkDevice device,
  1525. const VkFramebufferCreateInfo * pCreateInfo,
  1526. const VkAllocationCallbacks * pAllocator,
  1527. VkFramebuffer * pFramebuffer ) const VULKAN_HPP_NOEXCEPT
  1528. {
  1529. return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer );
  1530. }
  1531. void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1532. {
  1533. return ::vkDestroyFramebuffer( device, framebuffer, pAllocator );
  1534. }
  1535. VkResult vkCreateRenderPass( VkDevice device,
  1536. const VkRenderPassCreateInfo * pCreateInfo,
  1537. const VkAllocationCallbacks * pAllocator,
  1538. VkRenderPass * pRenderPass ) const VULKAN_HPP_NOEXCEPT
  1539. {
  1540. return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass );
  1541. }
  1542. void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1543. {
  1544. return ::vkDestroyRenderPass( device, renderPass, pAllocator );
  1545. }
  1546. void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D * pGranularity ) const VULKAN_HPP_NOEXCEPT
  1547. {
  1548. return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity );
  1549. }
  1550. VkResult vkCreateCommandPool( VkDevice device,
  1551. const VkCommandPoolCreateInfo * pCreateInfo,
  1552. const VkAllocationCallbacks * pAllocator,
  1553. VkCommandPool * pCommandPool ) const VULKAN_HPP_NOEXCEPT
  1554. {
  1555. return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool );
  1556. }
  1557. void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  1558. {
  1559. return ::vkDestroyCommandPool( device, commandPool, pAllocator );
  1560. }
  1561. VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT
  1562. {
  1563. return ::vkResetCommandPool( device, commandPool, flags );
  1564. }
  1565. VkResult vkAllocateCommandBuffers( VkDevice device,
  1566. const VkCommandBufferAllocateInfo * pAllocateInfo,
  1567. VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
  1568. {
  1569. return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers );
  1570. }
  1571. void vkFreeCommandBuffers( VkDevice device,
  1572. VkCommandPool commandPool,
  1573. uint32_t commandBufferCount,
  1574. const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
  1575. {
  1576. return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers );
  1577. }
  1578. VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo * pBeginInfo ) const VULKAN_HPP_NOEXCEPT
  1579. {
  1580. return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo );
  1581. }
  1582. VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
  1583. {
  1584. return ::vkEndCommandBuffer( commandBuffer );
  1585. }
  1586. VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT
  1587. {
  1588. return ::vkResetCommandBuffer( commandBuffer, flags );
  1589. }
  1590. void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT
  1591. {
  1592. return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline );
  1593. }
  1594. void
  1595. vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
  1596. {
  1597. return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports );
  1598. }
  1599. void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
  1600. {
  1601. return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors );
  1602. }
  1603. void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT
  1604. {
  1605. return ::vkCmdSetLineWidth( commandBuffer, lineWidth );
  1606. }
  1607. void vkCmdSetDepthBias( VkCommandBuffer commandBuffer,
  1608. float depthBiasConstantFactor,
  1609. float depthBiasClamp,
  1610. float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT
  1611. {
  1612. return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
  1613. }
  1614. void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT
  1615. {
  1616. return ::vkCmdSetBlendConstants( commandBuffer, blendConstants );
  1617. }
  1618. void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT
  1619. {
  1620. return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds );
  1621. }
  1622. void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT
  1623. {
  1624. return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask );
  1625. }
  1626. void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT
  1627. {
  1628. return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask );
  1629. }
  1630. void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT
  1631. {
  1632. return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference );
  1633. }
  1634. void vkCmdBindDescriptorSets( VkCommandBuffer commandBuffer,
  1635. VkPipelineBindPoint pipelineBindPoint,
  1636. VkPipelineLayout layout,
  1637. uint32_t firstSet,
  1638. uint32_t descriptorSetCount,
  1639. const VkDescriptorSet * pDescriptorSets,
  1640. uint32_t dynamicOffsetCount,
  1641. const uint32_t * pDynamicOffsets ) const VULKAN_HPP_NOEXCEPT
  1642. {
  1643. return ::vkCmdBindDescriptorSets(
  1644. commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets );
  1645. }
  1646. void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT
  1647. {
  1648. return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType );
  1649. }
  1650. void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer,
  1651. uint32_t firstBinding,
  1652. uint32_t bindingCount,
  1653. const VkBuffer * pBuffers,
  1654. const VkDeviceSize * pOffsets ) const VULKAN_HPP_NOEXCEPT
  1655. {
  1656. return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets );
  1657. }
  1658. void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const
  1659. VULKAN_HPP_NOEXCEPT
  1660. {
  1661. return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
  1662. }
  1663. void vkCmdDrawIndexed( VkCommandBuffer commandBuffer,
  1664. uint32_t indexCount,
  1665. uint32_t instanceCount,
  1666. uint32_t firstIndex,
  1667. int32_t vertexOffset,
  1668. uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT
  1669. {
  1670. return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
  1671. }
  1672. void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT
  1673. {
  1674. return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride );
  1675. }
  1676. void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
  1677. VULKAN_HPP_NOEXCEPT
  1678. {
  1679. return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride );
  1680. }
  1681. void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
  1682. {
  1683. return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ );
  1684. }
  1685. void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT
  1686. {
  1687. return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset );
  1688. }
  1689. void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy * pRegions ) const
  1690. VULKAN_HPP_NOEXCEPT
  1691. {
  1692. return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions );
  1693. }
  1694. void vkCmdCopyImage( VkCommandBuffer commandBuffer,
  1695. VkImage srcImage,
  1696. VkImageLayout srcImageLayout,
  1697. VkImage dstImage,
  1698. VkImageLayout dstImageLayout,
  1699. uint32_t regionCount,
  1700. const VkImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
  1701. {
  1702. return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
  1703. }
  1704. void vkCmdBlitImage( VkCommandBuffer commandBuffer,
  1705. VkImage srcImage,
  1706. VkImageLayout srcImageLayout,
  1707. VkImage dstImage,
  1708. VkImageLayout dstImageLayout,
  1709. uint32_t regionCount,
  1710. const VkImageBlit * pRegions,
  1711. VkFilter filter ) const VULKAN_HPP_NOEXCEPT
  1712. {
  1713. return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter );
  1714. }
  1715. void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer,
  1716. VkBuffer srcBuffer,
  1717. VkImage dstImage,
  1718. VkImageLayout dstImageLayout,
  1719. uint32_t regionCount,
  1720. const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
  1721. {
  1722. return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions );
  1723. }
  1724. void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer,
  1725. VkImage srcImage,
  1726. VkImageLayout srcImageLayout,
  1727. VkBuffer dstBuffer,
  1728. uint32_t regionCount,
  1729. const VkBufferImageCopy * pRegions ) const VULKAN_HPP_NOEXCEPT
  1730. {
  1731. return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions );
  1732. }
  1733. void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void * pData ) const
  1734. VULKAN_HPP_NOEXCEPT
  1735. {
  1736. return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData );
  1737. }
  1738. void
  1739. vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT
  1740. {
  1741. return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data );
  1742. }
  1743. void vkCmdClearColorImage( VkCommandBuffer commandBuffer,
  1744. VkImage image,
  1745. VkImageLayout imageLayout,
  1746. const VkClearColorValue * pColor,
  1747. uint32_t rangeCount,
  1748. const VkImageSubresourceRange * pRanges ) const VULKAN_HPP_NOEXCEPT
  1749. {
  1750. return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges );
  1751. }
  1752. void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer,
  1753. VkImage image,
  1754. VkImageLayout imageLayout,
  1755. const VkClearDepthStencilValue * pDepthStencil,
  1756. uint32_t rangeCount,
  1757. const VkImageSubresourceRange * pRanges ) const VULKAN_HPP_NOEXCEPT
  1758. {
  1759. return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges );
  1760. }
  1761. void vkCmdClearAttachments( VkCommandBuffer commandBuffer,
  1762. uint32_t attachmentCount,
  1763. const VkClearAttachment * pAttachments,
  1764. uint32_t rectCount,
  1765. const VkClearRect * pRects ) const VULKAN_HPP_NOEXCEPT
  1766. {
  1767. return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects );
  1768. }
  1769. void vkCmdResolveImage( VkCommandBuffer commandBuffer,
  1770. VkImage srcImage,
  1771. VkImageLayout srcImageLayout,
  1772. VkImage dstImage,
  1773. VkImageLayout dstImageLayout,
  1774. uint32_t regionCount,
  1775. const VkImageResolve * pRegions ) const VULKAN_HPP_NOEXCEPT
  1776. {
  1777. return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions );
  1778. }
  1779. void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
  1780. {
  1781. return ::vkCmdSetEvent( commandBuffer, event, stageMask );
  1782. }
  1783. void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT
  1784. {
  1785. return ::vkCmdResetEvent( commandBuffer, event, stageMask );
  1786. }
  1787. void vkCmdWaitEvents( VkCommandBuffer commandBuffer,
  1788. uint32_t eventCount,
  1789. const VkEvent * pEvents,
  1790. VkPipelineStageFlags srcStageMask,
  1791. VkPipelineStageFlags dstStageMask,
  1792. uint32_t memoryBarrierCount,
  1793. const VkMemoryBarrier * pMemoryBarriers,
  1794. uint32_t bufferMemoryBarrierCount,
  1795. const VkBufferMemoryBarrier * pBufferMemoryBarriers,
  1796. uint32_t imageMemoryBarrierCount,
  1797. const VkImageMemoryBarrier * pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
  1798. {
  1799. return ::vkCmdWaitEvents( commandBuffer,
  1800. eventCount,
  1801. pEvents,
  1802. srcStageMask,
  1803. dstStageMask,
  1804. memoryBarrierCount,
  1805. pMemoryBarriers,
  1806. bufferMemoryBarrierCount,
  1807. pBufferMemoryBarriers,
  1808. imageMemoryBarrierCount,
  1809. pImageMemoryBarriers );
  1810. }
  1811. void vkCmdPipelineBarrier( VkCommandBuffer commandBuffer,
  1812. VkPipelineStageFlags srcStageMask,
  1813. VkPipelineStageFlags dstStageMask,
  1814. VkDependencyFlags dependencyFlags,
  1815. uint32_t memoryBarrierCount,
  1816. const VkMemoryBarrier * pMemoryBarriers,
  1817. uint32_t bufferMemoryBarrierCount,
  1818. const VkBufferMemoryBarrier * pBufferMemoryBarriers,
  1819. uint32_t imageMemoryBarrierCount,
  1820. const VkImageMemoryBarrier * pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT
  1821. {
  1822. return ::vkCmdPipelineBarrier( commandBuffer,
  1823. srcStageMask,
  1824. dstStageMask,
  1825. dependencyFlags,
  1826. memoryBarrierCount,
  1827. pMemoryBarriers,
  1828. bufferMemoryBarrierCount,
  1829. pBufferMemoryBarriers,
  1830. imageMemoryBarrierCount,
  1831. pImageMemoryBarriers );
  1832. }
  1833. void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT
  1834. {
  1835. return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags );
  1836. }
  1837. void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
  1838. {
  1839. return ::vkCmdEndQuery( commandBuffer, queryPool, query );
  1840. }
  1841. void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
  1842. {
  1843. return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount );
  1844. }
  1845. void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer,
  1846. VkPipelineStageFlagBits pipelineStage,
  1847. VkQueryPool queryPool,
  1848. uint32_t query ) const VULKAN_HPP_NOEXCEPT
  1849. {
  1850. return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query );
  1851. }
  1852. void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer,
  1853. VkQueryPool queryPool,
  1854. uint32_t firstQuery,
  1855. uint32_t queryCount,
  1856. VkBuffer dstBuffer,
  1857. VkDeviceSize dstOffset,
  1858. VkDeviceSize stride,
  1859. VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT
  1860. {
  1861. return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags );
  1862. }
  1863. void vkCmdPushConstants( VkCommandBuffer commandBuffer,
  1864. VkPipelineLayout layout,
  1865. VkShaderStageFlags stageFlags,
  1866. uint32_t offset,
  1867. uint32_t size,
  1868. const void * pValues ) const VULKAN_HPP_NOEXCEPT
  1869. {
  1870. return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues );
  1871. }
  1872. void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer,
  1873. const VkRenderPassBeginInfo * pRenderPassBegin,
  1874. VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
  1875. {
  1876. return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents );
  1877. }
  1878. void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT
  1879. {
  1880. return ::vkCmdNextSubpass( commandBuffer, contents );
  1881. }
  1882. void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
  1883. {
  1884. return ::vkCmdEndRenderPass( commandBuffer );
  1885. }
  1886. void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers ) const VULKAN_HPP_NOEXCEPT
  1887. {
  1888. return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers );
  1889. }
  1890. //=== VK_VERSION_1_1 ===
  1891. VkResult vkEnumerateInstanceVersion( uint32_t * pApiVersion ) const VULKAN_HPP_NOEXCEPT
  1892. {
  1893. return ::vkEnumerateInstanceVersion( pApiVersion );
  1894. }
  1895. VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
  1896. {
  1897. return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos );
  1898. }
  1899. VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
  1900. {
  1901. return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos );
  1902. }
  1903. void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device,
  1904. uint32_t heapIndex,
  1905. uint32_t localDeviceIndex,
  1906. uint32_t remoteDeviceIndex,
  1907. VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
  1908. {
  1909. return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
  1910. }
  1911. void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
  1912. {
  1913. return ::vkCmdSetDeviceMask( commandBuffer, deviceMask );
  1914. }
  1915. void vkCmdDispatchBase( VkCommandBuffer commandBuffer,
  1916. uint32_t baseGroupX,
  1917. uint32_t baseGroupY,
  1918. uint32_t baseGroupZ,
  1919. uint32_t groupCountX,
  1920. uint32_t groupCountY,
  1921. uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
  1922. {
  1923. return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
  1924. }
  1925. VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance,
  1926. uint32_t * pPhysicalDeviceGroupCount,
  1927. VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
  1928. {
  1929. return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
  1930. }
  1931. void vkGetImageMemoryRequirements2( VkDevice device,
  1932. const VkImageMemoryRequirementsInfo2 * pInfo,
  1933. VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  1934. {
  1935. return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements );
  1936. }
  1937. void vkGetBufferMemoryRequirements2( VkDevice device,
  1938. const VkBufferMemoryRequirementsInfo2 * pInfo,
  1939. VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  1940. {
  1941. return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements );
  1942. }
  1943. void vkGetImageSparseMemoryRequirements2( VkDevice device,
  1944. const VkImageSparseMemoryRequirementsInfo2 * pInfo,
  1945. uint32_t * pSparseMemoryRequirementCount,
  1946. VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  1947. {
  1948. return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
  1949. }
  1950. void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT
  1951. {
  1952. return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures );
  1953. }
  1954. void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT
  1955. {
  1956. return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties );
  1957. }
  1958. void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice,
  1959. VkFormat format,
  1960. VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
  1961. {
  1962. return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties );
  1963. }
  1964. VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice,
  1965. const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,
  1966. VkImageFormatProperties2 * pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
  1967. {
  1968. return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties );
  1969. }
  1970. void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice,
  1971. uint32_t * pQueueFamilyPropertyCount,
  1972. VkQueueFamilyProperties2 * pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
  1973. {
  1974. return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
  1975. }
  1976. void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice,
  1977. VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
  1978. {
  1979. return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties );
  1980. }
  1981. void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice,
  1982. const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,
  1983. uint32_t * pPropertyCount,
  1984. VkSparseImageFormatProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT
  1985. {
  1986. return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
  1987. }
  1988. void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
  1989. {
  1990. return ::vkTrimCommandPool( device, commandPool, flags );
  1991. }
  1992. void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2 * pQueueInfo, VkQueue * pQueue ) const VULKAN_HPP_NOEXCEPT
  1993. {
  1994. return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue );
  1995. }
  1996. VkResult vkCreateSamplerYcbcrConversion( VkDevice device,
  1997. const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,
  1998. const VkAllocationCallbacks * pAllocator,
  1999. VkSamplerYcbcrConversion * pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
  2000. {
  2001. return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion );
  2002. }
  2003. void vkDestroySamplerYcbcrConversion( VkDevice device,
  2004. VkSamplerYcbcrConversion ycbcrConversion,
  2005. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2006. {
  2007. return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator );
  2008. }
  2009. VkResult vkCreateDescriptorUpdateTemplate( VkDevice device,
  2010. const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,
  2011. const VkAllocationCallbacks * pAllocator,
  2012. VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
  2013. {
  2014. return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
  2015. }
  2016. void vkDestroyDescriptorUpdateTemplate( VkDevice device,
  2017. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  2018. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2019. {
  2020. return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator );
  2021. }
  2022. void vkUpdateDescriptorSetWithTemplate( VkDevice device,
  2023. VkDescriptorSet descriptorSet,
  2024. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  2025. const void * pData ) const VULKAN_HPP_NOEXCEPT
  2026. {
  2027. return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData );
  2028. }
  2029. void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice,
  2030. const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,
  2031. VkExternalBufferProperties * pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
  2032. {
  2033. return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
  2034. }
  2035. void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice,
  2036. const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,
  2037. VkExternalFenceProperties * pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
  2038. {
  2039. return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
  2040. }
  2041. void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice,
  2042. const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,
  2043. VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
  2044. {
  2045. return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
  2046. }
  2047. void vkGetDescriptorSetLayoutSupport( VkDevice device,
  2048. const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
  2049. VkDescriptorSetLayoutSupport * pSupport ) const VULKAN_HPP_NOEXCEPT
  2050. {
  2051. return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport );
  2052. }
  2053. //=== VK_VERSION_1_2 ===
  2054. void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer,
  2055. VkBuffer buffer,
  2056. VkDeviceSize offset,
  2057. VkBuffer countBuffer,
  2058. VkDeviceSize countBufferOffset,
  2059. uint32_t maxDrawCount,
  2060. uint32_t stride ) const VULKAN_HPP_NOEXCEPT
  2061. {
  2062. return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  2063. }
  2064. void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer,
  2065. VkBuffer buffer,
  2066. VkDeviceSize offset,
  2067. VkBuffer countBuffer,
  2068. VkDeviceSize countBufferOffset,
  2069. uint32_t maxDrawCount,
  2070. uint32_t stride ) const VULKAN_HPP_NOEXCEPT
  2071. {
  2072. return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  2073. }
  2074. VkResult vkCreateRenderPass2( VkDevice device,
  2075. const VkRenderPassCreateInfo2 * pCreateInfo,
  2076. const VkAllocationCallbacks * pAllocator,
  2077. VkRenderPass * pRenderPass ) const VULKAN_HPP_NOEXCEPT
  2078. {
  2079. return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass );
  2080. }
  2081. void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer,
  2082. const VkRenderPassBeginInfo * pRenderPassBegin,
  2083. const VkSubpassBeginInfo * pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
  2084. {
  2085. return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
  2086. }
  2087. void vkCmdNextSubpass2( VkCommandBuffer commandBuffer,
  2088. const VkSubpassBeginInfo * pSubpassBeginInfo,
  2089. const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
  2090. {
  2091. return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
  2092. }
  2093. void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
  2094. {
  2095. return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo );
  2096. }
  2097. void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
  2098. {
  2099. return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount );
  2100. }
  2101. VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT
  2102. {
  2103. return ::vkGetSemaphoreCounterValue( device, semaphore, pValue );
  2104. }
  2105. VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo * pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
  2106. {
  2107. return ::vkWaitSemaphores( device, pWaitInfo, timeout );
  2108. }
  2109. VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT
  2110. {
  2111. return ::vkSignalSemaphore( device, pSignalInfo );
  2112. }
  2113. VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
  2114. {
  2115. return ::vkGetBufferDeviceAddress( device, pInfo );
  2116. }
  2117. uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
  2118. {
  2119. return ::vkGetBufferOpaqueCaptureAddress( device, pInfo );
  2120. }
  2121. uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
  2122. {
  2123. return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo );
  2124. }
  2125. //=== VK_VERSION_1_3 ===
  2126. VkResult vkGetPhysicalDeviceToolProperties( VkPhysicalDevice physicalDevice,
  2127. uint32_t * pToolCount,
  2128. VkPhysicalDeviceToolProperties * pToolProperties ) const VULKAN_HPP_NOEXCEPT
  2129. {
  2130. return ::vkGetPhysicalDeviceToolProperties( physicalDevice, pToolCount, pToolProperties );
  2131. }
  2132. VkResult vkCreatePrivateDataSlot( VkDevice device,
  2133. const VkPrivateDataSlotCreateInfo * pCreateInfo,
  2134. const VkAllocationCallbacks * pAllocator,
  2135. VkPrivateDataSlot * pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
  2136. {
  2137. return ::vkCreatePrivateDataSlot( device, pCreateInfo, pAllocator, pPrivateDataSlot );
  2138. }
  2139. void vkDestroyPrivateDataSlot( VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2140. {
  2141. return ::vkDestroyPrivateDataSlot( device, privateDataSlot, pAllocator );
  2142. }
  2143. VkResult vkSetPrivateData( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data ) const
  2144. VULKAN_HPP_NOEXCEPT
  2145. {
  2146. return ::vkSetPrivateData( device, objectType, objectHandle, privateDataSlot, data );
  2147. }
  2148. void vkGetPrivateData( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t * pData ) const
  2149. VULKAN_HPP_NOEXCEPT
  2150. {
  2151. return ::vkGetPrivateData( device, objectType, objectHandle, privateDataSlot, pData );
  2152. }
  2153. void vkCmdSetEvent2( VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
  2154. {
  2155. return ::vkCmdSetEvent2( commandBuffer, event, pDependencyInfo );
  2156. }
  2157. void vkCmdResetEvent2( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT
  2158. {
  2159. return ::vkCmdResetEvent2( commandBuffer, event, stageMask );
  2160. }
  2161. void vkCmdWaitEvents2( VkCommandBuffer commandBuffer,
  2162. uint32_t eventCount,
  2163. const VkEvent * pEvents,
  2164. const VkDependencyInfo * pDependencyInfos ) const VULKAN_HPP_NOEXCEPT
  2165. {
  2166. return ::vkCmdWaitEvents2( commandBuffer, eventCount, pEvents, pDependencyInfos );
  2167. }
  2168. void vkCmdPipelineBarrier2( VkCommandBuffer commandBuffer, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
  2169. {
  2170. return ::vkCmdPipelineBarrier2( commandBuffer, pDependencyInfo );
  2171. }
  2172. void vkCmdWriteTimestamp2( VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
  2173. {
  2174. return ::vkCmdWriteTimestamp2( commandBuffer, stage, queryPool, query );
  2175. }
  2176. VkResult vkQueueSubmit2( VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 * pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
  2177. {
  2178. return ::vkQueueSubmit2( queue, submitCount, pSubmits, fence );
  2179. }
  2180. void vkCmdCopyBuffer2( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2 * pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
  2181. {
  2182. return ::vkCmdCopyBuffer2( commandBuffer, pCopyBufferInfo );
  2183. }
  2184. void vkCmdCopyImage2( VkCommandBuffer commandBuffer, const VkCopyImageInfo2 * pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
  2185. {
  2186. return ::vkCmdCopyImage2( commandBuffer, pCopyImageInfo );
  2187. }
  2188. void vkCmdCopyBufferToImage2( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
  2189. {
  2190. return ::vkCmdCopyBufferToImage2( commandBuffer, pCopyBufferToImageInfo );
  2191. }
  2192. void vkCmdCopyImageToBuffer2( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
  2193. {
  2194. return ::vkCmdCopyImageToBuffer2( commandBuffer, pCopyImageToBufferInfo );
  2195. }
  2196. void vkCmdBlitImage2( VkCommandBuffer commandBuffer, const VkBlitImageInfo2 * pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
  2197. {
  2198. return ::vkCmdBlitImage2( commandBuffer, pBlitImageInfo );
  2199. }
  2200. void vkCmdResolveImage2( VkCommandBuffer commandBuffer, const VkResolveImageInfo2 * pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
  2201. {
  2202. return ::vkCmdResolveImage2( commandBuffer, pResolveImageInfo );
  2203. }
  2204. void vkCmdBeginRendering( VkCommandBuffer commandBuffer, const VkRenderingInfo * pRenderingInfo ) const VULKAN_HPP_NOEXCEPT
  2205. {
  2206. return ::vkCmdBeginRendering( commandBuffer, pRenderingInfo );
  2207. }
  2208. void vkCmdEndRendering( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
  2209. {
  2210. return ::vkCmdEndRendering( commandBuffer );
  2211. }
  2212. void vkCmdSetCullMode( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
  2213. {
  2214. return ::vkCmdSetCullMode( commandBuffer, cullMode );
  2215. }
  2216. void vkCmdSetFrontFace( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
  2217. {
  2218. return ::vkCmdSetFrontFace( commandBuffer, frontFace );
  2219. }
  2220. void vkCmdSetPrimitiveTopology( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
  2221. {
  2222. return ::vkCmdSetPrimitiveTopology( commandBuffer, primitiveTopology );
  2223. }
  2224. void vkCmdSetViewportWithCount( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
  2225. {
  2226. return ::vkCmdSetViewportWithCount( commandBuffer, viewportCount, pViewports );
  2227. }
  2228. void vkCmdSetScissorWithCount( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
  2229. {
  2230. return ::vkCmdSetScissorWithCount( commandBuffer, scissorCount, pScissors );
  2231. }
  2232. void vkCmdBindVertexBuffers2( VkCommandBuffer commandBuffer,
  2233. uint32_t firstBinding,
  2234. uint32_t bindingCount,
  2235. const VkBuffer * pBuffers,
  2236. const VkDeviceSize * pOffsets,
  2237. const VkDeviceSize * pSizes,
  2238. const VkDeviceSize * pStrides ) const VULKAN_HPP_NOEXCEPT
  2239. {
  2240. return ::vkCmdBindVertexBuffers2( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
  2241. }
  2242. void vkCmdSetDepthTestEnable( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
  2243. {
  2244. return ::vkCmdSetDepthTestEnable( commandBuffer, depthTestEnable );
  2245. }
  2246. void vkCmdSetDepthWriteEnable( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
  2247. {
  2248. return ::vkCmdSetDepthWriteEnable( commandBuffer, depthWriteEnable );
  2249. }
  2250. void vkCmdSetDepthCompareOp( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
  2251. {
  2252. return ::vkCmdSetDepthCompareOp( commandBuffer, depthCompareOp );
  2253. }
  2254. void vkCmdSetDepthBoundsTestEnable( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
  2255. {
  2256. return ::vkCmdSetDepthBoundsTestEnable( commandBuffer, depthBoundsTestEnable );
  2257. }
  2258. void vkCmdSetStencilTestEnable( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
  2259. {
  2260. return ::vkCmdSetStencilTestEnable( commandBuffer, stencilTestEnable );
  2261. }
  2262. void vkCmdSetStencilOp( VkCommandBuffer commandBuffer,
  2263. VkStencilFaceFlags faceMask,
  2264. VkStencilOp failOp,
  2265. VkStencilOp passOp,
  2266. VkStencilOp depthFailOp,
  2267. VkCompareOp compareOp ) const VULKAN_HPP_NOEXCEPT
  2268. {
  2269. return ::vkCmdSetStencilOp( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
  2270. }
  2271. void vkCmdSetRasterizerDiscardEnable( VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT
  2272. {
  2273. return ::vkCmdSetRasterizerDiscardEnable( commandBuffer, rasterizerDiscardEnable );
  2274. }
  2275. void vkCmdSetDepthBiasEnable( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT
  2276. {
  2277. return ::vkCmdSetDepthBiasEnable( commandBuffer, depthBiasEnable );
  2278. }
  2279. void vkCmdSetPrimitiveRestartEnable( VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT
  2280. {
  2281. return ::vkCmdSetPrimitiveRestartEnable( commandBuffer, primitiveRestartEnable );
  2282. }
  2283. void vkGetDeviceBufferMemoryRequirements( VkDevice device,
  2284. const VkDeviceBufferMemoryRequirements * pInfo,
  2285. VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  2286. {
  2287. return ::vkGetDeviceBufferMemoryRequirements( device, pInfo, pMemoryRequirements );
  2288. }
  2289. void vkGetDeviceImageMemoryRequirements( VkDevice device,
  2290. const VkDeviceImageMemoryRequirements * pInfo,
  2291. VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  2292. {
  2293. return ::vkGetDeviceImageMemoryRequirements( device, pInfo, pMemoryRequirements );
  2294. }
  2295. void vkGetDeviceImageSparseMemoryRequirements( VkDevice device,
  2296. const VkDeviceImageMemoryRequirements * pInfo,
  2297. uint32_t * pSparseMemoryRequirementCount,
  2298. VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  2299. {
  2300. return ::vkGetDeviceImageSparseMemoryRequirements( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
  2301. }
  2302. //=== VK_KHR_surface ===
  2303. void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2304. {
  2305. return ::vkDestroySurfaceKHR( instance, surface, pAllocator );
  2306. }
  2307. VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice,
  2308. uint32_t queueFamilyIndex,
  2309. VkSurfaceKHR surface,
  2310. VkBool32 * pSupported ) const VULKAN_HPP_NOEXCEPT
  2311. {
  2312. return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported );
  2313. }
  2314. VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice,
  2315. VkSurfaceKHR surface,
  2316. VkSurfaceCapabilitiesKHR * pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
  2317. {
  2318. return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities );
  2319. }
  2320. VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice,
  2321. VkSurfaceKHR surface,
  2322. uint32_t * pSurfaceFormatCount,
  2323. VkSurfaceFormatKHR * pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
  2324. {
  2325. return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats );
  2326. }
  2327. VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice,
  2328. VkSurfaceKHR surface,
  2329. uint32_t * pPresentModeCount,
  2330. VkPresentModeKHR * pPresentModes ) const VULKAN_HPP_NOEXCEPT
  2331. {
  2332. return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes );
  2333. }
  2334. //=== VK_KHR_swapchain ===
  2335. VkResult vkCreateSwapchainKHR( VkDevice device,
  2336. const VkSwapchainCreateInfoKHR * pCreateInfo,
  2337. const VkAllocationCallbacks * pAllocator,
  2338. VkSwapchainKHR * pSwapchain ) const VULKAN_HPP_NOEXCEPT
  2339. {
  2340. return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain );
  2341. }
  2342. void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2343. {
  2344. return ::vkDestroySwapchainKHR( device, swapchain, pAllocator );
  2345. }
  2346. VkResult vkGetSwapchainImagesKHR( VkDevice device,
  2347. VkSwapchainKHR swapchain,
  2348. uint32_t * pSwapchainImageCount,
  2349. VkImage * pSwapchainImages ) const VULKAN_HPP_NOEXCEPT
  2350. {
  2351. return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages );
  2352. }
  2353. VkResult vkAcquireNextImageKHR(
  2354. VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t * pImageIndex ) const VULKAN_HPP_NOEXCEPT
  2355. {
  2356. return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex );
  2357. }
  2358. VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR * pPresentInfo ) const VULKAN_HPP_NOEXCEPT
  2359. {
  2360. return ::vkQueuePresentKHR( queue, pPresentInfo );
  2361. }
  2362. VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device,
  2363. VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT
  2364. {
  2365. return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities );
  2366. }
  2367. VkResult
  2368. vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR * pModes ) const VULKAN_HPP_NOEXCEPT
  2369. {
  2370. return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes );
  2371. }
  2372. VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice,
  2373. VkSurfaceKHR surface,
  2374. uint32_t * pRectCount,
  2375. VkRect2D * pRects ) const VULKAN_HPP_NOEXCEPT
  2376. {
  2377. return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects );
  2378. }
  2379. VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR * pAcquireInfo, uint32_t * pImageIndex ) const VULKAN_HPP_NOEXCEPT
  2380. {
  2381. return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex );
  2382. }
  2383. //=== VK_KHR_display ===
  2384. VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice,
  2385. uint32_t * pPropertyCount,
  2386. VkDisplayPropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
  2387. {
  2388. return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties );
  2389. }
  2390. VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice,
  2391. uint32_t * pPropertyCount,
  2392. VkDisplayPlanePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
  2393. {
  2394. return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties );
  2395. }
  2396. VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice,
  2397. uint32_t planeIndex,
  2398. uint32_t * pDisplayCount,
  2399. VkDisplayKHR * pDisplays ) const VULKAN_HPP_NOEXCEPT
  2400. {
  2401. return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays );
  2402. }
  2403. VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice,
  2404. VkDisplayKHR display,
  2405. uint32_t * pPropertyCount,
  2406. VkDisplayModePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
  2407. {
  2408. return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties );
  2409. }
  2410. VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice,
  2411. VkDisplayKHR display,
  2412. const VkDisplayModeCreateInfoKHR * pCreateInfo,
  2413. const VkAllocationCallbacks * pAllocator,
  2414. VkDisplayModeKHR * pMode ) const VULKAN_HPP_NOEXCEPT
  2415. {
  2416. return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode );
  2417. }
  2418. VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice,
  2419. VkDisplayModeKHR mode,
  2420. uint32_t planeIndex,
  2421. VkDisplayPlaneCapabilitiesKHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT
  2422. {
  2423. return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities );
  2424. }
  2425. VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance,
  2426. const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,
  2427. const VkAllocationCallbacks * pAllocator,
  2428. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  2429. {
  2430. return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  2431. }
  2432. //=== VK_KHR_display_swapchain ===
  2433. VkResult vkCreateSharedSwapchainsKHR( VkDevice device,
  2434. uint32_t swapchainCount,
  2435. const VkSwapchainCreateInfoKHR * pCreateInfos,
  2436. const VkAllocationCallbacks * pAllocator,
  2437. VkSwapchainKHR * pSwapchains ) const VULKAN_HPP_NOEXCEPT
  2438. {
  2439. return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains );
  2440. }
  2441. # if defined( VK_USE_PLATFORM_XLIB_KHR )
  2442. //=== VK_KHR_xlib_surface ===
  2443. VkResult vkCreateXlibSurfaceKHR( VkInstance instance,
  2444. const VkXlibSurfaceCreateInfoKHR * pCreateInfo,
  2445. const VkAllocationCallbacks * pAllocator,
  2446. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  2447. {
  2448. return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  2449. }
  2450. VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice,
  2451. uint32_t queueFamilyIndex,
  2452. Display * dpy,
  2453. VisualID visualID ) const VULKAN_HPP_NOEXCEPT
  2454. {
  2455. return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID );
  2456. }
  2457. # endif /*VK_USE_PLATFORM_XLIB_KHR*/
  2458. # if defined( VK_USE_PLATFORM_XCB_KHR )
  2459. //=== VK_KHR_xcb_surface ===
  2460. VkResult vkCreateXcbSurfaceKHR( VkInstance instance,
  2461. const VkXcbSurfaceCreateInfoKHR * pCreateInfo,
  2462. const VkAllocationCallbacks * pAllocator,
  2463. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  2464. {
  2465. return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  2466. }
  2467. VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice,
  2468. uint32_t queueFamilyIndex,
  2469. xcb_connection_t * connection,
  2470. xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT
  2471. {
  2472. return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id );
  2473. }
  2474. # endif /*VK_USE_PLATFORM_XCB_KHR*/
  2475. # if defined( VK_USE_PLATFORM_WAYLAND_KHR )
  2476. //=== VK_KHR_wayland_surface ===
  2477. VkResult vkCreateWaylandSurfaceKHR( VkInstance instance,
  2478. const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,
  2479. const VkAllocationCallbacks * pAllocator,
  2480. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  2481. {
  2482. return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  2483. }
  2484. VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice,
  2485. uint32_t queueFamilyIndex,
  2486. struct wl_display * display ) const VULKAN_HPP_NOEXCEPT
  2487. {
  2488. return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display );
  2489. }
  2490. # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  2491. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  2492. //=== VK_KHR_android_surface ===
  2493. VkResult vkCreateAndroidSurfaceKHR( VkInstance instance,
  2494. const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,
  2495. const VkAllocationCallbacks * pAllocator,
  2496. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  2497. {
  2498. return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  2499. }
  2500. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  2501. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  2502. //=== VK_KHR_win32_surface ===
  2503. VkResult vkCreateWin32SurfaceKHR( VkInstance instance,
  2504. const VkWin32SurfaceCreateInfoKHR * pCreateInfo,
  2505. const VkAllocationCallbacks * pAllocator,
  2506. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  2507. {
  2508. return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface );
  2509. }
  2510. VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT
  2511. {
  2512. return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex );
  2513. }
  2514. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  2515. //=== VK_EXT_debug_report ===
  2516. VkResult vkCreateDebugReportCallbackEXT( VkInstance instance,
  2517. const VkDebugReportCallbackCreateInfoEXT * pCreateInfo,
  2518. const VkAllocationCallbacks * pAllocator,
  2519. VkDebugReportCallbackEXT * pCallback ) const VULKAN_HPP_NOEXCEPT
  2520. {
  2521. return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback );
  2522. }
  2523. void vkDestroyDebugReportCallbackEXT( VkInstance instance,
  2524. VkDebugReportCallbackEXT callback,
  2525. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2526. {
  2527. return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator );
  2528. }
  2529. void vkDebugReportMessageEXT( VkInstance instance,
  2530. VkDebugReportFlagsEXT flags,
  2531. VkDebugReportObjectTypeEXT objectType,
  2532. uint64_t object,
  2533. size_t location,
  2534. int32_t messageCode,
  2535. const char * pLayerPrefix,
  2536. const char * pMessage ) const VULKAN_HPP_NOEXCEPT
  2537. {
  2538. return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage );
  2539. }
  2540. //=== VK_EXT_debug_marker ===
  2541. VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT
  2542. {
  2543. return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo );
  2544. }
  2545. VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT
  2546. {
  2547. return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo );
  2548. }
  2549. void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
  2550. {
  2551. return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo );
  2552. }
  2553. void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
  2554. {
  2555. return ::vkCmdDebugMarkerEndEXT( commandBuffer );
  2556. }
  2557. void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
  2558. {
  2559. return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo );
  2560. }
  2561. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  2562. //=== VK_KHR_video_queue ===
  2563. VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR( VkPhysicalDevice physicalDevice,
  2564. const VkVideoProfileInfoKHR * pVideoProfile,
  2565. VkVideoCapabilitiesKHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT
  2566. {
  2567. return ::vkGetPhysicalDeviceVideoCapabilitiesKHR( physicalDevice, pVideoProfile, pCapabilities );
  2568. }
  2569. VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR( VkPhysicalDevice physicalDevice,
  2570. const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,
  2571. uint32_t * pVideoFormatPropertyCount,
  2572. VkVideoFormatPropertiesKHR * pVideoFormatProperties ) const VULKAN_HPP_NOEXCEPT
  2573. {
  2574. return ::vkGetPhysicalDeviceVideoFormatPropertiesKHR( physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties );
  2575. }
  2576. VkResult vkCreateVideoSessionKHR( VkDevice device,
  2577. const VkVideoSessionCreateInfoKHR * pCreateInfo,
  2578. const VkAllocationCallbacks * pAllocator,
  2579. VkVideoSessionKHR * pVideoSession ) const VULKAN_HPP_NOEXCEPT
  2580. {
  2581. return ::vkCreateVideoSessionKHR( device, pCreateInfo, pAllocator, pVideoSession );
  2582. }
  2583. void vkDestroyVideoSessionKHR( VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2584. {
  2585. return ::vkDestroyVideoSessionKHR( device, videoSession, pAllocator );
  2586. }
  2587. VkResult vkGetVideoSessionMemoryRequirementsKHR( VkDevice device,
  2588. VkVideoSessionKHR videoSession,
  2589. uint32_t * pMemoryRequirementsCount,
  2590. VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  2591. {
  2592. return ::vkGetVideoSessionMemoryRequirementsKHR( device, videoSession, pMemoryRequirementsCount, pMemoryRequirements );
  2593. }
  2594. VkResult vkBindVideoSessionMemoryKHR( VkDevice device,
  2595. VkVideoSessionKHR videoSession,
  2596. uint32_t bindSessionMemoryInfoCount,
  2597. const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos ) const VULKAN_HPP_NOEXCEPT
  2598. {
  2599. return ::vkBindVideoSessionMemoryKHR( device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos );
  2600. }
  2601. VkResult vkCreateVideoSessionParametersKHR( VkDevice device,
  2602. const VkVideoSessionParametersCreateInfoKHR * pCreateInfo,
  2603. const VkAllocationCallbacks * pAllocator,
  2604. VkVideoSessionParametersKHR * pVideoSessionParameters ) const VULKAN_HPP_NOEXCEPT
  2605. {
  2606. return ::vkCreateVideoSessionParametersKHR( device, pCreateInfo, pAllocator, pVideoSessionParameters );
  2607. }
  2608. VkResult vkUpdateVideoSessionParametersKHR( VkDevice device,
  2609. VkVideoSessionParametersKHR videoSessionParameters,
  2610. const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo ) const VULKAN_HPP_NOEXCEPT
  2611. {
  2612. return ::vkUpdateVideoSessionParametersKHR( device, videoSessionParameters, pUpdateInfo );
  2613. }
  2614. void vkDestroyVideoSessionParametersKHR( VkDevice device,
  2615. VkVideoSessionParametersKHR videoSessionParameters,
  2616. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2617. {
  2618. return ::vkDestroyVideoSessionParametersKHR( device, videoSessionParameters, pAllocator );
  2619. }
  2620. void vkCmdBeginVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR * pBeginInfo ) const VULKAN_HPP_NOEXCEPT
  2621. {
  2622. return ::vkCmdBeginVideoCodingKHR( commandBuffer, pBeginInfo );
  2623. }
  2624. void vkCmdEndVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR * pEndCodingInfo ) const VULKAN_HPP_NOEXCEPT
  2625. {
  2626. return ::vkCmdEndVideoCodingKHR( commandBuffer, pEndCodingInfo );
  2627. }
  2628. void vkCmdControlVideoCodingKHR( VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR * pCodingControlInfo ) const VULKAN_HPP_NOEXCEPT
  2629. {
  2630. return ::vkCmdControlVideoCodingKHR( commandBuffer, pCodingControlInfo );
  2631. }
  2632. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  2633. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  2634. //=== VK_KHR_video_decode_queue ===
  2635. void vkCmdDecodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR * pFrameInfo ) const VULKAN_HPP_NOEXCEPT
  2636. {
  2637. return ::vkCmdDecodeVideoKHR( commandBuffer, pFrameInfo );
  2638. }
  2639. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  2640. //=== VK_EXT_transform_feedback ===
  2641. void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer,
  2642. uint32_t firstBinding,
  2643. uint32_t bindingCount,
  2644. const VkBuffer * pBuffers,
  2645. const VkDeviceSize * pOffsets,
  2646. const VkDeviceSize * pSizes ) const VULKAN_HPP_NOEXCEPT
  2647. {
  2648. return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes );
  2649. }
  2650. void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer,
  2651. uint32_t firstCounterBuffer,
  2652. uint32_t counterBufferCount,
  2653. const VkBuffer * pCounterBuffers,
  2654. const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
  2655. {
  2656. return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
  2657. }
  2658. void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer,
  2659. uint32_t firstCounterBuffer,
  2660. uint32_t counterBufferCount,
  2661. const VkBuffer * pCounterBuffers,
  2662. const VkDeviceSize * pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT
  2663. {
  2664. return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets );
  2665. }
  2666. void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const
  2667. VULKAN_HPP_NOEXCEPT
  2668. {
  2669. return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index );
  2670. }
  2671. void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT
  2672. {
  2673. return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index );
  2674. }
  2675. void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer,
  2676. uint32_t instanceCount,
  2677. uint32_t firstInstance,
  2678. VkBuffer counterBuffer,
  2679. VkDeviceSize counterBufferOffset,
  2680. uint32_t counterOffset,
  2681. uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT
  2682. {
  2683. return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride );
  2684. }
  2685. //=== VK_NVX_binary_import ===
  2686. VkResult vkCreateCuModuleNVX( VkDevice device,
  2687. const VkCuModuleCreateInfoNVX * pCreateInfo,
  2688. const VkAllocationCallbacks * pAllocator,
  2689. VkCuModuleNVX * pModule ) const VULKAN_HPP_NOEXCEPT
  2690. {
  2691. return ::vkCreateCuModuleNVX( device, pCreateInfo, pAllocator, pModule );
  2692. }
  2693. VkResult vkCreateCuFunctionNVX( VkDevice device,
  2694. const VkCuFunctionCreateInfoNVX * pCreateInfo,
  2695. const VkAllocationCallbacks * pAllocator,
  2696. VkCuFunctionNVX * pFunction ) const VULKAN_HPP_NOEXCEPT
  2697. {
  2698. return ::vkCreateCuFunctionNVX( device, pCreateInfo, pAllocator, pFunction );
  2699. }
  2700. void vkDestroyCuModuleNVX( VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2701. {
  2702. return ::vkDestroyCuModuleNVX( device, module, pAllocator );
  2703. }
  2704. void vkDestroyCuFunctionNVX( VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2705. {
  2706. return ::vkDestroyCuFunctionNVX( device, function, pAllocator );
  2707. }
  2708. void vkCmdCuLaunchKernelNVX( VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX * pLaunchInfo ) const VULKAN_HPP_NOEXCEPT
  2709. {
  2710. return ::vkCmdCuLaunchKernelNVX( commandBuffer, pLaunchInfo );
  2711. }
  2712. //=== VK_NVX_image_view_handle ===
  2713. uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX * pInfo ) const VULKAN_HPP_NOEXCEPT
  2714. {
  2715. return ::vkGetImageViewHandleNVX( device, pInfo );
  2716. }
  2717. VkResult vkGetImageViewAddressNVX( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX * pProperties ) const VULKAN_HPP_NOEXCEPT
  2718. {
  2719. return ::vkGetImageViewAddressNVX( device, imageView, pProperties );
  2720. }
  2721. //=== VK_AMD_draw_indirect_count ===
  2722. void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer,
  2723. VkBuffer buffer,
  2724. VkDeviceSize offset,
  2725. VkBuffer countBuffer,
  2726. VkDeviceSize countBufferOffset,
  2727. uint32_t maxDrawCount,
  2728. uint32_t stride ) const VULKAN_HPP_NOEXCEPT
  2729. {
  2730. return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  2731. }
  2732. void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer,
  2733. VkBuffer buffer,
  2734. VkDeviceSize offset,
  2735. VkBuffer countBuffer,
  2736. VkDeviceSize countBufferOffset,
  2737. uint32_t maxDrawCount,
  2738. uint32_t stride ) const VULKAN_HPP_NOEXCEPT
  2739. {
  2740. return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  2741. }
  2742. //=== VK_AMD_shader_info ===
  2743. VkResult vkGetShaderInfoAMD( VkDevice device,
  2744. VkPipeline pipeline,
  2745. VkShaderStageFlagBits shaderStage,
  2746. VkShaderInfoTypeAMD infoType,
  2747. size_t * pInfoSize,
  2748. void * pInfo ) const VULKAN_HPP_NOEXCEPT
  2749. {
  2750. return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
  2751. }
  2752. //=== VK_KHR_dynamic_rendering ===
  2753. void vkCmdBeginRenderingKHR( VkCommandBuffer commandBuffer, const VkRenderingInfo * pRenderingInfo ) const VULKAN_HPP_NOEXCEPT
  2754. {
  2755. return ::vkCmdBeginRenderingKHR( commandBuffer, pRenderingInfo );
  2756. }
  2757. void vkCmdEndRenderingKHR( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
  2758. {
  2759. return ::vkCmdEndRenderingKHR( commandBuffer );
  2760. }
  2761. # if defined( VK_USE_PLATFORM_GGP )
  2762. //=== VK_GGP_stream_descriptor_surface ===
  2763. VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance,
  2764. const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,
  2765. const VkAllocationCallbacks * pAllocator,
  2766. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  2767. {
  2768. return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface );
  2769. }
  2770. # endif /*VK_USE_PLATFORM_GGP*/
  2771. //=== VK_NV_external_memory_capabilities ===
  2772. VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice,
  2773. VkFormat format,
  2774. VkImageType type,
  2775. VkImageTiling tiling,
  2776. VkImageUsageFlags usage,
  2777. VkImageCreateFlags flags,
  2778. VkExternalMemoryHandleTypeFlagsNV externalHandleType,
  2779. VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
  2780. {
  2781. return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
  2782. physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties );
  2783. }
  2784. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  2785. //=== VK_NV_external_memory_win32 ===
  2786. VkResult vkGetMemoryWin32HandleNV( VkDevice device,
  2787. VkDeviceMemory memory,
  2788. VkExternalMemoryHandleTypeFlagsNV handleType,
  2789. HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT
  2790. {
  2791. return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle );
  2792. }
  2793. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  2794. //=== VK_KHR_get_physical_device_properties2 ===
  2795. void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures ) const VULKAN_HPP_NOEXCEPT
  2796. {
  2797. return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures );
  2798. }
  2799. void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT
  2800. {
  2801. return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties );
  2802. }
  2803. void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice,
  2804. VkFormat format,
  2805. VkFormatProperties2 * pFormatProperties ) const VULKAN_HPP_NOEXCEPT
  2806. {
  2807. return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties );
  2808. }
  2809. VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice,
  2810. const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,
  2811. VkImageFormatProperties2 * pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
  2812. {
  2813. return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties );
  2814. }
  2815. void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice,
  2816. uint32_t * pQueueFamilyPropertyCount,
  2817. VkQueueFamilyProperties2 * pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
  2818. {
  2819. return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties );
  2820. }
  2821. void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice,
  2822. VkPhysicalDeviceMemoryProperties2 * pMemoryProperties ) const VULKAN_HPP_NOEXCEPT
  2823. {
  2824. return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties );
  2825. }
  2826. void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice,
  2827. const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,
  2828. uint32_t * pPropertyCount,
  2829. VkSparseImageFormatProperties2 * pProperties ) const VULKAN_HPP_NOEXCEPT
  2830. {
  2831. return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties );
  2832. }
  2833. //=== VK_KHR_device_group ===
  2834. void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device,
  2835. uint32_t heapIndex,
  2836. uint32_t localDeviceIndex,
  2837. uint32_t remoteDeviceIndex,
  2838. VkPeerMemoryFeatureFlags * pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
  2839. {
  2840. return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures );
  2841. }
  2842. void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT
  2843. {
  2844. return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask );
  2845. }
  2846. void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer,
  2847. uint32_t baseGroupX,
  2848. uint32_t baseGroupY,
  2849. uint32_t baseGroupZ,
  2850. uint32_t groupCountX,
  2851. uint32_t groupCountY,
  2852. uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
  2853. {
  2854. return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
  2855. }
  2856. # if defined( VK_USE_PLATFORM_VI_NN )
  2857. //=== VK_NN_vi_surface ===
  2858. VkResult vkCreateViSurfaceNN( VkInstance instance,
  2859. const VkViSurfaceCreateInfoNN * pCreateInfo,
  2860. const VkAllocationCallbacks * pAllocator,
  2861. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  2862. {
  2863. return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface );
  2864. }
  2865. # endif /*VK_USE_PLATFORM_VI_NN*/
  2866. //=== VK_KHR_maintenance1 ===
  2867. void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT
  2868. {
  2869. return ::vkTrimCommandPoolKHR( device, commandPool, flags );
  2870. }
  2871. //=== VK_KHR_device_group_creation ===
  2872. VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance,
  2873. uint32_t * pPhysicalDeviceGroupCount,
  2874. VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
  2875. {
  2876. return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties );
  2877. }
  2878. //=== VK_KHR_external_memory_capabilities ===
  2879. void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice,
  2880. const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,
  2881. VkExternalBufferProperties * pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT
  2882. {
  2883. return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties );
  2884. }
  2885. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  2886. //=== VK_KHR_external_memory_win32 ===
  2887. VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT
  2888. {
  2889. return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
  2890. }
  2891. VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device,
  2892. VkExternalMemoryHandleTypeFlagBits handleType,
  2893. HANDLE handle,
  2894. VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT
  2895. {
  2896. return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties );
  2897. }
  2898. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  2899. //=== VK_KHR_external_memory_fd ===
  2900. VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
  2901. {
  2902. return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd );
  2903. }
  2904. VkResult vkGetMemoryFdPropertiesKHR( VkDevice device,
  2905. VkExternalMemoryHandleTypeFlagBits handleType,
  2906. int fd,
  2907. VkMemoryFdPropertiesKHR * pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT
  2908. {
  2909. return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties );
  2910. }
  2911. //=== VK_KHR_external_semaphore_capabilities ===
  2912. void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice,
  2913. const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,
  2914. VkExternalSemaphoreProperties * pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
  2915. {
  2916. return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties );
  2917. }
  2918. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  2919. //=== VK_KHR_external_semaphore_win32 ===
  2920. VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device,
  2921. const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
  2922. {
  2923. return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo );
  2924. }
  2925. VkResult
  2926. vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT
  2927. {
  2928. return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
  2929. }
  2930. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  2931. //=== VK_KHR_external_semaphore_fd ===
  2932. VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT
  2933. {
  2934. return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo );
  2935. }
  2936. VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
  2937. {
  2938. return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd );
  2939. }
  2940. //=== VK_KHR_push_descriptor ===
  2941. void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer,
  2942. VkPipelineBindPoint pipelineBindPoint,
  2943. VkPipelineLayout layout,
  2944. uint32_t set,
  2945. uint32_t descriptorWriteCount,
  2946. const VkWriteDescriptorSet * pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT
  2947. {
  2948. return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites );
  2949. }
  2950. void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer,
  2951. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  2952. VkPipelineLayout layout,
  2953. uint32_t set,
  2954. const void * pData ) const VULKAN_HPP_NOEXCEPT
  2955. {
  2956. return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData );
  2957. }
  2958. //=== VK_EXT_conditional_rendering ===
  2959. void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer,
  2960. const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT
  2961. {
  2962. return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin );
  2963. }
  2964. void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
  2965. {
  2966. return ::vkCmdEndConditionalRenderingEXT( commandBuffer );
  2967. }
  2968. //=== VK_KHR_descriptor_update_template ===
  2969. VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device,
  2970. const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,
  2971. const VkAllocationCallbacks * pAllocator,
  2972. VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
  2973. {
  2974. return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate );
  2975. }
  2976. void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device,
  2977. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  2978. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  2979. {
  2980. return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator );
  2981. }
  2982. void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device,
  2983. VkDescriptorSet descriptorSet,
  2984. VkDescriptorUpdateTemplate descriptorUpdateTemplate,
  2985. const void * pData ) const VULKAN_HPP_NOEXCEPT
  2986. {
  2987. return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData );
  2988. }
  2989. //=== VK_NV_clip_space_w_scaling ===
  2990. void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer,
  2991. uint32_t firstViewport,
  2992. uint32_t viewportCount,
  2993. const VkViewportWScalingNV * pViewportWScalings ) const VULKAN_HPP_NOEXCEPT
  2994. {
  2995. return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings );
  2996. }
  2997. //=== VK_EXT_direct_mode_display ===
  2998. VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
  2999. {
  3000. return ::vkReleaseDisplayEXT( physicalDevice, display );
  3001. }
  3002. # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
  3003. //=== VK_EXT_acquire_xlib_display ===
  3004. VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display * dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
  3005. {
  3006. return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display );
  3007. }
  3008. VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display * dpy, RROutput rrOutput, VkDisplayKHR * pDisplay ) const VULKAN_HPP_NOEXCEPT
  3009. {
  3010. return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay );
  3011. }
  3012. # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  3013. //=== VK_EXT_display_surface_counter ===
  3014. VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice,
  3015. VkSurfaceKHR surface,
  3016. VkSurfaceCapabilities2EXT * pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
  3017. {
  3018. return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities );
  3019. }
  3020. //=== VK_EXT_display_control ===
  3021. VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT * pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT
  3022. {
  3023. return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo );
  3024. }
  3025. VkResult vkRegisterDeviceEventEXT( VkDevice device,
  3026. const VkDeviceEventInfoEXT * pDeviceEventInfo,
  3027. const VkAllocationCallbacks * pAllocator,
  3028. VkFence * pFence ) const VULKAN_HPP_NOEXCEPT
  3029. {
  3030. return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence );
  3031. }
  3032. VkResult vkRegisterDisplayEventEXT( VkDevice device,
  3033. VkDisplayKHR display,
  3034. const VkDisplayEventInfoEXT * pDisplayEventInfo,
  3035. const VkAllocationCallbacks * pAllocator,
  3036. VkFence * pFence ) const VULKAN_HPP_NOEXCEPT
  3037. {
  3038. return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence );
  3039. }
  3040. VkResult vkGetSwapchainCounterEXT( VkDevice device,
  3041. VkSwapchainKHR swapchain,
  3042. VkSurfaceCounterFlagBitsEXT counter,
  3043. uint64_t * pCounterValue ) const VULKAN_HPP_NOEXCEPT
  3044. {
  3045. return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue );
  3046. }
  3047. //=== VK_GOOGLE_display_timing ===
  3048. VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device,
  3049. VkSwapchainKHR swapchain,
  3050. VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT
  3051. {
  3052. return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties );
  3053. }
  3054. VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device,
  3055. VkSwapchainKHR swapchain,
  3056. uint32_t * pPresentationTimingCount,
  3057. VkPastPresentationTimingGOOGLE * pPresentationTimings ) const VULKAN_HPP_NOEXCEPT
  3058. {
  3059. return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings );
  3060. }
  3061. //=== VK_EXT_discard_rectangles ===
  3062. void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer,
  3063. uint32_t firstDiscardRectangle,
  3064. uint32_t discardRectangleCount,
  3065. const VkRect2D * pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT
  3066. {
  3067. return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles );
  3068. }
  3069. //=== VK_EXT_hdr_metadata ===
  3070. void vkSetHdrMetadataEXT( VkDevice device,
  3071. uint32_t swapchainCount,
  3072. const VkSwapchainKHR * pSwapchains,
  3073. const VkHdrMetadataEXT * pMetadata ) const VULKAN_HPP_NOEXCEPT
  3074. {
  3075. return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata );
  3076. }
  3077. //=== VK_KHR_create_renderpass2 ===
  3078. VkResult vkCreateRenderPass2KHR( VkDevice device,
  3079. const VkRenderPassCreateInfo2 * pCreateInfo,
  3080. const VkAllocationCallbacks * pAllocator,
  3081. VkRenderPass * pRenderPass ) const VULKAN_HPP_NOEXCEPT
  3082. {
  3083. return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass );
  3084. }
  3085. void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer,
  3086. const VkRenderPassBeginInfo * pRenderPassBegin,
  3087. const VkSubpassBeginInfo * pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
  3088. {
  3089. return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo );
  3090. }
  3091. void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer,
  3092. const VkSubpassBeginInfo * pSubpassBeginInfo,
  3093. const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
  3094. {
  3095. return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo );
  3096. }
  3097. void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo * pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT
  3098. {
  3099. return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo );
  3100. }
  3101. //=== VK_KHR_shared_presentable_image ===
  3102. VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
  3103. {
  3104. return ::vkGetSwapchainStatusKHR( device, swapchain );
  3105. }
  3106. //=== VK_KHR_external_fence_capabilities ===
  3107. void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice,
  3108. const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,
  3109. VkExternalFenceProperties * pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT
  3110. {
  3111. return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties );
  3112. }
  3113. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  3114. //=== VK_KHR_external_fence_win32 ===
  3115. VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT
  3116. {
  3117. return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo );
  3118. }
  3119. VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle ) const VULKAN_HPP_NOEXCEPT
  3120. {
  3121. return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle );
  3122. }
  3123. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  3124. //=== VK_KHR_external_fence_fd ===
  3125. VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR * pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT
  3126. {
  3127. return ::vkImportFenceFdKHR( device, pImportFenceFdInfo );
  3128. }
  3129. VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR * pGetFdInfo, int * pFd ) const VULKAN_HPP_NOEXCEPT
  3130. {
  3131. return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd );
  3132. }
  3133. //=== VK_KHR_performance_query ===
  3134. VkResult
  3135. vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice physicalDevice,
  3136. uint32_t queueFamilyIndex,
  3137. uint32_t * pCounterCount,
  3138. VkPerformanceCounterKHR * pCounters,
  3139. VkPerformanceCounterDescriptionKHR * pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT
  3140. {
  3141. return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
  3142. physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions );
  3143. }
  3144. void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice physicalDevice,
  3145. const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,
  3146. uint32_t * pNumPasses ) const VULKAN_HPP_NOEXCEPT
  3147. {
  3148. return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses );
  3149. }
  3150. VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
  3151. {
  3152. return ::vkAcquireProfilingLockKHR( device, pInfo );
  3153. }
  3154. void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT
  3155. {
  3156. return ::vkReleaseProfilingLockKHR( device );
  3157. }
  3158. //=== VK_KHR_get_surface_capabilities2 ===
  3159. VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice,
  3160. const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
  3161. VkSurfaceCapabilities2KHR * pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT
  3162. {
  3163. return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities );
  3164. }
  3165. VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice,
  3166. const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
  3167. uint32_t * pSurfaceFormatCount,
  3168. VkSurfaceFormat2KHR * pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT
  3169. {
  3170. return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats );
  3171. }
  3172. //=== VK_KHR_get_display_properties2 ===
  3173. VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice,
  3174. uint32_t * pPropertyCount,
  3175. VkDisplayProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
  3176. {
  3177. return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties );
  3178. }
  3179. VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice,
  3180. uint32_t * pPropertyCount,
  3181. VkDisplayPlaneProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
  3182. {
  3183. return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties );
  3184. }
  3185. VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice,
  3186. VkDisplayKHR display,
  3187. uint32_t * pPropertyCount,
  3188. VkDisplayModeProperties2KHR * pProperties ) const VULKAN_HPP_NOEXCEPT
  3189. {
  3190. return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties );
  3191. }
  3192. VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice,
  3193. const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo,
  3194. VkDisplayPlaneCapabilities2KHR * pCapabilities ) const VULKAN_HPP_NOEXCEPT
  3195. {
  3196. return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities );
  3197. }
  3198. # if defined( VK_USE_PLATFORM_IOS_MVK )
  3199. //=== VK_MVK_ios_surface ===
  3200. VkResult vkCreateIOSSurfaceMVK( VkInstance instance,
  3201. const VkIOSSurfaceCreateInfoMVK * pCreateInfo,
  3202. const VkAllocationCallbacks * pAllocator,
  3203. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  3204. {
  3205. return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
  3206. }
  3207. # endif /*VK_USE_PLATFORM_IOS_MVK*/
  3208. # if defined( VK_USE_PLATFORM_MACOS_MVK )
  3209. //=== VK_MVK_macos_surface ===
  3210. VkResult vkCreateMacOSSurfaceMVK( VkInstance instance,
  3211. const VkMacOSSurfaceCreateInfoMVK * pCreateInfo,
  3212. const VkAllocationCallbacks * pAllocator,
  3213. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  3214. {
  3215. return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface );
  3216. }
  3217. # endif /*VK_USE_PLATFORM_MACOS_MVK*/
  3218. //=== VK_EXT_debug_utils ===
  3219. VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT * pNameInfo ) const VULKAN_HPP_NOEXCEPT
  3220. {
  3221. return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo );
  3222. }
  3223. VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT * pTagInfo ) const VULKAN_HPP_NOEXCEPT
  3224. {
  3225. return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo );
  3226. }
  3227. void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
  3228. {
  3229. return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo );
  3230. }
  3231. void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT
  3232. {
  3233. return ::vkQueueEndDebugUtilsLabelEXT( queue );
  3234. }
  3235. void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
  3236. {
  3237. return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo );
  3238. }
  3239. void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
  3240. {
  3241. return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
  3242. }
  3243. void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
  3244. {
  3245. return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer );
  3246. }
  3247. void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT * pLabelInfo ) const VULKAN_HPP_NOEXCEPT
  3248. {
  3249. return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo );
  3250. }
  3251. VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance,
  3252. const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo,
  3253. const VkAllocationCallbacks * pAllocator,
  3254. VkDebugUtilsMessengerEXT * pMessenger ) const VULKAN_HPP_NOEXCEPT
  3255. {
  3256. return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger );
  3257. }
  3258. void vkDestroyDebugUtilsMessengerEXT( VkInstance instance,
  3259. VkDebugUtilsMessengerEXT messenger,
  3260. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  3261. {
  3262. return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator );
  3263. }
  3264. void vkSubmitDebugUtilsMessageEXT( VkInstance instance,
  3265. VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
  3266. VkDebugUtilsMessageTypeFlagsEXT messageTypes,
  3267. const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData ) const VULKAN_HPP_NOEXCEPT
  3268. {
  3269. return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData );
  3270. }
  3271. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  3272. //=== VK_ANDROID_external_memory_android_hardware_buffer ===
  3273. VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device,
  3274. const struct AHardwareBuffer * buffer,
  3275. VkAndroidHardwareBufferPropertiesANDROID * pProperties ) const VULKAN_HPP_NOEXCEPT
  3276. {
  3277. return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties );
  3278. }
  3279. VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device,
  3280. const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,
  3281. struct AHardwareBuffer ** pBuffer ) const VULKAN_HPP_NOEXCEPT
  3282. {
  3283. return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer );
  3284. }
  3285. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  3286. //=== VK_EXT_sample_locations ===
  3287. void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT * pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT
  3288. {
  3289. return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo );
  3290. }
  3291. void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice,
  3292. VkSampleCountFlagBits samples,
  3293. VkMultisamplePropertiesEXT * pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT
  3294. {
  3295. return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties );
  3296. }
  3297. //=== VK_KHR_get_memory_requirements2 ===
  3298. void vkGetImageMemoryRequirements2KHR( VkDevice device,
  3299. const VkImageMemoryRequirementsInfo2 * pInfo,
  3300. VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  3301. {
  3302. return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
  3303. }
  3304. void vkGetBufferMemoryRequirements2KHR( VkDevice device,
  3305. const VkBufferMemoryRequirementsInfo2 * pInfo,
  3306. VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  3307. {
  3308. return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements );
  3309. }
  3310. void vkGetImageSparseMemoryRequirements2KHR( VkDevice device,
  3311. const VkImageSparseMemoryRequirementsInfo2 * pInfo,
  3312. uint32_t * pSparseMemoryRequirementCount,
  3313. VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  3314. {
  3315. return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
  3316. }
  3317. //=== VK_KHR_acceleration_structure ===
  3318. VkResult vkCreateAccelerationStructureKHR( VkDevice device,
  3319. const VkAccelerationStructureCreateInfoKHR * pCreateInfo,
  3320. const VkAllocationCallbacks * pAllocator,
  3321. VkAccelerationStructureKHR * pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
  3322. {
  3323. return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure );
  3324. }
  3325. void vkDestroyAccelerationStructureKHR( VkDevice device,
  3326. VkAccelerationStructureKHR accelerationStructure,
  3327. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  3328. {
  3329. return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator );
  3330. }
  3331. void vkCmdBuildAccelerationStructuresKHR( VkCommandBuffer commandBuffer,
  3332. uint32_t infoCount,
  3333. const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,
  3334. const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT
  3335. {
  3336. return ::vkCmdBuildAccelerationStructuresKHR( commandBuffer, infoCount, pInfos, ppBuildRangeInfos );
  3337. }
  3338. void vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer commandBuffer,
  3339. uint32_t infoCount,
  3340. const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,
  3341. const VkDeviceAddress * pIndirectDeviceAddresses,
  3342. const uint32_t * pIndirectStrides,
  3343. const uint32_t * const * ppMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT
  3344. {
  3345. return ::vkCmdBuildAccelerationStructuresIndirectKHR(
  3346. commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts );
  3347. }
  3348. VkResult vkBuildAccelerationStructuresKHR( VkDevice device,
  3349. VkDeferredOperationKHR deferredOperation,
  3350. uint32_t infoCount,
  3351. const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,
  3352. const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT
  3353. {
  3354. return ::vkBuildAccelerationStructuresKHR( device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos );
  3355. }
  3356. VkResult vkCopyAccelerationStructureKHR( VkDevice device,
  3357. VkDeferredOperationKHR deferredOperation,
  3358. const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
  3359. {
  3360. return ::vkCopyAccelerationStructureKHR( device, deferredOperation, pInfo );
  3361. }
  3362. VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device,
  3363. VkDeferredOperationKHR deferredOperation,
  3364. const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
  3365. {
  3366. return ::vkCopyAccelerationStructureToMemoryKHR( device, deferredOperation, pInfo );
  3367. }
  3368. VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device,
  3369. VkDeferredOperationKHR deferredOperation,
  3370. const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
  3371. {
  3372. return ::vkCopyMemoryToAccelerationStructureKHR( device, deferredOperation, pInfo );
  3373. }
  3374. VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device,
  3375. uint32_t accelerationStructureCount,
  3376. const VkAccelerationStructureKHR * pAccelerationStructures,
  3377. VkQueryType queryType,
  3378. size_t dataSize,
  3379. void * pData,
  3380. size_t stride ) const VULKAN_HPP_NOEXCEPT
  3381. {
  3382. return ::vkWriteAccelerationStructuresPropertiesKHR( device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride );
  3383. }
  3384. void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
  3385. {
  3386. return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo );
  3387. }
  3388. void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer,
  3389. const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
  3390. {
  3391. return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo );
  3392. }
  3393. void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer,
  3394. const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
  3395. {
  3396. return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo );
  3397. }
  3398. VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice device,
  3399. const VkAccelerationStructureDeviceAddressInfoKHR * pInfo ) const VULKAN_HPP_NOEXCEPT
  3400. {
  3401. return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo );
  3402. }
  3403. void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer,
  3404. uint32_t accelerationStructureCount,
  3405. const VkAccelerationStructureKHR * pAccelerationStructures,
  3406. VkQueryType queryType,
  3407. VkQueryPool queryPool,
  3408. uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
  3409. {
  3410. return ::vkCmdWriteAccelerationStructuresPropertiesKHR(
  3411. commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
  3412. }
  3413. void vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice device,
  3414. const VkAccelerationStructureVersionInfoKHR * pVersionInfo,
  3415. VkAccelerationStructureCompatibilityKHR * pCompatibility ) const VULKAN_HPP_NOEXCEPT
  3416. {
  3417. return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, pVersionInfo, pCompatibility );
  3418. }
  3419. void vkGetAccelerationStructureBuildSizesKHR( VkDevice device,
  3420. VkAccelerationStructureBuildTypeKHR buildType,
  3421. const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo,
  3422. const uint32_t * pMaxPrimitiveCounts,
  3423. VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo ) const VULKAN_HPP_NOEXCEPT
  3424. {
  3425. return ::vkGetAccelerationStructureBuildSizesKHR( device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo );
  3426. }
  3427. //=== VK_KHR_sampler_ycbcr_conversion ===
  3428. VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device,
  3429. const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,
  3430. const VkAllocationCallbacks * pAllocator,
  3431. VkSamplerYcbcrConversion * pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
  3432. {
  3433. return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion );
  3434. }
  3435. void vkDestroySamplerYcbcrConversionKHR( VkDevice device,
  3436. VkSamplerYcbcrConversion ycbcrConversion,
  3437. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  3438. {
  3439. return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator );
  3440. }
  3441. //=== VK_KHR_bind_memory2 ===
  3442. VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
  3443. {
  3444. return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos );
  3445. }
  3446. VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo * pBindInfos ) const VULKAN_HPP_NOEXCEPT
  3447. {
  3448. return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos );
  3449. }
  3450. //=== VK_EXT_image_drm_format_modifier ===
  3451. VkResult
  3452. vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT * pProperties ) const VULKAN_HPP_NOEXCEPT
  3453. {
  3454. return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties );
  3455. }
  3456. //=== VK_EXT_validation_cache ===
  3457. VkResult vkCreateValidationCacheEXT( VkDevice device,
  3458. const VkValidationCacheCreateInfoEXT * pCreateInfo,
  3459. const VkAllocationCallbacks * pAllocator,
  3460. VkValidationCacheEXT * pValidationCache ) const VULKAN_HPP_NOEXCEPT
  3461. {
  3462. return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache );
  3463. }
  3464. void
  3465. vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  3466. {
  3467. return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator );
  3468. }
  3469. VkResult vkMergeValidationCachesEXT( VkDevice device,
  3470. VkValidationCacheEXT dstCache,
  3471. uint32_t srcCacheCount,
  3472. const VkValidationCacheEXT * pSrcCaches ) const VULKAN_HPP_NOEXCEPT
  3473. {
  3474. return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches );
  3475. }
  3476. VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t * pDataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
  3477. {
  3478. return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData );
  3479. }
  3480. //=== VK_NV_shading_rate_image ===
  3481. void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
  3482. {
  3483. return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout );
  3484. }
  3485. void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer,
  3486. uint32_t firstViewport,
  3487. uint32_t viewportCount,
  3488. const VkShadingRatePaletteNV * pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT
  3489. {
  3490. return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes );
  3491. }
  3492. void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer,
  3493. VkCoarseSampleOrderTypeNV sampleOrderType,
  3494. uint32_t customSampleOrderCount,
  3495. const VkCoarseSampleOrderCustomNV * pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT
  3496. {
  3497. return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders );
  3498. }
  3499. //=== VK_NV_ray_tracing ===
  3500. VkResult vkCreateAccelerationStructureNV( VkDevice device,
  3501. const VkAccelerationStructureCreateInfoNV * pCreateInfo,
  3502. const VkAllocationCallbacks * pAllocator,
  3503. VkAccelerationStructureNV * pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT
  3504. {
  3505. return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure );
  3506. }
  3507. void vkDestroyAccelerationStructureNV( VkDevice device,
  3508. VkAccelerationStructureNV accelerationStructure,
  3509. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  3510. {
  3511. return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator );
  3512. }
  3513. void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device,
  3514. const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,
  3515. VkMemoryRequirements2KHR * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  3516. {
  3517. return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
  3518. }
  3519. VkResult vkBindAccelerationStructureMemoryNV( VkDevice device,
  3520. uint32_t bindInfoCount,
  3521. const VkBindAccelerationStructureMemoryInfoNV * pBindInfos ) const VULKAN_HPP_NOEXCEPT
  3522. {
  3523. return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos );
  3524. }
  3525. void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer,
  3526. const VkAccelerationStructureInfoNV * pInfo,
  3527. VkBuffer instanceData,
  3528. VkDeviceSize instanceOffset,
  3529. VkBool32 update,
  3530. VkAccelerationStructureNV dst,
  3531. VkAccelerationStructureNV src,
  3532. VkBuffer scratch,
  3533. VkDeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT
  3534. {
  3535. return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset );
  3536. }
  3537. void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer,
  3538. VkAccelerationStructureNV dst,
  3539. VkAccelerationStructureNV src,
  3540. VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT
  3541. {
  3542. return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode );
  3543. }
  3544. void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer,
  3545. VkBuffer raygenShaderBindingTableBuffer,
  3546. VkDeviceSize raygenShaderBindingOffset,
  3547. VkBuffer missShaderBindingTableBuffer,
  3548. VkDeviceSize missShaderBindingOffset,
  3549. VkDeviceSize missShaderBindingStride,
  3550. VkBuffer hitShaderBindingTableBuffer,
  3551. VkDeviceSize hitShaderBindingOffset,
  3552. VkDeviceSize hitShaderBindingStride,
  3553. VkBuffer callableShaderBindingTableBuffer,
  3554. VkDeviceSize callableShaderBindingOffset,
  3555. VkDeviceSize callableShaderBindingStride,
  3556. uint32_t width,
  3557. uint32_t height,
  3558. uint32_t depth ) const VULKAN_HPP_NOEXCEPT
  3559. {
  3560. return ::vkCmdTraceRaysNV( commandBuffer,
  3561. raygenShaderBindingTableBuffer,
  3562. raygenShaderBindingOffset,
  3563. missShaderBindingTableBuffer,
  3564. missShaderBindingOffset,
  3565. missShaderBindingStride,
  3566. hitShaderBindingTableBuffer,
  3567. hitShaderBindingOffset,
  3568. hitShaderBindingStride,
  3569. callableShaderBindingTableBuffer,
  3570. callableShaderBindingOffset,
  3571. callableShaderBindingStride,
  3572. width,
  3573. height,
  3574. depth );
  3575. }
  3576. VkResult vkCreateRayTracingPipelinesNV( VkDevice device,
  3577. VkPipelineCache pipelineCache,
  3578. uint32_t createInfoCount,
  3579. const VkRayTracingPipelineCreateInfoNV * pCreateInfos,
  3580. const VkAllocationCallbacks * pAllocator,
  3581. VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT
  3582. {
  3583. return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
  3584. }
  3585. VkResult vkGetRayTracingShaderGroupHandlesNV(
  3586. VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
  3587. {
  3588. return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData );
  3589. }
  3590. VkResult vkGetAccelerationStructureHandleNV( VkDevice device,
  3591. VkAccelerationStructureNV accelerationStructure,
  3592. size_t dataSize,
  3593. void * pData ) const VULKAN_HPP_NOEXCEPT
  3594. {
  3595. return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData );
  3596. }
  3597. void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer,
  3598. uint32_t accelerationStructureCount,
  3599. const VkAccelerationStructureNV * pAccelerationStructures,
  3600. VkQueryType queryType,
  3601. VkQueryPool queryPool,
  3602. uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT
  3603. {
  3604. return ::vkCmdWriteAccelerationStructuresPropertiesNV(
  3605. commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery );
  3606. }
  3607. VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT
  3608. {
  3609. return ::vkCompileDeferredNV( device, pipeline, shader );
  3610. }
  3611. //=== VK_KHR_maintenance3 ===
  3612. void vkGetDescriptorSetLayoutSupportKHR( VkDevice device,
  3613. const VkDescriptorSetLayoutCreateInfo * pCreateInfo,
  3614. VkDescriptorSetLayoutSupport * pSupport ) const VULKAN_HPP_NOEXCEPT
  3615. {
  3616. return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport );
  3617. }
  3618. //=== VK_KHR_draw_indirect_count ===
  3619. void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer,
  3620. VkBuffer buffer,
  3621. VkDeviceSize offset,
  3622. VkBuffer countBuffer,
  3623. VkDeviceSize countBufferOffset,
  3624. uint32_t maxDrawCount,
  3625. uint32_t stride ) const VULKAN_HPP_NOEXCEPT
  3626. {
  3627. return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  3628. }
  3629. void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer,
  3630. VkBuffer buffer,
  3631. VkDeviceSize offset,
  3632. VkBuffer countBuffer,
  3633. VkDeviceSize countBufferOffset,
  3634. uint32_t maxDrawCount,
  3635. uint32_t stride ) const VULKAN_HPP_NOEXCEPT
  3636. {
  3637. return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  3638. }
  3639. //=== VK_EXT_external_memory_host ===
  3640. VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device,
  3641. VkExternalMemoryHandleTypeFlagBits handleType,
  3642. const void * pHostPointer,
  3643. VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT
  3644. {
  3645. return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties );
  3646. }
  3647. //=== VK_AMD_buffer_marker ===
  3648. void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer,
  3649. VkPipelineStageFlagBits pipelineStage,
  3650. VkBuffer dstBuffer,
  3651. VkDeviceSize dstOffset,
  3652. uint32_t marker ) const VULKAN_HPP_NOEXCEPT
  3653. {
  3654. return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker );
  3655. }
  3656. //=== VK_EXT_calibrated_timestamps ===
  3657. VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice,
  3658. uint32_t * pTimeDomainCount,
  3659. VkTimeDomainEXT * pTimeDomains ) const VULKAN_HPP_NOEXCEPT
  3660. {
  3661. return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains );
  3662. }
  3663. VkResult vkGetCalibratedTimestampsEXT( VkDevice device,
  3664. uint32_t timestampCount,
  3665. const VkCalibratedTimestampInfoEXT * pTimestampInfos,
  3666. uint64_t * pTimestamps,
  3667. uint64_t * pMaxDeviation ) const VULKAN_HPP_NOEXCEPT
  3668. {
  3669. return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation );
  3670. }
  3671. //=== VK_NV_mesh_shader ===
  3672. void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT
  3673. {
  3674. return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask );
  3675. }
  3676. void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
  3677. VULKAN_HPP_NOEXCEPT
  3678. {
  3679. return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride );
  3680. }
  3681. void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer,
  3682. VkBuffer buffer,
  3683. VkDeviceSize offset,
  3684. VkBuffer countBuffer,
  3685. VkDeviceSize countBufferOffset,
  3686. uint32_t maxDrawCount,
  3687. uint32_t stride ) const VULKAN_HPP_NOEXCEPT
  3688. {
  3689. return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  3690. }
  3691. //=== VK_NV_scissor_exclusive ===
  3692. void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer,
  3693. uint32_t firstExclusiveScissor,
  3694. uint32_t exclusiveScissorCount,
  3695. const VkRect2D * pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT
  3696. {
  3697. return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors );
  3698. }
  3699. //=== VK_NV_device_diagnostic_checkpoints ===
  3700. void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT
  3701. {
  3702. return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker );
  3703. }
  3704. void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t * pCheckpointDataCount, VkCheckpointDataNV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT
  3705. {
  3706. return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData );
  3707. }
  3708. //=== VK_KHR_timeline_semaphore ===
  3709. VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t * pValue ) const VULKAN_HPP_NOEXCEPT
  3710. {
  3711. return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue );
  3712. }
  3713. VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo * pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
  3714. {
  3715. return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout );
  3716. }
  3717. VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo ) const VULKAN_HPP_NOEXCEPT
  3718. {
  3719. return ::vkSignalSemaphoreKHR( device, pSignalInfo );
  3720. }
  3721. //=== VK_INTEL_performance_query ===
  3722. VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL * pInitializeInfo ) const VULKAN_HPP_NOEXCEPT
  3723. {
  3724. return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo );
  3725. }
  3726. void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT
  3727. {
  3728. return ::vkUninitializePerformanceApiINTEL( device );
  3729. }
  3730. VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
  3731. {
  3732. return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo );
  3733. }
  3734. VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer,
  3735. const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo ) const VULKAN_HPP_NOEXCEPT
  3736. {
  3737. return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo );
  3738. }
  3739. VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL * pOverrideInfo ) const VULKAN_HPP_NOEXCEPT
  3740. {
  3741. return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo );
  3742. }
  3743. VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device,
  3744. const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,
  3745. VkPerformanceConfigurationINTEL * pConfiguration ) const VULKAN_HPP_NOEXCEPT
  3746. {
  3747. return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration );
  3748. }
  3749. VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
  3750. {
  3751. return ::vkReleasePerformanceConfigurationINTEL( device, configuration );
  3752. }
  3753. VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT
  3754. {
  3755. return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration );
  3756. }
  3757. VkResult
  3758. vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL * pValue ) const VULKAN_HPP_NOEXCEPT
  3759. {
  3760. return ::vkGetPerformanceParameterINTEL( device, parameter, pValue );
  3761. }
  3762. //=== VK_AMD_display_native_hdr ===
  3763. void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT
  3764. {
  3765. return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable );
  3766. }
  3767. # if defined( VK_USE_PLATFORM_FUCHSIA )
  3768. //=== VK_FUCHSIA_imagepipe_surface ===
  3769. VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance,
  3770. const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,
  3771. const VkAllocationCallbacks * pAllocator,
  3772. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  3773. {
  3774. return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface );
  3775. }
  3776. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  3777. # if defined( VK_USE_PLATFORM_METAL_EXT )
  3778. //=== VK_EXT_metal_surface ===
  3779. VkResult vkCreateMetalSurfaceEXT( VkInstance instance,
  3780. const VkMetalSurfaceCreateInfoEXT * pCreateInfo,
  3781. const VkAllocationCallbacks * pAllocator,
  3782. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  3783. {
  3784. return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
  3785. }
  3786. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  3787. //=== VK_KHR_fragment_shading_rate ===
  3788. VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR( VkPhysicalDevice physicalDevice,
  3789. uint32_t * pFragmentShadingRateCount,
  3790. VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT
  3791. {
  3792. return ::vkGetPhysicalDeviceFragmentShadingRatesKHR( physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates );
  3793. }
  3794. void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer commandBuffer,
  3795. const VkExtent2D * pFragmentSize,
  3796. const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
  3797. {
  3798. return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps );
  3799. }
  3800. //=== VK_EXT_buffer_device_address ===
  3801. VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
  3802. {
  3803. return ::vkGetBufferDeviceAddressEXT( device, pInfo );
  3804. }
  3805. //=== VK_EXT_tooling_info ===
  3806. VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice,
  3807. uint32_t * pToolCount,
  3808. VkPhysicalDeviceToolProperties * pToolProperties ) const VULKAN_HPP_NOEXCEPT
  3809. {
  3810. return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties );
  3811. }
  3812. //=== VK_KHR_present_wait ===
  3813. VkResult vkWaitForPresentKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT
  3814. {
  3815. return ::vkWaitForPresentKHR( device, swapchain, presentId, timeout );
  3816. }
  3817. //=== VK_NV_cooperative_matrix ===
  3818. VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice,
  3819. uint32_t * pPropertyCount,
  3820. VkCooperativeMatrixPropertiesNV * pProperties ) const VULKAN_HPP_NOEXCEPT
  3821. {
  3822. return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties );
  3823. }
  3824. //=== VK_NV_coverage_reduction_mode ===
  3825. VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
  3826. VkPhysicalDevice physicalDevice, uint32_t * pCombinationCount, VkFramebufferMixedSamplesCombinationNV * pCombinations ) const VULKAN_HPP_NOEXCEPT
  3827. {
  3828. return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations );
  3829. }
  3830. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  3831. //=== VK_EXT_full_screen_exclusive ===
  3832. VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice,
  3833. const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
  3834. uint32_t * pPresentModeCount,
  3835. VkPresentModeKHR * pPresentModes ) const VULKAN_HPP_NOEXCEPT
  3836. {
  3837. return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes );
  3838. }
  3839. VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
  3840. {
  3841. return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain );
  3842. }
  3843. VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT
  3844. {
  3845. return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain );
  3846. }
  3847. VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device,
  3848. const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
  3849. VkDeviceGroupPresentModeFlagsKHR * pModes ) const VULKAN_HPP_NOEXCEPT
  3850. {
  3851. return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes );
  3852. }
  3853. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  3854. //=== VK_EXT_headless_surface ===
  3855. VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance,
  3856. const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo,
  3857. const VkAllocationCallbacks * pAllocator,
  3858. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  3859. {
  3860. return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
  3861. }
  3862. //=== VK_KHR_buffer_device_address ===
  3863. VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
  3864. {
  3865. return ::vkGetBufferDeviceAddressKHR( device, pInfo );
  3866. }
  3867. uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
  3868. {
  3869. return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo );
  3870. }
  3871. uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo ) const VULKAN_HPP_NOEXCEPT
  3872. {
  3873. return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo );
  3874. }
  3875. //=== VK_EXT_line_rasterization ===
  3876. void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT
  3877. {
  3878. return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern );
  3879. }
  3880. //=== VK_EXT_host_query_reset ===
  3881. void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT
  3882. {
  3883. return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount );
  3884. }
  3885. //=== VK_EXT_extended_dynamic_state ===
  3886. void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT
  3887. {
  3888. return ::vkCmdSetCullModeEXT( commandBuffer, cullMode );
  3889. }
  3890. void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT
  3891. {
  3892. return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace );
  3893. }
  3894. void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT
  3895. {
  3896. return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology );
  3897. }
  3898. void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport * pViewports ) const VULKAN_HPP_NOEXCEPT
  3899. {
  3900. return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports );
  3901. }
  3902. void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D * pScissors ) const VULKAN_HPP_NOEXCEPT
  3903. {
  3904. return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors );
  3905. }
  3906. void vkCmdBindVertexBuffers2EXT( VkCommandBuffer commandBuffer,
  3907. uint32_t firstBinding,
  3908. uint32_t bindingCount,
  3909. const VkBuffer * pBuffers,
  3910. const VkDeviceSize * pOffsets,
  3911. const VkDeviceSize * pSizes,
  3912. const VkDeviceSize * pStrides ) const VULKAN_HPP_NOEXCEPT
  3913. {
  3914. return ::vkCmdBindVertexBuffers2EXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides );
  3915. }
  3916. void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT
  3917. {
  3918. return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable );
  3919. }
  3920. void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT
  3921. {
  3922. return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable );
  3923. }
  3924. void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT
  3925. {
  3926. return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp );
  3927. }
  3928. void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT
  3929. {
  3930. return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable );
  3931. }
  3932. void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT
  3933. {
  3934. return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable );
  3935. }
  3936. void vkCmdSetStencilOpEXT( VkCommandBuffer commandBuffer,
  3937. VkStencilFaceFlags faceMask,
  3938. VkStencilOp failOp,
  3939. VkStencilOp passOp,
  3940. VkStencilOp depthFailOp,
  3941. VkCompareOp compareOp ) const VULKAN_HPP_NOEXCEPT
  3942. {
  3943. return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp );
  3944. }
  3945. //=== VK_KHR_deferred_host_operations ===
  3946. VkResult vkCreateDeferredOperationKHR( VkDevice device,
  3947. const VkAllocationCallbacks * pAllocator,
  3948. VkDeferredOperationKHR * pDeferredOperation ) const VULKAN_HPP_NOEXCEPT
  3949. {
  3950. return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation );
  3951. }
  3952. void vkDestroyDeferredOperationKHR( VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  3953. {
  3954. return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator );
  3955. }
  3956. uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
  3957. {
  3958. return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation );
  3959. }
  3960. VkResult vkGetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
  3961. {
  3962. return ::vkGetDeferredOperationResultKHR( device, operation );
  3963. }
  3964. VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT
  3965. {
  3966. return ::vkDeferredOperationJoinKHR( device, operation );
  3967. }
  3968. //=== VK_KHR_pipeline_executable_properties ===
  3969. VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device,
  3970. const VkPipelineInfoKHR * pPipelineInfo,
  3971. uint32_t * pExecutableCount,
  3972. VkPipelineExecutablePropertiesKHR * pProperties ) const VULKAN_HPP_NOEXCEPT
  3973. {
  3974. return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties );
  3975. }
  3976. VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice device,
  3977. const VkPipelineExecutableInfoKHR * pExecutableInfo,
  3978. uint32_t * pStatisticCount,
  3979. VkPipelineExecutableStatisticKHR * pStatistics ) const VULKAN_HPP_NOEXCEPT
  3980. {
  3981. return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics );
  3982. }
  3983. VkResult
  3984. vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice device,
  3985. const VkPipelineExecutableInfoKHR * pExecutableInfo,
  3986. uint32_t * pInternalRepresentationCount,
  3987. VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT
  3988. {
  3989. return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations );
  3990. }
  3991. //=== VK_NV_device_generated_commands ===
  3992. void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice device,
  3993. const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,
  3994. VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  3995. {
  3996. return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements );
  3997. }
  3998. void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
  3999. {
  4000. return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo );
  4001. }
  4002. void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer,
  4003. VkBool32 isPreprocessed,
  4004. const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
  4005. {
  4006. return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo );
  4007. }
  4008. void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer,
  4009. VkPipelineBindPoint pipelineBindPoint,
  4010. VkPipeline pipeline,
  4011. uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT
  4012. {
  4013. return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex );
  4014. }
  4015. VkResult vkCreateIndirectCommandsLayoutNV( VkDevice device,
  4016. const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,
  4017. const VkAllocationCallbacks * pAllocator,
  4018. VkIndirectCommandsLayoutNV * pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT
  4019. {
  4020. return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
  4021. }
  4022. void vkDestroyIndirectCommandsLayoutNV( VkDevice device,
  4023. VkIndirectCommandsLayoutNV indirectCommandsLayout,
  4024. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  4025. {
  4026. return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator );
  4027. }
  4028. //=== VK_EXT_acquire_drm_display ===
  4029. VkResult vkAcquireDrmDisplayEXT( VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
  4030. {
  4031. return ::vkAcquireDrmDisplayEXT( physicalDevice, drmFd, display );
  4032. }
  4033. VkResult vkGetDrmDisplayEXT( VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR * display ) const VULKAN_HPP_NOEXCEPT
  4034. {
  4035. return ::vkGetDrmDisplayEXT( physicalDevice, drmFd, connectorId, display );
  4036. }
  4037. //=== VK_EXT_private_data ===
  4038. VkResult vkCreatePrivateDataSlotEXT( VkDevice device,
  4039. const VkPrivateDataSlotCreateInfo * pCreateInfo,
  4040. const VkAllocationCallbacks * pAllocator,
  4041. VkPrivateDataSlot * pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT
  4042. {
  4043. return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot );
  4044. }
  4045. void vkDestroyPrivateDataSlotEXT( VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  4046. {
  4047. return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator );
  4048. }
  4049. VkResult vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data ) const
  4050. VULKAN_HPP_NOEXCEPT
  4051. {
  4052. return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data );
  4053. }
  4054. void vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t * pData ) const
  4055. VULKAN_HPP_NOEXCEPT
  4056. {
  4057. return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData );
  4058. }
  4059. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  4060. //=== VK_KHR_video_encode_queue ===
  4061. void vkCmdEncodeVideoKHR( VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR * pEncodeInfo ) const VULKAN_HPP_NOEXCEPT
  4062. {
  4063. return ::vkCmdEncodeVideoKHR( commandBuffer, pEncodeInfo );
  4064. }
  4065. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  4066. # if defined( VK_USE_PLATFORM_METAL_EXT )
  4067. //=== VK_EXT_metal_objects ===
  4068. void vkExportMetalObjectsEXT( VkDevice device, VkExportMetalObjectsInfoEXT * pMetalObjectsInfo ) const VULKAN_HPP_NOEXCEPT
  4069. {
  4070. return ::vkExportMetalObjectsEXT( device, pMetalObjectsInfo );
  4071. }
  4072. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  4073. //=== VK_KHR_synchronization2 ===
  4074. void vkCmdSetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
  4075. {
  4076. return ::vkCmdSetEvent2KHR( commandBuffer, event, pDependencyInfo );
  4077. }
  4078. void vkCmdResetEvent2KHR( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT
  4079. {
  4080. return ::vkCmdResetEvent2KHR( commandBuffer, event, stageMask );
  4081. }
  4082. void vkCmdWaitEvents2KHR( VkCommandBuffer commandBuffer,
  4083. uint32_t eventCount,
  4084. const VkEvent * pEvents,
  4085. const VkDependencyInfo * pDependencyInfos ) const VULKAN_HPP_NOEXCEPT
  4086. {
  4087. return ::vkCmdWaitEvents2KHR( commandBuffer, eventCount, pEvents, pDependencyInfos );
  4088. }
  4089. void vkCmdPipelineBarrier2KHR( VkCommandBuffer commandBuffer, const VkDependencyInfo * pDependencyInfo ) const VULKAN_HPP_NOEXCEPT
  4090. {
  4091. return ::vkCmdPipelineBarrier2KHR( commandBuffer, pDependencyInfo );
  4092. }
  4093. void vkCmdWriteTimestamp2KHR( VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT
  4094. {
  4095. return ::vkCmdWriteTimestamp2KHR( commandBuffer, stage, queryPool, query );
  4096. }
  4097. VkResult vkQueueSubmit2KHR( VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 * pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT
  4098. {
  4099. return ::vkQueueSubmit2KHR( queue, submitCount, pSubmits, fence );
  4100. }
  4101. void vkCmdWriteBufferMarker2AMD(
  4102. VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT
  4103. {
  4104. return ::vkCmdWriteBufferMarker2AMD( commandBuffer, stage, dstBuffer, dstOffset, marker );
  4105. }
  4106. void vkGetQueueCheckpointData2NV( VkQueue queue, uint32_t * pCheckpointDataCount, VkCheckpointData2NV * pCheckpointData ) const VULKAN_HPP_NOEXCEPT
  4107. {
  4108. return ::vkGetQueueCheckpointData2NV( queue, pCheckpointDataCount, pCheckpointData );
  4109. }
  4110. //=== VK_NV_fragment_shading_rate_enums ===
  4111. void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer commandBuffer,
  4112. VkFragmentShadingRateNV shadingRate,
  4113. const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT
  4114. {
  4115. return ::vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps );
  4116. }
  4117. //=== VK_EXT_mesh_shader ===
  4118. void vkCmdDrawMeshTasksEXT( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT
  4119. {
  4120. return ::vkCmdDrawMeshTasksEXT( commandBuffer, groupCountX, groupCountY, groupCountZ );
  4121. }
  4122. void vkCmdDrawMeshTasksIndirectEXT( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const
  4123. VULKAN_HPP_NOEXCEPT
  4124. {
  4125. return ::vkCmdDrawMeshTasksIndirectEXT( commandBuffer, buffer, offset, drawCount, stride );
  4126. }
  4127. void vkCmdDrawMeshTasksIndirectCountEXT( VkCommandBuffer commandBuffer,
  4128. VkBuffer buffer,
  4129. VkDeviceSize offset,
  4130. VkBuffer countBuffer,
  4131. VkDeviceSize countBufferOffset,
  4132. uint32_t maxDrawCount,
  4133. uint32_t stride ) const VULKAN_HPP_NOEXCEPT
  4134. {
  4135. return ::vkCmdDrawMeshTasksIndirectCountEXT( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride );
  4136. }
  4137. //=== VK_KHR_copy_commands2 ===
  4138. void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2 * pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT
  4139. {
  4140. return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo );
  4141. }
  4142. void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, const VkCopyImageInfo2 * pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT
  4143. {
  4144. return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo );
  4145. }
  4146. void vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT
  4147. {
  4148. return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo );
  4149. }
  4150. void vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT
  4151. {
  4152. return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo );
  4153. }
  4154. void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, const VkBlitImageInfo2 * pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT
  4155. {
  4156. return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo );
  4157. }
  4158. void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, const VkResolveImageInfo2 * pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT
  4159. {
  4160. return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo );
  4161. }
  4162. //=== VK_EXT_image_compression_control ===
  4163. void vkGetImageSubresourceLayout2EXT( VkDevice device,
  4164. VkImage image,
  4165. const VkImageSubresource2EXT * pSubresource,
  4166. VkSubresourceLayout2EXT * pLayout ) const VULKAN_HPP_NOEXCEPT
  4167. {
  4168. return ::vkGetImageSubresourceLayout2EXT( device, image, pSubresource, pLayout );
  4169. }
  4170. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  4171. //=== VK_NV_acquire_winrt_display ===
  4172. VkResult vkAcquireWinrtDisplayNV( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT
  4173. {
  4174. return ::vkAcquireWinrtDisplayNV( physicalDevice, display );
  4175. }
  4176. VkResult vkGetWinrtDisplayNV( VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR * pDisplay ) const VULKAN_HPP_NOEXCEPT
  4177. {
  4178. return ::vkGetWinrtDisplayNV( physicalDevice, deviceRelativeId, pDisplay );
  4179. }
  4180. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  4181. # if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
  4182. //=== VK_EXT_directfb_surface ===
  4183. VkResult vkCreateDirectFBSurfaceEXT( VkInstance instance,
  4184. const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo,
  4185. const VkAllocationCallbacks * pAllocator,
  4186. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  4187. {
  4188. return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface );
  4189. }
  4190. VkBool32
  4191. vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB * dfb ) const VULKAN_HPP_NOEXCEPT
  4192. {
  4193. return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb );
  4194. }
  4195. # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
  4196. //=== VK_KHR_ray_tracing_pipeline ===
  4197. void vkCmdTraceRaysKHR( VkCommandBuffer commandBuffer,
  4198. const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
  4199. const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
  4200. const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
  4201. const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
  4202. uint32_t width,
  4203. uint32_t height,
  4204. uint32_t depth ) const VULKAN_HPP_NOEXCEPT
  4205. {
  4206. return ::vkCmdTraceRaysKHR(
  4207. commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth );
  4208. }
  4209. VkResult vkCreateRayTracingPipelinesKHR( VkDevice device,
  4210. VkDeferredOperationKHR deferredOperation,
  4211. VkPipelineCache pipelineCache,
  4212. uint32_t createInfoCount,
  4213. const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,
  4214. const VkAllocationCallbacks * pAllocator,
  4215. VkPipeline * pPipelines ) const VULKAN_HPP_NOEXCEPT
  4216. {
  4217. return ::vkCreateRayTracingPipelinesKHR( device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines );
  4218. }
  4219. VkResult vkGetRayTracingShaderGroupHandlesKHR(
  4220. VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
  4221. {
  4222. return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
  4223. }
  4224. VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
  4225. VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData ) const VULKAN_HPP_NOEXCEPT
  4226. {
  4227. return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData );
  4228. }
  4229. void vkCmdTraceRaysIndirectKHR( VkCommandBuffer commandBuffer,
  4230. const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
  4231. const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,
  4232. const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,
  4233. const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
  4234. VkDeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
  4235. {
  4236. return ::vkCmdTraceRaysIndirectKHR(
  4237. commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress );
  4238. }
  4239. VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice device,
  4240. VkPipeline pipeline,
  4241. uint32_t group,
  4242. VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT
  4243. {
  4244. return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader );
  4245. }
  4246. void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT
  4247. {
  4248. return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize );
  4249. }
  4250. //=== VK_EXT_vertex_input_dynamic_state ===
  4251. void vkCmdSetVertexInputEXT( VkCommandBuffer commandBuffer,
  4252. uint32_t vertexBindingDescriptionCount,
  4253. const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions,
  4254. uint32_t vertexAttributeDescriptionCount,
  4255. const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions ) const VULKAN_HPP_NOEXCEPT
  4256. {
  4257. return ::vkCmdSetVertexInputEXT(
  4258. commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions );
  4259. }
  4260. # if defined( VK_USE_PLATFORM_FUCHSIA )
  4261. //=== VK_FUCHSIA_external_memory ===
  4262. VkResult vkGetMemoryZirconHandleFUCHSIA( VkDevice device,
  4263. const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,
  4264. zx_handle_t * pZirconHandle ) const VULKAN_HPP_NOEXCEPT
  4265. {
  4266. return ::vkGetMemoryZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle );
  4267. }
  4268. VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA( VkDevice device,
  4269. VkExternalMemoryHandleTypeFlagBits handleType,
  4270. zx_handle_t zirconHandle,
  4271. VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties ) const VULKAN_HPP_NOEXCEPT
  4272. {
  4273. return ::vkGetMemoryZirconHandlePropertiesFUCHSIA( device, handleType, zirconHandle, pMemoryZirconHandleProperties );
  4274. }
  4275. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  4276. # if defined( VK_USE_PLATFORM_FUCHSIA )
  4277. //=== VK_FUCHSIA_external_semaphore ===
  4278. VkResult vkImportSemaphoreZirconHandleFUCHSIA( VkDevice device,
  4279. const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo ) const VULKAN_HPP_NOEXCEPT
  4280. {
  4281. return ::vkImportSemaphoreZirconHandleFUCHSIA( device, pImportSemaphoreZirconHandleInfo );
  4282. }
  4283. VkResult vkGetSemaphoreZirconHandleFUCHSIA( VkDevice device,
  4284. const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,
  4285. zx_handle_t * pZirconHandle ) const VULKAN_HPP_NOEXCEPT
  4286. {
  4287. return ::vkGetSemaphoreZirconHandleFUCHSIA( device, pGetZirconHandleInfo, pZirconHandle );
  4288. }
  4289. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  4290. # if defined( VK_USE_PLATFORM_FUCHSIA )
  4291. //=== VK_FUCHSIA_buffer_collection ===
  4292. VkResult vkCreateBufferCollectionFUCHSIA( VkDevice device,
  4293. const VkBufferCollectionCreateInfoFUCHSIA * pCreateInfo,
  4294. const VkAllocationCallbacks * pAllocator,
  4295. VkBufferCollectionFUCHSIA * pCollection ) const VULKAN_HPP_NOEXCEPT
  4296. {
  4297. return ::vkCreateBufferCollectionFUCHSIA( device, pCreateInfo, pAllocator, pCollection );
  4298. }
  4299. VkResult vkSetBufferCollectionImageConstraintsFUCHSIA( VkDevice device,
  4300. VkBufferCollectionFUCHSIA collection,
  4301. const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo ) const VULKAN_HPP_NOEXCEPT
  4302. {
  4303. return ::vkSetBufferCollectionImageConstraintsFUCHSIA( device, collection, pImageConstraintsInfo );
  4304. }
  4305. VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA( VkDevice device,
  4306. VkBufferCollectionFUCHSIA collection,
  4307. const VkBufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo ) const VULKAN_HPP_NOEXCEPT
  4308. {
  4309. return ::vkSetBufferCollectionBufferConstraintsFUCHSIA( device, collection, pBufferConstraintsInfo );
  4310. }
  4311. void vkDestroyBufferCollectionFUCHSIA( VkDevice device,
  4312. VkBufferCollectionFUCHSIA collection,
  4313. const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
  4314. {
  4315. return ::vkDestroyBufferCollectionFUCHSIA( device, collection, pAllocator );
  4316. }
  4317. VkResult vkGetBufferCollectionPropertiesFUCHSIA( VkDevice device,
  4318. VkBufferCollectionFUCHSIA collection,
  4319. VkBufferCollectionPropertiesFUCHSIA * pProperties ) const VULKAN_HPP_NOEXCEPT
  4320. {
  4321. return ::vkGetBufferCollectionPropertiesFUCHSIA( device, collection, pProperties );
  4322. }
  4323. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  4324. //=== VK_HUAWEI_subpass_shading ===
  4325. VkResult
  4326. vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( VkDevice device, VkRenderPass renderpass, VkExtent2D * pMaxWorkgroupSize ) const VULKAN_HPP_NOEXCEPT
  4327. {
  4328. return ::vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( device, renderpass, pMaxWorkgroupSize );
  4329. }
  4330. void vkCmdSubpassShadingHUAWEI( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
  4331. {
  4332. return ::vkCmdSubpassShadingHUAWEI( commandBuffer );
  4333. }
  4334. //=== VK_HUAWEI_invocation_mask ===
  4335. void vkCmdBindInvocationMaskHUAWEI( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT
  4336. {
  4337. return ::vkCmdBindInvocationMaskHUAWEI( commandBuffer, imageView, imageLayout );
  4338. }
  4339. //=== VK_NV_external_memory_rdma ===
  4340. VkResult vkGetMemoryRemoteAddressNV( VkDevice device,
  4341. const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,
  4342. VkRemoteAddressNV * pAddress ) const VULKAN_HPP_NOEXCEPT
  4343. {
  4344. return ::vkGetMemoryRemoteAddressNV( device, pMemoryGetRemoteAddressInfo, pAddress );
  4345. }
  4346. //=== VK_EXT_pipeline_properties ===
  4347. VkResult
  4348. vkGetPipelinePropertiesEXT( VkDevice device, const VkPipelineInfoEXT * pPipelineInfo, VkBaseOutStructure * pPipelineProperties ) const VULKAN_HPP_NOEXCEPT
  4349. {
  4350. return ::vkGetPipelinePropertiesEXT( device, pPipelineInfo, pPipelineProperties );
  4351. }
  4352. //=== VK_EXT_extended_dynamic_state2 ===
  4353. void vkCmdSetPatchControlPointsEXT( VkCommandBuffer commandBuffer, uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT
  4354. {
  4355. return ::vkCmdSetPatchControlPointsEXT( commandBuffer, patchControlPoints );
  4356. }
  4357. void vkCmdSetRasterizerDiscardEnableEXT( VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT
  4358. {
  4359. return ::vkCmdSetRasterizerDiscardEnableEXT( commandBuffer, rasterizerDiscardEnable );
  4360. }
  4361. void vkCmdSetDepthBiasEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT
  4362. {
  4363. return ::vkCmdSetDepthBiasEnableEXT( commandBuffer, depthBiasEnable );
  4364. }
  4365. void vkCmdSetLogicOpEXT( VkCommandBuffer commandBuffer, VkLogicOp logicOp ) const VULKAN_HPP_NOEXCEPT
  4366. {
  4367. return ::vkCmdSetLogicOpEXT( commandBuffer, logicOp );
  4368. }
  4369. void vkCmdSetPrimitiveRestartEnableEXT( VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT
  4370. {
  4371. return ::vkCmdSetPrimitiveRestartEnableEXT( commandBuffer, primitiveRestartEnable );
  4372. }
  4373. # if defined( VK_USE_PLATFORM_SCREEN_QNX )
  4374. //=== VK_QNX_screen_surface ===
  4375. VkResult vkCreateScreenSurfaceQNX( VkInstance instance,
  4376. const VkScreenSurfaceCreateInfoQNX * pCreateInfo,
  4377. const VkAllocationCallbacks * pAllocator,
  4378. VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
  4379. {
  4380. return ::vkCreateScreenSurfaceQNX( instance, pCreateInfo, pAllocator, pSurface );
  4381. }
  4382. VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX( VkPhysicalDevice physicalDevice,
  4383. uint32_t queueFamilyIndex,
  4384. struct _screen_window * window ) const VULKAN_HPP_NOEXCEPT
  4385. {
  4386. return ::vkGetPhysicalDeviceScreenPresentationSupportQNX( physicalDevice, queueFamilyIndex, window );
  4387. }
  4388. # endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  4389. //=== VK_EXT_color_write_enable ===
  4390. void vkCmdSetColorWriteEnableEXT( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32 * pColorWriteEnables ) const VULKAN_HPP_NOEXCEPT
  4391. {
  4392. return ::vkCmdSetColorWriteEnableEXT( commandBuffer, attachmentCount, pColorWriteEnables );
  4393. }
  4394. //=== VK_KHR_ray_tracing_maintenance1 ===
  4395. void vkCmdTraceRaysIndirect2KHR( VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT
  4396. {
  4397. return ::vkCmdTraceRaysIndirect2KHR( commandBuffer, indirectDeviceAddress );
  4398. }
  4399. //=== VK_EXT_multi_draw ===
  4400. void vkCmdDrawMultiEXT( VkCommandBuffer commandBuffer,
  4401. uint32_t drawCount,
  4402. const VkMultiDrawInfoEXT * pVertexInfo,
  4403. uint32_t instanceCount,
  4404. uint32_t firstInstance,
  4405. uint32_t stride ) const VULKAN_HPP_NOEXCEPT
  4406. {
  4407. return ::vkCmdDrawMultiEXT( commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride );
  4408. }
  4409. void vkCmdDrawMultiIndexedEXT( VkCommandBuffer commandBuffer,
  4410. uint32_t drawCount,
  4411. const VkMultiDrawIndexedInfoEXT * pIndexInfo,
  4412. uint32_t instanceCount,
  4413. uint32_t firstInstance,
  4414. uint32_t stride,
  4415. const int32_t * pVertexOffset ) const VULKAN_HPP_NOEXCEPT
  4416. {
  4417. return ::vkCmdDrawMultiIndexedEXT( commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset );
  4418. }
  4419. //=== VK_EXT_pageable_device_local_memory ===
  4420. void vkSetDeviceMemoryPriorityEXT( VkDevice device, VkDeviceMemory memory, float priority ) const VULKAN_HPP_NOEXCEPT
  4421. {
  4422. return ::vkSetDeviceMemoryPriorityEXT( device, memory, priority );
  4423. }
  4424. //=== VK_KHR_maintenance4 ===
  4425. void vkGetDeviceBufferMemoryRequirementsKHR( VkDevice device,
  4426. const VkDeviceBufferMemoryRequirements * pInfo,
  4427. VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  4428. {
  4429. return ::vkGetDeviceBufferMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
  4430. }
  4431. void vkGetDeviceImageMemoryRequirementsKHR( VkDevice device,
  4432. const VkDeviceImageMemoryRequirements * pInfo,
  4433. VkMemoryRequirements2 * pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  4434. {
  4435. return ::vkGetDeviceImageMemoryRequirementsKHR( device, pInfo, pMemoryRequirements );
  4436. }
  4437. void vkGetDeviceImageSparseMemoryRequirementsKHR( VkDevice device,
  4438. const VkDeviceImageMemoryRequirements * pInfo,
  4439. uint32_t * pSparseMemoryRequirementCount,
  4440. VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  4441. {
  4442. return ::vkGetDeviceImageSparseMemoryRequirementsKHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements );
  4443. }
  4444. //=== VK_VALVE_descriptor_set_host_mapping ===
  4445. void vkGetDescriptorSetLayoutHostMappingInfoVALVE( VkDevice device,
  4446. const VkDescriptorSetBindingReferenceVALVE * pBindingReference,
  4447. VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping ) const VULKAN_HPP_NOEXCEPT
  4448. {
  4449. return ::vkGetDescriptorSetLayoutHostMappingInfoVALVE( device, pBindingReference, pHostMapping );
  4450. }
  4451. void vkGetDescriptorSetHostMappingVALVE( VkDevice device, VkDescriptorSet descriptorSet, void ** ppData ) const VULKAN_HPP_NOEXCEPT
  4452. {
  4453. return ::vkGetDescriptorSetHostMappingVALVE( device, descriptorSet, ppData );
  4454. }
  4455. //=== VK_EXT_shader_module_identifier ===
  4456. void vkGetShaderModuleIdentifierEXT( VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT * pIdentifier ) const VULKAN_HPP_NOEXCEPT
  4457. {
  4458. return ::vkGetShaderModuleIdentifierEXT( device, shaderModule, pIdentifier );
  4459. }
  4460. void vkGetShaderModuleCreateInfoIdentifierEXT( VkDevice device,
  4461. const VkShaderModuleCreateInfo * pCreateInfo,
  4462. VkShaderModuleIdentifierEXT * pIdentifier ) const VULKAN_HPP_NOEXCEPT
  4463. {
  4464. return ::vkGetShaderModuleCreateInfoIdentifierEXT( device, pCreateInfo, pIdentifier );
  4465. }
  4466. //=== VK_QCOM_tile_properties ===
  4467. VkResult vkGetFramebufferTilePropertiesQCOM( VkDevice device,
  4468. VkFramebuffer framebuffer,
  4469. uint32_t * pPropertiesCount,
  4470. VkTilePropertiesQCOM * pProperties ) const VULKAN_HPP_NOEXCEPT
  4471. {
  4472. return ::vkGetFramebufferTilePropertiesQCOM( device, framebuffer, pPropertiesCount, pProperties );
  4473. }
  4474. VkResult vkGetDynamicRenderingTilePropertiesQCOM( VkDevice device,
  4475. const VkRenderingInfo * pRenderingInfo,
  4476. VkTilePropertiesQCOM * pProperties ) const VULKAN_HPP_NOEXCEPT
  4477. {
  4478. return ::vkGetDynamicRenderingTilePropertiesQCOM( device, pRenderingInfo, pProperties );
  4479. }
  4480. };
  4481. #endif
  4482. class DispatchLoaderDynamic;
  4483. #if !defined( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC )
  4484. # if defined( VK_NO_PROTOTYPES )
  4485. # define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1
  4486. # else
  4487. # define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0
  4488. # endif
  4489. #endif
  4490. #if !defined( VULKAN_HPP_STORAGE_API )
  4491. # if defined( VULKAN_HPP_STORAGE_SHARED )
  4492. # if defined( _MSC_VER )
  4493. # if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
  4494. # define VULKAN_HPP_STORAGE_API __declspec( dllexport )
  4495. # else
  4496. # define VULKAN_HPP_STORAGE_API __declspec( dllimport )
  4497. # endif
  4498. # elif defined( __clang__ ) || defined( __GNUC__ )
  4499. # if defined( VULKAN_HPP_STORAGE_SHARED_EXPORT )
  4500. # define VULKAN_HPP_STORAGE_API __attribute__( ( visibility( "default" ) ) )
  4501. # else
  4502. # define VULKAN_HPP_STORAGE_API
  4503. # endif
  4504. # else
  4505. # define VULKAN_HPP_STORAGE_API
  4506. # pragma warning Unknown import / export semantics
  4507. # endif
  4508. # else
  4509. # define VULKAN_HPP_STORAGE_API
  4510. # endif
  4511. #endif
  4512. #if !defined( VULKAN_HPP_DEFAULT_DISPATCHER )
  4513. # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
  4514. # define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic
  4515. # define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE \
  4516. namespace VULKAN_HPP_NAMESPACE \
  4517. { \
  4518. VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; \
  4519. }
  4520. extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic;
  4521. # else
  4522. static inline ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic & getDispatchLoaderStatic()
  4523. {
  4524. static ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic dls;
  4525. return dls;
  4526. }
  4527. # define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::getDispatchLoaderStatic()
  4528. # define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE
  4529. # endif
  4530. #endif
  4531. #if !defined( VULKAN_HPP_DEFAULT_DISPATCHER_TYPE )
  4532. # if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1
  4533. # define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic
  4534. # else
  4535. # define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic
  4536. # endif
  4537. #endif
  4538. #if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER )
  4539. # define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT
  4540. # define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT
  4541. # define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT
  4542. #else
  4543. # define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {}
  4544. # define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr
  4545. # define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER
  4546. #endif
  4547. #if !defined( VULKAN_HPP_NO_SMART_HANDLE )
  4548. struct AllocationCallbacks;
  4549. template <typename OwnerType, typename Dispatch>
  4550. class ObjectDestroy
  4551. {
  4552. public:
  4553. ObjectDestroy() = default;
  4554. ObjectDestroy( OwnerType owner,
  4555. Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
  4556. Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
  4557. : m_owner( owner )
  4558. , m_allocationCallbacks( allocationCallbacks )
  4559. , m_dispatch( &dispatch )
  4560. {
  4561. }
  4562. OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
  4563. {
  4564. return m_owner;
  4565. }
  4566. Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
  4567. {
  4568. return m_allocationCallbacks;
  4569. }
  4570. protected:
  4571. template <typename T>
  4572. void destroy( T t ) VULKAN_HPP_NOEXCEPT
  4573. {
  4574. VULKAN_HPP_ASSERT( m_owner && m_dispatch );
  4575. m_owner.destroy( t, m_allocationCallbacks, *m_dispatch );
  4576. }
  4577. private:
  4578. OwnerType m_owner = {};
  4579. Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
  4580. Dispatch const * m_dispatch = nullptr;
  4581. };
  4582. class NoParent;
  4583. template <typename Dispatch>
  4584. class ObjectDestroy<NoParent, Dispatch>
  4585. {
  4586. public:
  4587. ObjectDestroy() = default;
  4588. ObjectDestroy( Optional<const AllocationCallbacks> allocationCallbacks,
  4589. Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
  4590. : m_allocationCallbacks( allocationCallbacks )
  4591. , m_dispatch( &dispatch )
  4592. {
  4593. }
  4594. Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
  4595. {
  4596. return m_allocationCallbacks;
  4597. }
  4598. protected:
  4599. template <typename T>
  4600. void destroy( T t ) VULKAN_HPP_NOEXCEPT
  4601. {
  4602. VULKAN_HPP_ASSERT( m_dispatch );
  4603. t.destroy( m_allocationCallbacks, *m_dispatch );
  4604. }
  4605. private:
  4606. Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
  4607. Dispatch const * m_dispatch = nullptr;
  4608. };
  4609. template <typename OwnerType, typename Dispatch>
  4610. class ObjectFree
  4611. {
  4612. public:
  4613. ObjectFree() = default;
  4614. ObjectFree( OwnerType owner,
  4615. Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
  4616. Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
  4617. : m_owner( owner )
  4618. , m_allocationCallbacks( allocationCallbacks )
  4619. , m_dispatch( &dispatch )
  4620. {
  4621. }
  4622. OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
  4623. {
  4624. return m_owner;
  4625. }
  4626. Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
  4627. {
  4628. return m_allocationCallbacks;
  4629. }
  4630. protected:
  4631. template <typename T>
  4632. void destroy( T t ) VULKAN_HPP_NOEXCEPT
  4633. {
  4634. VULKAN_HPP_ASSERT( m_owner && m_dispatch );
  4635. ( m_owner.free )( t, m_allocationCallbacks, *m_dispatch );
  4636. }
  4637. private:
  4638. OwnerType m_owner = {};
  4639. Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
  4640. Dispatch const * m_dispatch = nullptr;
  4641. };
  4642. template <typename OwnerType, typename Dispatch>
  4643. class ObjectRelease
  4644. {
  4645. public:
  4646. ObjectRelease() = default;
  4647. ObjectRelease( OwnerType owner, Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
  4648. : m_owner( owner )
  4649. , m_dispatch( &dispatch )
  4650. {
  4651. }
  4652. OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
  4653. {
  4654. return m_owner;
  4655. }
  4656. protected:
  4657. template <typename T>
  4658. void destroy( T t ) VULKAN_HPP_NOEXCEPT
  4659. {
  4660. VULKAN_HPP_ASSERT( m_owner && m_dispatch );
  4661. m_owner.release( t, *m_dispatch );
  4662. }
  4663. private:
  4664. OwnerType m_owner = {};
  4665. Dispatch const * m_dispatch = nullptr;
  4666. };
  4667. template <typename OwnerType, typename PoolType, typename Dispatch>
  4668. class PoolFree
  4669. {
  4670. public:
  4671. PoolFree() = default;
  4672. PoolFree( OwnerType owner, PoolType pool, Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
  4673. : m_owner( owner )
  4674. , m_pool( pool )
  4675. , m_dispatch( &dispatch )
  4676. {
  4677. }
  4678. OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
  4679. {
  4680. return m_owner;
  4681. }
  4682. PoolType getPool() const VULKAN_HPP_NOEXCEPT
  4683. {
  4684. return m_pool;
  4685. }
  4686. protected:
  4687. template <typename T>
  4688. void destroy( T t ) VULKAN_HPP_NOEXCEPT
  4689. {
  4690. ( m_owner.free )( m_pool, t, *m_dispatch );
  4691. }
  4692. private:
  4693. OwnerType m_owner = OwnerType();
  4694. PoolType m_pool = PoolType();
  4695. Dispatch const * m_dispatch = nullptr;
  4696. };
  4697. #endif // !VULKAN_HPP_NO_SMART_HANDLE
  4698. //==================
  4699. //=== BASE TYPEs ===
  4700. //==================
  4701. using Bool32 = uint32_t;
  4702. using DeviceAddress = uint64_t;
  4703. using DeviceSize = uint64_t;
  4704. using RemoteAddressNV = void *;
  4705. using SampleMask = uint32_t;
  4706. } // namespace VULKAN_HPP_NAMESPACE
  4707. #include <vulkan/vulkan_enums.hpp>
  4708. #if !defined( VULKAN_HPP_NO_TO_STRING )
  4709. # include <vulkan/vulkan_to_string.hpp>
  4710. #endif
  4711. #ifndef VULKAN_HPP_NO_EXCEPTIONS
  4712. namespace std
  4713. {
  4714. template <>
  4715. struct is_error_code_enum<VULKAN_HPP_NAMESPACE::Result> : public true_type
  4716. {
  4717. };
  4718. } // namespace std
  4719. #endif
  4720. namespace VULKAN_HPP_NAMESPACE
  4721. {
  4722. #ifndef VULKAN_HPP_NO_EXCEPTIONS
  4723. class ErrorCategoryImpl : public std::error_category
  4724. {
  4725. public:
  4726. virtual const char * name() const VULKAN_HPP_NOEXCEPT override
  4727. {
  4728. return VULKAN_HPP_NAMESPACE_STRING "::Result";
  4729. }
  4730. virtual std::string message( int ev ) const override
  4731. {
  4732. # if defined( VULKAN_HPP_NO_TO_STRING )
  4733. return std::to_string( ev );
  4734. # else
  4735. return VULKAN_HPP_NAMESPACE::to_string( static_cast<VULKAN_HPP_NAMESPACE::Result>( ev ) );
  4736. # endif
  4737. }
  4738. };
  4739. class Error
  4740. {
  4741. public:
  4742. Error() VULKAN_HPP_NOEXCEPT = default;
  4743. Error( const Error & ) VULKAN_HPP_NOEXCEPT = default;
  4744. virtual ~Error() VULKAN_HPP_NOEXCEPT = default;
  4745. virtual const char * what() const VULKAN_HPP_NOEXCEPT = 0;
  4746. };
  4747. class LogicError
  4748. : public Error
  4749. , public std::logic_error
  4750. {
  4751. public:
  4752. explicit LogicError( const std::string & what ) : Error(), std::logic_error( what ) {}
  4753. explicit LogicError( char const * what ) : Error(), std::logic_error( what ) {}
  4754. virtual const char * what() const VULKAN_HPP_NOEXCEPT
  4755. {
  4756. return std::logic_error::what();
  4757. }
  4758. };
  4759. class SystemError
  4760. : public Error
  4761. , public std::system_error
  4762. {
  4763. public:
  4764. SystemError( std::error_code ec ) : Error(), std::system_error( ec ) {}
  4765. SystemError( std::error_code ec, std::string const & what ) : Error(), std::system_error( ec, what ) {}
  4766. SystemError( std::error_code ec, char const * what ) : Error(), std::system_error( ec, what ) {}
  4767. SystemError( int ev, std::error_category const & ecat ) : Error(), std::system_error( ev, ecat ) {}
  4768. SystemError( int ev, std::error_category const & ecat, std::string const & what ) : Error(), std::system_error( ev, ecat, what ) {}
  4769. SystemError( int ev, std::error_category const & ecat, char const * what ) : Error(), std::system_error( ev, ecat, what ) {}
  4770. virtual const char * what() const VULKAN_HPP_NOEXCEPT
  4771. {
  4772. return std::system_error::what();
  4773. }
  4774. };
  4775. VULKAN_HPP_INLINE const std::error_category & errorCategory() VULKAN_HPP_NOEXCEPT
  4776. {
  4777. static ErrorCategoryImpl instance;
  4778. return instance;
  4779. }
  4780. VULKAN_HPP_INLINE std::error_code make_error_code( Result e ) VULKAN_HPP_NOEXCEPT
  4781. {
  4782. return std::error_code( static_cast<int>( e ), errorCategory() );
  4783. }
  4784. VULKAN_HPP_INLINE std::error_condition make_error_condition( Result e ) VULKAN_HPP_NOEXCEPT
  4785. {
  4786. return std::error_condition( static_cast<int>( e ), errorCategory() );
  4787. }
  4788. class OutOfHostMemoryError : public SystemError
  4789. {
  4790. public:
  4791. OutOfHostMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
  4792. OutOfHostMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {}
  4793. };
  4794. class OutOfDeviceMemoryError : public SystemError
  4795. {
  4796. public:
  4797. OutOfDeviceMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
  4798. OutOfDeviceMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {}
  4799. };
  4800. class InitializationFailedError : public SystemError
  4801. {
  4802. public:
  4803. InitializationFailedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
  4804. InitializationFailedError( char const * message ) : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {}
  4805. };
  4806. class DeviceLostError : public SystemError
  4807. {
  4808. public:
  4809. DeviceLostError( std::string const & message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
  4810. DeviceLostError( char const * message ) : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {}
  4811. };
  4812. class MemoryMapFailedError : public SystemError
  4813. {
  4814. public:
  4815. MemoryMapFailedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
  4816. MemoryMapFailedError( char const * message ) : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {}
  4817. };
  4818. class LayerNotPresentError : public SystemError
  4819. {
  4820. public:
  4821. LayerNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
  4822. LayerNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {}
  4823. };
  4824. class ExtensionNotPresentError : public SystemError
  4825. {
  4826. public:
  4827. ExtensionNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
  4828. ExtensionNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {}
  4829. };
  4830. class FeatureNotPresentError : public SystemError
  4831. {
  4832. public:
  4833. FeatureNotPresentError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
  4834. FeatureNotPresentError( char const * message ) : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {}
  4835. };
  4836. class IncompatibleDriverError : public SystemError
  4837. {
  4838. public:
  4839. IncompatibleDriverError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
  4840. IncompatibleDriverError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {}
  4841. };
  4842. class TooManyObjectsError : public SystemError
  4843. {
  4844. public:
  4845. TooManyObjectsError( std::string const & message ) : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
  4846. TooManyObjectsError( char const * message ) : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {}
  4847. };
  4848. class FormatNotSupportedError : public SystemError
  4849. {
  4850. public:
  4851. FormatNotSupportedError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
  4852. FormatNotSupportedError( char const * message ) : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {}
  4853. };
  4854. class FragmentedPoolError : public SystemError
  4855. {
  4856. public:
  4857. FragmentedPoolError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
  4858. FragmentedPoolError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {}
  4859. };
  4860. class UnknownError : public SystemError
  4861. {
  4862. public:
  4863. UnknownError( std::string const & message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
  4864. UnknownError( char const * message ) : SystemError( make_error_code( Result::eErrorUnknown ), message ) {}
  4865. };
  4866. class OutOfPoolMemoryError : public SystemError
  4867. {
  4868. public:
  4869. OutOfPoolMemoryError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
  4870. OutOfPoolMemoryError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {}
  4871. };
  4872. class InvalidExternalHandleError : public SystemError
  4873. {
  4874. public:
  4875. InvalidExternalHandleError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
  4876. InvalidExternalHandleError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {}
  4877. };
  4878. class FragmentationError : public SystemError
  4879. {
  4880. public:
  4881. FragmentationError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
  4882. FragmentationError( char const * message ) : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {}
  4883. };
  4884. class InvalidOpaqueCaptureAddressError : public SystemError
  4885. {
  4886. public:
  4887. InvalidOpaqueCaptureAddressError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
  4888. InvalidOpaqueCaptureAddressError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {}
  4889. };
  4890. class SurfaceLostKHRError : public SystemError
  4891. {
  4892. public:
  4893. SurfaceLostKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
  4894. SurfaceLostKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {}
  4895. };
  4896. class NativeWindowInUseKHRError : public SystemError
  4897. {
  4898. public:
  4899. NativeWindowInUseKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
  4900. NativeWindowInUseKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {}
  4901. };
  4902. class OutOfDateKHRError : public SystemError
  4903. {
  4904. public:
  4905. OutOfDateKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
  4906. OutOfDateKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {}
  4907. };
  4908. class IncompatibleDisplayKHRError : public SystemError
  4909. {
  4910. public:
  4911. IncompatibleDisplayKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
  4912. IncompatibleDisplayKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {}
  4913. };
  4914. class ValidationFailedEXTError : public SystemError
  4915. {
  4916. public:
  4917. ValidationFailedEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
  4918. ValidationFailedEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {}
  4919. };
  4920. class InvalidShaderNVError : public SystemError
  4921. {
  4922. public:
  4923. InvalidShaderNVError( std::string const & message ) : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
  4924. InvalidShaderNVError( char const * message ) : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {}
  4925. };
  4926. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  4927. class ImageUsageNotSupportedKHRError : public SystemError
  4928. {
  4929. public:
  4930. ImageUsageNotSupportedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorImageUsageNotSupportedKHR ), message ) {}
  4931. ImageUsageNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorImageUsageNotSupportedKHR ), message ) {}
  4932. };
  4933. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  4934. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  4935. class VideoPictureLayoutNotSupportedKHRError : public SystemError
  4936. {
  4937. public:
  4938. VideoPictureLayoutNotSupportedKHRError( std::string const & message )
  4939. : SystemError( make_error_code( Result::eErrorVideoPictureLayoutNotSupportedKHR ), message )
  4940. {
  4941. }
  4942. VideoPictureLayoutNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoPictureLayoutNotSupportedKHR ), message )
  4943. {
  4944. }
  4945. };
  4946. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  4947. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  4948. class VideoProfileOperationNotSupportedKHRError : public SystemError
  4949. {
  4950. public:
  4951. VideoProfileOperationNotSupportedKHRError( std::string const & message )
  4952. : SystemError( make_error_code( Result::eErrorVideoProfileOperationNotSupportedKHR ), message )
  4953. {
  4954. }
  4955. VideoProfileOperationNotSupportedKHRError( char const * message )
  4956. : SystemError( make_error_code( Result::eErrorVideoProfileOperationNotSupportedKHR ), message )
  4957. {
  4958. }
  4959. };
  4960. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  4961. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  4962. class VideoProfileFormatNotSupportedKHRError : public SystemError
  4963. {
  4964. public:
  4965. VideoProfileFormatNotSupportedKHRError( std::string const & message )
  4966. : SystemError( make_error_code( Result::eErrorVideoProfileFormatNotSupportedKHR ), message )
  4967. {
  4968. }
  4969. VideoProfileFormatNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoProfileFormatNotSupportedKHR ), message )
  4970. {
  4971. }
  4972. };
  4973. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  4974. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  4975. class VideoProfileCodecNotSupportedKHRError : public SystemError
  4976. {
  4977. public:
  4978. VideoProfileCodecNotSupportedKHRError( std::string const & message )
  4979. : SystemError( make_error_code( Result::eErrorVideoProfileCodecNotSupportedKHR ), message )
  4980. {
  4981. }
  4982. VideoProfileCodecNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoProfileCodecNotSupportedKHR ), message ) {}
  4983. };
  4984. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  4985. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  4986. class VideoStdVersionNotSupportedKHRError : public SystemError
  4987. {
  4988. public:
  4989. VideoStdVersionNotSupportedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorVideoStdVersionNotSupportedKHR ), message )
  4990. {
  4991. }
  4992. VideoStdVersionNotSupportedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorVideoStdVersionNotSupportedKHR ), message ) {}
  4993. };
  4994. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  4995. class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError
  4996. {
  4997. public:
  4998. InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const & message )
  4999. : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message )
  5000. {
  5001. }
  5002. InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message )
  5003. : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message )
  5004. {
  5005. }
  5006. };
  5007. class NotPermittedKHRError : public SystemError
  5008. {
  5009. public:
  5010. NotPermittedKHRError( std::string const & message ) : SystemError( make_error_code( Result::eErrorNotPermittedKHR ), message ) {}
  5011. NotPermittedKHRError( char const * message ) : SystemError( make_error_code( Result::eErrorNotPermittedKHR ), message ) {}
  5012. };
  5013. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  5014. class FullScreenExclusiveModeLostEXTError : public SystemError
  5015. {
  5016. public:
  5017. FullScreenExclusiveModeLostEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message )
  5018. {
  5019. }
  5020. FullScreenExclusiveModeLostEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {}
  5021. };
  5022. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  5023. class CompressionExhaustedEXTError : public SystemError
  5024. {
  5025. public:
  5026. CompressionExhaustedEXTError( std::string const & message ) : SystemError( make_error_code( Result::eErrorCompressionExhaustedEXT ), message ) {}
  5027. CompressionExhaustedEXTError( char const * message ) : SystemError( make_error_code( Result::eErrorCompressionExhaustedEXT ), message ) {}
  5028. };
  5029. namespace
  5030. {
  5031. [[noreturn]] void throwResultException( Result result, char const * message )
  5032. {
  5033. switch ( result )
  5034. {
  5035. case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
  5036. case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
  5037. case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
  5038. case Result::eErrorDeviceLost: throw DeviceLostError( message );
  5039. case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
  5040. case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
  5041. case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
  5042. case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
  5043. case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
  5044. case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
  5045. case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
  5046. case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
  5047. case Result::eErrorUnknown: throw UnknownError( message );
  5048. case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
  5049. case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
  5050. case Result::eErrorFragmentation: throw FragmentationError( message );
  5051. case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
  5052. case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
  5053. case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
  5054. case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
  5055. case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
  5056. case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
  5057. case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
  5058. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  5059. case Result::eErrorImageUsageNotSupportedKHR: throw ImageUsageNotSupportedKHRError( message );
  5060. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  5061. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  5062. case Result::eErrorVideoPictureLayoutNotSupportedKHR: throw VideoPictureLayoutNotSupportedKHRError( message );
  5063. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  5064. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  5065. case Result::eErrorVideoProfileOperationNotSupportedKHR: throw VideoProfileOperationNotSupportedKHRError( message );
  5066. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  5067. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  5068. case Result::eErrorVideoProfileFormatNotSupportedKHR: throw VideoProfileFormatNotSupportedKHRError( message );
  5069. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  5070. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  5071. case Result::eErrorVideoProfileCodecNotSupportedKHR: throw VideoProfileCodecNotSupportedKHRError( message );
  5072. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  5073. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  5074. case Result::eErrorVideoStdVersionNotSupportedKHR: throw VideoStdVersionNotSupportedKHRError( message );
  5075. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  5076. case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
  5077. case Result::eErrorNotPermittedKHR: throw NotPermittedKHRError( message );
  5078. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  5079. case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
  5080. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  5081. case Result::eErrorCompressionExhaustedEXT: throw CompressionExhaustedEXTError( message );
  5082. default: throw SystemError( make_error_code( result ) );
  5083. }
  5084. }
  5085. } // namespace
  5086. #endif
  5087. template <typename T>
  5088. void ignore( T const & ) VULKAN_HPP_NOEXCEPT
  5089. {
  5090. }
  5091. template <typename T>
  5092. struct ResultValue
  5093. {
  5094. #ifdef VULKAN_HPP_HAS_NOEXCEPT
  5095. ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( v ) ) )
  5096. #else
  5097. ResultValue( Result r, T & v )
  5098. #endif
  5099. : result( r ), value( v )
  5100. {
  5101. }
  5102. #ifdef VULKAN_HPP_HAS_NOEXCEPT
  5103. ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT( VULKAN_HPP_NOEXCEPT( T( std::move( v ) ) ) )
  5104. #else
  5105. ResultValue( Result r, T && v )
  5106. #endif
  5107. : result( r ), value( std::move( v ) )
  5108. {
  5109. }
  5110. Result result;
  5111. T value;
  5112. operator std::tuple<Result &, T &>() VULKAN_HPP_NOEXCEPT
  5113. {
  5114. return std::tuple<Result &, T &>( result, value );
  5115. }
  5116. };
  5117. #if !defined( VULKAN_HPP_NO_SMART_HANDLE )
  5118. template <typename Type, typename Dispatch>
  5119. struct ResultValue<UniqueHandle<Type, Dispatch>>
  5120. {
  5121. # ifdef VULKAN_HPP_HAS_NOEXCEPT
  5122. ResultValue( Result r, UniqueHandle<Type, Dispatch> && v ) VULKAN_HPP_NOEXCEPT
  5123. # else
  5124. ResultValue( Result r, UniqueHandle<Type, Dispatch> && v )
  5125. # endif
  5126. : result( r )
  5127. , value( std::move( v ) )
  5128. {
  5129. }
  5130. std::tuple<Result, UniqueHandle<Type, Dispatch>> asTuple()
  5131. {
  5132. return std::make_tuple( result, std::move( value ) );
  5133. }
  5134. Result result;
  5135. UniqueHandle<Type, Dispatch> value;
  5136. };
  5137. template <typename Type, typename Dispatch>
  5138. struct ResultValue<std::vector<UniqueHandle<Type, Dispatch>>>
  5139. {
  5140. # ifdef VULKAN_HPP_HAS_NOEXCEPT
  5141. ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v ) VULKAN_HPP_NOEXCEPT
  5142. # else
  5143. ResultValue( Result r, std::vector<UniqueHandle<Type, Dispatch>> && v )
  5144. # endif
  5145. : result( r )
  5146. , value( std::move( v ) )
  5147. {
  5148. }
  5149. std::tuple<Result, std::vector<UniqueHandle<Type, Dispatch>>> asTuple()
  5150. {
  5151. return std::make_tuple( result, std::move( value ) );
  5152. }
  5153. Result result;
  5154. std::vector<UniqueHandle<Type, Dispatch>> value;
  5155. };
  5156. #endif
  5157. template <typename T>
  5158. struct ResultValueType
  5159. {
  5160. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  5161. typedef ResultValue<T> type;
  5162. #else
  5163. typedef T type;
  5164. #endif
  5165. };
  5166. template <>
  5167. struct ResultValueType<void>
  5168. {
  5169. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  5170. typedef Result type;
  5171. #else
  5172. typedef void type;
  5173. #endif
  5174. };
  5175. VULKAN_HPP_INLINE typename ResultValueType<void>::type createResultValueType( Result result )
  5176. {
  5177. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  5178. return result;
  5179. #else
  5180. ignore( result );
  5181. #endif
  5182. }
  5183. template <typename T>
  5184. VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValueType( Result result, T & data )
  5185. {
  5186. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  5187. return ResultValue<T>( result, data );
  5188. #else
  5189. ignore( result );
  5190. return data;
  5191. #endif
  5192. }
  5193. template <typename T>
  5194. VULKAN_HPP_INLINE typename ResultValueType<T>::type createResultValueType( Result result, T && data )
  5195. {
  5196. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  5197. return ResultValue<T>( result, std::move( data ) );
  5198. #else
  5199. ignore( result );
  5200. return std::move( data );
  5201. #endif
  5202. }
  5203. VULKAN_HPP_INLINE void resultCheck( Result result, char const * message )
  5204. {
  5205. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  5206. ignore( result ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
  5207. ignore( message );
  5208. VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess );
  5209. #else
  5210. if ( result != Result::eSuccess )
  5211. {
  5212. throwResultException( result, message );
  5213. }
  5214. #endif
  5215. }
  5216. VULKAN_HPP_INLINE void resultCheck( Result result, char const * message, std::initializer_list<Result> successCodes )
  5217. {
  5218. #ifdef VULKAN_HPP_NO_EXCEPTIONS
  5219. ignore( result ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
  5220. ignore( message );
  5221. ignore( successCodes ); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty
  5222. VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() );
  5223. #else
  5224. if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() )
  5225. {
  5226. throwResultException( result, message );
  5227. }
  5228. #endif
  5229. }
  5230. } // namespace VULKAN_HPP_NAMESPACE
  5231. // clang-format off
  5232. #include <vulkan/vulkan_handles.hpp>
  5233. #include <vulkan/vulkan_structs.hpp>
  5234. #include <vulkan/vulkan_funcs.hpp>
  5235. // clang-format on
  5236. namespace VULKAN_HPP_NAMESPACE
  5237. {
  5238. #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
  5239. //=======================
  5240. //=== STRUCTS EXTENDS ===
  5241. //=======================
  5242. //=== VK_VERSION_1_0 ===
  5243. template <>
  5244. struct StructExtends<ShaderModuleCreateInfo, PipelineShaderStageCreateInfo>
  5245. {
  5246. enum
  5247. {
  5248. value = true
  5249. };
  5250. };
  5251. //=== VK_VERSION_1_1 ===
  5252. template <>
  5253. struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>
  5254. {
  5255. enum
  5256. {
  5257. value = true
  5258. };
  5259. };
  5260. template <>
  5261. struct StructExtends<PhysicalDevice16BitStorageFeatures, PhysicalDeviceFeatures2>
  5262. {
  5263. enum
  5264. {
  5265. value = true
  5266. };
  5267. };
  5268. template <>
  5269. struct StructExtends<PhysicalDevice16BitStorageFeatures, DeviceCreateInfo>
  5270. {
  5271. enum
  5272. {
  5273. value = true
  5274. };
  5275. };
  5276. template <>
  5277. struct StructExtends<MemoryDedicatedRequirements, MemoryRequirements2>
  5278. {
  5279. enum
  5280. {
  5281. value = true
  5282. };
  5283. };
  5284. template <>
  5285. struct StructExtends<MemoryDedicatedAllocateInfo, MemoryAllocateInfo>
  5286. {
  5287. enum
  5288. {
  5289. value = true
  5290. };
  5291. };
  5292. template <>
  5293. struct StructExtends<MemoryAllocateFlagsInfo, MemoryAllocateInfo>
  5294. {
  5295. enum
  5296. {
  5297. value = true
  5298. };
  5299. };
  5300. template <>
  5301. struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderPassBeginInfo>
  5302. {
  5303. enum
  5304. {
  5305. value = true
  5306. };
  5307. };
  5308. template <>
  5309. struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderingInfo>
  5310. {
  5311. enum
  5312. {
  5313. value = true
  5314. };
  5315. };
  5316. template <>
  5317. struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>
  5318. {
  5319. enum
  5320. {
  5321. value = true
  5322. };
  5323. };
  5324. template <>
  5325. struct StructExtends<DeviceGroupSubmitInfo, SubmitInfo>
  5326. {
  5327. enum
  5328. {
  5329. value = true
  5330. };
  5331. };
  5332. template <>
  5333. struct StructExtends<DeviceGroupBindSparseInfo, BindSparseInfo>
  5334. {
  5335. enum
  5336. {
  5337. value = true
  5338. };
  5339. };
  5340. template <>
  5341. struct StructExtends<BindBufferMemoryDeviceGroupInfo, BindBufferMemoryInfo>
  5342. {
  5343. enum
  5344. {
  5345. value = true
  5346. };
  5347. };
  5348. template <>
  5349. struct StructExtends<BindImageMemoryDeviceGroupInfo, BindImageMemoryInfo>
  5350. {
  5351. enum
  5352. {
  5353. value = true
  5354. };
  5355. };
  5356. template <>
  5357. struct StructExtends<DeviceGroupDeviceCreateInfo, DeviceCreateInfo>
  5358. {
  5359. enum
  5360. {
  5361. value = true
  5362. };
  5363. };
  5364. template <>
  5365. struct StructExtends<PhysicalDeviceFeatures2, DeviceCreateInfo>
  5366. {
  5367. enum
  5368. {
  5369. value = true
  5370. };
  5371. };
  5372. template <>
  5373. struct StructExtends<PhysicalDevicePointClippingProperties, PhysicalDeviceProperties2>
  5374. {
  5375. enum
  5376. {
  5377. value = true
  5378. };
  5379. };
  5380. template <>
  5381. struct StructExtends<RenderPassInputAttachmentAspectCreateInfo, RenderPassCreateInfo>
  5382. {
  5383. enum
  5384. {
  5385. value = true
  5386. };
  5387. };
  5388. template <>
  5389. struct StructExtends<ImageViewUsageCreateInfo, ImageViewCreateInfo>
  5390. {
  5391. enum
  5392. {
  5393. value = true
  5394. };
  5395. };
  5396. template <>
  5397. struct StructExtends<PipelineTessellationDomainOriginStateCreateInfo, PipelineTessellationStateCreateInfo>
  5398. {
  5399. enum
  5400. {
  5401. value = true
  5402. };
  5403. };
  5404. template <>
  5405. struct StructExtends<RenderPassMultiviewCreateInfo, RenderPassCreateInfo>
  5406. {
  5407. enum
  5408. {
  5409. value = true
  5410. };
  5411. };
  5412. template <>
  5413. struct StructExtends<PhysicalDeviceMultiviewFeatures, PhysicalDeviceFeatures2>
  5414. {
  5415. enum
  5416. {
  5417. value = true
  5418. };
  5419. };
  5420. template <>
  5421. struct StructExtends<PhysicalDeviceMultiviewFeatures, DeviceCreateInfo>
  5422. {
  5423. enum
  5424. {
  5425. value = true
  5426. };
  5427. };
  5428. template <>
  5429. struct StructExtends<PhysicalDeviceMultiviewProperties, PhysicalDeviceProperties2>
  5430. {
  5431. enum
  5432. {
  5433. value = true
  5434. };
  5435. };
  5436. template <>
  5437. struct StructExtends<PhysicalDeviceVariablePointersFeatures, PhysicalDeviceFeatures2>
  5438. {
  5439. enum
  5440. {
  5441. value = true
  5442. };
  5443. };
  5444. template <>
  5445. struct StructExtends<PhysicalDeviceVariablePointersFeatures, DeviceCreateInfo>
  5446. {
  5447. enum
  5448. {
  5449. value = true
  5450. };
  5451. };
  5452. template <>
  5453. struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, PhysicalDeviceFeatures2>
  5454. {
  5455. enum
  5456. {
  5457. value = true
  5458. };
  5459. };
  5460. template <>
  5461. struct StructExtends<PhysicalDeviceProtectedMemoryFeatures, DeviceCreateInfo>
  5462. {
  5463. enum
  5464. {
  5465. value = true
  5466. };
  5467. };
  5468. template <>
  5469. struct StructExtends<PhysicalDeviceProtectedMemoryProperties, PhysicalDeviceProperties2>
  5470. {
  5471. enum
  5472. {
  5473. value = true
  5474. };
  5475. };
  5476. template <>
  5477. struct StructExtends<ProtectedSubmitInfo, SubmitInfo>
  5478. {
  5479. enum
  5480. {
  5481. value = true
  5482. };
  5483. };
  5484. template <>
  5485. struct StructExtends<SamplerYcbcrConversionInfo, SamplerCreateInfo>
  5486. {
  5487. enum
  5488. {
  5489. value = true
  5490. };
  5491. };
  5492. template <>
  5493. struct StructExtends<SamplerYcbcrConversionInfo, ImageViewCreateInfo>
  5494. {
  5495. enum
  5496. {
  5497. value = true
  5498. };
  5499. };
  5500. template <>
  5501. struct StructExtends<BindImagePlaneMemoryInfo, BindImageMemoryInfo>
  5502. {
  5503. enum
  5504. {
  5505. value = true
  5506. };
  5507. };
  5508. template <>
  5509. struct StructExtends<ImagePlaneMemoryRequirementsInfo, ImageMemoryRequirementsInfo2>
  5510. {
  5511. enum
  5512. {
  5513. value = true
  5514. };
  5515. };
  5516. template <>
  5517. struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, PhysicalDeviceFeatures2>
  5518. {
  5519. enum
  5520. {
  5521. value = true
  5522. };
  5523. };
  5524. template <>
  5525. struct StructExtends<PhysicalDeviceSamplerYcbcrConversionFeatures, DeviceCreateInfo>
  5526. {
  5527. enum
  5528. {
  5529. value = true
  5530. };
  5531. };
  5532. template <>
  5533. struct StructExtends<SamplerYcbcrConversionImageFormatProperties, ImageFormatProperties2>
  5534. {
  5535. enum
  5536. {
  5537. value = true
  5538. };
  5539. };
  5540. template <>
  5541. struct StructExtends<PhysicalDeviceExternalImageFormatInfo, PhysicalDeviceImageFormatInfo2>
  5542. {
  5543. enum
  5544. {
  5545. value = true
  5546. };
  5547. };
  5548. template <>
  5549. struct StructExtends<ExternalImageFormatProperties, ImageFormatProperties2>
  5550. {
  5551. enum
  5552. {
  5553. value = true
  5554. };
  5555. };
  5556. template <>
  5557. struct StructExtends<PhysicalDeviceIDProperties, PhysicalDeviceProperties2>
  5558. {
  5559. enum
  5560. {
  5561. value = true
  5562. };
  5563. };
  5564. template <>
  5565. struct StructExtends<ExternalMemoryImageCreateInfo, ImageCreateInfo>
  5566. {
  5567. enum
  5568. {
  5569. value = true
  5570. };
  5571. };
  5572. template <>
  5573. struct StructExtends<ExternalMemoryBufferCreateInfo, BufferCreateInfo>
  5574. {
  5575. enum
  5576. {
  5577. value = true
  5578. };
  5579. };
  5580. template <>
  5581. struct StructExtends<ExportMemoryAllocateInfo, MemoryAllocateInfo>
  5582. {
  5583. enum
  5584. {
  5585. value = true
  5586. };
  5587. };
  5588. template <>
  5589. struct StructExtends<ExportFenceCreateInfo, FenceCreateInfo>
  5590. {
  5591. enum
  5592. {
  5593. value = true
  5594. };
  5595. };
  5596. template <>
  5597. struct StructExtends<ExportSemaphoreCreateInfo, SemaphoreCreateInfo>
  5598. {
  5599. enum
  5600. {
  5601. value = true
  5602. };
  5603. };
  5604. template <>
  5605. struct StructExtends<PhysicalDeviceMaintenance3Properties, PhysicalDeviceProperties2>
  5606. {
  5607. enum
  5608. {
  5609. value = true
  5610. };
  5611. };
  5612. template <>
  5613. struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, PhysicalDeviceFeatures2>
  5614. {
  5615. enum
  5616. {
  5617. value = true
  5618. };
  5619. };
  5620. template <>
  5621. struct StructExtends<PhysicalDeviceShaderDrawParametersFeatures, DeviceCreateInfo>
  5622. {
  5623. enum
  5624. {
  5625. value = true
  5626. };
  5627. };
  5628. //=== VK_VERSION_1_2 ===
  5629. template <>
  5630. struct StructExtends<PhysicalDeviceVulkan11Features, PhysicalDeviceFeatures2>
  5631. {
  5632. enum
  5633. {
  5634. value = true
  5635. };
  5636. };
  5637. template <>
  5638. struct StructExtends<PhysicalDeviceVulkan11Features, DeviceCreateInfo>
  5639. {
  5640. enum
  5641. {
  5642. value = true
  5643. };
  5644. };
  5645. template <>
  5646. struct StructExtends<PhysicalDeviceVulkan11Properties, PhysicalDeviceProperties2>
  5647. {
  5648. enum
  5649. {
  5650. value = true
  5651. };
  5652. };
  5653. template <>
  5654. struct StructExtends<PhysicalDeviceVulkan12Features, PhysicalDeviceFeatures2>
  5655. {
  5656. enum
  5657. {
  5658. value = true
  5659. };
  5660. };
  5661. template <>
  5662. struct StructExtends<PhysicalDeviceVulkan12Features, DeviceCreateInfo>
  5663. {
  5664. enum
  5665. {
  5666. value = true
  5667. };
  5668. };
  5669. template <>
  5670. struct StructExtends<PhysicalDeviceVulkan12Properties, PhysicalDeviceProperties2>
  5671. {
  5672. enum
  5673. {
  5674. value = true
  5675. };
  5676. };
  5677. template <>
  5678. struct StructExtends<ImageFormatListCreateInfo, ImageCreateInfo>
  5679. {
  5680. enum
  5681. {
  5682. value = true
  5683. };
  5684. };
  5685. template <>
  5686. struct StructExtends<ImageFormatListCreateInfo, SwapchainCreateInfoKHR>
  5687. {
  5688. enum
  5689. {
  5690. value = true
  5691. };
  5692. };
  5693. template <>
  5694. struct StructExtends<ImageFormatListCreateInfo, PhysicalDeviceImageFormatInfo2>
  5695. {
  5696. enum
  5697. {
  5698. value = true
  5699. };
  5700. };
  5701. template <>
  5702. struct StructExtends<PhysicalDevice8BitStorageFeatures, PhysicalDeviceFeatures2>
  5703. {
  5704. enum
  5705. {
  5706. value = true
  5707. };
  5708. };
  5709. template <>
  5710. struct StructExtends<PhysicalDevice8BitStorageFeatures, DeviceCreateInfo>
  5711. {
  5712. enum
  5713. {
  5714. value = true
  5715. };
  5716. };
  5717. template <>
  5718. struct StructExtends<PhysicalDeviceDriverProperties, PhysicalDeviceProperties2>
  5719. {
  5720. enum
  5721. {
  5722. value = true
  5723. };
  5724. };
  5725. template <>
  5726. struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, PhysicalDeviceFeatures2>
  5727. {
  5728. enum
  5729. {
  5730. value = true
  5731. };
  5732. };
  5733. template <>
  5734. struct StructExtends<PhysicalDeviceShaderAtomicInt64Features, DeviceCreateInfo>
  5735. {
  5736. enum
  5737. {
  5738. value = true
  5739. };
  5740. };
  5741. template <>
  5742. struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, PhysicalDeviceFeatures2>
  5743. {
  5744. enum
  5745. {
  5746. value = true
  5747. };
  5748. };
  5749. template <>
  5750. struct StructExtends<PhysicalDeviceShaderFloat16Int8Features, DeviceCreateInfo>
  5751. {
  5752. enum
  5753. {
  5754. value = true
  5755. };
  5756. };
  5757. template <>
  5758. struct StructExtends<PhysicalDeviceFloatControlsProperties, PhysicalDeviceProperties2>
  5759. {
  5760. enum
  5761. {
  5762. value = true
  5763. };
  5764. };
  5765. template <>
  5766. struct StructExtends<DescriptorSetLayoutBindingFlagsCreateInfo, DescriptorSetLayoutCreateInfo>
  5767. {
  5768. enum
  5769. {
  5770. value = true
  5771. };
  5772. };
  5773. template <>
  5774. struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, PhysicalDeviceFeatures2>
  5775. {
  5776. enum
  5777. {
  5778. value = true
  5779. };
  5780. };
  5781. template <>
  5782. struct StructExtends<PhysicalDeviceDescriptorIndexingFeatures, DeviceCreateInfo>
  5783. {
  5784. enum
  5785. {
  5786. value = true
  5787. };
  5788. };
  5789. template <>
  5790. struct StructExtends<PhysicalDeviceDescriptorIndexingProperties, PhysicalDeviceProperties2>
  5791. {
  5792. enum
  5793. {
  5794. value = true
  5795. };
  5796. };
  5797. template <>
  5798. struct StructExtends<DescriptorSetVariableDescriptorCountAllocateInfo, DescriptorSetAllocateInfo>
  5799. {
  5800. enum
  5801. {
  5802. value = true
  5803. };
  5804. };
  5805. template <>
  5806. struct StructExtends<DescriptorSetVariableDescriptorCountLayoutSupport, DescriptorSetLayoutSupport>
  5807. {
  5808. enum
  5809. {
  5810. value = true
  5811. };
  5812. };
  5813. template <>
  5814. struct StructExtends<SubpassDescriptionDepthStencilResolve, SubpassDescription2>
  5815. {
  5816. enum
  5817. {
  5818. value = true
  5819. };
  5820. };
  5821. template <>
  5822. struct StructExtends<PhysicalDeviceDepthStencilResolveProperties, PhysicalDeviceProperties2>
  5823. {
  5824. enum
  5825. {
  5826. value = true
  5827. };
  5828. };
  5829. template <>
  5830. struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, PhysicalDeviceFeatures2>
  5831. {
  5832. enum
  5833. {
  5834. value = true
  5835. };
  5836. };
  5837. template <>
  5838. struct StructExtends<PhysicalDeviceScalarBlockLayoutFeatures, DeviceCreateInfo>
  5839. {
  5840. enum
  5841. {
  5842. value = true
  5843. };
  5844. };
  5845. template <>
  5846. struct StructExtends<ImageStencilUsageCreateInfo, ImageCreateInfo>
  5847. {
  5848. enum
  5849. {
  5850. value = true
  5851. };
  5852. };
  5853. template <>
  5854. struct StructExtends<ImageStencilUsageCreateInfo, PhysicalDeviceImageFormatInfo2>
  5855. {
  5856. enum
  5857. {
  5858. value = true
  5859. };
  5860. };
  5861. template <>
  5862. struct StructExtends<SamplerReductionModeCreateInfo, SamplerCreateInfo>
  5863. {
  5864. enum
  5865. {
  5866. value = true
  5867. };
  5868. };
  5869. template <>
  5870. struct StructExtends<PhysicalDeviceSamplerFilterMinmaxProperties, PhysicalDeviceProperties2>
  5871. {
  5872. enum
  5873. {
  5874. value = true
  5875. };
  5876. };
  5877. template <>
  5878. struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, PhysicalDeviceFeatures2>
  5879. {
  5880. enum
  5881. {
  5882. value = true
  5883. };
  5884. };
  5885. template <>
  5886. struct StructExtends<PhysicalDeviceVulkanMemoryModelFeatures, DeviceCreateInfo>
  5887. {
  5888. enum
  5889. {
  5890. value = true
  5891. };
  5892. };
  5893. template <>
  5894. struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, PhysicalDeviceFeatures2>
  5895. {
  5896. enum
  5897. {
  5898. value = true
  5899. };
  5900. };
  5901. template <>
  5902. struct StructExtends<PhysicalDeviceImagelessFramebufferFeatures, DeviceCreateInfo>
  5903. {
  5904. enum
  5905. {
  5906. value = true
  5907. };
  5908. };
  5909. template <>
  5910. struct StructExtends<FramebufferAttachmentsCreateInfo, FramebufferCreateInfo>
  5911. {
  5912. enum
  5913. {
  5914. value = true
  5915. };
  5916. };
  5917. template <>
  5918. struct StructExtends<RenderPassAttachmentBeginInfo, RenderPassBeginInfo>
  5919. {
  5920. enum
  5921. {
  5922. value = true
  5923. };
  5924. };
  5925. template <>
  5926. struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, PhysicalDeviceFeatures2>
  5927. {
  5928. enum
  5929. {
  5930. value = true
  5931. };
  5932. };
  5933. template <>
  5934. struct StructExtends<PhysicalDeviceUniformBufferStandardLayoutFeatures, DeviceCreateInfo>
  5935. {
  5936. enum
  5937. {
  5938. value = true
  5939. };
  5940. };
  5941. template <>
  5942. struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, PhysicalDeviceFeatures2>
  5943. {
  5944. enum
  5945. {
  5946. value = true
  5947. };
  5948. };
  5949. template <>
  5950. struct StructExtends<PhysicalDeviceShaderSubgroupExtendedTypesFeatures, DeviceCreateInfo>
  5951. {
  5952. enum
  5953. {
  5954. value = true
  5955. };
  5956. };
  5957. template <>
  5958. struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, PhysicalDeviceFeatures2>
  5959. {
  5960. enum
  5961. {
  5962. value = true
  5963. };
  5964. };
  5965. template <>
  5966. struct StructExtends<PhysicalDeviceSeparateDepthStencilLayoutsFeatures, DeviceCreateInfo>
  5967. {
  5968. enum
  5969. {
  5970. value = true
  5971. };
  5972. };
  5973. template <>
  5974. struct StructExtends<AttachmentReferenceStencilLayout, AttachmentReference2>
  5975. {
  5976. enum
  5977. {
  5978. value = true
  5979. };
  5980. };
  5981. template <>
  5982. struct StructExtends<AttachmentDescriptionStencilLayout, AttachmentDescription2>
  5983. {
  5984. enum
  5985. {
  5986. value = true
  5987. };
  5988. };
  5989. template <>
  5990. struct StructExtends<PhysicalDeviceHostQueryResetFeatures, PhysicalDeviceFeatures2>
  5991. {
  5992. enum
  5993. {
  5994. value = true
  5995. };
  5996. };
  5997. template <>
  5998. struct StructExtends<PhysicalDeviceHostQueryResetFeatures, DeviceCreateInfo>
  5999. {
  6000. enum
  6001. {
  6002. value = true
  6003. };
  6004. };
  6005. template <>
  6006. struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, PhysicalDeviceFeatures2>
  6007. {
  6008. enum
  6009. {
  6010. value = true
  6011. };
  6012. };
  6013. template <>
  6014. struct StructExtends<PhysicalDeviceTimelineSemaphoreFeatures, DeviceCreateInfo>
  6015. {
  6016. enum
  6017. {
  6018. value = true
  6019. };
  6020. };
  6021. template <>
  6022. struct StructExtends<PhysicalDeviceTimelineSemaphoreProperties, PhysicalDeviceProperties2>
  6023. {
  6024. enum
  6025. {
  6026. value = true
  6027. };
  6028. };
  6029. template <>
  6030. struct StructExtends<SemaphoreTypeCreateInfo, SemaphoreCreateInfo>
  6031. {
  6032. enum
  6033. {
  6034. value = true
  6035. };
  6036. };
  6037. template <>
  6038. struct StructExtends<SemaphoreTypeCreateInfo, PhysicalDeviceExternalSemaphoreInfo>
  6039. {
  6040. enum
  6041. {
  6042. value = true
  6043. };
  6044. };
  6045. template <>
  6046. struct StructExtends<TimelineSemaphoreSubmitInfo, SubmitInfo>
  6047. {
  6048. enum
  6049. {
  6050. value = true
  6051. };
  6052. };
  6053. template <>
  6054. struct StructExtends<TimelineSemaphoreSubmitInfo, BindSparseInfo>
  6055. {
  6056. enum
  6057. {
  6058. value = true
  6059. };
  6060. };
  6061. template <>
  6062. struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, PhysicalDeviceFeatures2>
  6063. {
  6064. enum
  6065. {
  6066. value = true
  6067. };
  6068. };
  6069. template <>
  6070. struct StructExtends<PhysicalDeviceBufferDeviceAddressFeatures, DeviceCreateInfo>
  6071. {
  6072. enum
  6073. {
  6074. value = true
  6075. };
  6076. };
  6077. template <>
  6078. struct StructExtends<BufferOpaqueCaptureAddressCreateInfo, BufferCreateInfo>
  6079. {
  6080. enum
  6081. {
  6082. value = true
  6083. };
  6084. };
  6085. template <>
  6086. struct StructExtends<MemoryOpaqueCaptureAddressAllocateInfo, MemoryAllocateInfo>
  6087. {
  6088. enum
  6089. {
  6090. value = true
  6091. };
  6092. };
  6093. //=== VK_VERSION_1_3 ===
  6094. template <>
  6095. struct StructExtends<PhysicalDeviceVulkan13Features, PhysicalDeviceFeatures2>
  6096. {
  6097. enum
  6098. {
  6099. value = true
  6100. };
  6101. };
  6102. template <>
  6103. struct StructExtends<PhysicalDeviceVulkan13Features, DeviceCreateInfo>
  6104. {
  6105. enum
  6106. {
  6107. value = true
  6108. };
  6109. };
  6110. template <>
  6111. struct StructExtends<PhysicalDeviceVulkan13Properties, PhysicalDeviceProperties2>
  6112. {
  6113. enum
  6114. {
  6115. value = true
  6116. };
  6117. };
  6118. template <>
  6119. struct StructExtends<PipelineCreationFeedbackCreateInfo, GraphicsPipelineCreateInfo>
  6120. {
  6121. enum
  6122. {
  6123. value = true
  6124. };
  6125. };
  6126. template <>
  6127. struct StructExtends<PipelineCreationFeedbackCreateInfo, ComputePipelineCreateInfo>
  6128. {
  6129. enum
  6130. {
  6131. value = true
  6132. };
  6133. };
  6134. template <>
  6135. struct StructExtends<PipelineCreationFeedbackCreateInfo, RayTracingPipelineCreateInfoNV>
  6136. {
  6137. enum
  6138. {
  6139. value = true
  6140. };
  6141. };
  6142. template <>
  6143. struct StructExtends<PipelineCreationFeedbackCreateInfo, RayTracingPipelineCreateInfoKHR>
  6144. {
  6145. enum
  6146. {
  6147. value = true
  6148. };
  6149. };
  6150. template <>
  6151. struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeatures, PhysicalDeviceFeatures2>
  6152. {
  6153. enum
  6154. {
  6155. value = true
  6156. };
  6157. };
  6158. template <>
  6159. struct StructExtends<PhysicalDeviceShaderTerminateInvocationFeatures, DeviceCreateInfo>
  6160. {
  6161. enum
  6162. {
  6163. value = true
  6164. };
  6165. };
  6166. template <>
  6167. struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeatures, PhysicalDeviceFeatures2>
  6168. {
  6169. enum
  6170. {
  6171. value = true
  6172. };
  6173. };
  6174. template <>
  6175. struct StructExtends<PhysicalDeviceShaderDemoteToHelperInvocationFeatures, DeviceCreateInfo>
  6176. {
  6177. enum
  6178. {
  6179. value = true
  6180. };
  6181. };
  6182. template <>
  6183. struct StructExtends<PhysicalDevicePrivateDataFeatures, PhysicalDeviceFeatures2>
  6184. {
  6185. enum
  6186. {
  6187. value = true
  6188. };
  6189. };
  6190. template <>
  6191. struct StructExtends<PhysicalDevicePrivateDataFeatures, DeviceCreateInfo>
  6192. {
  6193. enum
  6194. {
  6195. value = true
  6196. };
  6197. };
  6198. template <>
  6199. struct StructExtends<DevicePrivateDataCreateInfo, DeviceCreateInfo>
  6200. {
  6201. enum
  6202. {
  6203. value = true
  6204. };
  6205. };
  6206. template <>
  6207. struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeatures, PhysicalDeviceFeatures2>
  6208. {
  6209. enum
  6210. {
  6211. value = true
  6212. };
  6213. };
  6214. template <>
  6215. struct StructExtends<PhysicalDevicePipelineCreationCacheControlFeatures, DeviceCreateInfo>
  6216. {
  6217. enum
  6218. {
  6219. value = true
  6220. };
  6221. };
  6222. template <>
  6223. struct StructExtends<MemoryBarrier2, SubpassDependency2>
  6224. {
  6225. enum
  6226. {
  6227. value = true
  6228. };
  6229. };
  6230. template <>
  6231. struct StructExtends<PhysicalDeviceSynchronization2Features, PhysicalDeviceFeatures2>
  6232. {
  6233. enum
  6234. {
  6235. value = true
  6236. };
  6237. };
  6238. template <>
  6239. struct StructExtends<PhysicalDeviceSynchronization2Features, DeviceCreateInfo>
  6240. {
  6241. enum
  6242. {
  6243. value = true
  6244. };
  6245. };
  6246. template <>
  6247. struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, PhysicalDeviceFeatures2>
  6248. {
  6249. enum
  6250. {
  6251. value = true
  6252. };
  6253. };
  6254. template <>
  6255. struct StructExtends<PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures, DeviceCreateInfo>
  6256. {
  6257. enum
  6258. {
  6259. value = true
  6260. };
  6261. };
  6262. template <>
  6263. struct StructExtends<PhysicalDeviceImageRobustnessFeatures, PhysicalDeviceFeatures2>
  6264. {
  6265. enum
  6266. {
  6267. value = true
  6268. };
  6269. };
  6270. template <>
  6271. struct StructExtends<PhysicalDeviceImageRobustnessFeatures, DeviceCreateInfo>
  6272. {
  6273. enum
  6274. {
  6275. value = true
  6276. };
  6277. };
  6278. template <>
  6279. struct StructExtends<PhysicalDeviceSubgroupSizeControlFeatures, PhysicalDeviceFeatures2>
  6280. {
  6281. enum
  6282. {
  6283. value = true
  6284. };
  6285. };
  6286. template <>
  6287. struct StructExtends<PhysicalDeviceSubgroupSizeControlFeatures, DeviceCreateInfo>
  6288. {
  6289. enum
  6290. {
  6291. value = true
  6292. };
  6293. };
  6294. template <>
  6295. struct StructExtends<PhysicalDeviceSubgroupSizeControlProperties, PhysicalDeviceProperties2>
  6296. {
  6297. enum
  6298. {
  6299. value = true
  6300. };
  6301. };
  6302. template <>
  6303. struct StructExtends<PipelineShaderStageRequiredSubgroupSizeCreateInfo, PipelineShaderStageCreateInfo>
  6304. {
  6305. enum
  6306. {
  6307. value = true
  6308. };
  6309. };
  6310. template <>
  6311. struct StructExtends<PhysicalDeviceInlineUniformBlockFeatures, PhysicalDeviceFeatures2>
  6312. {
  6313. enum
  6314. {
  6315. value = true
  6316. };
  6317. };
  6318. template <>
  6319. struct StructExtends<PhysicalDeviceInlineUniformBlockFeatures, DeviceCreateInfo>
  6320. {
  6321. enum
  6322. {
  6323. value = true
  6324. };
  6325. };
  6326. template <>
  6327. struct StructExtends<PhysicalDeviceInlineUniformBlockProperties, PhysicalDeviceProperties2>
  6328. {
  6329. enum
  6330. {
  6331. value = true
  6332. };
  6333. };
  6334. template <>
  6335. struct StructExtends<WriteDescriptorSetInlineUniformBlock, WriteDescriptorSet>
  6336. {
  6337. enum
  6338. {
  6339. value = true
  6340. };
  6341. };
  6342. template <>
  6343. struct StructExtends<DescriptorPoolInlineUniformBlockCreateInfo, DescriptorPoolCreateInfo>
  6344. {
  6345. enum
  6346. {
  6347. value = true
  6348. };
  6349. };
  6350. template <>
  6351. struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeatures, PhysicalDeviceFeatures2>
  6352. {
  6353. enum
  6354. {
  6355. value = true
  6356. };
  6357. };
  6358. template <>
  6359. struct StructExtends<PhysicalDeviceTextureCompressionASTCHDRFeatures, DeviceCreateInfo>
  6360. {
  6361. enum
  6362. {
  6363. value = true
  6364. };
  6365. };
  6366. template <>
  6367. struct StructExtends<PipelineRenderingCreateInfo, GraphicsPipelineCreateInfo>
  6368. {
  6369. enum
  6370. {
  6371. value = true
  6372. };
  6373. };
  6374. template <>
  6375. struct StructExtends<PhysicalDeviceDynamicRenderingFeatures, PhysicalDeviceFeatures2>
  6376. {
  6377. enum
  6378. {
  6379. value = true
  6380. };
  6381. };
  6382. template <>
  6383. struct StructExtends<PhysicalDeviceDynamicRenderingFeatures, DeviceCreateInfo>
  6384. {
  6385. enum
  6386. {
  6387. value = true
  6388. };
  6389. };
  6390. template <>
  6391. struct StructExtends<CommandBufferInheritanceRenderingInfo, CommandBufferInheritanceInfo>
  6392. {
  6393. enum
  6394. {
  6395. value = true
  6396. };
  6397. };
  6398. template <>
  6399. struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeatures, PhysicalDeviceFeatures2>
  6400. {
  6401. enum
  6402. {
  6403. value = true
  6404. };
  6405. };
  6406. template <>
  6407. struct StructExtends<PhysicalDeviceShaderIntegerDotProductFeatures, DeviceCreateInfo>
  6408. {
  6409. enum
  6410. {
  6411. value = true
  6412. };
  6413. };
  6414. template <>
  6415. struct StructExtends<PhysicalDeviceShaderIntegerDotProductProperties, PhysicalDeviceProperties2>
  6416. {
  6417. enum
  6418. {
  6419. value = true
  6420. };
  6421. };
  6422. template <>
  6423. struct StructExtends<PhysicalDeviceTexelBufferAlignmentProperties, PhysicalDeviceProperties2>
  6424. {
  6425. enum
  6426. {
  6427. value = true
  6428. };
  6429. };
  6430. template <>
  6431. struct StructExtends<FormatProperties3, FormatProperties2>
  6432. {
  6433. enum
  6434. {
  6435. value = true
  6436. };
  6437. };
  6438. template <>
  6439. struct StructExtends<PhysicalDeviceMaintenance4Features, PhysicalDeviceFeatures2>
  6440. {
  6441. enum
  6442. {
  6443. value = true
  6444. };
  6445. };
  6446. template <>
  6447. struct StructExtends<PhysicalDeviceMaintenance4Features, DeviceCreateInfo>
  6448. {
  6449. enum
  6450. {
  6451. value = true
  6452. };
  6453. };
  6454. template <>
  6455. struct StructExtends<PhysicalDeviceMaintenance4Properties, PhysicalDeviceProperties2>
  6456. {
  6457. enum
  6458. {
  6459. value = true
  6460. };
  6461. };
  6462. //=== VK_KHR_swapchain ===
  6463. template <>
  6464. struct StructExtends<ImageSwapchainCreateInfoKHR, ImageCreateInfo>
  6465. {
  6466. enum
  6467. {
  6468. value = true
  6469. };
  6470. };
  6471. template <>
  6472. struct StructExtends<BindImageMemorySwapchainInfoKHR, BindImageMemoryInfo>
  6473. {
  6474. enum
  6475. {
  6476. value = true
  6477. };
  6478. };
  6479. template <>
  6480. struct StructExtends<DeviceGroupPresentInfoKHR, PresentInfoKHR>
  6481. {
  6482. enum
  6483. {
  6484. value = true
  6485. };
  6486. };
  6487. template <>
  6488. struct StructExtends<DeviceGroupSwapchainCreateInfoKHR, SwapchainCreateInfoKHR>
  6489. {
  6490. enum
  6491. {
  6492. value = true
  6493. };
  6494. };
  6495. //=== VK_KHR_display_swapchain ===
  6496. template <>
  6497. struct StructExtends<DisplayPresentInfoKHR, PresentInfoKHR>
  6498. {
  6499. enum
  6500. {
  6501. value = true
  6502. };
  6503. };
  6504. //=== VK_EXT_debug_report ===
  6505. template <>
  6506. struct StructExtends<DebugReportCallbackCreateInfoEXT, InstanceCreateInfo>
  6507. {
  6508. enum
  6509. {
  6510. value = true
  6511. };
  6512. };
  6513. //=== VK_AMD_rasterization_order ===
  6514. template <>
  6515. struct StructExtends<PipelineRasterizationStateRasterizationOrderAMD, PipelineRasterizationStateCreateInfo>
  6516. {
  6517. enum
  6518. {
  6519. value = true
  6520. };
  6521. };
  6522. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  6523. //=== VK_KHR_video_queue ===
  6524. template <>
  6525. struct StructExtends<QueueFamilyQueryResultStatusPropertiesKHR, QueueFamilyProperties2>
  6526. {
  6527. enum
  6528. {
  6529. value = true
  6530. };
  6531. };
  6532. template <>
  6533. struct StructExtends<QueueFamilyVideoPropertiesKHR, QueueFamilyProperties2>
  6534. {
  6535. enum
  6536. {
  6537. value = true
  6538. };
  6539. };
  6540. template <>
  6541. struct StructExtends<VideoProfileInfoKHR, QueryPoolCreateInfo>
  6542. {
  6543. enum
  6544. {
  6545. value = true
  6546. };
  6547. };
  6548. template <>
  6549. struct StructExtends<VideoProfileListInfoKHR, PhysicalDeviceImageFormatInfo2>
  6550. {
  6551. enum
  6552. {
  6553. value = true
  6554. };
  6555. };
  6556. template <>
  6557. struct StructExtends<VideoProfileListInfoKHR, PhysicalDeviceVideoFormatInfoKHR>
  6558. {
  6559. enum
  6560. {
  6561. value = true
  6562. };
  6563. };
  6564. template <>
  6565. struct StructExtends<VideoProfileListInfoKHR, ImageCreateInfo>
  6566. {
  6567. enum
  6568. {
  6569. value = true
  6570. };
  6571. };
  6572. template <>
  6573. struct StructExtends<VideoProfileListInfoKHR, BufferCreateInfo>
  6574. {
  6575. enum
  6576. {
  6577. value = true
  6578. };
  6579. };
  6580. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  6581. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  6582. //=== VK_KHR_video_decode_queue ===
  6583. template <>
  6584. struct StructExtends<VideoDecodeCapabilitiesKHR, VideoCapabilitiesKHR>
  6585. {
  6586. enum
  6587. {
  6588. value = true
  6589. };
  6590. };
  6591. template <>
  6592. struct StructExtends<VideoDecodeUsageInfoKHR, VideoProfileInfoKHR>
  6593. {
  6594. enum
  6595. {
  6596. value = true
  6597. };
  6598. };
  6599. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  6600. //=== VK_NV_dedicated_allocation ===
  6601. template <>
  6602. struct StructExtends<DedicatedAllocationImageCreateInfoNV, ImageCreateInfo>
  6603. {
  6604. enum
  6605. {
  6606. value = true
  6607. };
  6608. };
  6609. template <>
  6610. struct StructExtends<DedicatedAllocationBufferCreateInfoNV, BufferCreateInfo>
  6611. {
  6612. enum
  6613. {
  6614. value = true
  6615. };
  6616. };
  6617. template <>
  6618. struct StructExtends<DedicatedAllocationMemoryAllocateInfoNV, MemoryAllocateInfo>
  6619. {
  6620. enum
  6621. {
  6622. value = true
  6623. };
  6624. };
  6625. //=== VK_EXT_transform_feedback ===
  6626. template <>
  6627. struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, PhysicalDeviceFeatures2>
  6628. {
  6629. enum
  6630. {
  6631. value = true
  6632. };
  6633. };
  6634. template <>
  6635. struct StructExtends<PhysicalDeviceTransformFeedbackFeaturesEXT, DeviceCreateInfo>
  6636. {
  6637. enum
  6638. {
  6639. value = true
  6640. };
  6641. };
  6642. template <>
  6643. struct StructExtends<PhysicalDeviceTransformFeedbackPropertiesEXT, PhysicalDeviceProperties2>
  6644. {
  6645. enum
  6646. {
  6647. value = true
  6648. };
  6649. };
  6650. template <>
  6651. struct StructExtends<PipelineRasterizationStateStreamCreateInfoEXT, PipelineRasterizationStateCreateInfo>
  6652. {
  6653. enum
  6654. {
  6655. value = true
  6656. };
  6657. };
  6658. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  6659. //=== VK_EXT_video_encode_h264 ===
  6660. template <>
  6661. struct StructExtends<VideoEncodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
  6662. {
  6663. enum
  6664. {
  6665. value = true
  6666. };
  6667. };
  6668. template <>
  6669. struct StructExtends<VideoEncodeH264SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
  6670. {
  6671. enum
  6672. {
  6673. value = true
  6674. };
  6675. };
  6676. template <>
  6677. struct StructExtends<VideoEncodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
  6678. {
  6679. enum
  6680. {
  6681. value = true
  6682. };
  6683. };
  6684. template <>
  6685. struct StructExtends<VideoEncodeH264VclFrameInfoEXT, VideoEncodeInfoKHR>
  6686. {
  6687. enum
  6688. {
  6689. value = true
  6690. };
  6691. };
  6692. template <>
  6693. struct StructExtends<VideoEncodeH264EmitPictureParametersInfoEXT, VideoEncodeInfoKHR>
  6694. {
  6695. enum
  6696. {
  6697. value = true
  6698. };
  6699. };
  6700. template <>
  6701. struct StructExtends<VideoEncodeH264ProfileInfoEXT, VideoProfileInfoKHR>
  6702. {
  6703. enum
  6704. {
  6705. value = true
  6706. };
  6707. };
  6708. template <>
  6709. struct StructExtends<VideoEncodeH264ProfileInfoEXT, QueryPoolCreateInfo>
  6710. {
  6711. enum
  6712. {
  6713. value = true
  6714. };
  6715. };
  6716. template <>
  6717. struct StructExtends<VideoEncodeH264RateControlInfoEXT, VideoCodingControlInfoKHR>
  6718. {
  6719. enum
  6720. {
  6721. value = true
  6722. };
  6723. };
  6724. template <>
  6725. struct StructExtends<VideoEncodeH264RateControlLayerInfoEXT, VideoCodingControlInfoKHR>
  6726. {
  6727. enum
  6728. {
  6729. value = true
  6730. };
  6731. };
  6732. template <>
  6733. struct StructExtends<VideoEncodeH264RateControlLayerInfoEXT, VideoEncodeRateControlLayerInfoKHR>
  6734. {
  6735. enum
  6736. {
  6737. value = true
  6738. };
  6739. };
  6740. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  6741. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  6742. //=== VK_EXT_video_encode_h265 ===
  6743. template <>
  6744. struct StructExtends<VideoEncodeH265CapabilitiesEXT, VideoCapabilitiesKHR>
  6745. {
  6746. enum
  6747. {
  6748. value = true
  6749. };
  6750. };
  6751. template <>
  6752. struct StructExtends<VideoEncodeH265SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
  6753. {
  6754. enum
  6755. {
  6756. value = true
  6757. };
  6758. };
  6759. template <>
  6760. struct StructExtends<VideoEncodeH265SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
  6761. {
  6762. enum
  6763. {
  6764. value = true
  6765. };
  6766. };
  6767. template <>
  6768. struct StructExtends<VideoEncodeH265VclFrameInfoEXT, VideoEncodeInfoKHR>
  6769. {
  6770. enum
  6771. {
  6772. value = true
  6773. };
  6774. };
  6775. template <>
  6776. struct StructExtends<VideoEncodeH265EmitPictureParametersInfoEXT, VideoEncodeInfoKHR>
  6777. {
  6778. enum
  6779. {
  6780. value = true
  6781. };
  6782. };
  6783. template <>
  6784. struct StructExtends<VideoEncodeH265ProfileInfoEXT, VideoProfileInfoKHR>
  6785. {
  6786. enum
  6787. {
  6788. value = true
  6789. };
  6790. };
  6791. template <>
  6792. struct StructExtends<VideoEncodeH265ProfileInfoEXT, QueryPoolCreateInfo>
  6793. {
  6794. enum
  6795. {
  6796. value = true
  6797. };
  6798. };
  6799. template <>
  6800. struct StructExtends<VideoEncodeH265RateControlInfoEXT, VideoCodingControlInfoKHR>
  6801. {
  6802. enum
  6803. {
  6804. value = true
  6805. };
  6806. };
  6807. template <>
  6808. struct StructExtends<VideoEncodeH265RateControlLayerInfoEXT, VideoCodingControlInfoKHR>
  6809. {
  6810. enum
  6811. {
  6812. value = true
  6813. };
  6814. };
  6815. template <>
  6816. struct StructExtends<VideoEncodeH265RateControlLayerInfoEXT, VideoEncodeRateControlLayerInfoKHR>
  6817. {
  6818. enum
  6819. {
  6820. value = true
  6821. };
  6822. };
  6823. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  6824. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  6825. //=== VK_EXT_video_decode_h264 ===
  6826. template <>
  6827. struct StructExtends<VideoDecodeH264ProfileInfoEXT, VideoProfileInfoKHR>
  6828. {
  6829. enum
  6830. {
  6831. value = true
  6832. };
  6833. };
  6834. template <>
  6835. struct StructExtends<VideoDecodeH264ProfileInfoEXT, QueryPoolCreateInfo>
  6836. {
  6837. enum
  6838. {
  6839. value = true
  6840. };
  6841. };
  6842. template <>
  6843. struct StructExtends<VideoDecodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
  6844. {
  6845. enum
  6846. {
  6847. value = true
  6848. };
  6849. };
  6850. template <>
  6851. struct StructExtends<VideoDecodeH264SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
  6852. {
  6853. enum
  6854. {
  6855. value = true
  6856. };
  6857. };
  6858. template <>
  6859. struct StructExtends<VideoDecodeH264SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
  6860. {
  6861. enum
  6862. {
  6863. value = true
  6864. };
  6865. };
  6866. template <>
  6867. struct StructExtends<VideoDecodeH264PictureInfoEXT, VideoDecodeInfoKHR>
  6868. {
  6869. enum
  6870. {
  6871. value = true
  6872. };
  6873. };
  6874. template <>
  6875. struct StructExtends<VideoDecodeH264MvcInfoEXT, VideoDecodeH264PictureInfoEXT>
  6876. {
  6877. enum
  6878. {
  6879. value = true
  6880. };
  6881. };
  6882. template <>
  6883. struct StructExtends<VideoDecodeH264DpbSlotInfoEXT, VideoReferenceSlotInfoKHR>
  6884. {
  6885. enum
  6886. {
  6887. value = true
  6888. };
  6889. };
  6890. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  6891. //=== VK_AMD_texture_gather_bias_lod ===
  6892. template <>
  6893. struct StructExtends<TextureLODGatherFormatPropertiesAMD, ImageFormatProperties2>
  6894. {
  6895. enum
  6896. {
  6897. value = true
  6898. };
  6899. };
  6900. //=== VK_KHR_dynamic_rendering ===
  6901. template <>
  6902. struct StructExtends<RenderingFragmentShadingRateAttachmentInfoKHR, RenderingInfo>
  6903. {
  6904. enum
  6905. {
  6906. value = true
  6907. };
  6908. };
  6909. template <>
  6910. struct StructExtends<RenderingFragmentDensityMapAttachmentInfoEXT, RenderingInfo>
  6911. {
  6912. enum
  6913. {
  6914. value = true
  6915. };
  6916. };
  6917. template <>
  6918. struct StructExtends<AttachmentSampleCountInfoAMD, CommandBufferInheritanceInfo>
  6919. {
  6920. enum
  6921. {
  6922. value = true
  6923. };
  6924. };
  6925. template <>
  6926. struct StructExtends<AttachmentSampleCountInfoAMD, GraphicsPipelineCreateInfo>
  6927. {
  6928. enum
  6929. {
  6930. value = true
  6931. };
  6932. };
  6933. template <>
  6934. struct StructExtends<MultiviewPerViewAttributesInfoNVX, CommandBufferInheritanceInfo>
  6935. {
  6936. enum
  6937. {
  6938. value = true
  6939. };
  6940. };
  6941. template <>
  6942. struct StructExtends<MultiviewPerViewAttributesInfoNVX, GraphicsPipelineCreateInfo>
  6943. {
  6944. enum
  6945. {
  6946. value = true
  6947. };
  6948. };
  6949. template <>
  6950. struct StructExtends<MultiviewPerViewAttributesInfoNVX, RenderingInfo>
  6951. {
  6952. enum
  6953. {
  6954. value = true
  6955. };
  6956. };
  6957. //=== VK_NV_corner_sampled_image ===
  6958. template <>
  6959. struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>
  6960. {
  6961. enum
  6962. {
  6963. value = true
  6964. };
  6965. };
  6966. template <>
  6967. struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, DeviceCreateInfo>
  6968. {
  6969. enum
  6970. {
  6971. value = true
  6972. };
  6973. };
  6974. //=== VK_NV_external_memory ===
  6975. template <>
  6976. struct StructExtends<ExternalMemoryImageCreateInfoNV, ImageCreateInfo>
  6977. {
  6978. enum
  6979. {
  6980. value = true
  6981. };
  6982. };
  6983. template <>
  6984. struct StructExtends<ExportMemoryAllocateInfoNV, MemoryAllocateInfo>
  6985. {
  6986. enum
  6987. {
  6988. value = true
  6989. };
  6990. };
  6991. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  6992. //=== VK_NV_external_memory_win32 ===
  6993. template <>
  6994. struct StructExtends<ImportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
  6995. {
  6996. enum
  6997. {
  6998. value = true
  6999. };
  7000. };
  7001. template <>
  7002. struct StructExtends<ExportMemoryWin32HandleInfoNV, MemoryAllocateInfo>
  7003. {
  7004. enum
  7005. {
  7006. value = true
  7007. };
  7008. };
  7009. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  7010. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  7011. //=== VK_NV_win32_keyed_mutex ===
  7012. template <>
  7013. struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo>
  7014. {
  7015. enum
  7016. {
  7017. value = true
  7018. };
  7019. };
  7020. template <>
  7021. struct StructExtends<Win32KeyedMutexAcquireReleaseInfoNV, SubmitInfo2>
  7022. {
  7023. enum
  7024. {
  7025. value = true
  7026. };
  7027. };
  7028. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  7029. //=== VK_EXT_validation_flags ===
  7030. template <>
  7031. struct StructExtends<ValidationFlagsEXT, InstanceCreateInfo>
  7032. {
  7033. enum
  7034. {
  7035. value = true
  7036. };
  7037. };
  7038. //=== VK_EXT_astc_decode_mode ===
  7039. template <>
  7040. struct StructExtends<ImageViewASTCDecodeModeEXT, ImageViewCreateInfo>
  7041. {
  7042. enum
  7043. {
  7044. value = true
  7045. };
  7046. };
  7047. template <>
  7048. struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, PhysicalDeviceFeatures2>
  7049. {
  7050. enum
  7051. {
  7052. value = true
  7053. };
  7054. };
  7055. template <>
  7056. struct StructExtends<PhysicalDeviceASTCDecodeFeaturesEXT, DeviceCreateInfo>
  7057. {
  7058. enum
  7059. {
  7060. value = true
  7061. };
  7062. };
  7063. //=== VK_EXT_pipeline_robustness ===
  7064. template <>
  7065. struct StructExtends<PhysicalDevicePipelineRobustnessFeaturesEXT, PhysicalDeviceFeatures2>
  7066. {
  7067. enum
  7068. {
  7069. value = true
  7070. };
  7071. };
  7072. template <>
  7073. struct StructExtends<PhysicalDevicePipelineRobustnessFeaturesEXT, DeviceCreateInfo>
  7074. {
  7075. enum
  7076. {
  7077. value = true
  7078. };
  7079. };
  7080. template <>
  7081. struct StructExtends<PhysicalDevicePipelineRobustnessPropertiesEXT, PhysicalDeviceProperties2>
  7082. {
  7083. enum
  7084. {
  7085. value = true
  7086. };
  7087. };
  7088. template <>
  7089. struct StructExtends<PipelineRobustnessCreateInfoEXT, GraphicsPipelineCreateInfo>
  7090. {
  7091. enum
  7092. {
  7093. value = true
  7094. };
  7095. };
  7096. template <>
  7097. struct StructExtends<PipelineRobustnessCreateInfoEXT, ComputePipelineCreateInfo>
  7098. {
  7099. enum
  7100. {
  7101. value = true
  7102. };
  7103. };
  7104. template <>
  7105. struct StructExtends<PipelineRobustnessCreateInfoEXT, PipelineShaderStageCreateInfo>
  7106. {
  7107. enum
  7108. {
  7109. value = true
  7110. };
  7111. };
  7112. template <>
  7113. struct StructExtends<PipelineRobustnessCreateInfoEXT, RayTracingPipelineCreateInfoKHR>
  7114. {
  7115. enum
  7116. {
  7117. value = true
  7118. };
  7119. };
  7120. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  7121. //=== VK_KHR_external_memory_win32 ===
  7122. template <>
  7123. struct StructExtends<ImportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
  7124. {
  7125. enum
  7126. {
  7127. value = true
  7128. };
  7129. };
  7130. template <>
  7131. struct StructExtends<ExportMemoryWin32HandleInfoKHR, MemoryAllocateInfo>
  7132. {
  7133. enum
  7134. {
  7135. value = true
  7136. };
  7137. };
  7138. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  7139. //=== VK_KHR_external_memory_fd ===
  7140. template <>
  7141. struct StructExtends<ImportMemoryFdInfoKHR, MemoryAllocateInfo>
  7142. {
  7143. enum
  7144. {
  7145. value = true
  7146. };
  7147. };
  7148. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  7149. //=== VK_KHR_win32_keyed_mutex ===
  7150. template <>
  7151. struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo>
  7152. {
  7153. enum
  7154. {
  7155. value = true
  7156. };
  7157. };
  7158. template <>
  7159. struct StructExtends<Win32KeyedMutexAcquireReleaseInfoKHR, SubmitInfo2>
  7160. {
  7161. enum
  7162. {
  7163. value = true
  7164. };
  7165. };
  7166. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  7167. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  7168. //=== VK_KHR_external_semaphore_win32 ===
  7169. template <>
  7170. struct StructExtends<ExportSemaphoreWin32HandleInfoKHR, SemaphoreCreateInfo>
  7171. {
  7172. enum
  7173. {
  7174. value = true
  7175. };
  7176. };
  7177. template <>
  7178. struct StructExtends<D3D12FenceSubmitInfoKHR, SubmitInfo>
  7179. {
  7180. enum
  7181. {
  7182. value = true
  7183. };
  7184. };
  7185. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  7186. //=== VK_KHR_push_descriptor ===
  7187. template <>
  7188. struct StructExtends<PhysicalDevicePushDescriptorPropertiesKHR, PhysicalDeviceProperties2>
  7189. {
  7190. enum
  7191. {
  7192. value = true
  7193. };
  7194. };
  7195. //=== VK_EXT_conditional_rendering ===
  7196. template <>
  7197. struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, PhysicalDeviceFeatures2>
  7198. {
  7199. enum
  7200. {
  7201. value = true
  7202. };
  7203. };
  7204. template <>
  7205. struct StructExtends<PhysicalDeviceConditionalRenderingFeaturesEXT, DeviceCreateInfo>
  7206. {
  7207. enum
  7208. {
  7209. value = true
  7210. };
  7211. };
  7212. template <>
  7213. struct StructExtends<CommandBufferInheritanceConditionalRenderingInfoEXT, CommandBufferInheritanceInfo>
  7214. {
  7215. enum
  7216. {
  7217. value = true
  7218. };
  7219. };
  7220. //=== VK_KHR_incremental_present ===
  7221. template <>
  7222. struct StructExtends<PresentRegionsKHR, PresentInfoKHR>
  7223. {
  7224. enum
  7225. {
  7226. value = true
  7227. };
  7228. };
  7229. //=== VK_NV_clip_space_w_scaling ===
  7230. template <>
  7231. struct StructExtends<PipelineViewportWScalingStateCreateInfoNV, PipelineViewportStateCreateInfo>
  7232. {
  7233. enum
  7234. {
  7235. value = true
  7236. };
  7237. };
  7238. //=== VK_EXT_display_control ===
  7239. template <>
  7240. struct StructExtends<SwapchainCounterCreateInfoEXT, SwapchainCreateInfoKHR>
  7241. {
  7242. enum
  7243. {
  7244. value = true
  7245. };
  7246. };
  7247. //=== VK_GOOGLE_display_timing ===
  7248. template <>
  7249. struct StructExtends<PresentTimesInfoGOOGLE, PresentInfoKHR>
  7250. {
  7251. enum
  7252. {
  7253. value = true
  7254. };
  7255. };
  7256. //=== VK_NVX_multiview_per_view_attributes ===
  7257. template <>
  7258. struct StructExtends<PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, PhysicalDeviceProperties2>
  7259. {
  7260. enum
  7261. {
  7262. value = true
  7263. };
  7264. };
  7265. //=== VK_NV_viewport_swizzle ===
  7266. template <>
  7267. struct StructExtends<PipelineViewportSwizzleStateCreateInfoNV, PipelineViewportStateCreateInfo>
  7268. {
  7269. enum
  7270. {
  7271. value = true
  7272. };
  7273. };
  7274. //=== VK_EXT_discard_rectangles ===
  7275. template <>
  7276. struct StructExtends<PhysicalDeviceDiscardRectanglePropertiesEXT, PhysicalDeviceProperties2>
  7277. {
  7278. enum
  7279. {
  7280. value = true
  7281. };
  7282. };
  7283. template <>
  7284. struct StructExtends<PipelineDiscardRectangleStateCreateInfoEXT, GraphicsPipelineCreateInfo>
  7285. {
  7286. enum
  7287. {
  7288. value = true
  7289. };
  7290. };
  7291. //=== VK_EXT_conservative_rasterization ===
  7292. template <>
  7293. struct StructExtends<PhysicalDeviceConservativeRasterizationPropertiesEXT, PhysicalDeviceProperties2>
  7294. {
  7295. enum
  7296. {
  7297. value = true
  7298. };
  7299. };
  7300. template <>
  7301. struct StructExtends<PipelineRasterizationConservativeStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
  7302. {
  7303. enum
  7304. {
  7305. value = true
  7306. };
  7307. };
  7308. //=== VK_EXT_depth_clip_enable ===
  7309. template <>
  7310. struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, PhysicalDeviceFeatures2>
  7311. {
  7312. enum
  7313. {
  7314. value = true
  7315. };
  7316. };
  7317. template <>
  7318. struct StructExtends<PhysicalDeviceDepthClipEnableFeaturesEXT, DeviceCreateInfo>
  7319. {
  7320. enum
  7321. {
  7322. value = true
  7323. };
  7324. };
  7325. template <>
  7326. struct StructExtends<PipelineRasterizationDepthClipStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
  7327. {
  7328. enum
  7329. {
  7330. value = true
  7331. };
  7332. };
  7333. //=== VK_KHR_shared_presentable_image ===
  7334. template <>
  7335. struct StructExtends<SharedPresentSurfaceCapabilitiesKHR, SurfaceCapabilities2KHR>
  7336. {
  7337. enum
  7338. {
  7339. value = true
  7340. };
  7341. };
  7342. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  7343. //=== VK_KHR_external_fence_win32 ===
  7344. template <>
  7345. struct StructExtends<ExportFenceWin32HandleInfoKHR, FenceCreateInfo>
  7346. {
  7347. enum
  7348. {
  7349. value = true
  7350. };
  7351. };
  7352. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  7353. //=== VK_KHR_performance_query ===
  7354. template <>
  7355. struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, PhysicalDeviceFeatures2>
  7356. {
  7357. enum
  7358. {
  7359. value = true
  7360. };
  7361. };
  7362. template <>
  7363. struct StructExtends<PhysicalDevicePerformanceQueryFeaturesKHR, DeviceCreateInfo>
  7364. {
  7365. enum
  7366. {
  7367. value = true
  7368. };
  7369. };
  7370. template <>
  7371. struct StructExtends<PhysicalDevicePerformanceQueryPropertiesKHR, PhysicalDeviceProperties2>
  7372. {
  7373. enum
  7374. {
  7375. value = true
  7376. };
  7377. };
  7378. template <>
  7379. struct StructExtends<QueryPoolPerformanceCreateInfoKHR, QueryPoolCreateInfo>
  7380. {
  7381. enum
  7382. {
  7383. value = true
  7384. };
  7385. };
  7386. template <>
  7387. struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo>
  7388. {
  7389. enum
  7390. {
  7391. value = true
  7392. };
  7393. };
  7394. template <>
  7395. struct StructExtends<PerformanceQuerySubmitInfoKHR, SubmitInfo2>
  7396. {
  7397. enum
  7398. {
  7399. value = true
  7400. };
  7401. };
  7402. //=== VK_EXT_debug_utils ===
  7403. template <>
  7404. struct StructExtends<DebugUtilsMessengerCreateInfoEXT, InstanceCreateInfo>
  7405. {
  7406. enum
  7407. {
  7408. value = true
  7409. };
  7410. };
  7411. template <>
  7412. struct StructExtends<DebugUtilsObjectNameInfoEXT, PipelineShaderStageCreateInfo>
  7413. {
  7414. enum
  7415. {
  7416. value = true
  7417. };
  7418. };
  7419. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  7420. //=== VK_ANDROID_external_memory_android_hardware_buffer ===
  7421. template <>
  7422. struct StructExtends<AndroidHardwareBufferUsageANDROID, ImageFormatProperties2>
  7423. {
  7424. enum
  7425. {
  7426. value = true
  7427. };
  7428. };
  7429. template <>
  7430. struct StructExtends<AndroidHardwareBufferFormatPropertiesANDROID, AndroidHardwareBufferPropertiesANDROID>
  7431. {
  7432. enum
  7433. {
  7434. value = true
  7435. };
  7436. };
  7437. template <>
  7438. struct StructExtends<ImportAndroidHardwareBufferInfoANDROID, MemoryAllocateInfo>
  7439. {
  7440. enum
  7441. {
  7442. value = true
  7443. };
  7444. };
  7445. template <>
  7446. struct StructExtends<ExternalFormatANDROID, ImageCreateInfo>
  7447. {
  7448. enum
  7449. {
  7450. value = true
  7451. };
  7452. };
  7453. template <>
  7454. struct StructExtends<ExternalFormatANDROID, SamplerYcbcrConversionCreateInfo>
  7455. {
  7456. enum
  7457. {
  7458. value = true
  7459. };
  7460. };
  7461. template <>
  7462. struct StructExtends<AndroidHardwareBufferFormatProperties2ANDROID, AndroidHardwareBufferPropertiesANDROID>
  7463. {
  7464. enum
  7465. {
  7466. value = true
  7467. };
  7468. };
  7469. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  7470. //=== VK_EXT_sample_locations ===
  7471. template <>
  7472. struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier>
  7473. {
  7474. enum
  7475. {
  7476. value = true
  7477. };
  7478. };
  7479. template <>
  7480. struct StructExtends<SampleLocationsInfoEXT, ImageMemoryBarrier2>
  7481. {
  7482. enum
  7483. {
  7484. value = true
  7485. };
  7486. };
  7487. template <>
  7488. struct StructExtends<RenderPassSampleLocationsBeginInfoEXT, RenderPassBeginInfo>
  7489. {
  7490. enum
  7491. {
  7492. value = true
  7493. };
  7494. };
  7495. template <>
  7496. struct StructExtends<PipelineSampleLocationsStateCreateInfoEXT, PipelineMultisampleStateCreateInfo>
  7497. {
  7498. enum
  7499. {
  7500. value = true
  7501. };
  7502. };
  7503. template <>
  7504. struct StructExtends<PhysicalDeviceSampleLocationsPropertiesEXT, PhysicalDeviceProperties2>
  7505. {
  7506. enum
  7507. {
  7508. value = true
  7509. };
  7510. };
  7511. //=== VK_EXT_blend_operation_advanced ===
  7512. template <>
  7513. struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, PhysicalDeviceFeatures2>
  7514. {
  7515. enum
  7516. {
  7517. value = true
  7518. };
  7519. };
  7520. template <>
  7521. struct StructExtends<PhysicalDeviceBlendOperationAdvancedFeaturesEXT, DeviceCreateInfo>
  7522. {
  7523. enum
  7524. {
  7525. value = true
  7526. };
  7527. };
  7528. template <>
  7529. struct StructExtends<PhysicalDeviceBlendOperationAdvancedPropertiesEXT, PhysicalDeviceProperties2>
  7530. {
  7531. enum
  7532. {
  7533. value = true
  7534. };
  7535. };
  7536. template <>
  7537. struct StructExtends<PipelineColorBlendAdvancedStateCreateInfoEXT, PipelineColorBlendStateCreateInfo>
  7538. {
  7539. enum
  7540. {
  7541. value = true
  7542. };
  7543. };
  7544. //=== VK_NV_fragment_coverage_to_color ===
  7545. template <>
  7546. struct StructExtends<PipelineCoverageToColorStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
  7547. {
  7548. enum
  7549. {
  7550. value = true
  7551. };
  7552. };
  7553. //=== VK_KHR_acceleration_structure ===
  7554. template <>
  7555. struct StructExtends<WriteDescriptorSetAccelerationStructureKHR, WriteDescriptorSet>
  7556. {
  7557. enum
  7558. {
  7559. value = true
  7560. };
  7561. };
  7562. template <>
  7563. struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, PhysicalDeviceFeatures2>
  7564. {
  7565. enum
  7566. {
  7567. value = true
  7568. };
  7569. };
  7570. template <>
  7571. struct StructExtends<PhysicalDeviceAccelerationStructureFeaturesKHR, DeviceCreateInfo>
  7572. {
  7573. enum
  7574. {
  7575. value = true
  7576. };
  7577. };
  7578. template <>
  7579. struct StructExtends<PhysicalDeviceAccelerationStructurePropertiesKHR, PhysicalDeviceProperties2>
  7580. {
  7581. enum
  7582. {
  7583. value = true
  7584. };
  7585. };
  7586. //=== VK_NV_framebuffer_mixed_samples ===
  7587. template <>
  7588. struct StructExtends<PipelineCoverageModulationStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
  7589. {
  7590. enum
  7591. {
  7592. value = true
  7593. };
  7594. };
  7595. //=== VK_NV_shader_sm_builtins ===
  7596. template <>
  7597. struct StructExtends<PhysicalDeviceShaderSMBuiltinsPropertiesNV, PhysicalDeviceProperties2>
  7598. {
  7599. enum
  7600. {
  7601. value = true
  7602. };
  7603. };
  7604. template <>
  7605. struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, PhysicalDeviceFeatures2>
  7606. {
  7607. enum
  7608. {
  7609. value = true
  7610. };
  7611. };
  7612. template <>
  7613. struct StructExtends<PhysicalDeviceShaderSMBuiltinsFeaturesNV, DeviceCreateInfo>
  7614. {
  7615. enum
  7616. {
  7617. value = true
  7618. };
  7619. };
  7620. //=== VK_EXT_image_drm_format_modifier ===
  7621. template <>
  7622. struct StructExtends<DrmFormatModifierPropertiesListEXT, FormatProperties2>
  7623. {
  7624. enum
  7625. {
  7626. value = true
  7627. };
  7628. };
  7629. template <>
  7630. struct StructExtends<PhysicalDeviceImageDrmFormatModifierInfoEXT, PhysicalDeviceImageFormatInfo2>
  7631. {
  7632. enum
  7633. {
  7634. value = true
  7635. };
  7636. };
  7637. template <>
  7638. struct StructExtends<ImageDrmFormatModifierListCreateInfoEXT, ImageCreateInfo>
  7639. {
  7640. enum
  7641. {
  7642. value = true
  7643. };
  7644. };
  7645. template <>
  7646. struct StructExtends<ImageDrmFormatModifierExplicitCreateInfoEXT, ImageCreateInfo>
  7647. {
  7648. enum
  7649. {
  7650. value = true
  7651. };
  7652. };
  7653. template <>
  7654. struct StructExtends<DrmFormatModifierPropertiesList2EXT, FormatProperties2>
  7655. {
  7656. enum
  7657. {
  7658. value = true
  7659. };
  7660. };
  7661. //=== VK_EXT_validation_cache ===
  7662. template <>
  7663. struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, ShaderModuleCreateInfo>
  7664. {
  7665. enum
  7666. {
  7667. value = true
  7668. };
  7669. };
  7670. template <>
  7671. struct StructExtends<ShaderModuleValidationCacheCreateInfoEXT, PipelineShaderStageCreateInfo>
  7672. {
  7673. enum
  7674. {
  7675. value = true
  7676. };
  7677. };
  7678. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  7679. //=== VK_KHR_portability_subset ===
  7680. template <>
  7681. struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, PhysicalDeviceFeatures2>
  7682. {
  7683. enum
  7684. {
  7685. value = true
  7686. };
  7687. };
  7688. template <>
  7689. struct StructExtends<PhysicalDevicePortabilitySubsetFeaturesKHR, DeviceCreateInfo>
  7690. {
  7691. enum
  7692. {
  7693. value = true
  7694. };
  7695. };
  7696. template <>
  7697. struct StructExtends<PhysicalDevicePortabilitySubsetPropertiesKHR, PhysicalDeviceProperties2>
  7698. {
  7699. enum
  7700. {
  7701. value = true
  7702. };
  7703. };
  7704. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  7705. //=== VK_NV_shading_rate_image ===
  7706. template <>
  7707. struct StructExtends<PipelineViewportShadingRateImageStateCreateInfoNV, PipelineViewportStateCreateInfo>
  7708. {
  7709. enum
  7710. {
  7711. value = true
  7712. };
  7713. };
  7714. template <>
  7715. struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, PhysicalDeviceFeatures2>
  7716. {
  7717. enum
  7718. {
  7719. value = true
  7720. };
  7721. };
  7722. template <>
  7723. struct StructExtends<PhysicalDeviceShadingRateImageFeaturesNV, DeviceCreateInfo>
  7724. {
  7725. enum
  7726. {
  7727. value = true
  7728. };
  7729. };
  7730. template <>
  7731. struct StructExtends<PhysicalDeviceShadingRateImagePropertiesNV, PhysicalDeviceProperties2>
  7732. {
  7733. enum
  7734. {
  7735. value = true
  7736. };
  7737. };
  7738. template <>
  7739. struct StructExtends<PipelineViewportCoarseSampleOrderStateCreateInfoNV, PipelineViewportStateCreateInfo>
  7740. {
  7741. enum
  7742. {
  7743. value = true
  7744. };
  7745. };
  7746. //=== VK_NV_ray_tracing ===
  7747. template <>
  7748. struct StructExtends<WriteDescriptorSetAccelerationStructureNV, WriteDescriptorSet>
  7749. {
  7750. enum
  7751. {
  7752. value = true
  7753. };
  7754. };
  7755. template <>
  7756. struct StructExtends<PhysicalDeviceRayTracingPropertiesNV, PhysicalDeviceProperties2>
  7757. {
  7758. enum
  7759. {
  7760. value = true
  7761. };
  7762. };
  7763. //=== VK_NV_representative_fragment_test ===
  7764. template <>
  7765. struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, PhysicalDeviceFeatures2>
  7766. {
  7767. enum
  7768. {
  7769. value = true
  7770. };
  7771. };
  7772. template <>
  7773. struct StructExtends<PhysicalDeviceRepresentativeFragmentTestFeaturesNV, DeviceCreateInfo>
  7774. {
  7775. enum
  7776. {
  7777. value = true
  7778. };
  7779. };
  7780. template <>
  7781. struct StructExtends<PipelineRepresentativeFragmentTestStateCreateInfoNV, GraphicsPipelineCreateInfo>
  7782. {
  7783. enum
  7784. {
  7785. value = true
  7786. };
  7787. };
  7788. //=== VK_EXT_filter_cubic ===
  7789. template <>
  7790. struct StructExtends<PhysicalDeviceImageViewImageFormatInfoEXT, PhysicalDeviceImageFormatInfo2>
  7791. {
  7792. enum
  7793. {
  7794. value = true
  7795. };
  7796. };
  7797. template <>
  7798. struct StructExtends<FilterCubicImageViewImageFormatPropertiesEXT, ImageFormatProperties2>
  7799. {
  7800. enum
  7801. {
  7802. value = true
  7803. };
  7804. };
  7805. //=== VK_EXT_external_memory_host ===
  7806. template <>
  7807. struct StructExtends<ImportMemoryHostPointerInfoEXT, MemoryAllocateInfo>
  7808. {
  7809. enum
  7810. {
  7811. value = true
  7812. };
  7813. };
  7814. template <>
  7815. struct StructExtends<PhysicalDeviceExternalMemoryHostPropertiesEXT, PhysicalDeviceProperties2>
  7816. {
  7817. enum
  7818. {
  7819. value = true
  7820. };
  7821. };
  7822. //=== VK_KHR_shader_clock ===
  7823. template <>
  7824. struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, PhysicalDeviceFeatures2>
  7825. {
  7826. enum
  7827. {
  7828. value = true
  7829. };
  7830. };
  7831. template <>
  7832. struct StructExtends<PhysicalDeviceShaderClockFeaturesKHR, DeviceCreateInfo>
  7833. {
  7834. enum
  7835. {
  7836. value = true
  7837. };
  7838. };
  7839. //=== VK_AMD_pipeline_compiler_control ===
  7840. template <>
  7841. struct StructExtends<PipelineCompilerControlCreateInfoAMD, GraphicsPipelineCreateInfo>
  7842. {
  7843. enum
  7844. {
  7845. value = true
  7846. };
  7847. };
  7848. template <>
  7849. struct StructExtends<PipelineCompilerControlCreateInfoAMD, ComputePipelineCreateInfo>
  7850. {
  7851. enum
  7852. {
  7853. value = true
  7854. };
  7855. };
  7856. //=== VK_AMD_shader_core_properties ===
  7857. template <>
  7858. struct StructExtends<PhysicalDeviceShaderCorePropertiesAMD, PhysicalDeviceProperties2>
  7859. {
  7860. enum
  7861. {
  7862. value = true
  7863. };
  7864. };
  7865. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  7866. //=== VK_EXT_video_decode_h265 ===
  7867. template <>
  7868. struct StructExtends<VideoDecodeH265ProfileInfoEXT, VideoProfileInfoKHR>
  7869. {
  7870. enum
  7871. {
  7872. value = true
  7873. };
  7874. };
  7875. template <>
  7876. struct StructExtends<VideoDecodeH265ProfileInfoEXT, QueryPoolCreateInfo>
  7877. {
  7878. enum
  7879. {
  7880. value = true
  7881. };
  7882. };
  7883. template <>
  7884. struct StructExtends<VideoDecodeH265CapabilitiesEXT, VideoCapabilitiesKHR>
  7885. {
  7886. enum
  7887. {
  7888. value = true
  7889. };
  7890. };
  7891. template <>
  7892. struct StructExtends<VideoDecodeH265SessionParametersCreateInfoEXT, VideoSessionParametersCreateInfoKHR>
  7893. {
  7894. enum
  7895. {
  7896. value = true
  7897. };
  7898. };
  7899. template <>
  7900. struct StructExtends<VideoDecodeH265SessionParametersAddInfoEXT, VideoSessionParametersUpdateInfoKHR>
  7901. {
  7902. enum
  7903. {
  7904. value = true
  7905. };
  7906. };
  7907. template <>
  7908. struct StructExtends<VideoDecodeH265PictureInfoEXT, VideoDecodeInfoKHR>
  7909. {
  7910. enum
  7911. {
  7912. value = true
  7913. };
  7914. };
  7915. template <>
  7916. struct StructExtends<VideoDecodeH265DpbSlotInfoEXT, VideoReferenceSlotInfoKHR>
  7917. {
  7918. enum
  7919. {
  7920. value = true
  7921. };
  7922. };
  7923. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  7924. //=== VK_KHR_global_priority ===
  7925. template <>
  7926. struct StructExtends<DeviceQueueGlobalPriorityCreateInfoKHR, DeviceQueueCreateInfo>
  7927. {
  7928. enum
  7929. {
  7930. value = true
  7931. };
  7932. };
  7933. template <>
  7934. struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesKHR, PhysicalDeviceFeatures2>
  7935. {
  7936. enum
  7937. {
  7938. value = true
  7939. };
  7940. };
  7941. template <>
  7942. struct StructExtends<PhysicalDeviceGlobalPriorityQueryFeaturesKHR, DeviceCreateInfo>
  7943. {
  7944. enum
  7945. {
  7946. value = true
  7947. };
  7948. };
  7949. template <>
  7950. struct StructExtends<QueueFamilyGlobalPriorityPropertiesKHR, QueueFamilyProperties2>
  7951. {
  7952. enum
  7953. {
  7954. value = true
  7955. };
  7956. };
  7957. //=== VK_AMD_memory_overallocation_behavior ===
  7958. template <>
  7959. struct StructExtends<DeviceMemoryOverallocationCreateInfoAMD, DeviceCreateInfo>
  7960. {
  7961. enum
  7962. {
  7963. value = true
  7964. };
  7965. };
  7966. //=== VK_EXT_vertex_attribute_divisor ===
  7967. template <>
  7968. struct StructExtends<PhysicalDeviceVertexAttributeDivisorPropertiesEXT, PhysicalDeviceProperties2>
  7969. {
  7970. enum
  7971. {
  7972. value = true
  7973. };
  7974. };
  7975. template <>
  7976. struct StructExtends<PipelineVertexInputDivisorStateCreateInfoEXT, PipelineVertexInputStateCreateInfo>
  7977. {
  7978. enum
  7979. {
  7980. value = true
  7981. };
  7982. };
  7983. template <>
  7984. struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, PhysicalDeviceFeatures2>
  7985. {
  7986. enum
  7987. {
  7988. value = true
  7989. };
  7990. };
  7991. template <>
  7992. struct StructExtends<PhysicalDeviceVertexAttributeDivisorFeaturesEXT, DeviceCreateInfo>
  7993. {
  7994. enum
  7995. {
  7996. value = true
  7997. };
  7998. };
  7999. # if defined( VK_USE_PLATFORM_GGP )
  8000. //=== VK_GGP_frame_token ===
  8001. template <>
  8002. struct StructExtends<PresentFrameTokenGGP, PresentInfoKHR>
  8003. {
  8004. enum
  8005. {
  8006. value = true
  8007. };
  8008. };
  8009. # endif /*VK_USE_PLATFORM_GGP*/
  8010. //=== VK_NV_compute_shader_derivatives ===
  8011. template <>
  8012. struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, PhysicalDeviceFeatures2>
  8013. {
  8014. enum
  8015. {
  8016. value = true
  8017. };
  8018. };
  8019. template <>
  8020. struct StructExtends<PhysicalDeviceComputeShaderDerivativesFeaturesNV, DeviceCreateInfo>
  8021. {
  8022. enum
  8023. {
  8024. value = true
  8025. };
  8026. };
  8027. //=== VK_NV_mesh_shader ===
  8028. template <>
  8029. struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, PhysicalDeviceFeatures2>
  8030. {
  8031. enum
  8032. {
  8033. value = true
  8034. };
  8035. };
  8036. template <>
  8037. struct StructExtends<PhysicalDeviceMeshShaderFeaturesNV, DeviceCreateInfo>
  8038. {
  8039. enum
  8040. {
  8041. value = true
  8042. };
  8043. };
  8044. template <>
  8045. struct StructExtends<PhysicalDeviceMeshShaderPropertiesNV, PhysicalDeviceProperties2>
  8046. {
  8047. enum
  8048. {
  8049. value = true
  8050. };
  8051. };
  8052. //=== VK_NV_shader_image_footprint ===
  8053. template <>
  8054. struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, PhysicalDeviceFeatures2>
  8055. {
  8056. enum
  8057. {
  8058. value = true
  8059. };
  8060. };
  8061. template <>
  8062. struct StructExtends<PhysicalDeviceShaderImageFootprintFeaturesNV, DeviceCreateInfo>
  8063. {
  8064. enum
  8065. {
  8066. value = true
  8067. };
  8068. };
  8069. //=== VK_NV_scissor_exclusive ===
  8070. template <>
  8071. struct StructExtends<PipelineViewportExclusiveScissorStateCreateInfoNV, PipelineViewportStateCreateInfo>
  8072. {
  8073. enum
  8074. {
  8075. value = true
  8076. };
  8077. };
  8078. template <>
  8079. struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, PhysicalDeviceFeatures2>
  8080. {
  8081. enum
  8082. {
  8083. value = true
  8084. };
  8085. };
  8086. template <>
  8087. struct StructExtends<PhysicalDeviceExclusiveScissorFeaturesNV, DeviceCreateInfo>
  8088. {
  8089. enum
  8090. {
  8091. value = true
  8092. };
  8093. };
  8094. //=== VK_NV_device_diagnostic_checkpoints ===
  8095. template <>
  8096. struct StructExtends<QueueFamilyCheckpointPropertiesNV, QueueFamilyProperties2>
  8097. {
  8098. enum
  8099. {
  8100. value = true
  8101. };
  8102. };
  8103. //=== VK_INTEL_shader_integer_functions2 ===
  8104. template <>
  8105. struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, PhysicalDeviceFeatures2>
  8106. {
  8107. enum
  8108. {
  8109. value = true
  8110. };
  8111. };
  8112. template <>
  8113. struct StructExtends<PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, DeviceCreateInfo>
  8114. {
  8115. enum
  8116. {
  8117. value = true
  8118. };
  8119. };
  8120. //=== VK_INTEL_performance_query ===
  8121. template <>
  8122. struct StructExtends<QueryPoolPerformanceQueryCreateInfoINTEL, QueryPoolCreateInfo>
  8123. {
  8124. enum
  8125. {
  8126. value = true
  8127. };
  8128. };
  8129. //=== VK_EXT_pci_bus_info ===
  8130. template <>
  8131. struct StructExtends<PhysicalDevicePCIBusInfoPropertiesEXT, PhysicalDeviceProperties2>
  8132. {
  8133. enum
  8134. {
  8135. value = true
  8136. };
  8137. };
  8138. //=== VK_AMD_display_native_hdr ===
  8139. template <>
  8140. struct StructExtends<DisplayNativeHdrSurfaceCapabilitiesAMD, SurfaceCapabilities2KHR>
  8141. {
  8142. enum
  8143. {
  8144. value = true
  8145. };
  8146. };
  8147. template <>
  8148. struct StructExtends<SwapchainDisplayNativeHdrCreateInfoAMD, SwapchainCreateInfoKHR>
  8149. {
  8150. enum
  8151. {
  8152. value = true
  8153. };
  8154. };
  8155. //=== VK_EXT_fragment_density_map ===
  8156. template <>
  8157. struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, PhysicalDeviceFeatures2>
  8158. {
  8159. enum
  8160. {
  8161. value = true
  8162. };
  8163. };
  8164. template <>
  8165. struct StructExtends<PhysicalDeviceFragmentDensityMapFeaturesEXT, DeviceCreateInfo>
  8166. {
  8167. enum
  8168. {
  8169. value = true
  8170. };
  8171. };
  8172. template <>
  8173. struct StructExtends<PhysicalDeviceFragmentDensityMapPropertiesEXT, PhysicalDeviceProperties2>
  8174. {
  8175. enum
  8176. {
  8177. value = true
  8178. };
  8179. };
  8180. template <>
  8181. struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo>
  8182. {
  8183. enum
  8184. {
  8185. value = true
  8186. };
  8187. };
  8188. template <>
  8189. struct StructExtends<RenderPassFragmentDensityMapCreateInfoEXT, RenderPassCreateInfo2>
  8190. {
  8191. enum
  8192. {
  8193. value = true
  8194. };
  8195. };
  8196. //=== VK_KHR_fragment_shading_rate ===
  8197. template <>
  8198. struct StructExtends<FragmentShadingRateAttachmentInfoKHR, SubpassDescription2>
  8199. {
  8200. enum
  8201. {
  8202. value = true
  8203. };
  8204. };
  8205. template <>
  8206. struct StructExtends<PipelineFragmentShadingRateStateCreateInfoKHR, GraphicsPipelineCreateInfo>
  8207. {
  8208. enum
  8209. {
  8210. value = true
  8211. };
  8212. };
  8213. template <>
  8214. struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, PhysicalDeviceFeatures2>
  8215. {
  8216. enum
  8217. {
  8218. value = true
  8219. };
  8220. };
  8221. template <>
  8222. struct StructExtends<PhysicalDeviceFragmentShadingRateFeaturesKHR, DeviceCreateInfo>
  8223. {
  8224. enum
  8225. {
  8226. value = true
  8227. };
  8228. };
  8229. template <>
  8230. struct StructExtends<PhysicalDeviceFragmentShadingRatePropertiesKHR, PhysicalDeviceProperties2>
  8231. {
  8232. enum
  8233. {
  8234. value = true
  8235. };
  8236. };
  8237. //=== VK_AMD_shader_core_properties2 ===
  8238. template <>
  8239. struct StructExtends<PhysicalDeviceShaderCoreProperties2AMD, PhysicalDeviceProperties2>
  8240. {
  8241. enum
  8242. {
  8243. value = true
  8244. };
  8245. };
  8246. //=== VK_AMD_device_coherent_memory ===
  8247. template <>
  8248. struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, PhysicalDeviceFeatures2>
  8249. {
  8250. enum
  8251. {
  8252. value = true
  8253. };
  8254. };
  8255. template <>
  8256. struct StructExtends<PhysicalDeviceCoherentMemoryFeaturesAMD, DeviceCreateInfo>
  8257. {
  8258. enum
  8259. {
  8260. value = true
  8261. };
  8262. };
  8263. //=== VK_EXT_shader_image_atomic_int64 ===
  8264. template <>
  8265. struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, PhysicalDeviceFeatures2>
  8266. {
  8267. enum
  8268. {
  8269. value = true
  8270. };
  8271. };
  8272. template <>
  8273. struct StructExtends<PhysicalDeviceShaderImageAtomicInt64FeaturesEXT, DeviceCreateInfo>
  8274. {
  8275. enum
  8276. {
  8277. value = true
  8278. };
  8279. };
  8280. //=== VK_EXT_memory_budget ===
  8281. template <>
  8282. struct StructExtends<PhysicalDeviceMemoryBudgetPropertiesEXT, PhysicalDeviceMemoryProperties2>
  8283. {
  8284. enum
  8285. {
  8286. value = true
  8287. };
  8288. };
  8289. //=== VK_EXT_memory_priority ===
  8290. template <>
  8291. struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, PhysicalDeviceFeatures2>
  8292. {
  8293. enum
  8294. {
  8295. value = true
  8296. };
  8297. };
  8298. template <>
  8299. struct StructExtends<PhysicalDeviceMemoryPriorityFeaturesEXT, DeviceCreateInfo>
  8300. {
  8301. enum
  8302. {
  8303. value = true
  8304. };
  8305. };
  8306. template <>
  8307. struct StructExtends<MemoryPriorityAllocateInfoEXT, MemoryAllocateInfo>
  8308. {
  8309. enum
  8310. {
  8311. value = true
  8312. };
  8313. };
  8314. //=== VK_KHR_surface_protected_capabilities ===
  8315. template <>
  8316. struct StructExtends<SurfaceProtectedCapabilitiesKHR, SurfaceCapabilities2KHR>
  8317. {
  8318. enum
  8319. {
  8320. value = true
  8321. };
  8322. };
  8323. //=== VK_NV_dedicated_allocation_image_aliasing ===
  8324. template <>
  8325. struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, PhysicalDeviceFeatures2>
  8326. {
  8327. enum
  8328. {
  8329. value = true
  8330. };
  8331. };
  8332. template <>
  8333. struct StructExtends<PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, DeviceCreateInfo>
  8334. {
  8335. enum
  8336. {
  8337. value = true
  8338. };
  8339. };
  8340. //=== VK_EXT_buffer_device_address ===
  8341. template <>
  8342. struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, PhysicalDeviceFeatures2>
  8343. {
  8344. enum
  8345. {
  8346. value = true
  8347. };
  8348. };
  8349. template <>
  8350. struct StructExtends<PhysicalDeviceBufferDeviceAddressFeaturesEXT, DeviceCreateInfo>
  8351. {
  8352. enum
  8353. {
  8354. value = true
  8355. };
  8356. };
  8357. template <>
  8358. struct StructExtends<BufferDeviceAddressCreateInfoEXT, BufferCreateInfo>
  8359. {
  8360. enum
  8361. {
  8362. value = true
  8363. };
  8364. };
  8365. //=== VK_EXT_validation_features ===
  8366. template <>
  8367. struct StructExtends<ValidationFeaturesEXT, InstanceCreateInfo>
  8368. {
  8369. enum
  8370. {
  8371. value = true
  8372. };
  8373. };
  8374. //=== VK_KHR_present_wait ===
  8375. template <>
  8376. struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, PhysicalDeviceFeatures2>
  8377. {
  8378. enum
  8379. {
  8380. value = true
  8381. };
  8382. };
  8383. template <>
  8384. struct StructExtends<PhysicalDevicePresentWaitFeaturesKHR, DeviceCreateInfo>
  8385. {
  8386. enum
  8387. {
  8388. value = true
  8389. };
  8390. };
  8391. //=== VK_NV_cooperative_matrix ===
  8392. template <>
  8393. struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, PhysicalDeviceFeatures2>
  8394. {
  8395. enum
  8396. {
  8397. value = true
  8398. };
  8399. };
  8400. template <>
  8401. struct StructExtends<PhysicalDeviceCooperativeMatrixFeaturesNV, DeviceCreateInfo>
  8402. {
  8403. enum
  8404. {
  8405. value = true
  8406. };
  8407. };
  8408. template <>
  8409. struct StructExtends<PhysicalDeviceCooperativeMatrixPropertiesNV, PhysicalDeviceProperties2>
  8410. {
  8411. enum
  8412. {
  8413. value = true
  8414. };
  8415. };
  8416. //=== VK_NV_coverage_reduction_mode ===
  8417. template <>
  8418. struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, PhysicalDeviceFeatures2>
  8419. {
  8420. enum
  8421. {
  8422. value = true
  8423. };
  8424. };
  8425. template <>
  8426. struct StructExtends<PhysicalDeviceCoverageReductionModeFeaturesNV, DeviceCreateInfo>
  8427. {
  8428. enum
  8429. {
  8430. value = true
  8431. };
  8432. };
  8433. template <>
  8434. struct StructExtends<PipelineCoverageReductionStateCreateInfoNV, PipelineMultisampleStateCreateInfo>
  8435. {
  8436. enum
  8437. {
  8438. value = true
  8439. };
  8440. };
  8441. //=== VK_EXT_fragment_shader_interlock ===
  8442. template <>
  8443. struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, PhysicalDeviceFeatures2>
  8444. {
  8445. enum
  8446. {
  8447. value = true
  8448. };
  8449. };
  8450. template <>
  8451. struct StructExtends<PhysicalDeviceFragmentShaderInterlockFeaturesEXT, DeviceCreateInfo>
  8452. {
  8453. enum
  8454. {
  8455. value = true
  8456. };
  8457. };
  8458. //=== VK_EXT_ycbcr_image_arrays ===
  8459. template <>
  8460. struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, PhysicalDeviceFeatures2>
  8461. {
  8462. enum
  8463. {
  8464. value = true
  8465. };
  8466. };
  8467. template <>
  8468. struct StructExtends<PhysicalDeviceYcbcrImageArraysFeaturesEXT, DeviceCreateInfo>
  8469. {
  8470. enum
  8471. {
  8472. value = true
  8473. };
  8474. };
  8475. //=== VK_EXT_provoking_vertex ===
  8476. template <>
  8477. struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, PhysicalDeviceFeatures2>
  8478. {
  8479. enum
  8480. {
  8481. value = true
  8482. };
  8483. };
  8484. template <>
  8485. struct StructExtends<PhysicalDeviceProvokingVertexFeaturesEXT, DeviceCreateInfo>
  8486. {
  8487. enum
  8488. {
  8489. value = true
  8490. };
  8491. };
  8492. template <>
  8493. struct StructExtends<PhysicalDeviceProvokingVertexPropertiesEXT, PhysicalDeviceProperties2>
  8494. {
  8495. enum
  8496. {
  8497. value = true
  8498. };
  8499. };
  8500. template <>
  8501. struct StructExtends<PipelineRasterizationProvokingVertexStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
  8502. {
  8503. enum
  8504. {
  8505. value = true
  8506. };
  8507. };
  8508. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  8509. //=== VK_EXT_full_screen_exclusive ===
  8510. template <>
  8511. struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, PhysicalDeviceSurfaceInfo2KHR>
  8512. {
  8513. enum
  8514. {
  8515. value = true
  8516. };
  8517. };
  8518. template <>
  8519. struct StructExtends<SurfaceFullScreenExclusiveInfoEXT, SwapchainCreateInfoKHR>
  8520. {
  8521. enum
  8522. {
  8523. value = true
  8524. };
  8525. };
  8526. template <>
  8527. struct StructExtends<SurfaceCapabilitiesFullScreenExclusiveEXT, SurfaceCapabilities2KHR>
  8528. {
  8529. enum
  8530. {
  8531. value = true
  8532. };
  8533. };
  8534. template <>
  8535. struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, PhysicalDeviceSurfaceInfo2KHR>
  8536. {
  8537. enum
  8538. {
  8539. value = true
  8540. };
  8541. };
  8542. template <>
  8543. struct StructExtends<SurfaceFullScreenExclusiveWin32InfoEXT, SwapchainCreateInfoKHR>
  8544. {
  8545. enum
  8546. {
  8547. value = true
  8548. };
  8549. };
  8550. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  8551. //=== VK_EXT_line_rasterization ===
  8552. template <>
  8553. struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, PhysicalDeviceFeatures2>
  8554. {
  8555. enum
  8556. {
  8557. value = true
  8558. };
  8559. };
  8560. template <>
  8561. struct StructExtends<PhysicalDeviceLineRasterizationFeaturesEXT, DeviceCreateInfo>
  8562. {
  8563. enum
  8564. {
  8565. value = true
  8566. };
  8567. };
  8568. template <>
  8569. struct StructExtends<PhysicalDeviceLineRasterizationPropertiesEXT, PhysicalDeviceProperties2>
  8570. {
  8571. enum
  8572. {
  8573. value = true
  8574. };
  8575. };
  8576. template <>
  8577. struct StructExtends<PipelineRasterizationLineStateCreateInfoEXT, PipelineRasterizationStateCreateInfo>
  8578. {
  8579. enum
  8580. {
  8581. value = true
  8582. };
  8583. };
  8584. //=== VK_EXT_shader_atomic_float ===
  8585. template <>
  8586. struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, PhysicalDeviceFeatures2>
  8587. {
  8588. enum
  8589. {
  8590. value = true
  8591. };
  8592. };
  8593. template <>
  8594. struct StructExtends<PhysicalDeviceShaderAtomicFloatFeaturesEXT, DeviceCreateInfo>
  8595. {
  8596. enum
  8597. {
  8598. value = true
  8599. };
  8600. };
  8601. //=== VK_EXT_index_type_uint8 ===
  8602. template <>
  8603. struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, PhysicalDeviceFeatures2>
  8604. {
  8605. enum
  8606. {
  8607. value = true
  8608. };
  8609. };
  8610. template <>
  8611. struct StructExtends<PhysicalDeviceIndexTypeUint8FeaturesEXT, DeviceCreateInfo>
  8612. {
  8613. enum
  8614. {
  8615. value = true
  8616. };
  8617. };
  8618. //=== VK_EXT_extended_dynamic_state ===
  8619. template <>
  8620. struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
  8621. {
  8622. enum
  8623. {
  8624. value = true
  8625. };
  8626. };
  8627. template <>
  8628. struct StructExtends<PhysicalDeviceExtendedDynamicStateFeaturesEXT, DeviceCreateInfo>
  8629. {
  8630. enum
  8631. {
  8632. value = true
  8633. };
  8634. };
  8635. //=== VK_KHR_pipeline_executable_properties ===
  8636. template <>
  8637. struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, PhysicalDeviceFeatures2>
  8638. {
  8639. enum
  8640. {
  8641. value = true
  8642. };
  8643. };
  8644. template <>
  8645. struct StructExtends<PhysicalDevicePipelineExecutablePropertiesFeaturesKHR, DeviceCreateInfo>
  8646. {
  8647. enum
  8648. {
  8649. value = true
  8650. };
  8651. };
  8652. //=== VK_EXT_shader_atomic_float2 ===
  8653. template <>
  8654. struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, PhysicalDeviceFeatures2>
  8655. {
  8656. enum
  8657. {
  8658. value = true
  8659. };
  8660. };
  8661. template <>
  8662. struct StructExtends<PhysicalDeviceShaderAtomicFloat2FeaturesEXT, DeviceCreateInfo>
  8663. {
  8664. enum
  8665. {
  8666. value = true
  8667. };
  8668. };
  8669. //=== VK_NV_device_generated_commands ===
  8670. template <>
  8671. struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesNV, PhysicalDeviceProperties2>
  8672. {
  8673. enum
  8674. {
  8675. value = true
  8676. };
  8677. };
  8678. template <>
  8679. struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, PhysicalDeviceFeatures2>
  8680. {
  8681. enum
  8682. {
  8683. value = true
  8684. };
  8685. };
  8686. template <>
  8687. struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesNV, DeviceCreateInfo>
  8688. {
  8689. enum
  8690. {
  8691. value = true
  8692. };
  8693. };
  8694. template <>
  8695. struct StructExtends<GraphicsPipelineShaderGroupsCreateInfoNV, GraphicsPipelineCreateInfo>
  8696. {
  8697. enum
  8698. {
  8699. value = true
  8700. };
  8701. };
  8702. //=== VK_NV_inherited_viewport_scissor ===
  8703. template <>
  8704. struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, PhysicalDeviceFeatures2>
  8705. {
  8706. enum
  8707. {
  8708. value = true
  8709. };
  8710. };
  8711. template <>
  8712. struct StructExtends<PhysicalDeviceInheritedViewportScissorFeaturesNV, DeviceCreateInfo>
  8713. {
  8714. enum
  8715. {
  8716. value = true
  8717. };
  8718. };
  8719. template <>
  8720. struct StructExtends<CommandBufferInheritanceViewportScissorInfoNV, CommandBufferInheritanceInfo>
  8721. {
  8722. enum
  8723. {
  8724. value = true
  8725. };
  8726. };
  8727. //=== VK_EXT_texel_buffer_alignment ===
  8728. template <>
  8729. struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, PhysicalDeviceFeatures2>
  8730. {
  8731. enum
  8732. {
  8733. value = true
  8734. };
  8735. };
  8736. template <>
  8737. struct StructExtends<PhysicalDeviceTexelBufferAlignmentFeaturesEXT, DeviceCreateInfo>
  8738. {
  8739. enum
  8740. {
  8741. value = true
  8742. };
  8743. };
  8744. //=== VK_QCOM_render_pass_transform ===
  8745. template <>
  8746. struct StructExtends<RenderPassTransformBeginInfoQCOM, RenderPassBeginInfo>
  8747. {
  8748. enum
  8749. {
  8750. value = true
  8751. };
  8752. };
  8753. template <>
  8754. struct StructExtends<CommandBufferInheritanceRenderPassTransformInfoQCOM, CommandBufferInheritanceInfo>
  8755. {
  8756. enum
  8757. {
  8758. value = true
  8759. };
  8760. };
  8761. //=== VK_EXT_device_memory_report ===
  8762. template <>
  8763. struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, PhysicalDeviceFeatures2>
  8764. {
  8765. enum
  8766. {
  8767. value = true
  8768. };
  8769. };
  8770. template <>
  8771. struct StructExtends<PhysicalDeviceDeviceMemoryReportFeaturesEXT, DeviceCreateInfo>
  8772. {
  8773. enum
  8774. {
  8775. value = true
  8776. };
  8777. };
  8778. template <>
  8779. struct StructExtends<DeviceDeviceMemoryReportCreateInfoEXT, DeviceCreateInfo>
  8780. {
  8781. enum
  8782. {
  8783. value = true
  8784. };
  8785. };
  8786. //=== VK_EXT_robustness2 ===
  8787. template <>
  8788. struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, PhysicalDeviceFeatures2>
  8789. {
  8790. enum
  8791. {
  8792. value = true
  8793. };
  8794. };
  8795. template <>
  8796. struct StructExtends<PhysicalDeviceRobustness2FeaturesEXT, DeviceCreateInfo>
  8797. {
  8798. enum
  8799. {
  8800. value = true
  8801. };
  8802. };
  8803. template <>
  8804. struct StructExtends<PhysicalDeviceRobustness2PropertiesEXT, PhysicalDeviceProperties2>
  8805. {
  8806. enum
  8807. {
  8808. value = true
  8809. };
  8810. };
  8811. //=== VK_EXT_custom_border_color ===
  8812. template <>
  8813. struct StructExtends<SamplerCustomBorderColorCreateInfoEXT, SamplerCreateInfo>
  8814. {
  8815. enum
  8816. {
  8817. value = true
  8818. };
  8819. };
  8820. template <>
  8821. struct StructExtends<PhysicalDeviceCustomBorderColorPropertiesEXT, PhysicalDeviceProperties2>
  8822. {
  8823. enum
  8824. {
  8825. value = true
  8826. };
  8827. };
  8828. template <>
  8829. struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, PhysicalDeviceFeatures2>
  8830. {
  8831. enum
  8832. {
  8833. value = true
  8834. };
  8835. };
  8836. template <>
  8837. struct StructExtends<PhysicalDeviceCustomBorderColorFeaturesEXT, DeviceCreateInfo>
  8838. {
  8839. enum
  8840. {
  8841. value = true
  8842. };
  8843. };
  8844. //=== VK_KHR_pipeline_library ===
  8845. template <>
  8846. struct StructExtends<PipelineLibraryCreateInfoKHR, GraphicsPipelineCreateInfo>
  8847. {
  8848. enum
  8849. {
  8850. value = true
  8851. };
  8852. };
  8853. //=== VK_KHR_present_id ===
  8854. template <>
  8855. struct StructExtends<PresentIdKHR, PresentInfoKHR>
  8856. {
  8857. enum
  8858. {
  8859. value = true
  8860. };
  8861. };
  8862. template <>
  8863. struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, PhysicalDeviceFeatures2>
  8864. {
  8865. enum
  8866. {
  8867. value = true
  8868. };
  8869. };
  8870. template <>
  8871. struct StructExtends<PhysicalDevicePresentIdFeaturesKHR, DeviceCreateInfo>
  8872. {
  8873. enum
  8874. {
  8875. value = true
  8876. };
  8877. };
  8878. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  8879. //=== VK_KHR_video_encode_queue ===
  8880. template <>
  8881. struct StructExtends<VideoEncodeCapabilitiesKHR, VideoCapabilitiesKHR>
  8882. {
  8883. enum
  8884. {
  8885. value = true
  8886. };
  8887. };
  8888. template <>
  8889. struct StructExtends<VideoEncodeUsageInfoKHR, VideoProfileInfoKHR>
  8890. {
  8891. enum
  8892. {
  8893. value = true
  8894. };
  8895. };
  8896. template <>
  8897. struct StructExtends<VideoEncodeRateControlInfoKHR, VideoCodingControlInfoKHR>
  8898. {
  8899. enum
  8900. {
  8901. value = true
  8902. };
  8903. };
  8904. template <>
  8905. struct StructExtends<VideoEncodeRateControlLayerInfoKHR, VideoCodingControlInfoKHR>
  8906. {
  8907. enum
  8908. {
  8909. value = true
  8910. };
  8911. };
  8912. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  8913. //=== VK_NV_device_diagnostics_config ===
  8914. template <>
  8915. struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, PhysicalDeviceFeatures2>
  8916. {
  8917. enum
  8918. {
  8919. value = true
  8920. };
  8921. };
  8922. template <>
  8923. struct StructExtends<PhysicalDeviceDiagnosticsConfigFeaturesNV, DeviceCreateInfo>
  8924. {
  8925. enum
  8926. {
  8927. value = true
  8928. };
  8929. };
  8930. template <>
  8931. struct StructExtends<DeviceDiagnosticsConfigCreateInfoNV, DeviceCreateInfo>
  8932. {
  8933. enum
  8934. {
  8935. value = true
  8936. };
  8937. };
  8938. # if defined( VK_USE_PLATFORM_METAL_EXT )
  8939. //=== VK_EXT_metal_objects ===
  8940. template <>
  8941. struct StructExtends<ExportMetalObjectCreateInfoEXT, InstanceCreateInfo>
  8942. {
  8943. enum
  8944. {
  8945. value = true
  8946. };
  8947. };
  8948. template <>
  8949. struct StructExtends<ExportMetalObjectCreateInfoEXT, MemoryAllocateInfo>
  8950. {
  8951. enum
  8952. {
  8953. value = true
  8954. };
  8955. };
  8956. template <>
  8957. struct StructExtends<ExportMetalObjectCreateInfoEXT, ImageCreateInfo>
  8958. {
  8959. enum
  8960. {
  8961. value = true
  8962. };
  8963. };
  8964. template <>
  8965. struct StructExtends<ExportMetalObjectCreateInfoEXT, ImageViewCreateInfo>
  8966. {
  8967. enum
  8968. {
  8969. value = true
  8970. };
  8971. };
  8972. template <>
  8973. struct StructExtends<ExportMetalObjectCreateInfoEXT, BufferViewCreateInfo>
  8974. {
  8975. enum
  8976. {
  8977. value = true
  8978. };
  8979. };
  8980. template <>
  8981. struct StructExtends<ExportMetalObjectCreateInfoEXT, SemaphoreCreateInfo>
  8982. {
  8983. enum
  8984. {
  8985. value = true
  8986. };
  8987. };
  8988. template <>
  8989. struct StructExtends<ExportMetalObjectCreateInfoEXT, EventCreateInfo>
  8990. {
  8991. enum
  8992. {
  8993. value = true
  8994. };
  8995. };
  8996. template <>
  8997. struct StructExtends<ExportMetalDeviceInfoEXT, ExportMetalObjectsInfoEXT>
  8998. {
  8999. enum
  9000. {
  9001. value = true
  9002. };
  9003. };
  9004. template <>
  9005. struct StructExtends<ExportMetalCommandQueueInfoEXT, ExportMetalObjectsInfoEXT>
  9006. {
  9007. enum
  9008. {
  9009. value = true
  9010. };
  9011. };
  9012. template <>
  9013. struct StructExtends<ExportMetalBufferInfoEXT, ExportMetalObjectsInfoEXT>
  9014. {
  9015. enum
  9016. {
  9017. value = true
  9018. };
  9019. };
  9020. template <>
  9021. struct StructExtends<ImportMetalBufferInfoEXT, MemoryAllocateInfo>
  9022. {
  9023. enum
  9024. {
  9025. value = true
  9026. };
  9027. };
  9028. template <>
  9029. struct StructExtends<ExportMetalTextureInfoEXT, ExportMetalObjectsInfoEXT>
  9030. {
  9031. enum
  9032. {
  9033. value = true
  9034. };
  9035. };
  9036. template <>
  9037. struct StructExtends<ImportMetalTextureInfoEXT, ImageCreateInfo>
  9038. {
  9039. enum
  9040. {
  9041. value = true
  9042. };
  9043. };
  9044. template <>
  9045. struct StructExtends<ExportMetalIOSurfaceInfoEXT, ExportMetalObjectsInfoEXT>
  9046. {
  9047. enum
  9048. {
  9049. value = true
  9050. };
  9051. };
  9052. template <>
  9053. struct StructExtends<ImportMetalIOSurfaceInfoEXT, ImageCreateInfo>
  9054. {
  9055. enum
  9056. {
  9057. value = true
  9058. };
  9059. };
  9060. template <>
  9061. struct StructExtends<ExportMetalSharedEventInfoEXT, ExportMetalObjectsInfoEXT>
  9062. {
  9063. enum
  9064. {
  9065. value = true
  9066. };
  9067. };
  9068. template <>
  9069. struct StructExtends<ImportMetalSharedEventInfoEXT, SemaphoreCreateInfo>
  9070. {
  9071. enum
  9072. {
  9073. value = true
  9074. };
  9075. };
  9076. template <>
  9077. struct StructExtends<ImportMetalSharedEventInfoEXT, EventCreateInfo>
  9078. {
  9079. enum
  9080. {
  9081. value = true
  9082. };
  9083. };
  9084. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  9085. //=== VK_KHR_synchronization2 ===
  9086. template <>
  9087. struct StructExtends<QueueFamilyCheckpointProperties2NV, QueueFamilyProperties2>
  9088. {
  9089. enum
  9090. {
  9091. value = true
  9092. };
  9093. };
  9094. //=== VK_EXT_graphics_pipeline_library ===
  9095. template <>
  9096. struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, PhysicalDeviceFeatures2>
  9097. {
  9098. enum
  9099. {
  9100. value = true
  9101. };
  9102. };
  9103. template <>
  9104. struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, DeviceCreateInfo>
  9105. {
  9106. enum
  9107. {
  9108. value = true
  9109. };
  9110. };
  9111. template <>
  9112. struct StructExtends<PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, PhysicalDeviceProperties2>
  9113. {
  9114. enum
  9115. {
  9116. value = true
  9117. };
  9118. };
  9119. template <>
  9120. struct StructExtends<GraphicsPipelineLibraryCreateInfoEXT, GraphicsPipelineCreateInfo>
  9121. {
  9122. enum
  9123. {
  9124. value = true
  9125. };
  9126. };
  9127. //=== VK_AMD_shader_early_and_late_fragment_tests ===
  9128. template <>
  9129. struct StructExtends<PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, PhysicalDeviceFeatures2>
  9130. {
  9131. enum
  9132. {
  9133. value = true
  9134. };
  9135. };
  9136. template <>
  9137. struct StructExtends<PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, DeviceCreateInfo>
  9138. {
  9139. enum
  9140. {
  9141. value = true
  9142. };
  9143. };
  9144. //=== VK_KHR_fragment_shader_barycentric ===
  9145. template <>
  9146. struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesKHR, PhysicalDeviceFeatures2>
  9147. {
  9148. enum
  9149. {
  9150. value = true
  9151. };
  9152. };
  9153. template <>
  9154. struct StructExtends<PhysicalDeviceFragmentShaderBarycentricFeaturesKHR, DeviceCreateInfo>
  9155. {
  9156. enum
  9157. {
  9158. value = true
  9159. };
  9160. };
  9161. template <>
  9162. struct StructExtends<PhysicalDeviceFragmentShaderBarycentricPropertiesKHR, PhysicalDeviceProperties2>
  9163. {
  9164. enum
  9165. {
  9166. value = true
  9167. };
  9168. };
  9169. //=== VK_KHR_shader_subgroup_uniform_control_flow ===
  9170. template <>
  9171. struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, PhysicalDeviceFeatures2>
  9172. {
  9173. enum
  9174. {
  9175. value = true
  9176. };
  9177. };
  9178. template <>
  9179. struct StructExtends<PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, DeviceCreateInfo>
  9180. {
  9181. enum
  9182. {
  9183. value = true
  9184. };
  9185. };
  9186. //=== VK_NV_fragment_shading_rate_enums ===
  9187. template <>
  9188. struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, PhysicalDeviceFeatures2>
  9189. {
  9190. enum
  9191. {
  9192. value = true
  9193. };
  9194. };
  9195. template <>
  9196. struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsFeaturesNV, DeviceCreateInfo>
  9197. {
  9198. enum
  9199. {
  9200. value = true
  9201. };
  9202. };
  9203. template <>
  9204. struct StructExtends<PhysicalDeviceFragmentShadingRateEnumsPropertiesNV, PhysicalDeviceProperties2>
  9205. {
  9206. enum
  9207. {
  9208. value = true
  9209. };
  9210. };
  9211. template <>
  9212. struct StructExtends<PipelineFragmentShadingRateEnumStateCreateInfoNV, GraphicsPipelineCreateInfo>
  9213. {
  9214. enum
  9215. {
  9216. value = true
  9217. };
  9218. };
  9219. //=== VK_NV_ray_tracing_motion_blur ===
  9220. template <>
  9221. struct StructExtends<AccelerationStructureGeometryMotionTrianglesDataNV, AccelerationStructureGeometryTrianglesDataKHR>
  9222. {
  9223. enum
  9224. {
  9225. value = true
  9226. };
  9227. };
  9228. template <>
  9229. struct StructExtends<AccelerationStructureMotionInfoNV, AccelerationStructureCreateInfoKHR>
  9230. {
  9231. enum
  9232. {
  9233. value = true
  9234. };
  9235. };
  9236. template <>
  9237. struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, PhysicalDeviceFeatures2>
  9238. {
  9239. enum
  9240. {
  9241. value = true
  9242. };
  9243. };
  9244. template <>
  9245. struct StructExtends<PhysicalDeviceRayTracingMotionBlurFeaturesNV, DeviceCreateInfo>
  9246. {
  9247. enum
  9248. {
  9249. value = true
  9250. };
  9251. };
  9252. //=== VK_EXT_mesh_shader ===
  9253. template <>
  9254. struct StructExtends<PhysicalDeviceMeshShaderFeaturesEXT, PhysicalDeviceFeatures2>
  9255. {
  9256. enum
  9257. {
  9258. value = true
  9259. };
  9260. };
  9261. template <>
  9262. struct StructExtends<PhysicalDeviceMeshShaderFeaturesEXT, DeviceCreateInfo>
  9263. {
  9264. enum
  9265. {
  9266. value = true
  9267. };
  9268. };
  9269. template <>
  9270. struct StructExtends<PhysicalDeviceMeshShaderPropertiesEXT, PhysicalDeviceProperties2>
  9271. {
  9272. enum
  9273. {
  9274. value = true
  9275. };
  9276. };
  9277. //=== VK_EXT_ycbcr_2plane_444_formats ===
  9278. template <>
  9279. struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
  9280. {
  9281. enum
  9282. {
  9283. value = true
  9284. };
  9285. };
  9286. template <>
  9287. struct StructExtends<PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, DeviceCreateInfo>
  9288. {
  9289. enum
  9290. {
  9291. value = true
  9292. };
  9293. };
  9294. //=== VK_EXT_fragment_density_map2 ===
  9295. template <>
  9296. struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, PhysicalDeviceFeatures2>
  9297. {
  9298. enum
  9299. {
  9300. value = true
  9301. };
  9302. };
  9303. template <>
  9304. struct StructExtends<PhysicalDeviceFragmentDensityMap2FeaturesEXT, DeviceCreateInfo>
  9305. {
  9306. enum
  9307. {
  9308. value = true
  9309. };
  9310. };
  9311. template <>
  9312. struct StructExtends<PhysicalDeviceFragmentDensityMap2PropertiesEXT, PhysicalDeviceProperties2>
  9313. {
  9314. enum
  9315. {
  9316. value = true
  9317. };
  9318. };
  9319. //=== VK_QCOM_rotated_copy_commands ===
  9320. template <>
  9321. struct StructExtends<CopyCommandTransformInfoQCOM, BufferImageCopy2>
  9322. {
  9323. enum
  9324. {
  9325. value = true
  9326. };
  9327. };
  9328. template <>
  9329. struct StructExtends<CopyCommandTransformInfoQCOM, ImageBlit2>
  9330. {
  9331. enum
  9332. {
  9333. value = true
  9334. };
  9335. };
  9336. //=== VK_KHR_workgroup_memory_explicit_layout ===
  9337. template <>
  9338. struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, PhysicalDeviceFeatures2>
  9339. {
  9340. enum
  9341. {
  9342. value = true
  9343. };
  9344. };
  9345. template <>
  9346. struct StructExtends<PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, DeviceCreateInfo>
  9347. {
  9348. enum
  9349. {
  9350. value = true
  9351. };
  9352. };
  9353. //=== VK_EXT_image_compression_control ===
  9354. template <>
  9355. struct StructExtends<PhysicalDeviceImageCompressionControlFeaturesEXT, PhysicalDeviceFeatures2>
  9356. {
  9357. enum
  9358. {
  9359. value = true
  9360. };
  9361. };
  9362. template <>
  9363. struct StructExtends<PhysicalDeviceImageCompressionControlFeaturesEXT, DeviceCreateInfo>
  9364. {
  9365. enum
  9366. {
  9367. value = true
  9368. };
  9369. };
  9370. template <>
  9371. struct StructExtends<ImageCompressionControlEXT, ImageCreateInfo>
  9372. {
  9373. enum
  9374. {
  9375. value = true
  9376. };
  9377. };
  9378. template <>
  9379. struct StructExtends<ImageCompressionControlEXT, SwapchainCreateInfoKHR>
  9380. {
  9381. enum
  9382. {
  9383. value = true
  9384. };
  9385. };
  9386. template <>
  9387. struct StructExtends<ImageCompressionControlEXT, PhysicalDeviceImageFormatInfo2>
  9388. {
  9389. enum
  9390. {
  9391. value = true
  9392. };
  9393. };
  9394. template <>
  9395. struct StructExtends<ImageCompressionPropertiesEXT, ImageFormatProperties2>
  9396. {
  9397. enum
  9398. {
  9399. value = true
  9400. };
  9401. };
  9402. template <>
  9403. struct StructExtends<ImageCompressionPropertiesEXT, SurfaceFormat2KHR>
  9404. {
  9405. enum
  9406. {
  9407. value = true
  9408. };
  9409. };
  9410. template <>
  9411. struct StructExtends<ImageCompressionPropertiesEXT, SubresourceLayout2EXT>
  9412. {
  9413. enum
  9414. {
  9415. value = true
  9416. };
  9417. };
  9418. //=== VK_EXT_attachment_feedback_loop_layout ===
  9419. template <>
  9420. struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, PhysicalDeviceFeatures2>
  9421. {
  9422. enum
  9423. {
  9424. value = true
  9425. };
  9426. };
  9427. template <>
  9428. struct StructExtends<PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, DeviceCreateInfo>
  9429. {
  9430. enum
  9431. {
  9432. value = true
  9433. };
  9434. };
  9435. //=== VK_EXT_4444_formats ===
  9436. template <>
  9437. struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, PhysicalDeviceFeatures2>
  9438. {
  9439. enum
  9440. {
  9441. value = true
  9442. };
  9443. };
  9444. template <>
  9445. struct StructExtends<PhysicalDevice4444FormatsFeaturesEXT, DeviceCreateInfo>
  9446. {
  9447. enum
  9448. {
  9449. value = true
  9450. };
  9451. };
  9452. //=== VK_EXT_rgba10x6_formats ===
  9453. template <>
  9454. struct StructExtends<PhysicalDeviceRGBA10X6FormatsFeaturesEXT, PhysicalDeviceFeatures2>
  9455. {
  9456. enum
  9457. {
  9458. value = true
  9459. };
  9460. };
  9461. template <>
  9462. struct StructExtends<PhysicalDeviceRGBA10X6FormatsFeaturesEXT, DeviceCreateInfo>
  9463. {
  9464. enum
  9465. {
  9466. value = true
  9467. };
  9468. };
  9469. //=== VK_KHR_ray_tracing_pipeline ===
  9470. template <>
  9471. struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, PhysicalDeviceFeatures2>
  9472. {
  9473. enum
  9474. {
  9475. value = true
  9476. };
  9477. };
  9478. template <>
  9479. struct StructExtends<PhysicalDeviceRayTracingPipelineFeaturesKHR, DeviceCreateInfo>
  9480. {
  9481. enum
  9482. {
  9483. value = true
  9484. };
  9485. };
  9486. template <>
  9487. struct StructExtends<PhysicalDeviceRayTracingPipelinePropertiesKHR, PhysicalDeviceProperties2>
  9488. {
  9489. enum
  9490. {
  9491. value = true
  9492. };
  9493. };
  9494. //=== VK_KHR_ray_query ===
  9495. template <>
  9496. struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, PhysicalDeviceFeatures2>
  9497. {
  9498. enum
  9499. {
  9500. value = true
  9501. };
  9502. };
  9503. template <>
  9504. struct StructExtends<PhysicalDeviceRayQueryFeaturesKHR, DeviceCreateInfo>
  9505. {
  9506. enum
  9507. {
  9508. value = true
  9509. };
  9510. };
  9511. //=== VK_VALVE_mutable_descriptor_type ===
  9512. template <>
  9513. struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE, PhysicalDeviceFeatures2>
  9514. {
  9515. enum
  9516. {
  9517. value = true
  9518. };
  9519. };
  9520. template <>
  9521. struct StructExtends<PhysicalDeviceMutableDescriptorTypeFeaturesVALVE, DeviceCreateInfo>
  9522. {
  9523. enum
  9524. {
  9525. value = true
  9526. };
  9527. };
  9528. template <>
  9529. struct StructExtends<MutableDescriptorTypeCreateInfoVALVE, DescriptorSetLayoutCreateInfo>
  9530. {
  9531. enum
  9532. {
  9533. value = true
  9534. };
  9535. };
  9536. template <>
  9537. struct StructExtends<MutableDescriptorTypeCreateInfoVALVE, DescriptorPoolCreateInfo>
  9538. {
  9539. enum
  9540. {
  9541. value = true
  9542. };
  9543. };
  9544. //=== VK_EXT_vertex_input_dynamic_state ===
  9545. template <>
  9546. struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, PhysicalDeviceFeatures2>
  9547. {
  9548. enum
  9549. {
  9550. value = true
  9551. };
  9552. };
  9553. template <>
  9554. struct StructExtends<PhysicalDeviceVertexInputDynamicStateFeaturesEXT, DeviceCreateInfo>
  9555. {
  9556. enum
  9557. {
  9558. value = true
  9559. };
  9560. };
  9561. //=== VK_EXT_physical_device_drm ===
  9562. template <>
  9563. struct StructExtends<PhysicalDeviceDrmPropertiesEXT, PhysicalDeviceProperties2>
  9564. {
  9565. enum
  9566. {
  9567. value = true
  9568. };
  9569. };
  9570. //=== VK_EXT_depth_clip_control ===
  9571. template <>
  9572. struct StructExtends<PhysicalDeviceDepthClipControlFeaturesEXT, PhysicalDeviceFeatures2>
  9573. {
  9574. enum
  9575. {
  9576. value = true
  9577. };
  9578. };
  9579. template <>
  9580. struct StructExtends<PhysicalDeviceDepthClipControlFeaturesEXT, DeviceCreateInfo>
  9581. {
  9582. enum
  9583. {
  9584. value = true
  9585. };
  9586. };
  9587. template <>
  9588. struct StructExtends<PipelineViewportDepthClipControlCreateInfoEXT, PipelineViewportStateCreateInfo>
  9589. {
  9590. enum
  9591. {
  9592. value = true
  9593. };
  9594. };
  9595. //=== VK_EXT_primitive_topology_list_restart ===
  9596. template <>
  9597. struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, PhysicalDeviceFeatures2>
  9598. {
  9599. enum
  9600. {
  9601. value = true
  9602. };
  9603. };
  9604. template <>
  9605. struct StructExtends<PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, DeviceCreateInfo>
  9606. {
  9607. enum
  9608. {
  9609. value = true
  9610. };
  9611. };
  9612. # if defined( VK_USE_PLATFORM_FUCHSIA )
  9613. //=== VK_FUCHSIA_external_memory ===
  9614. template <>
  9615. struct StructExtends<ImportMemoryZirconHandleInfoFUCHSIA, MemoryAllocateInfo>
  9616. {
  9617. enum
  9618. {
  9619. value = true
  9620. };
  9621. };
  9622. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  9623. # if defined( VK_USE_PLATFORM_FUCHSIA )
  9624. //=== VK_FUCHSIA_buffer_collection ===
  9625. template <>
  9626. struct StructExtends<ImportMemoryBufferCollectionFUCHSIA, MemoryAllocateInfo>
  9627. {
  9628. enum
  9629. {
  9630. value = true
  9631. };
  9632. };
  9633. template <>
  9634. struct StructExtends<BufferCollectionImageCreateInfoFUCHSIA, ImageCreateInfo>
  9635. {
  9636. enum
  9637. {
  9638. value = true
  9639. };
  9640. };
  9641. template <>
  9642. struct StructExtends<BufferCollectionBufferCreateInfoFUCHSIA, BufferCreateInfo>
  9643. {
  9644. enum
  9645. {
  9646. value = true
  9647. };
  9648. };
  9649. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  9650. //=== VK_HUAWEI_subpass_shading ===
  9651. template <>
  9652. struct StructExtends<SubpassShadingPipelineCreateInfoHUAWEI, ComputePipelineCreateInfo>
  9653. {
  9654. enum
  9655. {
  9656. value = true
  9657. };
  9658. };
  9659. template <>
  9660. struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, PhysicalDeviceFeatures2>
  9661. {
  9662. enum
  9663. {
  9664. value = true
  9665. };
  9666. };
  9667. template <>
  9668. struct StructExtends<PhysicalDeviceSubpassShadingFeaturesHUAWEI, DeviceCreateInfo>
  9669. {
  9670. enum
  9671. {
  9672. value = true
  9673. };
  9674. };
  9675. template <>
  9676. struct StructExtends<PhysicalDeviceSubpassShadingPropertiesHUAWEI, PhysicalDeviceProperties2>
  9677. {
  9678. enum
  9679. {
  9680. value = true
  9681. };
  9682. };
  9683. //=== VK_HUAWEI_invocation_mask ===
  9684. template <>
  9685. struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, PhysicalDeviceFeatures2>
  9686. {
  9687. enum
  9688. {
  9689. value = true
  9690. };
  9691. };
  9692. template <>
  9693. struct StructExtends<PhysicalDeviceInvocationMaskFeaturesHUAWEI, DeviceCreateInfo>
  9694. {
  9695. enum
  9696. {
  9697. value = true
  9698. };
  9699. };
  9700. //=== VK_NV_external_memory_rdma ===
  9701. template <>
  9702. struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, PhysicalDeviceFeatures2>
  9703. {
  9704. enum
  9705. {
  9706. value = true
  9707. };
  9708. };
  9709. template <>
  9710. struct StructExtends<PhysicalDeviceExternalMemoryRDMAFeaturesNV, DeviceCreateInfo>
  9711. {
  9712. enum
  9713. {
  9714. value = true
  9715. };
  9716. };
  9717. //=== VK_EXT_pipeline_properties ===
  9718. template <>
  9719. struct StructExtends<PhysicalDevicePipelinePropertiesFeaturesEXT, PhysicalDeviceFeatures2>
  9720. {
  9721. enum
  9722. {
  9723. value = true
  9724. };
  9725. };
  9726. template <>
  9727. struct StructExtends<PhysicalDevicePipelinePropertiesFeaturesEXT, DeviceCreateInfo>
  9728. {
  9729. enum
  9730. {
  9731. value = true
  9732. };
  9733. };
  9734. //=== VK_EXT_multisampled_render_to_single_sampled ===
  9735. template <>
  9736. struct StructExtends<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, PhysicalDeviceFeatures2>
  9737. {
  9738. enum
  9739. {
  9740. value = true
  9741. };
  9742. };
  9743. template <>
  9744. struct StructExtends<PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, DeviceCreateInfo>
  9745. {
  9746. enum
  9747. {
  9748. value = true
  9749. };
  9750. };
  9751. template <>
  9752. struct StructExtends<SubpassResolvePerformanceQueryEXT, FormatProperties2>
  9753. {
  9754. enum
  9755. {
  9756. value = true
  9757. };
  9758. };
  9759. template <>
  9760. struct StructExtends<MultisampledRenderToSingleSampledInfoEXT, SubpassDescription2>
  9761. {
  9762. enum
  9763. {
  9764. value = true
  9765. };
  9766. };
  9767. template <>
  9768. struct StructExtends<MultisampledRenderToSingleSampledInfoEXT, RenderingInfo>
  9769. {
  9770. enum
  9771. {
  9772. value = true
  9773. };
  9774. };
  9775. //=== VK_EXT_extended_dynamic_state2 ===
  9776. template <>
  9777. struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, PhysicalDeviceFeatures2>
  9778. {
  9779. enum
  9780. {
  9781. value = true
  9782. };
  9783. };
  9784. template <>
  9785. struct StructExtends<PhysicalDeviceExtendedDynamicState2FeaturesEXT, DeviceCreateInfo>
  9786. {
  9787. enum
  9788. {
  9789. value = true
  9790. };
  9791. };
  9792. //=== VK_EXT_color_write_enable ===
  9793. template <>
  9794. struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, PhysicalDeviceFeatures2>
  9795. {
  9796. enum
  9797. {
  9798. value = true
  9799. };
  9800. };
  9801. template <>
  9802. struct StructExtends<PhysicalDeviceColorWriteEnableFeaturesEXT, DeviceCreateInfo>
  9803. {
  9804. enum
  9805. {
  9806. value = true
  9807. };
  9808. };
  9809. template <>
  9810. struct StructExtends<PipelineColorWriteCreateInfoEXT, PipelineColorBlendStateCreateInfo>
  9811. {
  9812. enum
  9813. {
  9814. value = true
  9815. };
  9816. };
  9817. //=== VK_EXT_primitives_generated_query ===
  9818. template <>
  9819. struct StructExtends<PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, PhysicalDeviceFeatures2>
  9820. {
  9821. enum
  9822. {
  9823. value = true
  9824. };
  9825. };
  9826. template <>
  9827. struct StructExtends<PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, DeviceCreateInfo>
  9828. {
  9829. enum
  9830. {
  9831. value = true
  9832. };
  9833. };
  9834. //=== VK_KHR_ray_tracing_maintenance1 ===
  9835. template <>
  9836. struct StructExtends<PhysicalDeviceRayTracingMaintenance1FeaturesKHR, PhysicalDeviceFeatures2>
  9837. {
  9838. enum
  9839. {
  9840. value = true
  9841. };
  9842. };
  9843. template <>
  9844. struct StructExtends<PhysicalDeviceRayTracingMaintenance1FeaturesKHR, DeviceCreateInfo>
  9845. {
  9846. enum
  9847. {
  9848. value = true
  9849. };
  9850. };
  9851. //=== VK_EXT_image_view_min_lod ===
  9852. template <>
  9853. struct StructExtends<PhysicalDeviceImageViewMinLodFeaturesEXT, PhysicalDeviceFeatures2>
  9854. {
  9855. enum
  9856. {
  9857. value = true
  9858. };
  9859. };
  9860. template <>
  9861. struct StructExtends<PhysicalDeviceImageViewMinLodFeaturesEXT, DeviceCreateInfo>
  9862. {
  9863. enum
  9864. {
  9865. value = true
  9866. };
  9867. };
  9868. template <>
  9869. struct StructExtends<ImageViewMinLodCreateInfoEXT, ImageViewCreateInfo>
  9870. {
  9871. enum
  9872. {
  9873. value = true
  9874. };
  9875. };
  9876. //=== VK_EXT_multi_draw ===
  9877. template <>
  9878. struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, PhysicalDeviceFeatures2>
  9879. {
  9880. enum
  9881. {
  9882. value = true
  9883. };
  9884. };
  9885. template <>
  9886. struct StructExtends<PhysicalDeviceMultiDrawFeaturesEXT, DeviceCreateInfo>
  9887. {
  9888. enum
  9889. {
  9890. value = true
  9891. };
  9892. };
  9893. template <>
  9894. struct StructExtends<PhysicalDeviceMultiDrawPropertiesEXT, PhysicalDeviceProperties2>
  9895. {
  9896. enum
  9897. {
  9898. value = true
  9899. };
  9900. };
  9901. //=== VK_EXT_image_2d_view_of_3d ===
  9902. template <>
  9903. struct StructExtends<PhysicalDeviceImage2DViewOf3DFeaturesEXT, PhysicalDeviceFeatures2>
  9904. {
  9905. enum
  9906. {
  9907. value = true
  9908. };
  9909. };
  9910. template <>
  9911. struct StructExtends<PhysicalDeviceImage2DViewOf3DFeaturesEXT, DeviceCreateInfo>
  9912. {
  9913. enum
  9914. {
  9915. value = true
  9916. };
  9917. };
  9918. //=== VK_EXT_border_color_swizzle ===
  9919. template <>
  9920. struct StructExtends<PhysicalDeviceBorderColorSwizzleFeaturesEXT, PhysicalDeviceFeatures2>
  9921. {
  9922. enum
  9923. {
  9924. value = true
  9925. };
  9926. };
  9927. template <>
  9928. struct StructExtends<PhysicalDeviceBorderColorSwizzleFeaturesEXT, DeviceCreateInfo>
  9929. {
  9930. enum
  9931. {
  9932. value = true
  9933. };
  9934. };
  9935. template <>
  9936. struct StructExtends<SamplerBorderColorComponentMappingCreateInfoEXT, SamplerCreateInfo>
  9937. {
  9938. enum
  9939. {
  9940. value = true
  9941. };
  9942. };
  9943. //=== VK_EXT_pageable_device_local_memory ===
  9944. template <>
  9945. struct StructExtends<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, PhysicalDeviceFeatures2>
  9946. {
  9947. enum
  9948. {
  9949. value = true
  9950. };
  9951. };
  9952. template <>
  9953. struct StructExtends<PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, DeviceCreateInfo>
  9954. {
  9955. enum
  9956. {
  9957. value = true
  9958. };
  9959. };
  9960. //=== VK_VALVE_descriptor_set_host_mapping ===
  9961. template <>
  9962. struct StructExtends<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, PhysicalDeviceFeatures2>
  9963. {
  9964. enum
  9965. {
  9966. value = true
  9967. };
  9968. };
  9969. template <>
  9970. struct StructExtends<PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, DeviceCreateInfo>
  9971. {
  9972. enum
  9973. {
  9974. value = true
  9975. };
  9976. };
  9977. //=== VK_EXT_depth_clamp_zero_one ===
  9978. template <>
  9979. struct StructExtends<PhysicalDeviceDepthClampZeroOneFeaturesEXT, PhysicalDeviceFeatures2>
  9980. {
  9981. enum
  9982. {
  9983. value = true
  9984. };
  9985. };
  9986. template <>
  9987. struct StructExtends<PhysicalDeviceDepthClampZeroOneFeaturesEXT, DeviceCreateInfo>
  9988. {
  9989. enum
  9990. {
  9991. value = true
  9992. };
  9993. };
  9994. //=== VK_EXT_non_seamless_cube_map ===
  9995. template <>
  9996. struct StructExtends<PhysicalDeviceNonSeamlessCubeMapFeaturesEXT, PhysicalDeviceFeatures2>
  9997. {
  9998. enum
  9999. {
  10000. value = true
  10001. };
  10002. };
  10003. template <>
  10004. struct StructExtends<PhysicalDeviceNonSeamlessCubeMapFeaturesEXT, DeviceCreateInfo>
  10005. {
  10006. enum
  10007. {
  10008. value = true
  10009. };
  10010. };
  10011. //=== VK_QCOM_fragment_density_map_offset ===
  10012. template <>
  10013. struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, PhysicalDeviceFeatures2>
  10014. {
  10015. enum
  10016. {
  10017. value = true
  10018. };
  10019. };
  10020. template <>
  10021. struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM, DeviceCreateInfo>
  10022. {
  10023. enum
  10024. {
  10025. value = true
  10026. };
  10027. };
  10028. template <>
  10029. struct StructExtends<PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM, PhysicalDeviceProperties2>
  10030. {
  10031. enum
  10032. {
  10033. value = true
  10034. };
  10035. };
  10036. template <>
  10037. struct StructExtends<SubpassFragmentDensityMapOffsetEndInfoQCOM, SubpassEndInfo>
  10038. {
  10039. enum
  10040. {
  10041. value = true
  10042. };
  10043. };
  10044. //=== VK_NV_linear_color_attachment ===
  10045. template <>
  10046. struct StructExtends<PhysicalDeviceLinearColorAttachmentFeaturesNV, PhysicalDeviceFeatures2>
  10047. {
  10048. enum
  10049. {
  10050. value = true
  10051. };
  10052. };
  10053. template <>
  10054. struct StructExtends<PhysicalDeviceLinearColorAttachmentFeaturesNV, DeviceCreateInfo>
  10055. {
  10056. enum
  10057. {
  10058. value = true
  10059. };
  10060. };
  10061. //=== VK_EXT_image_compression_control_swapchain ===
  10062. template <>
  10063. struct StructExtends<PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, PhysicalDeviceFeatures2>
  10064. {
  10065. enum
  10066. {
  10067. value = true
  10068. };
  10069. };
  10070. template <>
  10071. struct StructExtends<PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, DeviceCreateInfo>
  10072. {
  10073. enum
  10074. {
  10075. value = true
  10076. };
  10077. };
  10078. //=== VK_QCOM_image_processing ===
  10079. template <>
  10080. struct StructExtends<ImageViewSampleWeightCreateInfoQCOM, ImageViewCreateInfo>
  10081. {
  10082. enum
  10083. {
  10084. value = true
  10085. };
  10086. };
  10087. template <>
  10088. struct StructExtends<PhysicalDeviceImageProcessingFeaturesQCOM, PhysicalDeviceFeatures2>
  10089. {
  10090. enum
  10091. {
  10092. value = true
  10093. };
  10094. };
  10095. template <>
  10096. struct StructExtends<PhysicalDeviceImageProcessingFeaturesQCOM, DeviceCreateInfo>
  10097. {
  10098. enum
  10099. {
  10100. value = true
  10101. };
  10102. };
  10103. template <>
  10104. struct StructExtends<PhysicalDeviceImageProcessingPropertiesQCOM, PhysicalDeviceProperties2>
  10105. {
  10106. enum
  10107. {
  10108. value = true
  10109. };
  10110. };
  10111. //=== VK_EXT_subpass_merge_feedback ===
  10112. template <>
  10113. struct StructExtends<PhysicalDeviceSubpassMergeFeedbackFeaturesEXT, PhysicalDeviceFeatures2>
  10114. {
  10115. enum
  10116. {
  10117. value = true
  10118. };
  10119. };
  10120. template <>
  10121. struct StructExtends<PhysicalDeviceSubpassMergeFeedbackFeaturesEXT, DeviceCreateInfo>
  10122. {
  10123. enum
  10124. {
  10125. value = true
  10126. };
  10127. };
  10128. template <>
  10129. struct StructExtends<RenderPassCreationControlEXT, RenderPassCreateInfo2>
  10130. {
  10131. enum
  10132. {
  10133. value = true
  10134. };
  10135. };
  10136. template <>
  10137. struct StructExtends<RenderPassCreationControlEXT, SubpassDescription2>
  10138. {
  10139. enum
  10140. {
  10141. value = true
  10142. };
  10143. };
  10144. template <>
  10145. struct StructExtends<RenderPassCreationFeedbackCreateInfoEXT, RenderPassCreateInfo2>
  10146. {
  10147. enum
  10148. {
  10149. value = true
  10150. };
  10151. };
  10152. template <>
  10153. struct StructExtends<RenderPassSubpassFeedbackCreateInfoEXT, SubpassDescription2>
  10154. {
  10155. enum
  10156. {
  10157. value = true
  10158. };
  10159. };
  10160. //=== VK_EXT_shader_module_identifier ===
  10161. template <>
  10162. struct StructExtends<PhysicalDeviceShaderModuleIdentifierFeaturesEXT, PhysicalDeviceFeatures2>
  10163. {
  10164. enum
  10165. {
  10166. value = true
  10167. };
  10168. };
  10169. template <>
  10170. struct StructExtends<PhysicalDeviceShaderModuleIdentifierFeaturesEXT, DeviceCreateInfo>
  10171. {
  10172. enum
  10173. {
  10174. value = true
  10175. };
  10176. };
  10177. template <>
  10178. struct StructExtends<PhysicalDeviceShaderModuleIdentifierPropertiesEXT, PhysicalDeviceProperties2>
  10179. {
  10180. enum
  10181. {
  10182. value = true
  10183. };
  10184. };
  10185. template <>
  10186. struct StructExtends<PipelineShaderStageModuleIdentifierCreateInfoEXT, PipelineShaderStageCreateInfo>
  10187. {
  10188. enum
  10189. {
  10190. value = true
  10191. };
  10192. };
  10193. //=== VK_EXT_rasterization_order_attachment_access ===
  10194. template <>
  10195. struct StructExtends<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, PhysicalDeviceFeatures2>
  10196. {
  10197. enum
  10198. {
  10199. value = true
  10200. };
  10201. };
  10202. template <>
  10203. struct StructExtends<PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, DeviceCreateInfo>
  10204. {
  10205. enum
  10206. {
  10207. value = true
  10208. };
  10209. };
  10210. //=== VK_QCOM_tile_properties ===
  10211. template <>
  10212. struct StructExtends<PhysicalDeviceTilePropertiesFeaturesQCOM, PhysicalDeviceFeatures2>
  10213. {
  10214. enum
  10215. {
  10216. value = true
  10217. };
  10218. };
  10219. template <>
  10220. struct StructExtends<PhysicalDeviceTilePropertiesFeaturesQCOM, DeviceCreateInfo>
  10221. {
  10222. enum
  10223. {
  10224. value = true
  10225. };
  10226. };
  10227. //=== VK_SEC_amigo_profiling ===
  10228. template <>
  10229. struct StructExtends<PhysicalDeviceAmigoProfilingFeaturesSEC, PhysicalDeviceFeatures2>
  10230. {
  10231. enum
  10232. {
  10233. value = true
  10234. };
  10235. };
  10236. template <>
  10237. struct StructExtends<PhysicalDeviceAmigoProfilingFeaturesSEC, DeviceCreateInfo>
  10238. {
  10239. enum
  10240. {
  10241. value = true
  10242. };
  10243. };
  10244. template <>
  10245. struct StructExtends<AmigoProfilingSubmitInfoSEC, SubmitInfo>
  10246. {
  10247. enum
  10248. {
  10249. value = true
  10250. };
  10251. };
  10252. #endif // VULKAN_HPP_DISABLE_ENHANCED_MODE
  10253. #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
  10254. class DynamicLoader
  10255. {
  10256. public:
  10257. # ifdef VULKAN_HPP_NO_EXCEPTIONS
  10258. DynamicLoader( std::string const & vulkanLibraryName = {} ) VULKAN_HPP_NOEXCEPT
  10259. # else
  10260. DynamicLoader( std::string const & vulkanLibraryName = {} )
  10261. # endif
  10262. {
  10263. if ( !vulkanLibraryName.empty() )
  10264. {
  10265. # if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
  10266. m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL );
  10267. # elif defined( _WIN32 )
  10268. m_library = ::LoadLibraryA( vulkanLibraryName.c_str() );
  10269. # else
  10270. # error unsupported platform
  10271. # endif
  10272. }
  10273. else
  10274. {
  10275. # if defined( __unix__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
  10276. m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
  10277. if ( m_library == nullptr )
  10278. {
  10279. m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL );
  10280. }
  10281. # elif defined( __APPLE__ )
  10282. m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
  10283. # elif defined( _WIN32 )
  10284. m_library = ::LoadLibraryA( "vulkan-1.dll" );
  10285. # else
  10286. # error unsupported platform
  10287. # endif
  10288. }
  10289. # ifndef VULKAN_HPP_NO_EXCEPTIONS
  10290. if ( m_library == nullptr )
  10291. {
  10292. // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function.
  10293. throw std::runtime_error( "Failed to load vulkan library!" );
  10294. }
  10295. # endif
  10296. }
  10297. DynamicLoader( DynamicLoader const & ) = delete;
  10298. DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library( other.m_library )
  10299. {
  10300. other.m_library = nullptr;
  10301. }
  10302. DynamicLoader & operator=( DynamicLoader const & ) = delete;
  10303. DynamicLoader & operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT
  10304. {
  10305. std::swap( m_library, other.m_library );
  10306. return *this;
  10307. }
  10308. ~DynamicLoader() VULKAN_HPP_NOEXCEPT
  10309. {
  10310. if ( m_library )
  10311. {
  10312. # if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
  10313. dlclose( m_library );
  10314. # elif defined( _WIN32 )
  10315. ::FreeLibrary( m_library );
  10316. # else
  10317. # error unsupported platform
  10318. # endif
  10319. }
  10320. }
  10321. template <typename T>
  10322. T getProcAddress( const char * function ) const VULKAN_HPP_NOEXCEPT
  10323. {
  10324. # if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
  10325. return (T)dlsym( m_library, function );
  10326. # elif defined( _WIN32 )
  10327. return ( T )::GetProcAddress( m_library, function );
  10328. # else
  10329. # error unsupported platform
  10330. # endif
  10331. }
  10332. bool success() const VULKAN_HPP_NOEXCEPT
  10333. {
  10334. return m_library != nullptr;
  10335. }
  10336. private:
  10337. # if defined( __unix__ ) || defined( __APPLE__ ) || defined( __QNXNTO__ ) || defined( __Fuchsia__ )
  10338. void * m_library;
  10339. # elif defined( _WIN32 )
  10340. ::HINSTANCE m_library;
  10341. # else
  10342. # error unsupported platform
  10343. # endif
  10344. };
  10345. #endif
  10346. using PFN_dummy = void ( * )();
  10347. class DispatchLoaderDynamic : public DispatchLoaderBase
  10348. {
  10349. public:
  10350. //=== VK_VERSION_1_0 ===
  10351. PFN_vkCreateInstance vkCreateInstance = 0;
  10352. PFN_vkDestroyInstance vkDestroyInstance = 0;
  10353. PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
  10354. PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
  10355. PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
  10356. PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
  10357. PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
  10358. PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
  10359. PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
  10360. PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
  10361. PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
  10362. PFN_vkCreateDevice vkCreateDevice = 0;
  10363. PFN_vkDestroyDevice vkDestroyDevice = 0;
  10364. PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
  10365. PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
  10366. PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
  10367. PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
  10368. PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
  10369. PFN_vkQueueSubmit vkQueueSubmit = 0;
  10370. PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
  10371. PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
  10372. PFN_vkAllocateMemory vkAllocateMemory = 0;
  10373. PFN_vkFreeMemory vkFreeMemory = 0;
  10374. PFN_vkMapMemory vkMapMemory = 0;
  10375. PFN_vkUnmapMemory vkUnmapMemory = 0;
  10376. PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
  10377. PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
  10378. PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
  10379. PFN_vkBindBufferMemory vkBindBufferMemory = 0;
  10380. PFN_vkBindImageMemory vkBindImageMemory = 0;
  10381. PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
  10382. PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
  10383. PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
  10384. PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
  10385. PFN_vkQueueBindSparse vkQueueBindSparse = 0;
  10386. PFN_vkCreateFence vkCreateFence = 0;
  10387. PFN_vkDestroyFence vkDestroyFence = 0;
  10388. PFN_vkResetFences vkResetFences = 0;
  10389. PFN_vkGetFenceStatus vkGetFenceStatus = 0;
  10390. PFN_vkWaitForFences vkWaitForFences = 0;
  10391. PFN_vkCreateSemaphore vkCreateSemaphore = 0;
  10392. PFN_vkDestroySemaphore vkDestroySemaphore = 0;
  10393. PFN_vkCreateEvent vkCreateEvent = 0;
  10394. PFN_vkDestroyEvent vkDestroyEvent = 0;
  10395. PFN_vkGetEventStatus vkGetEventStatus = 0;
  10396. PFN_vkSetEvent vkSetEvent = 0;
  10397. PFN_vkResetEvent vkResetEvent = 0;
  10398. PFN_vkCreateQueryPool vkCreateQueryPool = 0;
  10399. PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
  10400. PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
  10401. PFN_vkCreateBuffer vkCreateBuffer = 0;
  10402. PFN_vkDestroyBuffer vkDestroyBuffer = 0;
  10403. PFN_vkCreateBufferView vkCreateBufferView = 0;
  10404. PFN_vkDestroyBufferView vkDestroyBufferView = 0;
  10405. PFN_vkCreateImage vkCreateImage = 0;
  10406. PFN_vkDestroyImage vkDestroyImage = 0;
  10407. PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
  10408. PFN_vkCreateImageView vkCreateImageView = 0;
  10409. PFN_vkDestroyImageView vkDestroyImageView = 0;
  10410. PFN_vkCreateShaderModule vkCreateShaderModule = 0;
  10411. PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
  10412. PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
  10413. PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
  10414. PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
  10415. PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
  10416. PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
  10417. PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
  10418. PFN_vkDestroyPipeline vkDestroyPipeline = 0;
  10419. PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
  10420. PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
  10421. PFN_vkCreateSampler vkCreateSampler = 0;
  10422. PFN_vkDestroySampler vkDestroySampler = 0;
  10423. PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
  10424. PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
  10425. PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
  10426. PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
  10427. PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
  10428. PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
  10429. PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
  10430. PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
  10431. PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
  10432. PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
  10433. PFN_vkCreateRenderPass vkCreateRenderPass = 0;
  10434. PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
  10435. PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
  10436. PFN_vkCreateCommandPool vkCreateCommandPool = 0;
  10437. PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
  10438. PFN_vkResetCommandPool vkResetCommandPool = 0;
  10439. PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
  10440. PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
  10441. PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
  10442. PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
  10443. PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
  10444. PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
  10445. PFN_vkCmdSetViewport vkCmdSetViewport = 0;
  10446. PFN_vkCmdSetScissor vkCmdSetScissor = 0;
  10447. PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
  10448. PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
  10449. PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
  10450. PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
  10451. PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
  10452. PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
  10453. PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
  10454. PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
  10455. PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
  10456. PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
  10457. PFN_vkCmdDraw vkCmdDraw = 0;
  10458. PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
  10459. PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
  10460. PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
  10461. PFN_vkCmdDispatch vkCmdDispatch = 0;
  10462. PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
  10463. PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
  10464. PFN_vkCmdCopyImage vkCmdCopyImage = 0;
  10465. PFN_vkCmdBlitImage vkCmdBlitImage = 0;
  10466. PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
  10467. PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
  10468. PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
  10469. PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
  10470. PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
  10471. PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
  10472. PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
  10473. PFN_vkCmdResolveImage vkCmdResolveImage = 0;
  10474. PFN_vkCmdSetEvent vkCmdSetEvent = 0;
  10475. PFN_vkCmdResetEvent vkCmdResetEvent = 0;
  10476. PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
  10477. PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
  10478. PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
  10479. PFN_vkCmdEndQuery vkCmdEndQuery = 0;
  10480. PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
  10481. PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
  10482. PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
  10483. PFN_vkCmdPushConstants vkCmdPushConstants = 0;
  10484. PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
  10485. PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
  10486. PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
  10487. PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
  10488. //=== VK_VERSION_1_1 ===
  10489. PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
  10490. PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
  10491. PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
  10492. PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
  10493. PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
  10494. PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
  10495. PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
  10496. PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
  10497. PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
  10498. PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
  10499. PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
  10500. PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
  10501. PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
  10502. PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
  10503. PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
  10504. PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
  10505. PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
  10506. PFN_vkTrimCommandPool vkTrimCommandPool = 0;
  10507. PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
  10508. PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
  10509. PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
  10510. PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
  10511. PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
  10512. PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
  10513. PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
  10514. PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
  10515. PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
  10516. PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
  10517. //=== VK_VERSION_1_2 ===
  10518. PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
  10519. PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
  10520. PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
  10521. PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
  10522. PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
  10523. PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
  10524. PFN_vkResetQueryPool vkResetQueryPool = 0;
  10525. PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
  10526. PFN_vkWaitSemaphores vkWaitSemaphores = 0;
  10527. PFN_vkSignalSemaphore vkSignalSemaphore = 0;
  10528. PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
  10529. PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
  10530. PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
  10531. //=== VK_VERSION_1_3 ===
  10532. PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties = 0;
  10533. PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot = 0;
  10534. PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot = 0;
  10535. PFN_vkSetPrivateData vkSetPrivateData = 0;
  10536. PFN_vkGetPrivateData vkGetPrivateData = 0;
  10537. PFN_vkCmdSetEvent2 vkCmdSetEvent2 = 0;
  10538. PFN_vkCmdResetEvent2 vkCmdResetEvent2 = 0;
  10539. PFN_vkCmdWaitEvents2 vkCmdWaitEvents2 = 0;
  10540. PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2 = 0;
  10541. PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2 = 0;
  10542. PFN_vkQueueSubmit2 vkQueueSubmit2 = 0;
  10543. PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2 = 0;
  10544. PFN_vkCmdCopyImage2 vkCmdCopyImage2 = 0;
  10545. PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2 = 0;
  10546. PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2 = 0;
  10547. PFN_vkCmdBlitImage2 vkCmdBlitImage2 = 0;
  10548. PFN_vkCmdResolveImage2 vkCmdResolveImage2 = 0;
  10549. PFN_vkCmdBeginRendering vkCmdBeginRendering = 0;
  10550. PFN_vkCmdEndRendering vkCmdEndRendering = 0;
  10551. PFN_vkCmdSetCullMode vkCmdSetCullMode = 0;
  10552. PFN_vkCmdSetFrontFace vkCmdSetFrontFace = 0;
  10553. PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology = 0;
  10554. PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount = 0;
  10555. PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount = 0;
  10556. PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2 = 0;
  10557. PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable = 0;
  10558. PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable = 0;
  10559. PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp = 0;
  10560. PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable = 0;
  10561. PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable = 0;
  10562. PFN_vkCmdSetStencilOp vkCmdSetStencilOp = 0;
  10563. PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable = 0;
  10564. PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable = 0;
  10565. PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable = 0;
  10566. PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements = 0;
  10567. PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements = 0;
  10568. PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements = 0;
  10569. //=== VK_KHR_surface ===
  10570. PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
  10571. PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
  10572. PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
  10573. PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
  10574. PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
  10575. //=== VK_KHR_swapchain ===
  10576. PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
  10577. PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
  10578. PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
  10579. PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
  10580. PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
  10581. PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
  10582. PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
  10583. PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
  10584. PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
  10585. //=== VK_KHR_display ===
  10586. PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
  10587. PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
  10588. PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
  10589. PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
  10590. PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
  10591. PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
  10592. PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
  10593. //=== VK_KHR_display_swapchain ===
  10594. PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
  10595. #if defined( VK_USE_PLATFORM_XLIB_KHR )
  10596. //=== VK_KHR_xlib_surface ===
  10597. PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
  10598. PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
  10599. #else
  10600. PFN_dummy vkCreateXlibSurfaceKHR_placeholder = 0;
  10601. PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder = 0;
  10602. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  10603. #if defined( VK_USE_PLATFORM_XCB_KHR )
  10604. //=== VK_KHR_xcb_surface ===
  10605. PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
  10606. PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
  10607. #else
  10608. PFN_dummy vkCreateXcbSurfaceKHR_placeholder = 0;
  10609. PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder = 0;
  10610. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  10611. #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
  10612. //=== VK_KHR_wayland_surface ===
  10613. PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
  10614. PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
  10615. #else
  10616. PFN_dummy vkCreateWaylandSurfaceKHR_placeholder = 0;
  10617. PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder = 0;
  10618. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  10619. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  10620. //=== VK_KHR_android_surface ===
  10621. PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
  10622. #else
  10623. PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0;
  10624. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  10625. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  10626. //=== VK_KHR_win32_surface ===
  10627. PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
  10628. PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
  10629. #else
  10630. PFN_dummy vkCreateWin32SurfaceKHR_placeholder = 0;
  10631. PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0;
  10632. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10633. //=== VK_EXT_debug_report ===
  10634. PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
  10635. PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
  10636. PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
  10637. //=== VK_EXT_debug_marker ===
  10638. PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
  10639. PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
  10640. PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
  10641. PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
  10642. PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
  10643. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  10644. //=== VK_KHR_video_queue ===
  10645. PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR = 0;
  10646. PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
  10647. PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR = 0;
  10648. PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR = 0;
  10649. PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0;
  10650. PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR = 0;
  10651. PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR = 0;
  10652. PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR = 0;
  10653. PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR = 0;
  10654. PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR = 0;
  10655. PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR = 0;
  10656. PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR = 0;
  10657. #else
  10658. PFN_dummy vkGetPhysicalDeviceVideoCapabilitiesKHR_placeholder = 0;
  10659. PFN_dummy vkGetPhysicalDeviceVideoFormatPropertiesKHR_placeholder = 0;
  10660. PFN_dummy vkCreateVideoSessionKHR_placeholder = 0;
  10661. PFN_dummy vkDestroyVideoSessionKHR_placeholder = 0;
  10662. PFN_dummy vkGetVideoSessionMemoryRequirementsKHR_placeholder = 0;
  10663. PFN_dummy vkBindVideoSessionMemoryKHR_placeholder = 0;
  10664. PFN_dummy vkCreateVideoSessionParametersKHR_placeholder = 0;
  10665. PFN_dummy vkUpdateVideoSessionParametersKHR_placeholder = 0;
  10666. PFN_dummy vkDestroyVideoSessionParametersKHR_placeholder = 0;
  10667. PFN_dummy vkCmdBeginVideoCodingKHR_placeholder = 0;
  10668. PFN_dummy vkCmdEndVideoCodingKHR_placeholder = 0;
  10669. PFN_dummy vkCmdControlVideoCodingKHR_placeholder = 0;
  10670. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  10671. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  10672. //=== VK_KHR_video_decode_queue ===
  10673. PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
  10674. #else
  10675. PFN_dummy vkCmdDecodeVideoKHR_placeholder = 0;
  10676. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  10677. //=== VK_EXT_transform_feedback ===
  10678. PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
  10679. PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
  10680. PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
  10681. PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
  10682. PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
  10683. PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
  10684. //=== VK_NVX_binary_import ===
  10685. PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX = 0;
  10686. PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX = 0;
  10687. PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX = 0;
  10688. PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
  10689. PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
  10690. //=== VK_NVX_image_view_handle ===
  10691. PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
  10692. PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
  10693. //=== VK_AMD_draw_indirect_count ===
  10694. PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
  10695. PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
  10696. //=== VK_AMD_shader_info ===
  10697. PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
  10698. //=== VK_KHR_dynamic_rendering ===
  10699. PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR = 0;
  10700. PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR = 0;
  10701. #if defined( VK_USE_PLATFORM_GGP )
  10702. //=== VK_GGP_stream_descriptor_surface ===
  10703. PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
  10704. #else
  10705. PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder = 0;
  10706. #endif /*VK_USE_PLATFORM_GGP*/
  10707. //=== VK_NV_external_memory_capabilities ===
  10708. PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
  10709. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  10710. //=== VK_NV_external_memory_win32 ===
  10711. PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
  10712. #else
  10713. PFN_dummy vkGetMemoryWin32HandleNV_placeholder = 0;
  10714. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10715. //=== VK_KHR_get_physical_device_properties2 ===
  10716. PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
  10717. PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
  10718. PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
  10719. PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
  10720. PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
  10721. PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
  10722. PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
  10723. //=== VK_KHR_device_group ===
  10724. PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
  10725. PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
  10726. PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
  10727. #if defined( VK_USE_PLATFORM_VI_NN )
  10728. //=== VK_NN_vi_surface ===
  10729. PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
  10730. #else
  10731. PFN_dummy vkCreateViSurfaceNN_placeholder = 0;
  10732. #endif /*VK_USE_PLATFORM_VI_NN*/
  10733. //=== VK_KHR_maintenance1 ===
  10734. PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
  10735. //=== VK_KHR_device_group_creation ===
  10736. PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
  10737. //=== VK_KHR_external_memory_capabilities ===
  10738. PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
  10739. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  10740. //=== VK_KHR_external_memory_win32 ===
  10741. PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
  10742. PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
  10743. #else
  10744. PFN_dummy vkGetMemoryWin32HandleKHR_placeholder = 0;
  10745. PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder = 0;
  10746. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10747. //=== VK_KHR_external_memory_fd ===
  10748. PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
  10749. PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
  10750. //=== VK_KHR_external_semaphore_capabilities ===
  10751. PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
  10752. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  10753. //=== VK_KHR_external_semaphore_win32 ===
  10754. PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
  10755. PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
  10756. #else
  10757. PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder = 0;
  10758. PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder = 0;
  10759. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10760. //=== VK_KHR_external_semaphore_fd ===
  10761. PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
  10762. PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
  10763. //=== VK_KHR_push_descriptor ===
  10764. PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
  10765. PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
  10766. //=== VK_EXT_conditional_rendering ===
  10767. PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
  10768. PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
  10769. //=== VK_KHR_descriptor_update_template ===
  10770. PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
  10771. PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
  10772. PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
  10773. //=== VK_NV_clip_space_w_scaling ===
  10774. PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
  10775. //=== VK_EXT_direct_mode_display ===
  10776. PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
  10777. #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
  10778. //=== VK_EXT_acquire_xlib_display ===
  10779. PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
  10780. PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
  10781. #else
  10782. PFN_dummy vkAcquireXlibDisplayEXT_placeholder = 0;
  10783. PFN_dummy vkGetRandROutputDisplayEXT_placeholder = 0;
  10784. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  10785. //=== VK_EXT_display_surface_counter ===
  10786. PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
  10787. //=== VK_EXT_display_control ===
  10788. PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
  10789. PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
  10790. PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
  10791. PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
  10792. //=== VK_GOOGLE_display_timing ===
  10793. PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
  10794. PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
  10795. //=== VK_EXT_discard_rectangles ===
  10796. PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
  10797. //=== VK_EXT_hdr_metadata ===
  10798. PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
  10799. //=== VK_KHR_create_renderpass2 ===
  10800. PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
  10801. PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
  10802. PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
  10803. PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
  10804. //=== VK_KHR_shared_presentable_image ===
  10805. PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
  10806. //=== VK_KHR_external_fence_capabilities ===
  10807. PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
  10808. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  10809. //=== VK_KHR_external_fence_win32 ===
  10810. PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
  10811. PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
  10812. #else
  10813. PFN_dummy vkImportFenceWin32HandleKHR_placeholder = 0;
  10814. PFN_dummy vkGetFenceWin32HandleKHR_placeholder = 0;
  10815. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10816. //=== VK_KHR_external_fence_fd ===
  10817. PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
  10818. PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
  10819. //=== VK_KHR_performance_query ===
  10820. PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
  10821. PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
  10822. PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
  10823. PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
  10824. //=== VK_KHR_get_surface_capabilities2 ===
  10825. PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
  10826. PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
  10827. //=== VK_KHR_get_display_properties2 ===
  10828. PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
  10829. PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
  10830. PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
  10831. PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
  10832. #if defined( VK_USE_PLATFORM_IOS_MVK )
  10833. //=== VK_MVK_ios_surface ===
  10834. PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
  10835. #else
  10836. PFN_dummy vkCreateIOSSurfaceMVK_placeholder = 0;
  10837. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  10838. #if defined( VK_USE_PLATFORM_MACOS_MVK )
  10839. //=== VK_MVK_macos_surface ===
  10840. PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
  10841. #else
  10842. PFN_dummy vkCreateMacOSSurfaceMVK_placeholder = 0;
  10843. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  10844. //=== VK_EXT_debug_utils ===
  10845. PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
  10846. PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
  10847. PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
  10848. PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
  10849. PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
  10850. PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
  10851. PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
  10852. PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
  10853. PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
  10854. PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
  10855. PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
  10856. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  10857. //=== VK_ANDROID_external_memory_android_hardware_buffer ===
  10858. PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
  10859. PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
  10860. #else
  10861. PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder = 0;
  10862. PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder = 0;
  10863. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  10864. //=== VK_EXT_sample_locations ===
  10865. PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
  10866. PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
  10867. //=== VK_KHR_get_memory_requirements2 ===
  10868. PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
  10869. PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
  10870. PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
  10871. //=== VK_KHR_acceleration_structure ===
  10872. PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
  10873. PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
  10874. PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0;
  10875. PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0;
  10876. PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0;
  10877. PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
  10878. PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
  10879. PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
  10880. PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
  10881. PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
  10882. PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
  10883. PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
  10884. PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
  10885. PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
  10886. PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
  10887. PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0;
  10888. //=== VK_KHR_sampler_ycbcr_conversion ===
  10889. PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
  10890. PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
  10891. //=== VK_KHR_bind_memory2 ===
  10892. PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
  10893. PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
  10894. //=== VK_EXT_image_drm_format_modifier ===
  10895. PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
  10896. //=== VK_EXT_validation_cache ===
  10897. PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
  10898. PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
  10899. PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
  10900. PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
  10901. //=== VK_NV_shading_rate_image ===
  10902. PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
  10903. PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
  10904. PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
  10905. //=== VK_NV_ray_tracing ===
  10906. PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
  10907. PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
  10908. PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
  10909. PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
  10910. PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
  10911. PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
  10912. PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
  10913. PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
  10914. PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
  10915. PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
  10916. PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
  10917. PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
  10918. //=== VK_KHR_maintenance3 ===
  10919. PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
  10920. //=== VK_KHR_draw_indirect_count ===
  10921. PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
  10922. PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
  10923. //=== VK_EXT_external_memory_host ===
  10924. PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
  10925. //=== VK_AMD_buffer_marker ===
  10926. PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
  10927. //=== VK_EXT_calibrated_timestamps ===
  10928. PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
  10929. PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
  10930. //=== VK_NV_mesh_shader ===
  10931. PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
  10932. PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
  10933. PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
  10934. //=== VK_NV_scissor_exclusive ===
  10935. PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
  10936. //=== VK_NV_device_diagnostic_checkpoints ===
  10937. PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
  10938. PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
  10939. //=== VK_KHR_timeline_semaphore ===
  10940. PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
  10941. PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
  10942. PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
  10943. //=== VK_INTEL_performance_query ===
  10944. PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
  10945. PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
  10946. PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
  10947. PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
  10948. PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
  10949. PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
  10950. PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
  10951. PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
  10952. PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
  10953. //=== VK_AMD_display_native_hdr ===
  10954. PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
  10955. #if defined( VK_USE_PLATFORM_FUCHSIA )
  10956. //=== VK_FUCHSIA_imagepipe_surface ===
  10957. PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
  10958. #else
  10959. PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder = 0;
  10960. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  10961. #if defined( VK_USE_PLATFORM_METAL_EXT )
  10962. //=== VK_EXT_metal_surface ===
  10963. PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
  10964. #else
  10965. PFN_dummy vkCreateMetalSurfaceEXT_placeholder = 0;
  10966. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  10967. //=== VK_KHR_fragment_shading_rate ===
  10968. PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
  10969. PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
  10970. //=== VK_EXT_buffer_device_address ===
  10971. PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
  10972. //=== VK_EXT_tooling_info ===
  10973. PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
  10974. //=== VK_KHR_present_wait ===
  10975. PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0;
  10976. //=== VK_NV_cooperative_matrix ===
  10977. PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
  10978. //=== VK_NV_coverage_reduction_mode ===
  10979. PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
  10980. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  10981. //=== VK_EXT_full_screen_exclusive ===
  10982. PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
  10983. PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
  10984. PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
  10985. PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
  10986. #else
  10987. PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder = 0;
  10988. PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder = 0;
  10989. PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder = 0;
  10990. PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder = 0;
  10991. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10992. //=== VK_EXT_headless_surface ===
  10993. PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
  10994. //=== VK_KHR_buffer_device_address ===
  10995. PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
  10996. PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
  10997. PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
  10998. //=== VK_EXT_line_rasterization ===
  10999. PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
  11000. //=== VK_EXT_host_query_reset ===
  11001. PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
  11002. //=== VK_EXT_extended_dynamic_state ===
  11003. PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0;
  11004. PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0;
  11005. PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0;
  11006. PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0;
  11007. PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0;
  11008. PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0;
  11009. PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0;
  11010. PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0;
  11011. PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0;
  11012. PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
  11013. PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0;
  11014. PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0;
  11015. //=== VK_KHR_deferred_host_operations ===
  11016. PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
  11017. PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
  11018. PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
  11019. PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
  11020. PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
  11021. //=== VK_KHR_pipeline_executable_properties ===
  11022. PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
  11023. PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
  11024. PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
  11025. //=== VK_NV_device_generated_commands ===
  11026. PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
  11027. PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
  11028. PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
  11029. PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
  11030. PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
  11031. PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
  11032. //=== VK_EXT_acquire_drm_display ===
  11033. PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
  11034. PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT = 0;
  11035. //=== VK_EXT_private_data ===
  11036. PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
  11037. PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
  11038. PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
  11039. PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
  11040. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  11041. //=== VK_KHR_video_encode_queue ===
  11042. PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0;
  11043. #else
  11044. PFN_dummy vkCmdEncodeVideoKHR_placeholder = 0;
  11045. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11046. #if defined( VK_USE_PLATFORM_METAL_EXT )
  11047. //=== VK_EXT_metal_objects ===
  11048. PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT = 0;
  11049. #else
  11050. PFN_dummy vkExportMetalObjectsEXT_placeholder = 0;
  11051. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  11052. //=== VK_KHR_synchronization2 ===
  11053. PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0;
  11054. PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0;
  11055. PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0;
  11056. PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0;
  11057. PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0;
  11058. PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0;
  11059. PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0;
  11060. PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
  11061. //=== VK_NV_fragment_shading_rate_enums ===
  11062. PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
  11063. //=== VK_EXT_mesh_shader ===
  11064. PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT = 0;
  11065. PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT = 0;
  11066. PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT = 0;
  11067. //=== VK_KHR_copy_commands2 ===
  11068. PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0;
  11069. PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0;
  11070. PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
  11071. PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
  11072. PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0;
  11073. PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0;
  11074. //=== VK_EXT_image_compression_control ===
  11075. PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT = 0;
  11076. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  11077. //=== VK_NV_acquire_winrt_display ===
  11078. PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0;
  11079. PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0;
  11080. #else
  11081. PFN_dummy vkAcquireWinrtDisplayNV_placeholder = 0;
  11082. PFN_dummy vkGetWinrtDisplayNV_placeholder = 0;
  11083. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  11084. #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
  11085. //=== VK_EXT_directfb_surface ===
  11086. PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0;
  11087. PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
  11088. #else
  11089. PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder = 0;
  11090. PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0;
  11091. #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
  11092. //=== VK_KHR_ray_tracing_pipeline ===
  11093. PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
  11094. PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
  11095. PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0;
  11096. PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
  11097. PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
  11098. PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0;
  11099. PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0;
  11100. //=== VK_EXT_vertex_input_dynamic_state ===
  11101. PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
  11102. #if defined( VK_USE_PLATFORM_FUCHSIA )
  11103. //=== VK_FUCHSIA_external_memory ===
  11104. PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA = 0;
  11105. PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
  11106. #else
  11107. PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder = 0;
  11108. PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder = 0;
  11109. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  11110. #if defined( VK_USE_PLATFORM_FUCHSIA )
  11111. //=== VK_FUCHSIA_external_semaphore ===
  11112. PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0;
  11113. PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA = 0;
  11114. #else
  11115. PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder = 0;
  11116. PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder = 0;
  11117. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  11118. #if defined( VK_USE_PLATFORM_FUCHSIA )
  11119. //=== VK_FUCHSIA_buffer_collection ===
  11120. PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA = 0;
  11121. PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA = 0;
  11122. PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA = 0;
  11123. PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA = 0;
  11124. PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA = 0;
  11125. #else
  11126. PFN_dummy vkCreateBufferCollectionFUCHSIA_placeholder = 0;
  11127. PFN_dummy vkSetBufferCollectionImageConstraintsFUCHSIA_placeholder = 0;
  11128. PFN_dummy vkSetBufferCollectionBufferConstraintsFUCHSIA_placeholder = 0;
  11129. PFN_dummy vkDestroyBufferCollectionFUCHSIA_placeholder = 0;
  11130. PFN_dummy vkGetBufferCollectionPropertiesFUCHSIA_placeholder = 0;
  11131. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  11132. //=== VK_HUAWEI_subpass_shading ===
  11133. PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
  11134. PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI = 0;
  11135. //=== VK_HUAWEI_invocation_mask ===
  11136. PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0;
  11137. //=== VK_NV_external_memory_rdma ===
  11138. PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0;
  11139. //=== VK_EXT_pipeline_properties ===
  11140. PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT = 0;
  11141. //=== VK_EXT_extended_dynamic_state2 ===
  11142. PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT = 0;
  11143. PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0;
  11144. PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT = 0;
  11145. PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT = 0;
  11146. PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT = 0;
  11147. #if defined( VK_USE_PLATFORM_SCREEN_QNX )
  11148. //=== VK_QNX_screen_surface ===
  11149. PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0;
  11150. PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
  11151. #else
  11152. PFN_dummy vkCreateScreenSurfaceQNX_placeholder = 0;
  11153. PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder = 0;
  11154. #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  11155. //=== VK_EXT_color_write_enable ===
  11156. PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
  11157. //=== VK_KHR_ray_tracing_maintenance1 ===
  11158. PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR = 0;
  11159. //=== VK_EXT_multi_draw ===
  11160. PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT = 0;
  11161. PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
  11162. //=== VK_EXT_pageable_device_local_memory ===
  11163. PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0;
  11164. //=== VK_KHR_maintenance4 ===
  11165. PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR = 0;
  11166. PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR = 0;
  11167. PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR = 0;
  11168. //=== VK_VALVE_descriptor_set_host_mapping ===
  11169. PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE = 0;
  11170. PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE = 0;
  11171. //=== VK_EXT_shader_module_identifier ===
  11172. PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT = 0;
  11173. PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT = 0;
  11174. //=== VK_QCOM_tile_properties ===
  11175. PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM = 0;
  11176. PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0;
  11177. public:
  11178. DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default;
  11179. DispatchLoaderDynamic( DispatchLoaderDynamic const & rhs ) VULKAN_HPP_NOEXCEPT = default;
  11180. #if !defined( VK_NO_PROTOTYPES )
  11181. // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
  11182. template <typename DynamicLoader>
  11183. void init( VULKAN_HPP_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::Device const & device, DynamicLoader const & dl ) VULKAN_HPP_NOEXCEPT
  11184. {
  11185. PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
  11186. PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.template getProcAddress<PFN_vkGetDeviceProcAddr>( "vkGetDeviceProcAddr" );
  11187. init( static_cast<VkInstance>( instance ), getInstanceProcAddr, static_cast<VkDevice>( device ), device ? getDeviceProcAddr : nullptr );
  11188. }
  11189. // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library.
  11190. template <typename DynamicLoader
  11191. # if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
  11192. = VULKAN_HPP_NAMESPACE::DynamicLoader
  11193. # endif
  11194. >
  11195. void init( VULKAN_HPP_NAMESPACE::Instance const & instance, VULKAN_HPP_NAMESPACE::Device const & device ) VULKAN_HPP_NOEXCEPT
  11196. {
  11197. static DynamicLoader dl;
  11198. init( instance, device, dl );
  11199. }
  11200. #endif // !defined( VK_NO_PROTOTYPES )
  11201. DispatchLoaderDynamic( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
  11202. {
  11203. init( getInstanceProcAddr );
  11204. }
  11205. void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT
  11206. {
  11207. VULKAN_HPP_ASSERT( getInstanceProcAddr );
  11208. vkGetInstanceProcAddr = getInstanceProcAddr;
  11209. //=== VK_VERSION_1_0 ===
  11210. vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) );
  11211. vkEnumerateInstanceExtensionProperties =
  11212. PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) );
  11213. vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) );
  11214. //=== VK_VERSION_1_1 ===
  11215. vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) );
  11216. }
  11217. // This interface does not require a linked vulkan library.
  11218. DispatchLoaderDynamic( VkInstance instance,
  11219. PFN_vkGetInstanceProcAddr getInstanceProcAddr,
  11220. VkDevice device = {},
  11221. PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT
  11222. {
  11223. init( instance, getInstanceProcAddr, device, getDeviceProcAddr );
  11224. }
  11225. // This interface does not require a linked vulkan library.
  11226. void init( VkInstance instance,
  11227. PFN_vkGetInstanceProcAddr getInstanceProcAddr,
  11228. VkDevice device = {},
  11229. PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT
  11230. {
  11231. VULKAN_HPP_ASSERT( instance && getInstanceProcAddr );
  11232. vkGetInstanceProcAddr = getInstanceProcAddr;
  11233. init( VULKAN_HPP_NAMESPACE::Instance( instance ) );
  11234. if ( device )
  11235. {
  11236. init( VULKAN_HPP_NAMESPACE::Device( device ) );
  11237. }
  11238. }
  11239. void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT
  11240. {
  11241. VkInstance instance = static_cast<VkInstance>( instanceCpp );
  11242. //=== VK_VERSION_1_0 ===
  11243. vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) );
  11244. vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) );
  11245. vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) );
  11246. vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) );
  11247. vkGetPhysicalDeviceImageFormatProperties =
  11248. PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) );
  11249. vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) );
  11250. vkGetPhysicalDeviceQueueFamilyProperties =
  11251. PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
  11252. vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
  11253. vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
  11254. vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
  11255. vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
  11256. vkEnumerateDeviceExtensionProperties =
  11257. PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
  11258. vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) );
  11259. vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) );
  11260. vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) );
  11261. vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) );
  11262. vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) );
  11263. vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) );
  11264. vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) );
  11265. vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) );
  11266. vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) );
  11267. vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) );
  11268. vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) );
  11269. vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) );
  11270. vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) );
  11271. vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) );
  11272. vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) );
  11273. vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) );
  11274. vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) );
  11275. vkGetPhysicalDeviceSparseImageFormatProperties =
  11276. PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) );
  11277. vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) );
  11278. vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) );
  11279. vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) );
  11280. vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) );
  11281. vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) );
  11282. vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) );
  11283. vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) );
  11284. vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) );
  11285. vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) );
  11286. vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) );
  11287. vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) );
  11288. vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) );
  11289. vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) );
  11290. vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) );
  11291. vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) );
  11292. vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) );
  11293. vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) );
  11294. vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) );
  11295. vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) );
  11296. vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) );
  11297. vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) );
  11298. vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) );
  11299. vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) );
  11300. vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) );
  11301. vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) );
  11302. vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) );
  11303. vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) );
  11304. vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) );
  11305. vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) );
  11306. vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) );
  11307. vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) );
  11308. vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) );
  11309. vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) );
  11310. vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) );
  11311. vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) );
  11312. vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) );
  11313. vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) );
  11314. vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) );
  11315. vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) );
  11316. vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) );
  11317. vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) );
  11318. vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) );
  11319. vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) );
  11320. vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) );
  11321. vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) );
  11322. vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) );
  11323. vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) );
  11324. vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) );
  11325. vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) );
  11326. vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) );
  11327. vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) );
  11328. vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) );
  11329. vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) );
  11330. vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) );
  11331. vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) );
  11332. vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) );
  11333. vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) );
  11334. vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) );
  11335. vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) );
  11336. vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) );
  11337. vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) );
  11338. vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) );
  11339. vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) );
  11340. vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) );
  11341. vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) );
  11342. vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) );
  11343. vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) );
  11344. vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) );
  11345. vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) );
  11346. vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) );
  11347. vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) );
  11348. vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) );
  11349. vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) );
  11350. vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) );
  11351. vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) );
  11352. vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) );
  11353. vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) );
  11354. vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) );
  11355. vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) );
  11356. vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) );
  11357. vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) );
  11358. vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) );
  11359. vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) );
  11360. vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) );
  11361. vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) );
  11362. vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) );
  11363. vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) );
  11364. vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) );
  11365. vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) );
  11366. vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) );
  11367. vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) );
  11368. vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) );
  11369. vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) );
  11370. vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) );
  11371. vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) );
  11372. vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) );
  11373. vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) );
  11374. vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) );
  11375. vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) );
  11376. vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) );
  11377. vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) );
  11378. vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) );
  11379. vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) );
  11380. //=== VK_VERSION_1_1 ===
  11381. vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) );
  11382. vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) );
  11383. vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) );
  11384. vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) );
  11385. vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) );
  11386. vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) );
  11387. vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) );
  11388. vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) );
  11389. vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) );
  11390. vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) );
  11391. vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) );
  11392. vkGetPhysicalDeviceFormatProperties2 =
  11393. PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) );
  11394. vkGetPhysicalDeviceImageFormatProperties2 =
  11395. PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) );
  11396. vkGetPhysicalDeviceQueueFamilyProperties2 =
  11397. PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) );
  11398. vkGetPhysicalDeviceMemoryProperties2 =
  11399. PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) );
  11400. vkGetPhysicalDeviceSparseImageFormatProperties2 =
  11401. PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) );
  11402. vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) );
  11403. vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) );
  11404. vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) );
  11405. vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) );
  11406. vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) );
  11407. vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) );
  11408. vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) );
  11409. vkGetPhysicalDeviceExternalBufferProperties =
  11410. PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) );
  11411. vkGetPhysicalDeviceExternalFenceProperties =
  11412. PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) );
  11413. vkGetPhysicalDeviceExternalSemaphoreProperties =
  11414. PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) );
  11415. vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) );
  11416. //=== VK_VERSION_1_2 ===
  11417. vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) );
  11418. vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) );
  11419. vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) );
  11420. vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) );
  11421. vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) );
  11422. vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) );
  11423. vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) );
  11424. vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) );
  11425. vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) );
  11426. vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) );
  11427. vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) );
  11428. vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) );
  11429. vkGetDeviceMemoryOpaqueCaptureAddress =
  11430. PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
  11431. //=== VK_VERSION_1_3 ===
  11432. vkGetPhysicalDeviceToolProperties = PFN_vkGetPhysicalDeviceToolProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolProperties" ) );
  11433. vkCreatePrivateDataSlot = PFN_vkCreatePrivateDataSlot( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlot" ) );
  11434. vkDestroyPrivateDataSlot = PFN_vkDestroyPrivateDataSlot( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlot" ) );
  11435. vkSetPrivateData = PFN_vkSetPrivateData( vkGetInstanceProcAddr( instance, "vkSetPrivateData" ) );
  11436. vkGetPrivateData = PFN_vkGetPrivateData( vkGetInstanceProcAddr( instance, "vkGetPrivateData" ) );
  11437. vkCmdSetEvent2 = PFN_vkCmdSetEvent2( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2" ) );
  11438. vkCmdResetEvent2 = PFN_vkCmdResetEvent2( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2" ) );
  11439. vkCmdWaitEvents2 = PFN_vkCmdWaitEvents2( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2" ) );
  11440. vkCmdPipelineBarrier2 = PFN_vkCmdPipelineBarrier2( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2" ) );
  11441. vkCmdWriteTimestamp2 = PFN_vkCmdWriteTimestamp2( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2" ) );
  11442. vkQueueSubmit2 = PFN_vkQueueSubmit2( vkGetInstanceProcAddr( instance, "vkQueueSubmit2" ) );
  11443. vkCmdCopyBuffer2 = PFN_vkCmdCopyBuffer2( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2" ) );
  11444. vkCmdCopyImage2 = PFN_vkCmdCopyImage2( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2" ) );
  11445. vkCmdCopyBufferToImage2 = PFN_vkCmdCopyBufferToImage2( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2" ) );
  11446. vkCmdCopyImageToBuffer2 = PFN_vkCmdCopyImageToBuffer2( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2" ) );
  11447. vkCmdBlitImage2 = PFN_vkCmdBlitImage2( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2" ) );
  11448. vkCmdResolveImage2 = PFN_vkCmdResolveImage2( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2" ) );
  11449. vkCmdBeginRendering = PFN_vkCmdBeginRendering( vkGetInstanceProcAddr( instance, "vkCmdBeginRendering" ) );
  11450. vkCmdEndRendering = PFN_vkCmdEndRendering( vkGetInstanceProcAddr( instance, "vkCmdEndRendering" ) );
  11451. vkCmdSetCullMode = PFN_vkCmdSetCullMode( vkGetInstanceProcAddr( instance, "vkCmdSetCullMode" ) );
  11452. vkCmdSetFrontFace = PFN_vkCmdSetFrontFace( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFace" ) );
  11453. vkCmdSetPrimitiveTopology = PFN_vkCmdSetPrimitiveTopology( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopology" ) );
  11454. vkCmdSetViewportWithCount = PFN_vkCmdSetViewportWithCount( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCount" ) );
  11455. vkCmdSetScissorWithCount = PFN_vkCmdSetScissorWithCount( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCount" ) );
  11456. vkCmdBindVertexBuffers2 = PFN_vkCmdBindVertexBuffers2( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2" ) );
  11457. vkCmdSetDepthTestEnable = PFN_vkCmdSetDepthTestEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnable" ) );
  11458. vkCmdSetDepthWriteEnable = PFN_vkCmdSetDepthWriteEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnable" ) );
  11459. vkCmdSetDepthCompareOp = PFN_vkCmdSetDepthCompareOp( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOp" ) );
  11460. vkCmdSetDepthBoundsTestEnable = PFN_vkCmdSetDepthBoundsTestEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnable" ) );
  11461. vkCmdSetStencilTestEnable = PFN_vkCmdSetStencilTestEnable( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnable" ) );
  11462. vkCmdSetStencilOp = PFN_vkCmdSetStencilOp( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOp" ) );
  11463. vkCmdSetRasterizerDiscardEnable = PFN_vkCmdSetRasterizerDiscardEnable( vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnable" ) );
  11464. vkCmdSetDepthBiasEnable = PFN_vkCmdSetDepthBiasEnable( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnable" ) );
  11465. vkCmdSetPrimitiveRestartEnable = PFN_vkCmdSetPrimitiveRestartEnable( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnable" ) );
  11466. vkGetDeviceBufferMemoryRequirements = PFN_vkGetDeviceBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetDeviceBufferMemoryRequirements" ) );
  11467. vkGetDeviceImageMemoryRequirements = PFN_vkGetDeviceImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetDeviceImageMemoryRequirements" ) );
  11468. vkGetDeviceImageSparseMemoryRequirements =
  11469. PFN_vkGetDeviceImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetDeviceImageSparseMemoryRequirements" ) );
  11470. //=== VK_KHR_surface ===
  11471. vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) );
  11472. vkGetPhysicalDeviceSurfaceSupportKHR =
  11473. PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) );
  11474. vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
  11475. PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) );
  11476. vkGetPhysicalDeviceSurfaceFormatsKHR =
  11477. PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) );
  11478. vkGetPhysicalDeviceSurfacePresentModesKHR =
  11479. PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) );
  11480. //=== VK_KHR_swapchain ===
  11481. vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) );
  11482. vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) );
  11483. vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) );
  11484. vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) );
  11485. vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) );
  11486. vkGetDeviceGroupPresentCapabilitiesKHR =
  11487. PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
  11488. vkGetDeviceGroupSurfacePresentModesKHR =
  11489. PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
  11490. vkGetPhysicalDevicePresentRectanglesKHR =
  11491. PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
  11492. vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) );
  11493. //=== VK_KHR_display ===
  11494. vkGetPhysicalDeviceDisplayPropertiesKHR =
  11495. PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) );
  11496. vkGetPhysicalDeviceDisplayPlanePropertiesKHR =
  11497. PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) );
  11498. vkGetDisplayPlaneSupportedDisplaysKHR =
  11499. PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) );
  11500. vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) );
  11501. vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) );
  11502. vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) );
  11503. vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) );
  11504. //=== VK_KHR_display_swapchain ===
  11505. vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) );
  11506. #if defined( VK_USE_PLATFORM_XLIB_KHR )
  11507. //=== VK_KHR_xlib_surface ===
  11508. vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) );
  11509. vkGetPhysicalDeviceXlibPresentationSupportKHR =
  11510. PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) );
  11511. #endif /*VK_USE_PLATFORM_XLIB_KHR*/
  11512. #if defined( VK_USE_PLATFORM_XCB_KHR )
  11513. //=== VK_KHR_xcb_surface ===
  11514. vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) );
  11515. vkGetPhysicalDeviceXcbPresentationSupportKHR =
  11516. PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) );
  11517. #endif /*VK_USE_PLATFORM_XCB_KHR*/
  11518. #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
  11519. //=== VK_KHR_wayland_surface ===
  11520. vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) );
  11521. vkGetPhysicalDeviceWaylandPresentationSupportKHR =
  11522. PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) );
  11523. #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  11524. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  11525. //=== VK_KHR_android_surface ===
  11526. vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
  11527. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  11528. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  11529. //=== VK_KHR_win32_surface ===
  11530. vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) );
  11531. vkGetPhysicalDeviceWin32PresentationSupportKHR =
  11532. PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
  11533. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  11534. //=== VK_EXT_debug_report ===
  11535. vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );
  11536. vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) );
  11537. vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) );
  11538. //=== VK_EXT_debug_marker ===
  11539. vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) );
  11540. vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) );
  11541. vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) );
  11542. vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) );
  11543. vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) );
  11544. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  11545. //=== VK_KHR_video_queue ===
  11546. vkGetPhysicalDeviceVideoCapabilitiesKHR =
  11547. PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) );
  11548. vkGetPhysicalDeviceVideoFormatPropertiesKHR =
  11549. PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) );
  11550. vkCreateVideoSessionKHR = PFN_vkCreateVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionKHR" ) );
  11551. vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionKHR" ) );
  11552. vkGetVideoSessionMemoryRequirementsKHR =
  11553. PFN_vkGetVideoSessionMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetVideoSessionMemoryRequirementsKHR" ) );
  11554. vkBindVideoSessionMemoryKHR = PFN_vkBindVideoSessionMemoryKHR( vkGetInstanceProcAddr( instance, "vkBindVideoSessionMemoryKHR" ) );
  11555. vkCreateVideoSessionParametersKHR = PFN_vkCreateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkCreateVideoSessionParametersKHR" ) );
  11556. vkUpdateVideoSessionParametersKHR = PFN_vkUpdateVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkUpdateVideoSessionParametersKHR" ) );
  11557. vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( vkGetInstanceProcAddr( instance, "vkDestroyVideoSessionParametersKHR" ) );
  11558. vkCmdBeginVideoCodingKHR = PFN_vkCmdBeginVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginVideoCodingKHR" ) );
  11559. vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndVideoCodingKHR" ) );
  11560. vkCmdControlVideoCodingKHR = PFN_vkCmdControlVideoCodingKHR( vkGetInstanceProcAddr( instance, "vkCmdControlVideoCodingKHR" ) );
  11561. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11562. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  11563. //=== VK_KHR_video_decode_queue ===
  11564. vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdDecodeVideoKHR" ) );
  11565. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11566. //=== VK_EXT_transform_feedback ===
  11567. vkCmdBindTransformFeedbackBuffersEXT =
  11568. PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) );
  11569. vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) );
  11570. vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) );
  11571. vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) );
  11572. vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) );
  11573. vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) );
  11574. //=== VK_NVX_binary_import ===
  11575. vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetInstanceProcAddr( instance, "vkCreateCuModuleNVX" ) );
  11576. vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkCreateCuFunctionNVX" ) );
  11577. vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuModuleNVX" ) );
  11578. vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetInstanceProcAddr( instance, "vkDestroyCuFunctionNVX" ) );
  11579. vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetInstanceProcAddr( instance, "vkCmdCuLaunchKernelNVX" ) );
  11580. //=== VK_NVX_image_view_handle ===
  11581. vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) );
  11582. vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) );
  11583. //=== VK_AMD_draw_indirect_count ===
  11584. vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) );
  11585. if ( !vkCmdDrawIndirectCount )
  11586. vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
  11587. vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) );
  11588. if ( !vkCmdDrawIndexedIndirectCount )
  11589. vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
  11590. //=== VK_AMD_shader_info ===
  11591. vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
  11592. //=== VK_KHR_dynamic_rendering ===
  11593. vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderingKHR" ) );
  11594. if ( !vkCmdBeginRendering )
  11595. vkCmdBeginRendering = vkCmdBeginRenderingKHR;
  11596. vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderingKHR" ) );
  11597. if ( !vkCmdEndRendering )
  11598. vkCmdEndRendering = vkCmdEndRenderingKHR;
  11599. #if defined( VK_USE_PLATFORM_GGP )
  11600. //=== VK_GGP_stream_descriptor_surface ===
  11601. vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) );
  11602. #endif /*VK_USE_PLATFORM_GGP*/
  11603. //=== VK_NV_external_memory_capabilities ===
  11604. vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
  11605. PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) );
  11606. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  11607. //=== VK_NV_external_memory_win32 ===
  11608. vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) );
  11609. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  11610. //=== VK_KHR_get_physical_device_properties2 ===
  11611. vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) );
  11612. if ( !vkGetPhysicalDeviceFeatures2 )
  11613. vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
  11614. vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) );
  11615. if ( !vkGetPhysicalDeviceProperties2 )
  11616. vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
  11617. vkGetPhysicalDeviceFormatProperties2KHR =
  11618. PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) );
  11619. if ( !vkGetPhysicalDeviceFormatProperties2 )
  11620. vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
  11621. vkGetPhysicalDeviceImageFormatProperties2KHR =
  11622. PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) );
  11623. if ( !vkGetPhysicalDeviceImageFormatProperties2 )
  11624. vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
  11625. vkGetPhysicalDeviceQueueFamilyProperties2KHR =
  11626. PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) );
  11627. if ( !vkGetPhysicalDeviceQueueFamilyProperties2 )
  11628. vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
  11629. vkGetPhysicalDeviceMemoryProperties2KHR =
  11630. PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) );
  11631. if ( !vkGetPhysicalDeviceMemoryProperties2 )
  11632. vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
  11633. vkGetPhysicalDeviceSparseImageFormatProperties2KHR =
  11634. PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) );
  11635. if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 )
  11636. vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
  11637. //=== VK_KHR_device_group ===
  11638. vkGetDeviceGroupPeerMemoryFeaturesKHR =
  11639. PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
  11640. if ( !vkGetDeviceGroupPeerMemoryFeatures )
  11641. vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
  11642. vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) );
  11643. if ( !vkCmdSetDeviceMask )
  11644. vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
  11645. vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) );
  11646. if ( !vkCmdDispatchBase )
  11647. vkCmdDispatchBase = vkCmdDispatchBaseKHR;
  11648. #if defined( VK_USE_PLATFORM_VI_NN )
  11649. //=== VK_NN_vi_surface ===
  11650. vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) );
  11651. #endif /*VK_USE_PLATFORM_VI_NN*/
  11652. //=== VK_KHR_maintenance1 ===
  11653. vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) );
  11654. if ( !vkTrimCommandPool )
  11655. vkTrimCommandPool = vkTrimCommandPoolKHR;
  11656. //=== VK_KHR_device_group_creation ===
  11657. vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) );
  11658. if ( !vkEnumeratePhysicalDeviceGroups )
  11659. vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
  11660. //=== VK_KHR_external_memory_capabilities ===
  11661. vkGetPhysicalDeviceExternalBufferPropertiesKHR =
  11662. PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) );
  11663. if ( !vkGetPhysicalDeviceExternalBufferProperties )
  11664. vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
  11665. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  11666. //=== VK_KHR_external_memory_win32 ===
  11667. vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) );
  11668. vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) );
  11669. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  11670. //=== VK_KHR_external_memory_fd ===
  11671. vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) );
  11672. vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) );
  11673. //=== VK_KHR_external_semaphore_capabilities ===
  11674. vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
  11675. PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) );
  11676. if ( !vkGetPhysicalDeviceExternalSemaphoreProperties )
  11677. vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
  11678. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  11679. //=== VK_KHR_external_semaphore_win32 ===
  11680. vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) );
  11681. vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) );
  11682. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  11683. //=== VK_KHR_external_semaphore_fd ===
  11684. vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) );
  11685. vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) );
  11686. //=== VK_KHR_push_descriptor ===
  11687. vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) );
  11688. vkCmdPushDescriptorSetWithTemplateKHR =
  11689. PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
  11690. //=== VK_EXT_conditional_rendering ===
  11691. vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) );
  11692. vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) );
  11693. //=== VK_KHR_descriptor_update_template ===
  11694. vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) );
  11695. if ( !vkCreateDescriptorUpdateTemplate )
  11696. vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
  11697. vkDestroyDescriptorUpdateTemplateKHR =
  11698. PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) );
  11699. if ( !vkDestroyDescriptorUpdateTemplate )
  11700. vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
  11701. vkUpdateDescriptorSetWithTemplateKHR =
  11702. PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) );
  11703. if ( !vkUpdateDescriptorSetWithTemplate )
  11704. vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
  11705. //=== VK_NV_clip_space_w_scaling ===
  11706. vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) );
  11707. //=== VK_EXT_direct_mode_display ===
  11708. vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) );
  11709. #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
  11710. //=== VK_EXT_acquire_xlib_display ===
  11711. vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) );
  11712. vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) );
  11713. #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
  11714. //=== VK_EXT_display_surface_counter ===
  11715. vkGetPhysicalDeviceSurfaceCapabilities2EXT =
  11716. PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) );
  11717. //=== VK_EXT_display_control ===
  11718. vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) );
  11719. vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) );
  11720. vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) );
  11721. vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) );
  11722. //=== VK_GOOGLE_display_timing ===
  11723. vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) );
  11724. vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) );
  11725. //=== VK_EXT_discard_rectangles ===
  11726. vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) );
  11727. //=== VK_EXT_hdr_metadata ===
  11728. vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) );
  11729. //=== VK_KHR_create_renderpass2 ===
  11730. vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) );
  11731. if ( !vkCreateRenderPass2 )
  11732. vkCreateRenderPass2 = vkCreateRenderPass2KHR;
  11733. vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) );
  11734. if ( !vkCmdBeginRenderPass2 )
  11735. vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
  11736. vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) );
  11737. if ( !vkCmdNextSubpass2 )
  11738. vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
  11739. vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) );
  11740. if ( !vkCmdEndRenderPass2 )
  11741. vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
  11742. //=== VK_KHR_shared_presentable_image ===
  11743. vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) );
  11744. //=== VK_KHR_external_fence_capabilities ===
  11745. vkGetPhysicalDeviceExternalFencePropertiesKHR =
  11746. PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) );
  11747. if ( !vkGetPhysicalDeviceExternalFenceProperties )
  11748. vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
  11749. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  11750. //=== VK_KHR_external_fence_win32 ===
  11751. vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) );
  11752. vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) );
  11753. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  11754. //=== VK_KHR_external_fence_fd ===
  11755. vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) );
  11756. vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) );
  11757. //=== VK_KHR_performance_query ===
  11758. vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
  11759. vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) );
  11760. vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
  11761. vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) );
  11762. vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) );
  11763. vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) );
  11764. //=== VK_KHR_get_surface_capabilities2 ===
  11765. vkGetPhysicalDeviceSurfaceCapabilities2KHR =
  11766. PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) );
  11767. vkGetPhysicalDeviceSurfaceFormats2KHR =
  11768. PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) );
  11769. //=== VK_KHR_get_display_properties2 ===
  11770. vkGetPhysicalDeviceDisplayProperties2KHR =
  11771. PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) );
  11772. vkGetPhysicalDeviceDisplayPlaneProperties2KHR =
  11773. PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) );
  11774. vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) );
  11775. vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) );
  11776. #if defined( VK_USE_PLATFORM_IOS_MVK )
  11777. //=== VK_MVK_ios_surface ===
  11778. vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) );
  11779. #endif /*VK_USE_PLATFORM_IOS_MVK*/
  11780. #if defined( VK_USE_PLATFORM_MACOS_MVK )
  11781. //=== VK_MVK_macos_surface ===
  11782. vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) );
  11783. #endif /*VK_USE_PLATFORM_MACOS_MVK*/
  11784. //=== VK_EXT_debug_utils ===
  11785. vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) );
  11786. vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) );
  11787. vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) );
  11788. vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) );
  11789. vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) );
  11790. vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) );
  11791. vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) );
  11792. vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) );
  11793. vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) );
  11794. vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) );
  11795. vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) );
  11796. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  11797. //=== VK_ANDROID_external_memory_android_hardware_buffer ===
  11798. vkGetAndroidHardwareBufferPropertiesANDROID =
  11799. PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
  11800. vkGetMemoryAndroidHardwareBufferANDROID =
  11801. PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
  11802. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  11803. //=== VK_EXT_sample_locations ===
  11804. vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) );
  11805. vkGetPhysicalDeviceMultisamplePropertiesEXT =
  11806. PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) );
  11807. //=== VK_KHR_get_memory_requirements2 ===
  11808. vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) );
  11809. if ( !vkGetImageMemoryRequirements2 )
  11810. vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
  11811. vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) );
  11812. if ( !vkGetBufferMemoryRequirements2 )
  11813. vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
  11814. vkGetImageSparseMemoryRequirements2KHR =
  11815. PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) );
  11816. if ( !vkGetImageSparseMemoryRequirements2 )
  11817. vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
  11818. //=== VK_KHR_acceleration_structure ===
  11819. vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) );
  11820. vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) );
  11821. vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) );
  11822. vkCmdBuildAccelerationStructuresIndirectKHR =
  11823. PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
  11824. vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) );
  11825. vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) );
  11826. vkCopyAccelerationStructureToMemoryKHR =
  11827. PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) );
  11828. vkCopyMemoryToAccelerationStructureKHR =
  11829. PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) );
  11830. vkWriteAccelerationStructuresPropertiesKHR =
  11831. PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) );
  11832. vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) );
  11833. vkCmdCopyAccelerationStructureToMemoryKHR =
  11834. PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
  11835. vkCmdCopyMemoryToAccelerationStructureKHR =
  11836. PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
  11837. vkGetAccelerationStructureDeviceAddressKHR =
  11838. PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) );
  11839. vkCmdWriteAccelerationStructuresPropertiesKHR =
  11840. PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
  11841. vkGetDeviceAccelerationStructureCompatibilityKHR =
  11842. PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
  11843. vkGetAccelerationStructureBuildSizesKHR =
  11844. PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) );
  11845. //=== VK_KHR_sampler_ycbcr_conversion ===
  11846. vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) );
  11847. if ( !vkCreateSamplerYcbcrConversion )
  11848. vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
  11849. vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) );
  11850. if ( !vkDestroySamplerYcbcrConversion )
  11851. vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
  11852. //=== VK_KHR_bind_memory2 ===
  11853. vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) );
  11854. if ( !vkBindBufferMemory2 )
  11855. vkBindBufferMemory2 = vkBindBufferMemory2KHR;
  11856. vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) );
  11857. if ( !vkBindImageMemory2 )
  11858. vkBindImageMemory2 = vkBindImageMemory2KHR;
  11859. //=== VK_EXT_image_drm_format_modifier ===
  11860. vkGetImageDrmFormatModifierPropertiesEXT =
  11861. PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
  11862. //=== VK_EXT_validation_cache ===
  11863. vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) );
  11864. vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) );
  11865. vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) );
  11866. vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) );
  11867. //=== VK_NV_shading_rate_image ===
  11868. vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) );
  11869. vkCmdSetViewportShadingRatePaletteNV =
  11870. PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) );
  11871. vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) );
  11872. //=== VK_NV_ray_tracing ===
  11873. vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) );
  11874. vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) );
  11875. vkGetAccelerationStructureMemoryRequirementsNV =
  11876. PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
  11877. vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) );
  11878. vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) );
  11879. vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) );
  11880. vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) );
  11881. vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) );
  11882. vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) );
  11883. if ( !vkGetRayTracingShaderGroupHandlesKHR )
  11884. vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
  11885. vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) );
  11886. vkCmdWriteAccelerationStructuresPropertiesNV =
  11887. PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
  11888. vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) );
  11889. //=== VK_KHR_maintenance3 ===
  11890. vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) );
  11891. if ( !vkGetDescriptorSetLayoutSupport )
  11892. vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
  11893. //=== VK_KHR_draw_indirect_count ===
  11894. vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) );
  11895. if ( !vkCmdDrawIndirectCount )
  11896. vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
  11897. vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) );
  11898. if ( !vkCmdDrawIndexedIndirectCount )
  11899. vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
  11900. //=== VK_EXT_external_memory_host ===
  11901. vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) );
  11902. //=== VK_AMD_buffer_marker ===
  11903. vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) );
  11904. //=== VK_EXT_calibrated_timestamps ===
  11905. vkGetPhysicalDeviceCalibrateableTimeDomainsEXT =
  11906. PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) );
  11907. vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) );
  11908. //=== VK_NV_mesh_shader ===
  11909. vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) );
  11910. vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) );
  11911. vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) );
  11912. //=== VK_NV_scissor_exclusive ===
  11913. vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) );
  11914. //=== VK_NV_device_diagnostic_checkpoints ===
  11915. vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) );
  11916. vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) );
  11917. //=== VK_KHR_timeline_semaphore ===
  11918. vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) );
  11919. if ( !vkGetSemaphoreCounterValue )
  11920. vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
  11921. vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) );
  11922. if ( !vkWaitSemaphores )
  11923. vkWaitSemaphores = vkWaitSemaphoresKHR;
  11924. vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) );
  11925. if ( !vkSignalSemaphore )
  11926. vkSignalSemaphore = vkSignalSemaphoreKHR;
  11927. //=== VK_INTEL_performance_query ===
  11928. vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) );
  11929. vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) );
  11930. vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) );
  11931. vkCmdSetPerformanceStreamMarkerINTEL =
  11932. PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
  11933. vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) );
  11934. vkAcquirePerformanceConfigurationINTEL =
  11935. PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) );
  11936. vkReleasePerformanceConfigurationINTEL =
  11937. PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) );
  11938. vkQueueSetPerformanceConfigurationINTEL =
  11939. PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) );
  11940. vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) );
  11941. //=== VK_AMD_display_native_hdr ===
  11942. vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) );
  11943. #if defined( VK_USE_PLATFORM_FUCHSIA )
  11944. //=== VK_FUCHSIA_imagepipe_surface ===
  11945. vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) );
  11946. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  11947. #if defined( VK_USE_PLATFORM_METAL_EXT )
  11948. //=== VK_EXT_metal_surface ===
  11949. vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) );
  11950. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  11951. //=== VK_KHR_fragment_shading_rate ===
  11952. vkGetPhysicalDeviceFragmentShadingRatesKHR =
  11953. PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) );
  11954. vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) );
  11955. //=== VK_EXT_buffer_device_address ===
  11956. vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) );
  11957. if ( !vkGetBufferDeviceAddress )
  11958. vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
  11959. //=== VK_EXT_tooling_info ===
  11960. vkGetPhysicalDeviceToolPropertiesEXT =
  11961. PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) );
  11962. if ( !vkGetPhysicalDeviceToolProperties )
  11963. vkGetPhysicalDeviceToolProperties = vkGetPhysicalDeviceToolPropertiesEXT;
  11964. //=== VK_KHR_present_wait ===
  11965. vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetInstanceProcAddr( instance, "vkWaitForPresentKHR" ) );
  11966. //=== VK_NV_cooperative_matrix ===
  11967. vkGetPhysicalDeviceCooperativeMatrixPropertiesNV =
  11968. PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) );
  11969. //=== VK_NV_coverage_reduction_mode ===
  11970. vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
  11971. vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) );
  11972. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  11973. //=== VK_EXT_full_screen_exclusive ===
  11974. vkGetPhysicalDeviceSurfacePresentModes2EXT =
  11975. PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) );
  11976. vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) );
  11977. vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) );
  11978. vkGetDeviceGroupSurfacePresentModes2EXT =
  11979. PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
  11980. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  11981. //=== VK_EXT_headless_surface ===
  11982. vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) );
  11983. //=== VK_KHR_buffer_device_address ===
  11984. vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) );
  11985. if ( !vkGetBufferDeviceAddress )
  11986. vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
  11987. vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) );
  11988. if ( !vkGetBufferOpaqueCaptureAddress )
  11989. vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
  11990. vkGetDeviceMemoryOpaqueCaptureAddressKHR =
  11991. PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
  11992. if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
  11993. vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
  11994. //=== VK_EXT_line_rasterization ===
  11995. vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) );
  11996. //=== VK_EXT_host_query_reset ===
  11997. vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) );
  11998. if ( !vkResetQueryPool )
  11999. vkResetQueryPool = vkResetQueryPoolEXT;
  12000. //=== VK_EXT_extended_dynamic_state ===
  12001. vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) );
  12002. if ( !vkCmdSetCullMode )
  12003. vkCmdSetCullMode = vkCmdSetCullModeEXT;
  12004. vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) );
  12005. if ( !vkCmdSetFrontFace )
  12006. vkCmdSetFrontFace = vkCmdSetFrontFaceEXT;
  12007. vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) );
  12008. if ( !vkCmdSetPrimitiveTopology )
  12009. vkCmdSetPrimitiveTopology = vkCmdSetPrimitiveTopologyEXT;
  12010. vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) );
  12011. if ( !vkCmdSetViewportWithCount )
  12012. vkCmdSetViewportWithCount = vkCmdSetViewportWithCountEXT;
  12013. vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) );
  12014. if ( !vkCmdSetScissorWithCount )
  12015. vkCmdSetScissorWithCount = vkCmdSetScissorWithCountEXT;
  12016. vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) );
  12017. if ( !vkCmdBindVertexBuffers2 )
  12018. vkCmdBindVertexBuffers2 = vkCmdBindVertexBuffers2EXT;
  12019. vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) );
  12020. if ( !vkCmdSetDepthTestEnable )
  12021. vkCmdSetDepthTestEnable = vkCmdSetDepthTestEnableEXT;
  12022. vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) );
  12023. if ( !vkCmdSetDepthWriteEnable )
  12024. vkCmdSetDepthWriteEnable = vkCmdSetDepthWriteEnableEXT;
  12025. vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) );
  12026. if ( !vkCmdSetDepthCompareOp )
  12027. vkCmdSetDepthCompareOp = vkCmdSetDepthCompareOpEXT;
  12028. vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) );
  12029. if ( !vkCmdSetDepthBoundsTestEnable )
  12030. vkCmdSetDepthBoundsTestEnable = vkCmdSetDepthBoundsTestEnableEXT;
  12031. vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) );
  12032. if ( !vkCmdSetStencilTestEnable )
  12033. vkCmdSetStencilTestEnable = vkCmdSetStencilTestEnableEXT;
  12034. vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) );
  12035. if ( !vkCmdSetStencilOp )
  12036. vkCmdSetStencilOp = vkCmdSetStencilOpEXT;
  12037. //=== VK_KHR_deferred_host_operations ===
  12038. vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) );
  12039. vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) );
  12040. vkGetDeferredOperationMaxConcurrencyKHR =
  12041. PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
  12042. vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) );
  12043. vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) );
  12044. //=== VK_KHR_pipeline_executable_properties ===
  12045. vkGetPipelineExecutablePropertiesKHR =
  12046. PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) );
  12047. vkGetPipelineExecutableStatisticsKHR =
  12048. PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) );
  12049. vkGetPipelineExecutableInternalRepresentationsKHR =
  12050. PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
  12051. //=== VK_NV_device_generated_commands ===
  12052. vkGetGeneratedCommandsMemoryRequirementsNV =
  12053. PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
  12054. vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) );
  12055. vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) );
  12056. vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) );
  12057. vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) );
  12058. vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) );
  12059. //=== VK_EXT_acquire_drm_display ===
  12060. vkAcquireDrmDisplayEXT = PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) );
  12061. vkGetDrmDisplayEXT = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) );
  12062. //=== VK_EXT_private_data ===
  12063. vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) );
  12064. if ( !vkCreatePrivateDataSlot )
  12065. vkCreatePrivateDataSlot = vkCreatePrivateDataSlotEXT;
  12066. vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) );
  12067. if ( !vkDestroyPrivateDataSlot )
  12068. vkDestroyPrivateDataSlot = vkDestroyPrivateDataSlotEXT;
  12069. vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) );
  12070. if ( !vkSetPrivateData )
  12071. vkSetPrivateData = vkSetPrivateDataEXT;
  12072. vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) );
  12073. if ( !vkGetPrivateData )
  12074. vkGetPrivateData = vkGetPrivateDataEXT;
  12075. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  12076. //=== VK_KHR_video_encode_queue ===
  12077. vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetInstanceProcAddr( instance, "vkCmdEncodeVideoKHR" ) );
  12078. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12079. #if defined( VK_USE_PLATFORM_METAL_EXT )
  12080. //=== VK_EXT_metal_objects ===
  12081. vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetInstanceProcAddr( instance, "vkExportMetalObjectsEXT" ) );
  12082. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  12083. //=== VK_KHR_synchronization2 ===
  12084. vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdSetEvent2KHR" ) );
  12085. if ( !vkCmdSetEvent2 )
  12086. vkCmdSetEvent2 = vkCmdSetEvent2KHR;
  12087. vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetInstanceProcAddr( instance, "vkCmdResetEvent2KHR" ) );
  12088. if ( !vkCmdResetEvent2 )
  12089. vkCmdResetEvent2 = vkCmdResetEvent2KHR;
  12090. vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents2KHR" ) );
  12091. if ( !vkCmdWaitEvents2 )
  12092. vkCmdWaitEvents2 = vkCmdWaitEvents2KHR;
  12093. vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier2KHR" ) );
  12094. if ( !vkCmdPipelineBarrier2 )
  12095. vkCmdPipelineBarrier2 = vkCmdPipelineBarrier2KHR;
  12096. vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp2KHR" ) );
  12097. if ( !vkCmdWriteTimestamp2 )
  12098. vkCmdWriteTimestamp2 = vkCmdWriteTimestamp2KHR;
  12099. vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetInstanceProcAddr( instance, "vkQueueSubmit2KHR" ) );
  12100. if ( !vkQueueSubmit2 )
  12101. vkQueueSubmit2 = vkQueueSubmit2KHR;
  12102. vkCmdWriteBufferMarker2AMD = PFN_vkCmdWriteBufferMarker2AMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarker2AMD" ) );
  12103. vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointData2NV" ) );
  12104. //=== VK_NV_fragment_shading_rate_enums ===
  12105. vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) );
  12106. //=== VK_EXT_mesh_shader ===
  12107. vkCmdDrawMeshTasksEXT = PFN_vkCmdDrawMeshTasksEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksEXT" ) );
  12108. vkCmdDrawMeshTasksIndirectEXT = PFN_vkCmdDrawMeshTasksIndirectEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectEXT" ) );
  12109. vkCmdDrawMeshTasksIndirectCountEXT = PFN_vkCmdDrawMeshTasksIndirectCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountEXT" ) );
  12110. //=== VK_KHR_copy_commands2 ===
  12111. vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) );
  12112. if ( !vkCmdCopyBuffer2 )
  12113. vkCmdCopyBuffer2 = vkCmdCopyBuffer2KHR;
  12114. vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) );
  12115. if ( !vkCmdCopyImage2 )
  12116. vkCmdCopyImage2 = vkCmdCopyImage2KHR;
  12117. vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) );
  12118. if ( !vkCmdCopyBufferToImage2 )
  12119. vkCmdCopyBufferToImage2 = vkCmdCopyBufferToImage2KHR;
  12120. vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) );
  12121. if ( !vkCmdCopyImageToBuffer2 )
  12122. vkCmdCopyImageToBuffer2 = vkCmdCopyImageToBuffer2KHR;
  12123. vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) );
  12124. if ( !vkCmdBlitImage2 )
  12125. vkCmdBlitImage2 = vkCmdBlitImage2KHR;
  12126. vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) );
  12127. if ( !vkCmdResolveImage2 )
  12128. vkCmdResolveImage2 = vkCmdResolveImage2KHR;
  12129. //=== VK_EXT_image_compression_control ===
  12130. vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout2EXT" ) );
  12131. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  12132. //=== VK_NV_acquire_winrt_display ===
  12133. vkAcquireWinrtDisplayNV = PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) );
  12134. vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) );
  12135. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  12136. #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
  12137. //=== VK_EXT_directfb_surface ===
  12138. vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) );
  12139. vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
  12140. PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) );
  12141. #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
  12142. //=== VK_KHR_ray_tracing_pipeline ===
  12143. vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) );
  12144. vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) );
  12145. vkGetRayTracingShaderGroupHandlesKHR =
  12146. PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) );
  12147. vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
  12148. PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
  12149. vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) );
  12150. vkGetRayTracingShaderGroupStackSizeKHR =
  12151. PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
  12152. vkCmdSetRayTracingPipelineStackSizeKHR =
  12153. PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
  12154. //=== VK_EXT_vertex_input_dynamic_state ===
  12155. vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetInstanceProcAddr( instance, "vkCmdSetVertexInputEXT" ) );
  12156. #if defined( VK_USE_PLATFORM_FUCHSIA )
  12157. //=== VK_FUCHSIA_external_memory ===
  12158. vkGetMemoryZirconHandleFUCHSIA = PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandleFUCHSIA" ) );
  12159. vkGetMemoryZirconHandlePropertiesFUCHSIA =
  12160. PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
  12161. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  12162. #if defined( VK_USE_PLATFORM_FUCHSIA )
  12163. //=== VK_FUCHSIA_external_semaphore ===
  12164. vkImportSemaphoreZirconHandleFUCHSIA =
  12165. PFN_vkImportSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
  12166. vkGetSemaphoreZirconHandleFUCHSIA = PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
  12167. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  12168. #if defined( VK_USE_PLATFORM_FUCHSIA )
  12169. //=== VK_FUCHSIA_buffer_collection ===
  12170. vkCreateBufferCollectionFUCHSIA = PFN_vkCreateBufferCollectionFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateBufferCollectionFUCHSIA" ) );
  12171. vkSetBufferCollectionImageConstraintsFUCHSIA =
  12172. PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( vkGetInstanceProcAddr( instance, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
  12173. vkSetBufferCollectionBufferConstraintsFUCHSIA =
  12174. PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( vkGetInstanceProcAddr( instance, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) );
  12175. vkDestroyBufferCollectionFUCHSIA = PFN_vkDestroyBufferCollectionFUCHSIA( vkGetInstanceProcAddr( instance, "vkDestroyBufferCollectionFUCHSIA" ) );
  12176. vkGetBufferCollectionPropertiesFUCHSIA =
  12177. PFN_vkGetBufferCollectionPropertiesFUCHSIA( vkGetInstanceProcAddr( instance, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
  12178. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  12179. //=== VK_HUAWEI_subpass_shading ===
  12180. vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
  12181. PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( vkGetInstanceProcAddr( instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
  12182. vkCmdSubpassShadingHUAWEI = PFN_vkCmdSubpassShadingHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdSubpassShadingHUAWEI" ) );
  12183. //=== VK_HUAWEI_invocation_mask ===
  12184. vkCmdBindInvocationMaskHUAWEI = PFN_vkCmdBindInvocationMaskHUAWEI( vkGetInstanceProcAddr( instance, "vkCmdBindInvocationMaskHUAWEI" ) );
  12185. //=== VK_NV_external_memory_rdma ===
  12186. vkGetMemoryRemoteAddressNV = PFN_vkGetMemoryRemoteAddressNV( vkGetInstanceProcAddr( instance, "vkGetMemoryRemoteAddressNV" ) );
  12187. //=== VK_EXT_pipeline_properties ===
  12188. vkGetPipelinePropertiesEXT = PFN_vkGetPipelinePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPipelinePropertiesEXT" ) );
  12189. //=== VK_EXT_extended_dynamic_state2 ===
  12190. vkCmdSetPatchControlPointsEXT = PFN_vkCmdSetPatchControlPointsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPatchControlPointsEXT" ) );
  12191. vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetRasterizerDiscardEnableEXT" ) );
  12192. if ( !vkCmdSetRasterizerDiscardEnable )
  12193. vkCmdSetRasterizerDiscardEnable = vkCmdSetRasterizerDiscardEnableEXT;
  12194. vkCmdSetDepthBiasEnableEXT = PFN_vkCmdSetDepthBiasEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBiasEnableEXT" ) );
  12195. if ( !vkCmdSetDepthBiasEnable )
  12196. vkCmdSetDepthBiasEnable = vkCmdSetDepthBiasEnableEXT;
  12197. vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLogicOpEXT" ) );
  12198. vkCmdSetPrimitiveRestartEnableEXT = PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveRestartEnableEXT" ) );
  12199. if ( !vkCmdSetPrimitiveRestartEnable )
  12200. vkCmdSetPrimitiveRestartEnable = vkCmdSetPrimitiveRestartEnableEXT;
  12201. #if defined( VK_USE_PLATFORM_SCREEN_QNX )
  12202. //=== VK_QNX_screen_surface ===
  12203. vkCreateScreenSurfaceQNX = PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) );
  12204. vkGetPhysicalDeviceScreenPresentationSupportQNX =
  12205. PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) );
  12206. #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  12207. //=== VK_EXT_color_write_enable ===
  12208. vkCmdSetColorWriteEnableEXT = PFN_vkCmdSetColorWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetColorWriteEnableEXT" ) );
  12209. //=== VK_KHR_ray_tracing_maintenance1 ===
  12210. vkCmdTraceRaysIndirect2KHR = PFN_vkCmdTraceRaysIndirect2KHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirect2KHR" ) );
  12211. //=== VK_EXT_multi_draw ===
  12212. vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiEXT" ) );
  12213. vkCmdDrawMultiIndexedEXT = PFN_vkCmdDrawMultiIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawMultiIndexedEXT" ) );
  12214. //=== VK_EXT_pageable_device_local_memory ===
  12215. vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetInstanceProcAddr( instance, "vkSetDeviceMemoryPriorityEXT" ) );
  12216. //=== VK_KHR_maintenance4 ===
  12217. vkGetDeviceBufferMemoryRequirementsKHR =
  12218. PFN_vkGetDeviceBufferMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceBufferMemoryRequirementsKHR" ) );
  12219. if ( !vkGetDeviceBufferMemoryRequirements )
  12220. vkGetDeviceBufferMemoryRequirements = vkGetDeviceBufferMemoryRequirementsKHR;
  12221. vkGetDeviceImageMemoryRequirementsKHR =
  12222. PFN_vkGetDeviceImageMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceImageMemoryRequirementsKHR" ) );
  12223. if ( !vkGetDeviceImageMemoryRequirements )
  12224. vkGetDeviceImageMemoryRequirements = vkGetDeviceImageMemoryRequirementsKHR;
  12225. vkGetDeviceImageSparseMemoryRequirementsKHR =
  12226. PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) );
  12227. if ( !vkGetDeviceImageSparseMemoryRequirements )
  12228. vkGetDeviceImageSparseMemoryRequirements = vkGetDeviceImageSparseMemoryRequirementsKHR;
  12229. //=== VK_VALVE_descriptor_set_host_mapping ===
  12230. vkGetDescriptorSetLayoutHostMappingInfoVALVE =
  12231. PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" ) );
  12232. vkGetDescriptorSetHostMappingVALVE = PFN_vkGetDescriptorSetHostMappingVALVE( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetHostMappingVALVE" ) );
  12233. //=== VK_EXT_shader_module_identifier ===
  12234. vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetInstanceProcAddr( instance, "vkGetShaderModuleIdentifierEXT" ) );
  12235. vkGetShaderModuleCreateInfoIdentifierEXT =
  12236. PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetInstanceProcAddr( instance, "vkGetShaderModuleCreateInfoIdentifierEXT" ) );
  12237. //=== VK_QCOM_tile_properties ===
  12238. vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetFramebufferTilePropertiesQCOM" ) );
  12239. vkGetDynamicRenderingTilePropertiesQCOM =
  12240. PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetInstanceProcAddr( instance, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
  12241. }
  12242. void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
  12243. {
  12244. VkDevice device = static_cast<VkDevice>( deviceCpp );
  12245. //=== VK_VERSION_1_0 ===
  12246. vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) );
  12247. vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) );
  12248. vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) );
  12249. vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) );
  12250. vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) );
  12251. vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) );
  12252. vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) );
  12253. vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) );
  12254. vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) );
  12255. vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) );
  12256. vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) );
  12257. vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) );
  12258. vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) );
  12259. vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) );
  12260. vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) );
  12261. vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) );
  12262. vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) );
  12263. vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) );
  12264. vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) );
  12265. vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) );
  12266. vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) );
  12267. vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) );
  12268. vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) );
  12269. vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) );
  12270. vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) );
  12271. vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) );
  12272. vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) );
  12273. vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) );
  12274. vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) );
  12275. vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) );
  12276. vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) );
  12277. vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) );
  12278. vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) );
  12279. vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) );
  12280. vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) );
  12281. vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) );
  12282. vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) );
  12283. vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) );
  12284. vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) );
  12285. vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) );
  12286. vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) );
  12287. vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) );
  12288. vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) );
  12289. vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) );
  12290. vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) );
  12291. vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) );
  12292. vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) );
  12293. vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) );
  12294. vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) );
  12295. vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) );
  12296. vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) );
  12297. vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) );
  12298. vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) );
  12299. vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) );
  12300. vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) );
  12301. vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) );
  12302. vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) );
  12303. vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) );
  12304. vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) );
  12305. vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) );
  12306. vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) );
  12307. vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) );
  12308. vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) );
  12309. vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) );
  12310. vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) );
  12311. vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) );
  12312. vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) );
  12313. vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) );
  12314. vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) );
  12315. vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) );
  12316. vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) );
  12317. vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) );
  12318. vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) );
  12319. vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) );
  12320. vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) );
  12321. vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) );
  12322. vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) );
  12323. vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) );
  12324. vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) );
  12325. vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) );
  12326. vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) );
  12327. vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) );
  12328. vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) );
  12329. vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) );
  12330. vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) );
  12331. vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) );
  12332. vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) );
  12333. vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) );
  12334. vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) );
  12335. vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) );
  12336. vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) );
  12337. vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) );
  12338. vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) );
  12339. vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) );
  12340. vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) );
  12341. vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) );
  12342. vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) );
  12343. vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) );
  12344. vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) );
  12345. vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) );
  12346. vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) );
  12347. vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) );
  12348. vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) );
  12349. vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) );
  12350. vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) );
  12351. vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) );
  12352. vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) );
  12353. vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) );
  12354. vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) );
  12355. vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) );
  12356. vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) );
  12357. vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) );
  12358. vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) );
  12359. vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) );
  12360. vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) );
  12361. vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) );
  12362. vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) );
  12363. vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) );
  12364. vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) );
  12365. vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) );
  12366. vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) );
  12367. //=== VK_VERSION_1_1 ===
  12368. vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) );
  12369. vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) );
  12370. vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) );
  12371. vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) );
  12372. vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) );
  12373. vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) );
  12374. vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) );
  12375. vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) );
  12376. vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) );
  12377. vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) );
  12378. vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) );
  12379. vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) );
  12380. vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) );
  12381. vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) );
  12382. vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) );
  12383. vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) );
  12384. //=== VK_VERSION_1_2 ===
  12385. vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) );
  12386. vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) );
  12387. vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) );
  12388. vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) );
  12389. vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) );
  12390. vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) );
  12391. vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) );
  12392. vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) );
  12393. vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) );
  12394. vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) );
  12395. vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) );
  12396. vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) );
  12397. vkGetDeviceMemoryOpaqueCaptureAddress =
  12398. PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) );
  12399. //=== VK_VERSION_1_3 ===
  12400. vkCreatePrivateDataSlot = PFN_vkCreatePrivateDataSlot( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlot" ) );
  12401. vkDestroyPrivateDataSlot = PFN_vkDestroyPrivateDataSlot( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlot" ) );
  12402. vkSetPrivateData = PFN_vkSetPrivateData( vkGetDeviceProcAddr( device, "vkSetPrivateData" ) );
  12403. vkGetPrivateData = PFN_vkGetPrivateData( vkGetDeviceProcAddr( device, "vkGetPrivateData" ) );
  12404. vkCmdSetEvent2 = PFN_vkCmdSetEvent2( vkGetDeviceProcAddr( device, "vkCmdSetEvent2" ) );
  12405. vkCmdResetEvent2 = PFN_vkCmdResetEvent2( vkGetDeviceProcAddr( device, "vkCmdResetEvent2" ) );
  12406. vkCmdWaitEvents2 = PFN_vkCmdWaitEvents2( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2" ) );
  12407. vkCmdPipelineBarrier2 = PFN_vkCmdPipelineBarrier2( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2" ) );
  12408. vkCmdWriteTimestamp2 = PFN_vkCmdWriteTimestamp2( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2" ) );
  12409. vkQueueSubmit2 = PFN_vkQueueSubmit2( vkGetDeviceProcAddr( device, "vkQueueSubmit2" ) );
  12410. vkCmdCopyBuffer2 = PFN_vkCmdCopyBuffer2( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2" ) );
  12411. vkCmdCopyImage2 = PFN_vkCmdCopyImage2( vkGetDeviceProcAddr( device, "vkCmdCopyImage2" ) );
  12412. vkCmdCopyBufferToImage2 = PFN_vkCmdCopyBufferToImage2( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2" ) );
  12413. vkCmdCopyImageToBuffer2 = PFN_vkCmdCopyImageToBuffer2( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2" ) );
  12414. vkCmdBlitImage2 = PFN_vkCmdBlitImage2( vkGetDeviceProcAddr( device, "vkCmdBlitImage2" ) );
  12415. vkCmdResolveImage2 = PFN_vkCmdResolveImage2( vkGetDeviceProcAddr( device, "vkCmdResolveImage2" ) );
  12416. vkCmdBeginRendering = PFN_vkCmdBeginRendering( vkGetDeviceProcAddr( device, "vkCmdBeginRendering" ) );
  12417. vkCmdEndRendering = PFN_vkCmdEndRendering( vkGetDeviceProcAddr( device, "vkCmdEndRendering" ) );
  12418. vkCmdSetCullMode = PFN_vkCmdSetCullMode( vkGetDeviceProcAddr( device, "vkCmdSetCullMode" ) );
  12419. vkCmdSetFrontFace = PFN_vkCmdSetFrontFace( vkGetDeviceProcAddr( device, "vkCmdSetFrontFace" ) );
  12420. vkCmdSetPrimitiveTopology = PFN_vkCmdSetPrimitiveTopology( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopology" ) );
  12421. vkCmdSetViewportWithCount = PFN_vkCmdSetViewportWithCount( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCount" ) );
  12422. vkCmdSetScissorWithCount = PFN_vkCmdSetScissorWithCount( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCount" ) );
  12423. vkCmdBindVertexBuffers2 = PFN_vkCmdBindVertexBuffers2( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2" ) );
  12424. vkCmdSetDepthTestEnable = PFN_vkCmdSetDepthTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnable" ) );
  12425. vkCmdSetDepthWriteEnable = PFN_vkCmdSetDepthWriteEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnable" ) );
  12426. vkCmdSetDepthCompareOp = PFN_vkCmdSetDepthCompareOp( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOp" ) );
  12427. vkCmdSetDepthBoundsTestEnable = PFN_vkCmdSetDepthBoundsTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnable" ) );
  12428. vkCmdSetStencilTestEnable = PFN_vkCmdSetStencilTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnable" ) );
  12429. vkCmdSetStencilOp = PFN_vkCmdSetStencilOp( vkGetDeviceProcAddr( device, "vkCmdSetStencilOp" ) );
  12430. vkCmdSetRasterizerDiscardEnable = PFN_vkCmdSetRasterizerDiscardEnable( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnable" ) );
  12431. vkCmdSetDepthBiasEnable = PFN_vkCmdSetDepthBiasEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnable" ) );
  12432. vkCmdSetPrimitiveRestartEnable = PFN_vkCmdSetPrimitiveRestartEnable( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnable" ) );
  12433. vkGetDeviceBufferMemoryRequirements = PFN_vkGetDeviceBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirements" ) );
  12434. vkGetDeviceImageMemoryRequirements = PFN_vkGetDeviceImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirements" ) );
  12435. vkGetDeviceImageSparseMemoryRequirements =
  12436. PFN_vkGetDeviceImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirements" ) );
  12437. //=== VK_KHR_swapchain ===
  12438. vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) );
  12439. vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) );
  12440. vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) );
  12441. vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) );
  12442. vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) );
  12443. vkGetDeviceGroupPresentCapabilitiesKHR =
  12444. PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) );
  12445. vkGetDeviceGroupSurfacePresentModesKHR =
  12446. PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) );
  12447. vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) );
  12448. //=== VK_KHR_display_swapchain ===
  12449. vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) );
  12450. //=== VK_EXT_debug_marker ===
  12451. vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) );
  12452. vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) );
  12453. vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) );
  12454. vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) );
  12455. vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) );
  12456. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  12457. //=== VK_KHR_video_queue ===
  12458. vkCreateVideoSessionKHR = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) );
  12459. vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) );
  12460. vkGetVideoSessionMemoryRequirementsKHR =
  12461. PFN_vkGetVideoSessionMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) );
  12462. vkBindVideoSessionMemoryKHR = PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) );
  12463. vkCreateVideoSessionParametersKHR = PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) );
  12464. vkUpdateVideoSessionParametersKHR = PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) );
  12465. vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) );
  12466. vkCmdBeginVideoCodingKHR = PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) );
  12467. vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) );
  12468. vkCmdControlVideoCodingKHR = PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) );
  12469. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12470. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  12471. //=== VK_KHR_video_decode_queue ===
  12472. vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) );
  12473. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12474. //=== VK_EXT_transform_feedback ===
  12475. vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) );
  12476. vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) );
  12477. vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) );
  12478. vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) );
  12479. vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) );
  12480. vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) );
  12481. //=== VK_NVX_binary_import ===
  12482. vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) );
  12483. vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) );
  12484. vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) );
  12485. vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) );
  12486. vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) );
  12487. //=== VK_NVX_image_view_handle ===
  12488. vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) );
  12489. vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) );
  12490. //=== VK_AMD_draw_indirect_count ===
  12491. vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) );
  12492. if ( !vkCmdDrawIndirectCount )
  12493. vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
  12494. vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) );
  12495. if ( !vkCmdDrawIndexedIndirectCount )
  12496. vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
  12497. //=== VK_AMD_shader_info ===
  12498. vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
  12499. //=== VK_KHR_dynamic_rendering ===
  12500. vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderingKHR" ) );
  12501. if ( !vkCmdBeginRendering )
  12502. vkCmdBeginRendering = vkCmdBeginRenderingKHR;
  12503. vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderingKHR" ) );
  12504. if ( !vkCmdEndRendering )
  12505. vkCmdEndRendering = vkCmdEndRenderingKHR;
  12506. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  12507. //=== VK_NV_external_memory_win32 ===
  12508. vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) );
  12509. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  12510. //=== VK_KHR_device_group ===
  12511. vkGetDeviceGroupPeerMemoryFeaturesKHR =
  12512. PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) );
  12513. if ( !vkGetDeviceGroupPeerMemoryFeatures )
  12514. vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
  12515. vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) );
  12516. if ( !vkCmdSetDeviceMask )
  12517. vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
  12518. vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) );
  12519. if ( !vkCmdDispatchBase )
  12520. vkCmdDispatchBase = vkCmdDispatchBaseKHR;
  12521. //=== VK_KHR_maintenance1 ===
  12522. vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) );
  12523. if ( !vkTrimCommandPool )
  12524. vkTrimCommandPool = vkTrimCommandPoolKHR;
  12525. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  12526. //=== VK_KHR_external_memory_win32 ===
  12527. vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) );
  12528. vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) );
  12529. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  12530. //=== VK_KHR_external_memory_fd ===
  12531. vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) );
  12532. vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) );
  12533. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  12534. //=== VK_KHR_external_semaphore_win32 ===
  12535. vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) );
  12536. vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) );
  12537. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  12538. //=== VK_KHR_external_semaphore_fd ===
  12539. vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) );
  12540. vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) );
  12541. //=== VK_KHR_push_descriptor ===
  12542. vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) );
  12543. vkCmdPushDescriptorSetWithTemplateKHR =
  12544. PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) );
  12545. //=== VK_EXT_conditional_rendering ===
  12546. vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) );
  12547. vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) );
  12548. //=== VK_KHR_descriptor_update_template ===
  12549. vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) );
  12550. if ( !vkCreateDescriptorUpdateTemplate )
  12551. vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
  12552. vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) );
  12553. if ( !vkDestroyDescriptorUpdateTemplate )
  12554. vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
  12555. vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) );
  12556. if ( !vkUpdateDescriptorSetWithTemplate )
  12557. vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
  12558. //=== VK_NV_clip_space_w_scaling ===
  12559. vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) );
  12560. //=== VK_EXT_display_control ===
  12561. vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) );
  12562. vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) );
  12563. vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) );
  12564. vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) );
  12565. //=== VK_GOOGLE_display_timing ===
  12566. vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) );
  12567. vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) );
  12568. //=== VK_EXT_discard_rectangles ===
  12569. vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) );
  12570. //=== VK_EXT_hdr_metadata ===
  12571. vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) );
  12572. //=== VK_KHR_create_renderpass2 ===
  12573. vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) );
  12574. if ( !vkCreateRenderPass2 )
  12575. vkCreateRenderPass2 = vkCreateRenderPass2KHR;
  12576. vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) );
  12577. if ( !vkCmdBeginRenderPass2 )
  12578. vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
  12579. vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) );
  12580. if ( !vkCmdNextSubpass2 )
  12581. vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
  12582. vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) );
  12583. if ( !vkCmdEndRenderPass2 )
  12584. vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
  12585. //=== VK_KHR_shared_presentable_image ===
  12586. vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) );
  12587. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  12588. //=== VK_KHR_external_fence_win32 ===
  12589. vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) );
  12590. vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) );
  12591. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  12592. //=== VK_KHR_external_fence_fd ===
  12593. vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) );
  12594. vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) );
  12595. //=== VK_KHR_performance_query ===
  12596. vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) );
  12597. vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) );
  12598. //=== VK_EXT_debug_utils ===
  12599. vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) );
  12600. vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) );
  12601. vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) );
  12602. vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) );
  12603. vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) );
  12604. vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) );
  12605. vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) );
  12606. vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) );
  12607. #if defined( VK_USE_PLATFORM_ANDROID_KHR )
  12608. //=== VK_ANDROID_external_memory_android_hardware_buffer ===
  12609. vkGetAndroidHardwareBufferPropertiesANDROID =
  12610. PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) );
  12611. vkGetMemoryAndroidHardwareBufferANDROID =
  12612. PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) );
  12613. #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  12614. //=== VK_EXT_sample_locations ===
  12615. vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) );
  12616. //=== VK_KHR_get_memory_requirements2 ===
  12617. vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) );
  12618. if ( !vkGetImageMemoryRequirements2 )
  12619. vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
  12620. vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) );
  12621. if ( !vkGetBufferMemoryRequirements2 )
  12622. vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
  12623. vkGetImageSparseMemoryRequirements2KHR =
  12624. PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) );
  12625. if ( !vkGetImageSparseMemoryRequirements2 )
  12626. vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
  12627. //=== VK_KHR_acceleration_structure ===
  12628. vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) );
  12629. vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) );
  12630. vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) );
  12631. vkCmdBuildAccelerationStructuresIndirectKHR =
  12632. PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) );
  12633. vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) );
  12634. vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) );
  12635. vkCopyAccelerationStructureToMemoryKHR =
  12636. PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) );
  12637. vkCopyMemoryToAccelerationStructureKHR =
  12638. PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) );
  12639. vkWriteAccelerationStructuresPropertiesKHR =
  12640. PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) );
  12641. vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) );
  12642. vkCmdCopyAccelerationStructureToMemoryKHR =
  12643. PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) );
  12644. vkCmdCopyMemoryToAccelerationStructureKHR =
  12645. PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) );
  12646. vkGetAccelerationStructureDeviceAddressKHR =
  12647. PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) );
  12648. vkCmdWriteAccelerationStructuresPropertiesKHR =
  12649. PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) );
  12650. vkGetDeviceAccelerationStructureCompatibilityKHR =
  12651. PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) );
  12652. vkGetAccelerationStructureBuildSizesKHR =
  12653. PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) );
  12654. //=== VK_KHR_sampler_ycbcr_conversion ===
  12655. vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) );
  12656. if ( !vkCreateSamplerYcbcrConversion )
  12657. vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
  12658. vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) );
  12659. if ( !vkDestroySamplerYcbcrConversion )
  12660. vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
  12661. //=== VK_KHR_bind_memory2 ===
  12662. vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) );
  12663. if ( !vkBindBufferMemory2 )
  12664. vkBindBufferMemory2 = vkBindBufferMemory2KHR;
  12665. vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) );
  12666. if ( !vkBindImageMemory2 )
  12667. vkBindImageMemory2 = vkBindImageMemory2KHR;
  12668. //=== VK_EXT_image_drm_format_modifier ===
  12669. vkGetImageDrmFormatModifierPropertiesEXT =
  12670. PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) );
  12671. //=== VK_EXT_validation_cache ===
  12672. vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) );
  12673. vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) );
  12674. vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) );
  12675. vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) );
  12676. //=== VK_NV_shading_rate_image ===
  12677. vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) );
  12678. vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) );
  12679. vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) );
  12680. //=== VK_NV_ray_tracing ===
  12681. vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) );
  12682. vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) );
  12683. vkGetAccelerationStructureMemoryRequirementsNV =
  12684. PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) );
  12685. vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) );
  12686. vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) );
  12687. vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) );
  12688. vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) );
  12689. vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) );
  12690. vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) );
  12691. if ( !vkGetRayTracingShaderGroupHandlesKHR )
  12692. vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
  12693. vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) );
  12694. vkCmdWriteAccelerationStructuresPropertiesNV =
  12695. PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) );
  12696. vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) );
  12697. //=== VK_KHR_maintenance3 ===
  12698. vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) );
  12699. if ( !vkGetDescriptorSetLayoutSupport )
  12700. vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
  12701. //=== VK_KHR_draw_indirect_count ===
  12702. vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) );
  12703. if ( !vkCmdDrawIndirectCount )
  12704. vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
  12705. vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) );
  12706. if ( !vkCmdDrawIndexedIndirectCount )
  12707. vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
  12708. //=== VK_EXT_external_memory_host ===
  12709. vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) );
  12710. //=== VK_AMD_buffer_marker ===
  12711. vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) );
  12712. //=== VK_EXT_calibrated_timestamps ===
  12713. vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) );
  12714. //=== VK_NV_mesh_shader ===
  12715. vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) );
  12716. vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) );
  12717. vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) );
  12718. //=== VK_NV_scissor_exclusive ===
  12719. vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) );
  12720. //=== VK_NV_device_diagnostic_checkpoints ===
  12721. vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) );
  12722. vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) );
  12723. //=== VK_KHR_timeline_semaphore ===
  12724. vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) );
  12725. if ( !vkGetSemaphoreCounterValue )
  12726. vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
  12727. vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) );
  12728. if ( !vkWaitSemaphores )
  12729. vkWaitSemaphores = vkWaitSemaphoresKHR;
  12730. vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) );
  12731. if ( !vkSignalSemaphore )
  12732. vkSignalSemaphore = vkSignalSemaphoreKHR;
  12733. //=== VK_INTEL_performance_query ===
  12734. vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) );
  12735. vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) );
  12736. vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) );
  12737. vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) );
  12738. vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) );
  12739. vkAcquirePerformanceConfigurationINTEL =
  12740. PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) );
  12741. vkReleasePerformanceConfigurationINTEL =
  12742. PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) );
  12743. vkQueueSetPerformanceConfigurationINTEL =
  12744. PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) );
  12745. vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) );
  12746. //=== VK_AMD_display_native_hdr ===
  12747. vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) );
  12748. //=== VK_KHR_fragment_shading_rate ===
  12749. vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) );
  12750. //=== VK_EXT_buffer_device_address ===
  12751. vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) );
  12752. if ( !vkGetBufferDeviceAddress )
  12753. vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
  12754. //=== VK_KHR_present_wait ===
  12755. vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) );
  12756. #if defined( VK_USE_PLATFORM_WIN32_KHR )
  12757. //=== VK_EXT_full_screen_exclusive ===
  12758. vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) );
  12759. vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) );
  12760. vkGetDeviceGroupSurfacePresentModes2EXT =
  12761. PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) );
  12762. #endif /*VK_USE_PLATFORM_WIN32_KHR*/
  12763. //=== VK_KHR_buffer_device_address ===
  12764. vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) );
  12765. if ( !vkGetBufferDeviceAddress )
  12766. vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
  12767. vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) );
  12768. if ( !vkGetBufferOpaqueCaptureAddress )
  12769. vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
  12770. vkGetDeviceMemoryOpaqueCaptureAddressKHR =
  12771. PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) );
  12772. if ( !vkGetDeviceMemoryOpaqueCaptureAddress )
  12773. vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
  12774. //=== VK_EXT_line_rasterization ===
  12775. vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) );
  12776. //=== VK_EXT_host_query_reset ===
  12777. vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) );
  12778. if ( !vkResetQueryPool )
  12779. vkResetQueryPool = vkResetQueryPoolEXT;
  12780. //=== VK_EXT_extended_dynamic_state ===
  12781. vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) );
  12782. if ( !vkCmdSetCullMode )
  12783. vkCmdSetCullMode = vkCmdSetCullModeEXT;
  12784. vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) );
  12785. if ( !vkCmdSetFrontFace )
  12786. vkCmdSetFrontFace = vkCmdSetFrontFaceEXT;
  12787. vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) );
  12788. if ( !vkCmdSetPrimitiveTopology )
  12789. vkCmdSetPrimitiveTopology = vkCmdSetPrimitiveTopologyEXT;
  12790. vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) );
  12791. if ( !vkCmdSetViewportWithCount )
  12792. vkCmdSetViewportWithCount = vkCmdSetViewportWithCountEXT;
  12793. vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) );
  12794. if ( !vkCmdSetScissorWithCount )
  12795. vkCmdSetScissorWithCount = vkCmdSetScissorWithCountEXT;
  12796. vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) );
  12797. if ( !vkCmdBindVertexBuffers2 )
  12798. vkCmdBindVertexBuffers2 = vkCmdBindVertexBuffers2EXT;
  12799. vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) );
  12800. if ( !vkCmdSetDepthTestEnable )
  12801. vkCmdSetDepthTestEnable = vkCmdSetDepthTestEnableEXT;
  12802. vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) );
  12803. if ( !vkCmdSetDepthWriteEnable )
  12804. vkCmdSetDepthWriteEnable = vkCmdSetDepthWriteEnableEXT;
  12805. vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) );
  12806. if ( !vkCmdSetDepthCompareOp )
  12807. vkCmdSetDepthCompareOp = vkCmdSetDepthCompareOpEXT;
  12808. vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) );
  12809. if ( !vkCmdSetDepthBoundsTestEnable )
  12810. vkCmdSetDepthBoundsTestEnable = vkCmdSetDepthBoundsTestEnableEXT;
  12811. vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) );
  12812. if ( !vkCmdSetStencilTestEnable )
  12813. vkCmdSetStencilTestEnable = vkCmdSetStencilTestEnableEXT;
  12814. vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) );
  12815. if ( !vkCmdSetStencilOp )
  12816. vkCmdSetStencilOp = vkCmdSetStencilOpEXT;
  12817. //=== VK_KHR_deferred_host_operations ===
  12818. vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) );
  12819. vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) );
  12820. vkGetDeferredOperationMaxConcurrencyKHR =
  12821. PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) );
  12822. vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) );
  12823. vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) );
  12824. //=== VK_KHR_pipeline_executable_properties ===
  12825. vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) );
  12826. vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) );
  12827. vkGetPipelineExecutableInternalRepresentationsKHR =
  12828. PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) );
  12829. //=== VK_NV_device_generated_commands ===
  12830. vkGetGeneratedCommandsMemoryRequirementsNV =
  12831. PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) );
  12832. vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) );
  12833. vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) );
  12834. vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) );
  12835. vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) );
  12836. vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) );
  12837. //=== VK_EXT_private_data ===
  12838. vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) );
  12839. if ( !vkCreatePrivateDataSlot )
  12840. vkCreatePrivateDataSlot = vkCreatePrivateDataSlotEXT;
  12841. vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) );
  12842. if ( !vkDestroyPrivateDataSlot )
  12843. vkDestroyPrivateDataSlot = vkDestroyPrivateDataSlotEXT;
  12844. vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) );
  12845. if ( !vkSetPrivateData )
  12846. vkSetPrivateData = vkSetPrivateDataEXT;
  12847. vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) );
  12848. if ( !vkGetPrivateData )
  12849. vkGetPrivateData = vkGetPrivateDataEXT;
  12850. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  12851. //=== VK_KHR_video_encode_queue ===
  12852. vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) );
  12853. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12854. #if defined( VK_USE_PLATFORM_METAL_EXT )
  12855. //=== VK_EXT_metal_objects ===
  12856. vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetDeviceProcAddr( device, "vkExportMetalObjectsEXT" ) );
  12857. #endif /*VK_USE_PLATFORM_METAL_EXT*/
  12858. //=== VK_KHR_synchronization2 ===
  12859. vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) );
  12860. if ( !vkCmdSetEvent2 )
  12861. vkCmdSetEvent2 = vkCmdSetEvent2KHR;
  12862. vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) );
  12863. if ( !vkCmdResetEvent2 )
  12864. vkCmdResetEvent2 = vkCmdResetEvent2KHR;
  12865. vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) );
  12866. if ( !vkCmdWaitEvents2 )
  12867. vkCmdWaitEvents2 = vkCmdWaitEvents2KHR;
  12868. vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) );
  12869. if ( !vkCmdPipelineBarrier2 )
  12870. vkCmdPipelineBarrier2 = vkCmdPipelineBarrier2KHR;
  12871. vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) );
  12872. if ( !vkCmdWriteTimestamp2 )
  12873. vkCmdWriteTimestamp2 = vkCmdWriteTimestamp2KHR;
  12874. vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) );
  12875. if ( !vkQueueSubmit2 )
  12876. vkQueueSubmit2 = vkQueueSubmit2KHR;
  12877. vkCmdWriteBufferMarker2AMD = PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) );
  12878. vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) );
  12879. //=== VK_NV_fragment_shading_rate_enums ===
  12880. vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) );
  12881. //=== VK_EXT_mesh_shader ===
  12882. vkCmdDrawMeshTasksEXT = PFN_vkCmdDrawMeshTasksEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksEXT" ) );
  12883. vkCmdDrawMeshTasksIndirectEXT = PFN_vkCmdDrawMeshTasksIndirectEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectEXT" ) );
  12884. vkCmdDrawMeshTasksIndirectCountEXT = PFN_vkCmdDrawMeshTasksIndirectCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountEXT" ) );
  12885. //=== VK_KHR_copy_commands2 ===
  12886. vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) );
  12887. if ( !vkCmdCopyBuffer2 )
  12888. vkCmdCopyBuffer2 = vkCmdCopyBuffer2KHR;
  12889. vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) );
  12890. if ( !vkCmdCopyImage2 )
  12891. vkCmdCopyImage2 = vkCmdCopyImage2KHR;
  12892. vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) );
  12893. if ( !vkCmdCopyBufferToImage2 )
  12894. vkCmdCopyBufferToImage2 = vkCmdCopyBufferToImage2KHR;
  12895. vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) );
  12896. if ( !vkCmdCopyImageToBuffer2 )
  12897. vkCmdCopyImageToBuffer2 = vkCmdCopyImageToBuffer2KHR;
  12898. vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) );
  12899. if ( !vkCmdBlitImage2 )
  12900. vkCmdBlitImage2 = vkCmdBlitImage2KHR;
  12901. vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) );
  12902. if ( !vkCmdResolveImage2 )
  12903. vkCmdResolveImage2 = vkCmdResolveImage2KHR;
  12904. //=== VK_EXT_image_compression_control ===
  12905. vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2EXT" ) );
  12906. //=== VK_KHR_ray_tracing_pipeline ===
  12907. vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) );
  12908. vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) );
  12909. vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) );
  12910. vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
  12911. PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) );
  12912. vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) );
  12913. vkGetRayTracingShaderGroupStackSizeKHR =
  12914. PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) );
  12915. vkCmdSetRayTracingPipelineStackSizeKHR =
  12916. PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) );
  12917. //=== VK_EXT_vertex_input_dynamic_state ===
  12918. vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) );
  12919. #if defined( VK_USE_PLATFORM_FUCHSIA )
  12920. //=== VK_FUCHSIA_external_memory ===
  12921. vkGetMemoryZirconHandleFUCHSIA = PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) );
  12922. vkGetMemoryZirconHandlePropertiesFUCHSIA =
  12923. PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) );
  12924. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  12925. #if defined( VK_USE_PLATFORM_FUCHSIA )
  12926. //=== VK_FUCHSIA_external_semaphore ===
  12927. vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) );
  12928. vkGetSemaphoreZirconHandleFUCHSIA = PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) );
  12929. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  12930. #if defined( VK_USE_PLATFORM_FUCHSIA )
  12931. //=== VK_FUCHSIA_buffer_collection ===
  12932. vkCreateBufferCollectionFUCHSIA = PFN_vkCreateBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkCreateBufferCollectionFUCHSIA" ) );
  12933. vkSetBufferCollectionImageConstraintsFUCHSIA =
  12934. PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) );
  12935. vkSetBufferCollectionBufferConstraintsFUCHSIA =
  12936. PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) );
  12937. vkDestroyBufferCollectionFUCHSIA = PFN_vkDestroyBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkDestroyBufferCollectionFUCHSIA" ) );
  12938. vkGetBufferCollectionPropertiesFUCHSIA =
  12939. PFN_vkGetBufferCollectionPropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetBufferCollectionPropertiesFUCHSIA" ) );
  12940. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  12941. //=== VK_HUAWEI_subpass_shading ===
  12942. vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
  12943. PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) );
  12944. vkCmdSubpassShadingHUAWEI = PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) );
  12945. //=== VK_HUAWEI_invocation_mask ===
  12946. vkCmdBindInvocationMaskHUAWEI = PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) );
  12947. //=== VK_NV_external_memory_rdma ===
  12948. vkGetMemoryRemoteAddressNV = PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) );
  12949. //=== VK_EXT_pipeline_properties ===
  12950. vkGetPipelinePropertiesEXT = PFN_vkGetPipelinePropertiesEXT( vkGetDeviceProcAddr( device, "vkGetPipelinePropertiesEXT" ) );
  12951. //=== VK_EXT_extended_dynamic_state2 ===
  12952. vkCmdSetPatchControlPointsEXT = PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) );
  12953. vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) );
  12954. if ( !vkCmdSetRasterizerDiscardEnable )
  12955. vkCmdSetRasterizerDiscardEnable = vkCmdSetRasterizerDiscardEnableEXT;
  12956. vkCmdSetDepthBiasEnableEXT = PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) );
  12957. if ( !vkCmdSetDepthBiasEnable )
  12958. vkCmdSetDepthBiasEnable = vkCmdSetDepthBiasEnableEXT;
  12959. vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) );
  12960. vkCmdSetPrimitiveRestartEnableEXT = PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) );
  12961. if ( !vkCmdSetPrimitiveRestartEnable )
  12962. vkCmdSetPrimitiveRestartEnable = vkCmdSetPrimitiveRestartEnableEXT;
  12963. //=== VK_EXT_color_write_enable ===
  12964. vkCmdSetColorWriteEnableEXT = PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) );
  12965. //=== VK_KHR_ray_tracing_maintenance1 ===
  12966. vkCmdTraceRaysIndirect2KHR = PFN_vkCmdTraceRaysIndirect2KHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirect2KHR" ) );
  12967. //=== VK_EXT_multi_draw ===
  12968. vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) );
  12969. vkCmdDrawMultiIndexedEXT = PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) );
  12970. //=== VK_EXT_pageable_device_local_memory ===
  12971. vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" ) );
  12972. //=== VK_KHR_maintenance4 ===
  12973. vkGetDeviceBufferMemoryRequirementsKHR =
  12974. PFN_vkGetDeviceBufferMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirementsKHR" ) );
  12975. if ( !vkGetDeviceBufferMemoryRequirements )
  12976. vkGetDeviceBufferMemoryRequirements = vkGetDeviceBufferMemoryRequirementsKHR;
  12977. vkGetDeviceImageMemoryRequirementsKHR =
  12978. PFN_vkGetDeviceImageMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirementsKHR" ) );
  12979. if ( !vkGetDeviceImageMemoryRequirements )
  12980. vkGetDeviceImageMemoryRequirements = vkGetDeviceImageMemoryRequirementsKHR;
  12981. vkGetDeviceImageSparseMemoryRequirementsKHR =
  12982. PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) );
  12983. if ( !vkGetDeviceImageSparseMemoryRequirements )
  12984. vkGetDeviceImageSparseMemoryRequirements = vkGetDeviceImageSparseMemoryRequirementsKHR;
  12985. //=== VK_VALVE_descriptor_set_host_mapping ===
  12986. vkGetDescriptorSetLayoutHostMappingInfoVALVE =
  12987. PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" ) );
  12988. vkGetDescriptorSetHostMappingVALVE = PFN_vkGetDescriptorSetHostMappingVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetHostMappingVALVE" ) );
  12989. //=== VK_EXT_shader_module_identifier ===
  12990. vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleIdentifierEXT" ) );
  12991. vkGetShaderModuleCreateInfoIdentifierEXT =
  12992. PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleCreateInfoIdentifierEXT" ) );
  12993. //=== VK_QCOM_tile_properties ===
  12994. vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetFramebufferTilePropertiesQCOM" ) );
  12995. vkGetDynamicRenderingTilePropertiesQCOM =
  12996. PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) );
  12997. }
  12998. };
  12999. } // namespace VULKAN_HPP_NAMESPACE
  13000. #endif