vulkan_hash.hpp 629 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475
  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_HASH_HPP
  7. #define VULKAN_HASH_HPP
  8. #include <vulkan/vulkan.hpp>
  9. namespace std
  10. {
  11. //=======================================
  12. //=== HASH structures for Flags types ===
  13. //=======================================
  14. template <typename BitType>
  15. struct hash<VULKAN_HPP_NAMESPACE::Flags<BitType>>
  16. {
  17. std::size_t operator()( VULKAN_HPP_NAMESPACE::Flags<BitType> const & flags ) const VULKAN_HPP_NOEXCEPT
  18. {
  19. return std::hash<typename std::underlying_type<BitType>::type>{}( static_cast<typename std::underlying_type<BitType>::type>( flags ) );
  20. }
  21. };
  22. //===================================
  23. //=== HASH structures for handles ===
  24. //===================================
  25. //=== VK_VERSION_1_0 ===
  26. template <>
  27. struct hash<VULKAN_HPP_NAMESPACE::Instance>
  28. {
  29. std::size_t operator()( VULKAN_HPP_NAMESPACE::Instance const & instance ) const VULKAN_HPP_NOEXCEPT
  30. {
  31. return std::hash<VkInstance>{}( static_cast<VkInstance>( instance ) );
  32. }
  33. };
  34. template <>
  35. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice>
  36. {
  37. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice const & physicalDevice ) const VULKAN_HPP_NOEXCEPT
  38. {
  39. return std::hash<VkPhysicalDevice>{}( static_cast<VkPhysicalDevice>( physicalDevice ) );
  40. }
  41. };
  42. template <>
  43. struct hash<VULKAN_HPP_NAMESPACE::Device>
  44. {
  45. std::size_t operator()( VULKAN_HPP_NAMESPACE::Device const & device ) const VULKAN_HPP_NOEXCEPT
  46. {
  47. return std::hash<VkDevice>{}( static_cast<VkDevice>( device ) );
  48. }
  49. };
  50. template <>
  51. struct hash<VULKAN_HPP_NAMESPACE::Queue>
  52. {
  53. std::size_t operator()( VULKAN_HPP_NAMESPACE::Queue const & queue ) const VULKAN_HPP_NOEXCEPT
  54. {
  55. return std::hash<VkQueue>{}( static_cast<VkQueue>( queue ) );
  56. }
  57. };
  58. template <>
  59. struct hash<VULKAN_HPP_NAMESPACE::DeviceMemory>
  60. {
  61. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemory const & deviceMemory ) const VULKAN_HPP_NOEXCEPT
  62. {
  63. return std::hash<VkDeviceMemory>{}( static_cast<VkDeviceMemory>( deviceMemory ) );
  64. }
  65. };
  66. template <>
  67. struct hash<VULKAN_HPP_NAMESPACE::Fence>
  68. {
  69. std::size_t operator()( VULKAN_HPP_NAMESPACE::Fence const & fence ) const VULKAN_HPP_NOEXCEPT
  70. {
  71. return std::hash<VkFence>{}( static_cast<VkFence>( fence ) );
  72. }
  73. };
  74. template <>
  75. struct hash<VULKAN_HPP_NAMESPACE::Semaphore>
  76. {
  77. std::size_t operator()( VULKAN_HPP_NAMESPACE::Semaphore const & semaphore ) const VULKAN_HPP_NOEXCEPT
  78. {
  79. return std::hash<VkSemaphore>{}( static_cast<VkSemaphore>( semaphore ) );
  80. }
  81. };
  82. template <>
  83. struct hash<VULKAN_HPP_NAMESPACE::Event>
  84. {
  85. std::size_t operator()( VULKAN_HPP_NAMESPACE::Event const & event ) const VULKAN_HPP_NOEXCEPT
  86. {
  87. return std::hash<VkEvent>{}( static_cast<VkEvent>( event ) );
  88. }
  89. };
  90. template <>
  91. struct hash<VULKAN_HPP_NAMESPACE::QueryPool>
  92. {
  93. std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPool const & queryPool ) const VULKAN_HPP_NOEXCEPT
  94. {
  95. return std::hash<VkQueryPool>{}( static_cast<VkQueryPool>( queryPool ) );
  96. }
  97. };
  98. template <>
  99. struct hash<VULKAN_HPP_NAMESPACE::Buffer>
  100. {
  101. std::size_t operator()( VULKAN_HPP_NAMESPACE::Buffer const & buffer ) const VULKAN_HPP_NOEXCEPT
  102. {
  103. return std::hash<VkBuffer>{}( static_cast<VkBuffer>( buffer ) );
  104. }
  105. };
  106. template <>
  107. struct hash<VULKAN_HPP_NAMESPACE::BufferView>
  108. {
  109. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferView const & bufferView ) const VULKAN_HPP_NOEXCEPT
  110. {
  111. return std::hash<VkBufferView>{}( static_cast<VkBufferView>( bufferView ) );
  112. }
  113. };
  114. template <>
  115. struct hash<VULKAN_HPP_NAMESPACE::Image>
  116. {
  117. std::size_t operator()( VULKAN_HPP_NAMESPACE::Image const & image ) const VULKAN_HPP_NOEXCEPT
  118. {
  119. return std::hash<VkImage>{}( static_cast<VkImage>( image ) );
  120. }
  121. };
  122. template <>
  123. struct hash<VULKAN_HPP_NAMESPACE::ImageView>
  124. {
  125. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageView const & imageView ) const VULKAN_HPP_NOEXCEPT
  126. {
  127. return std::hash<VkImageView>{}( static_cast<VkImageView>( imageView ) );
  128. }
  129. };
  130. template <>
  131. struct hash<VULKAN_HPP_NAMESPACE::ShaderModule>
  132. {
  133. std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModule const & shaderModule ) const VULKAN_HPP_NOEXCEPT
  134. {
  135. return std::hash<VkShaderModule>{}( static_cast<VkShaderModule>( shaderModule ) );
  136. }
  137. };
  138. template <>
  139. struct hash<VULKAN_HPP_NAMESPACE::PipelineCache>
  140. {
  141. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCache const & pipelineCache ) const VULKAN_HPP_NOEXCEPT
  142. {
  143. return std::hash<VkPipelineCache>{}( static_cast<VkPipelineCache>( pipelineCache ) );
  144. }
  145. };
  146. template <>
  147. struct hash<VULKAN_HPP_NAMESPACE::Pipeline>
  148. {
  149. std::size_t operator()( VULKAN_HPP_NAMESPACE::Pipeline const & pipeline ) const VULKAN_HPP_NOEXCEPT
  150. {
  151. return std::hash<VkPipeline>{}( static_cast<VkPipeline>( pipeline ) );
  152. }
  153. };
  154. template <>
  155. struct hash<VULKAN_HPP_NAMESPACE::PipelineLayout>
  156. {
  157. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLayout const & pipelineLayout ) const VULKAN_HPP_NOEXCEPT
  158. {
  159. return std::hash<VkPipelineLayout>{}( static_cast<VkPipelineLayout>( pipelineLayout ) );
  160. }
  161. };
  162. template <>
  163. struct hash<VULKAN_HPP_NAMESPACE::Sampler>
  164. {
  165. std::size_t operator()( VULKAN_HPP_NAMESPACE::Sampler const & sampler ) const VULKAN_HPP_NOEXCEPT
  166. {
  167. return std::hash<VkSampler>{}( static_cast<VkSampler>( sampler ) );
  168. }
  169. };
  170. template <>
  171. struct hash<VULKAN_HPP_NAMESPACE::DescriptorPool>
  172. {
  173. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPool const & descriptorPool ) const VULKAN_HPP_NOEXCEPT
  174. {
  175. return std::hash<VkDescriptorPool>{}( static_cast<VkDescriptorPool>( descriptorPool ) );
  176. }
  177. };
  178. template <>
  179. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSet>
  180. {
  181. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSet const & descriptorSet ) const VULKAN_HPP_NOEXCEPT
  182. {
  183. return std::hash<VkDescriptorSet>{}( static_cast<VkDescriptorSet>( descriptorSet ) );
  184. }
  185. };
  186. template <>
  187. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
  188. {
  189. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayout const & descriptorSetLayout ) const VULKAN_HPP_NOEXCEPT
  190. {
  191. return std::hash<VkDescriptorSetLayout>{}( static_cast<VkDescriptorSetLayout>( descriptorSetLayout ) );
  192. }
  193. };
  194. template <>
  195. struct hash<VULKAN_HPP_NAMESPACE::Framebuffer>
  196. {
  197. std::size_t operator()( VULKAN_HPP_NAMESPACE::Framebuffer const & framebuffer ) const VULKAN_HPP_NOEXCEPT
  198. {
  199. return std::hash<VkFramebuffer>{}( static_cast<VkFramebuffer>( framebuffer ) );
  200. }
  201. };
  202. template <>
  203. struct hash<VULKAN_HPP_NAMESPACE::RenderPass>
  204. {
  205. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPass const & renderPass ) const VULKAN_HPP_NOEXCEPT
  206. {
  207. return std::hash<VkRenderPass>{}( static_cast<VkRenderPass>( renderPass ) );
  208. }
  209. };
  210. template <>
  211. struct hash<VULKAN_HPP_NAMESPACE::CommandPool>
  212. {
  213. std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandPool const & commandPool ) const VULKAN_HPP_NOEXCEPT
  214. {
  215. return std::hash<VkCommandPool>{}( static_cast<VkCommandPool>( commandPool ) );
  216. }
  217. };
  218. template <>
  219. struct hash<VULKAN_HPP_NAMESPACE::CommandBuffer>
  220. {
  221. std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBuffer const & commandBuffer ) const VULKAN_HPP_NOEXCEPT
  222. {
  223. return std::hash<VkCommandBuffer>{}( static_cast<VkCommandBuffer>( commandBuffer ) );
  224. }
  225. };
  226. //=== VK_VERSION_1_1 ===
  227. template <>
  228. struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
  229. {
  230. std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const & samplerYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
  231. {
  232. return std::hash<VkSamplerYcbcrConversion>{}( static_cast<VkSamplerYcbcrConversion>( samplerYcbcrConversion ) );
  233. }
  234. };
  235. template <>
  236. struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
  237. {
  238. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const & descriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
  239. {
  240. return std::hash<VkDescriptorUpdateTemplate>{}( static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ) );
  241. }
  242. };
  243. //=== VK_VERSION_1_3 ===
  244. template <>
  245. struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlot>
  246. {
  247. std::size_t operator()( VULKAN_HPP_NAMESPACE::PrivateDataSlot const & privateDataSlot ) const VULKAN_HPP_NOEXCEPT
  248. {
  249. return std::hash<VkPrivateDataSlot>{}( static_cast<VkPrivateDataSlot>( privateDataSlot ) );
  250. }
  251. };
  252. //=== VK_KHR_surface ===
  253. template <>
  254. struct hash<VULKAN_HPP_NAMESPACE::SurfaceKHR>
  255. {
  256. std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceKHR const & surfaceKHR ) const VULKAN_HPP_NOEXCEPT
  257. {
  258. return std::hash<VkSurfaceKHR>{}( static_cast<VkSurfaceKHR>( surfaceKHR ) );
  259. }
  260. };
  261. //=== VK_KHR_swapchain ===
  262. template <>
  263. struct hash<VULKAN_HPP_NAMESPACE::SwapchainKHR>
  264. {
  265. std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainKHR const & swapchainKHR ) const VULKAN_HPP_NOEXCEPT
  266. {
  267. return std::hash<VkSwapchainKHR>{}( static_cast<VkSwapchainKHR>( swapchainKHR ) );
  268. }
  269. };
  270. //=== VK_KHR_display ===
  271. template <>
  272. struct hash<VULKAN_HPP_NAMESPACE::DisplayKHR>
  273. {
  274. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayKHR const & displayKHR ) const VULKAN_HPP_NOEXCEPT
  275. {
  276. return std::hash<VkDisplayKHR>{}( static_cast<VkDisplayKHR>( displayKHR ) );
  277. }
  278. };
  279. template <>
  280. struct hash<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
  281. {
  282. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeKHR const & displayModeKHR ) const VULKAN_HPP_NOEXCEPT
  283. {
  284. return std::hash<VkDisplayModeKHR>{}( static_cast<VkDisplayModeKHR>( displayModeKHR ) );
  285. }
  286. };
  287. //=== VK_EXT_debug_report ===
  288. template <>
  289. struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
  290. {
  291. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const & debugReportCallbackEXT ) const VULKAN_HPP_NOEXCEPT
  292. {
  293. return std::hash<VkDebugReportCallbackEXT>{}( static_cast<VkDebugReportCallbackEXT>( debugReportCallbackEXT ) );
  294. }
  295. };
  296. #if defined( VK_ENABLE_BETA_EXTENSIONS )
  297. //=== VK_KHR_video_queue ===
  298. template <>
  299. struct hash<VULKAN_HPP_NAMESPACE::VideoSessionKHR>
  300. {
  301. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionKHR const & videoSessionKHR ) const VULKAN_HPP_NOEXCEPT
  302. {
  303. return std::hash<VkVideoSessionKHR>{}( static_cast<VkVideoSessionKHR>( videoSessionKHR ) );
  304. }
  305. };
  306. template <>
  307. struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR>
  308. {
  309. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const & videoSessionParametersKHR ) const VULKAN_HPP_NOEXCEPT
  310. {
  311. return std::hash<VkVideoSessionParametersKHR>{}( static_cast<VkVideoSessionParametersKHR>( videoSessionParametersKHR ) );
  312. }
  313. };
  314. #endif /*VK_ENABLE_BETA_EXTENSIONS*/
  315. //=== VK_NVX_binary_import ===
  316. template <>
  317. struct hash<VULKAN_HPP_NAMESPACE::CuModuleNVX>
  318. {
  319. std::size_t operator()( VULKAN_HPP_NAMESPACE::CuModuleNVX const & cuModuleNVX ) const VULKAN_HPP_NOEXCEPT
  320. {
  321. return std::hash<VkCuModuleNVX>{}( static_cast<VkCuModuleNVX>( cuModuleNVX ) );
  322. }
  323. };
  324. template <>
  325. struct hash<VULKAN_HPP_NAMESPACE::CuFunctionNVX>
  326. {
  327. std::size_t operator()( VULKAN_HPP_NAMESPACE::CuFunctionNVX const & cuFunctionNVX ) const VULKAN_HPP_NOEXCEPT
  328. {
  329. return std::hash<VkCuFunctionNVX>{}( static_cast<VkCuFunctionNVX>( cuFunctionNVX ) );
  330. }
  331. };
  332. //=== VK_EXT_debug_utils ===
  333. template <>
  334. struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
  335. {
  336. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const & debugUtilsMessengerEXT ) const VULKAN_HPP_NOEXCEPT
  337. {
  338. return std::hash<VkDebugUtilsMessengerEXT>{}( static_cast<VkDebugUtilsMessengerEXT>( debugUtilsMessengerEXT ) );
  339. }
  340. };
  341. //=== VK_KHR_acceleration_structure ===
  342. template <>
  343. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
  344. {
  345. std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const & accelerationStructureKHR ) const VULKAN_HPP_NOEXCEPT
  346. {
  347. return std::hash<VkAccelerationStructureKHR>{}( static_cast<VkAccelerationStructureKHR>( accelerationStructureKHR ) );
  348. }
  349. };
  350. //=== VK_EXT_validation_cache ===
  351. template <>
  352. struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
  353. {
  354. std::size_t operator()( VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & validationCacheEXT ) const VULKAN_HPP_NOEXCEPT
  355. {
  356. return std::hash<VkValidationCacheEXT>{}( static_cast<VkValidationCacheEXT>( validationCacheEXT ) );
  357. }
  358. };
  359. //=== VK_NV_ray_tracing ===
  360. template <>
  361. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>
  362. {
  363. std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & accelerationStructureNV ) const VULKAN_HPP_NOEXCEPT
  364. {
  365. return std::hash<VkAccelerationStructureNV>{}( static_cast<VkAccelerationStructureNV>( accelerationStructureNV ) );
  366. }
  367. };
  368. //=== VK_INTEL_performance_query ===
  369. template <>
  370. struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
  371. {
  372. std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const & performanceConfigurationINTEL ) const VULKAN_HPP_NOEXCEPT
  373. {
  374. return std::hash<VkPerformanceConfigurationINTEL>{}( static_cast<VkPerformanceConfigurationINTEL>( performanceConfigurationINTEL ) );
  375. }
  376. };
  377. //=== VK_KHR_deferred_host_operations ===
  378. template <>
  379. struct hash<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
  380. {
  381. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & deferredOperationKHR ) const VULKAN_HPP_NOEXCEPT
  382. {
  383. return std::hash<VkDeferredOperationKHR>{}( static_cast<VkDeferredOperationKHR>( deferredOperationKHR ) );
  384. }
  385. };
  386. //=== VK_NV_device_generated_commands ===
  387. template <>
  388. struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
  389. {
  390. std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const & indirectCommandsLayoutNV ) const VULKAN_HPP_NOEXCEPT
  391. {
  392. return std::hash<VkIndirectCommandsLayoutNV>{}( static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayoutNV ) );
  393. }
  394. };
  395. #if defined( VK_USE_PLATFORM_FUCHSIA )
  396. //=== VK_FUCHSIA_buffer_collection ===
  397. template <>
  398. struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA>
  399. {
  400. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const & bufferCollectionFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  401. {
  402. return std::hash<VkBufferCollectionFUCHSIA>{}( static_cast<VkBufferCollectionFUCHSIA>( bufferCollectionFUCHSIA ) );
  403. }
  404. };
  405. #endif /*VK_USE_PLATFORM_FUCHSIA*/
  406. #if 14 <= VULKAN_HPP_CPP_VERSION
  407. //======================================
  408. //=== HASH structures for structures ===
  409. //======================================
  410. # if !defined( VULKAN_HPP_HASH_COMBINE )
  411. # define VULKAN_HPP_HASH_COMBINE( seed, value ) \
  412. seed ^= std::hash<std::decay<decltype( value )>::type>{}( value ) + 0x9e3779b9 + ( seed << 6 ) + ( seed >> 2 )
  413. # endif
  414. template <>
  415. struct hash<VULKAN_HPP_NAMESPACE::AabbPositionsKHR>
  416. {
  417. std::size_t operator()( VULKAN_HPP_NAMESPACE::AabbPositionsKHR const & aabbPositionsKHR ) const VULKAN_HPP_NOEXCEPT
  418. {
  419. std::size_t seed = 0;
  420. VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.minX );
  421. VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.minY );
  422. VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.minZ );
  423. VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.maxX );
  424. VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.maxY );
  425. VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.maxZ );
  426. return seed;
  427. }
  428. };
  429. template <>
  430. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR>
  431. {
  432. std::size_t
  433. operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR const & accelerationStructureBuildRangeInfoKHR ) const VULKAN_HPP_NOEXCEPT
  434. {
  435. std::size_t seed = 0;
  436. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildRangeInfoKHR.primitiveCount );
  437. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildRangeInfoKHR.primitiveOffset );
  438. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildRangeInfoKHR.firstVertex );
  439. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildRangeInfoKHR.transformOffset );
  440. return seed;
  441. }
  442. };
  443. template <>
  444. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR>
  445. {
  446. std::size_t
  447. operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR const & accelerationStructureBuildSizesInfoKHR ) const VULKAN_HPP_NOEXCEPT
  448. {
  449. std::size_t seed = 0;
  450. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildSizesInfoKHR.sType );
  451. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildSizesInfoKHR.pNext );
  452. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildSizesInfoKHR.accelerationStructureSize );
  453. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildSizesInfoKHR.updateScratchSize );
  454. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildSizesInfoKHR.buildScratchSize );
  455. return seed;
  456. }
  457. };
  458. template <>
  459. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR>
  460. {
  461. std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const & accelerationStructureCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  462. {
  463. std::size_t seed = 0;
  464. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.sType );
  465. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.pNext );
  466. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.createFlags );
  467. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.buffer );
  468. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.offset );
  469. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.size );
  470. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.type );
  471. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.deviceAddress );
  472. return seed;
  473. }
  474. };
  475. template <>
  476. struct hash<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV>
  477. {
  478. std::size_t operator()( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & geometryTrianglesNV ) const VULKAN_HPP_NOEXCEPT
  479. {
  480. std::size_t seed = 0;
  481. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.sType );
  482. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.pNext );
  483. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.vertexData );
  484. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.vertexOffset );
  485. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.vertexCount );
  486. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.vertexStride );
  487. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.vertexFormat );
  488. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.indexData );
  489. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.indexOffset );
  490. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.indexCount );
  491. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.indexType );
  492. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.transformData );
  493. VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.transformOffset );
  494. return seed;
  495. }
  496. };
  497. template <>
  498. struct hash<VULKAN_HPP_NAMESPACE::GeometryAABBNV>
  499. {
  500. std::size_t operator()( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & geometryAABBNV ) const VULKAN_HPP_NOEXCEPT
  501. {
  502. std::size_t seed = 0;
  503. VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.sType );
  504. VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.pNext );
  505. VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.aabbData );
  506. VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.numAABBs );
  507. VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.stride );
  508. VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.offset );
  509. return seed;
  510. }
  511. };
  512. template <>
  513. struct hash<VULKAN_HPP_NAMESPACE::GeometryDataNV>
  514. {
  515. std::size_t operator()( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometryDataNV ) const VULKAN_HPP_NOEXCEPT
  516. {
  517. std::size_t seed = 0;
  518. VULKAN_HPP_HASH_COMBINE( seed, geometryDataNV.triangles );
  519. VULKAN_HPP_HASH_COMBINE( seed, geometryDataNV.aabbs );
  520. return seed;
  521. }
  522. };
  523. template <>
  524. struct hash<VULKAN_HPP_NAMESPACE::GeometryNV>
  525. {
  526. std::size_t operator()( VULKAN_HPP_NAMESPACE::GeometryNV const & geometryNV ) const VULKAN_HPP_NOEXCEPT
  527. {
  528. std::size_t seed = 0;
  529. VULKAN_HPP_HASH_COMBINE( seed, geometryNV.sType );
  530. VULKAN_HPP_HASH_COMBINE( seed, geometryNV.pNext );
  531. VULKAN_HPP_HASH_COMBINE( seed, geometryNV.geometryType );
  532. VULKAN_HPP_HASH_COMBINE( seed, geometryNV.geometry );
  533. VULKAN_HPP_HASH_COMBINE( seed, geometryNV.flags );
  534. return seed;
  535. }
  536. };
  537. template <>
  538. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV>
  539. {
  540. std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & accelerationStructureInfoNV ) const VULKAN_HPP_NOEXCEPT
  541. {
  542. std::size_t seed = 0;
  543. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.sType );
  544. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.pNext );
  545. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.type );
  546. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.flags );
  547. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.instanceCount );
  548. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.geometryCount );
  549. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.pGeometries );
  550. return seed;
  551. }
  552. };
  553. template <>
  554. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV>
  555. {
  556. std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const & accelerationStructureCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  557. {
  558. std::size_t seed = 0;
  559. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoNV.sType );
  560. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoNV.pNext );
  561. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoNV.compactedSize );
  562. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoNV.info );
  563. return seed;
  564. }
  565. };
  566. template <>
  567. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR>
  568. {
  569. std::size_t
  570. operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR const & accelerationStructureDeviceAddressInfoKHR ) const VULKAN_HPP_NOEXCEPT
  571. {
  572. std::size_t seed = 0;
  573. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureDeviceAddressInfoKHR.sType );
  574. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureDeviceAddressInfoKHR.pNext );
  575. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureDeviceAddressInfoKHR.accelerationStructure );
  576. return seed;
  577. }
  578. };
  579. template <>
  580. struct hash<VULKAN_HPP_NAMESPACE::TransformMatrixKHR>
  581. {
  582. std::size_t operator()( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformMatrixKHR ) const VULKAN_HPP_NOEXCEPT
  583. {
  584. std::size_t seed = 0;
  585. for ( size_t i = 0; i < 3; ++i )
  586. {
  587. for ( size_t j = 0; j < 4; ++j )
  588. {
  589. VULKAN_HPP_HASH_COMBINE( seed, transformMatrixKHR.matrix[i][j] );
  590. }
  591. }
  592. return seed;
  593. }
  594. };
  595. template <>
  596. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR>
  597. {
  598. std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const & accelerationStructureInstanceKHR ) const VULKAN_HPP_NOEXCEPT
  599. {
  600. std::size_t seed = 0;
  601. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.transform );
  602. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.instanceCustomIndex );
  603. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.mask );
  604. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.instanceShaderBindingTableRecordOffset );
  605. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.flags );
  606. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.accelerationStructureReference );
  607. return seed;
  608. }
  609. };
  610. template <>
  611. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV>
  612. {
  613. std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV const & accelerationStructureMatrixMotionInstanceNV ) const
  614. VULKAN_HPP_NOEXCEPT
  615. {
  616. std::size_t seed = 0;
  617. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.transformT0 );
  618. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.transformT1 );
  619. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.instanceCustomIndex );
  620. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.mask );
  621. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.instanceShaderBindingTableRecordOffset );
  622. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.flags );
  623. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.accelerationStructureReference );
  624. return seed;
  625. }
  626. };
  627. template <>
  628. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV>
  629. {
  630. std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const & accelerationStructureMemoryRequirementsInfoNV ) const
  631. VULKAN_HPP_NOEXCEPT
  632. {
  633. std::size_t seed = 0;
  634. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMemoryRequirementsInfoNV.sType );
  635. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMemoryRequirementsInfoNV.pNext );
  636. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMemoryRequirementsInfoNV.type );
  637. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMemoryRequirementsInfoNV.accelerationStructure );
  638. return seed;
  639. }
  640. };
  641. template <>
  642. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV>
  643. {
  644. std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV const & accelerationStructureMotionInfoNV ) const VULKAN_HPP_NOEXCEPT
  645. {
  646. std::size_t seed = 0;
  647. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMotionInfoNV.sType );
  648. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMotionInfoNV.pNext );
  649. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMotionInfoNV.maxInstances );
  650. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMotionInfoNV.flags );
  651. return seed;
  652. }
  653. };
  654. template <>
  655. struct hash<VULKAN_HPP_NAMESPACE::SRTDataNV>
  656. {
  657. std::size_t operator()( VULKAN_HPP_NAMESPACE::SRTDataNV const & sRTDataNV ) const VULKAN_HPP_NOEXCEPT
  658. {
  659. std::size_t seed = 0;
  660. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.sx );
  661. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.a );
  662. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.b );
  663. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.pvx );
  664. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.sy );
  665. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.c );
  666. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.pvy );
  667. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.sz );
  668. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.pvz );
  669. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.qx );
  670. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.qy );
  671. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.qz );
  672. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.qw );
  673. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.tx );
  674. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.ty );
  675. VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.tz );
  676. return seed;
  677. }
  678. };
  679. template <>
  680. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV>
  681. {
  682. std::size_t
  683. operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV const & accelerationStructureSRTMotionInstanceNV ) const VULKAN_HPP_NOEXCEPT
  684. {
  685. std::size_t seed = 0;
  686. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.transformT0 );
  687. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.transformT1 );
  688. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.instanceCustomIndex );
  689. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.mask );
  690. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.instanceShaderBindingTableRecordOffset );
  691. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.flags );
  692. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.accelerationStructureReference );
  693. return seed;
  694. }
  695. };
  696. template <>
  697. struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR>
  698. {
  699. std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR const & accelerationStructureVersionInfoKHR ) const VULKAN_HPP_NOEXCEPT
  700. {
  701. std::size_t seed = 0;
  702. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureVersionInfoKHR.sType );
  703. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureVersionInfoKHR.pNext );
  704. VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureVersionInfoKHR.pVersionData );
  705. return seed;
  706. }
  707. };
  708. template <>
  709. struct hash<VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR>
  710. {
  711. std::size_t operator()( VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const & acquireNextImageInfoKHR ) const VULKAN_HPP_NOEXCEPT
  712. {
  713. std::size_t seed = 0;
  714. VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.sType );
  715. VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.pNext );
  716. VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.swapchain );
  717. VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.timeout );
  718. VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.semaphore );
  719. VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.fence );
  720. VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.deviceMask );
  721. return seed;
  722. }
  723. };
  724. template <>
  725. struct hash<VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR>
  726. {
  727. std::size_t operator()( VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const & acquireProfilingLockInfoKHR ) const VULKAN_HPP_NOEXCEPT
  728. {
  729. std::size_t seed = 0;
  730. VULKAN_HPP_HASH_COMBINE( seed, acquireProfilingLockInfoKHR.sType );
  731. VULKAN_HPP_HASH_COMBINE( seed, acquireProfilingLockInfoKHR.pNext );
  732. VULKAN_HPP_HASH_COMBINE( seed, acquireProfilingLockInfoKHR.flags );
  733. VULKAN_HPP_HASH_COMBINE( seed, acquireProfilingLockInfoKHR.timeout );
  734. return seed;
  735. }
  736. };
  737. template <>
  738. struct hash<VULKAN_HPP_NAMESPACE::AllocationCallbacks>
  739. {
  740. std::size_t operator()( VULKAN_HPP_NAMESPACE::AllocationCallbacks const & allocationCallbacks ) const VULKAN_HPP_NOEXCEPT
  741. {
  742. std::size_t seed = 0;
  743. VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pUserData );
  744. VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pfnAllocation );
  745. VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pfnReallocation );
  746. VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pfnFree );
  747. VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pfnInternalAllocation );
  748. VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pfnInternalFree );
  749. return seed;
  750. }
  751. };
  752. template <>
  753. struct hash<VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC>
  754. {
  755. std::size_t operator()( VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC const & amigoProfilingSubmitInfoSEC ) const VULKAN_HPP_NOEXCEPT
  756. {
  757. std::size_t seed = 0;
  758. VULKAN_HPP_HASH_COMBINE( seed, amigoProfilingSubmitInfoSEC.sType );
  759. VULKAN_HPP_HASH_COMBINE( seed, amigoProfilingSubmitInfoSEC.pNext );
  760. VULKAN_HPP_HASH_COMBINE( seed, amigoProfilingSubmitInfoSEC.firstDrawTimestamp );
  761. VULKAN_HPP_HASH_COMBINE( seed, amigoProfilingSubmitInfoSEC.swapBufferTimestamp );
  762. return seed;
  763. }
  764. };
  765. template <>
  766. struct hash<VULKAN_HPP_NAMESPACE::ComponentMapping>
  767. {
  768. std::size_t operator()( VULKAN_HPP_NAMESPACE::ComponentMapping const & componentMapping ) const VULKAN_HPP_NOEXCEPT
  769. {
  770. std::size_t seed = 0;
  771. VULKAN_HPP_HASH_COMBINE( seed, componentMapping.r );
  772. VULKAN_HPP_HASH_COMBINE( seed, componentMapping.g );
  773. VULKAN_HPP_HASH_COMBINE( seed, componentMapping.b );
  774. VULKAN_HPP_HASH_COMBINE( seed, componentMapping.a );
  775. return seed;
  776. }
  777. };
  778. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  779. template <>
  780. struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID>
  781. {
  782. std::size_t operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID const & androidHardwareBufferFormatProperties2ANDROID ) const
  783. VULKAN_HPP_NOEXCEPT
  784. {
  785. std::size_t seed = 0;
  786. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.sType );
  787. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.pNext );
  788. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.format );
  789. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.externalFormat );
  790. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.formatFeatures );
  791. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.samplerYcbcrConversionComponents );
  792. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.suggestedYcbcrModel );
  793. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.suggestedYcbcrRange );
  794. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.suggestedXChromaOffset );
  795. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.suggestedYChromaOffset );
  796. return seed;
  797. }
  798. };
  799. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  800. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  801. template <>
  802. struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID>
  803. {
  804. std::size_t operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const & androidHardwareBufferFormatPropertiesANDROID ) const
  805. VULKAN_HPP_NOEXCEPT
  806. {
  807. std::size_t seed = 0;
  808. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.sType );
  809. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.pNext );
  810. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.format );
  811. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.externalFormat );
  812. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.formatFeatures );
  813. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.samplerYcbcrConversionComponents );
  814. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.suggestedYcbcrModel );
  815. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.suggestedYcbcrRange );
  816. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.suggestedXChromaOffset );
  817. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.suggestedYChromaOffset );
  818. return seed;
  819. }
  820. };
  821. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  822. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  823. template <>
  824. struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>
  825. {
  826. std::size_t
  827. operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const & androidHardwareBufferPropertiesANDROID ) const VULKAN_HPP_NOEXCEPT
  828. {
  829. std::size_t seed = 0;
  830. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferPropertiesANDROID.sType );
  831. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferPropertiesANDROID.pNext );
  832. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferPropertiesANDROID.allocationSize );
  833. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferPropertiesANDROID.memoryTypeBits );
  834. return seed;
  835. }
  836. };
  837. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  838. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  839. template <>
  840. struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID>
  841. {
  842. std::size_t operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const & androidHardwareBufferUsageANDROID ) const VULKAN_HPP_NOEXCEPT
  843. {
  844. std::size_t seed = 0;
  845. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferUsageANDROID.sType );
  846. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferUsageANDROID.pNext );
  847. VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferUsageANDROID.androidHardwareBufferUsage );
  848. return seed;
  849. }
  850. };
  851. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  852. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  853. template <>
  854. struct hash<VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR>
  855. {
  856. std::size_t operator()( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const & androidSurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  857. {
  858. std::size_t seed = 0;
  859. VULKAN_HPP_HASH_COMBINE( seed, androidSurfaceCreateInfoKHR.sType );
  860. VULKAN_HPP_HASH_COMBINE( seed, androidSurfaceCreateInfoKHR.pNext );
  861. VULKAN_HPP_HASH_COMBINE( seed, androidSurfaceCreateInfoKHR.flags );
  862. VULKAN_HPP_HASH_COMBINE( seed, androidSurfaceCreateInfoKHR.window );
  863. return seed;
  864. }
  865. };
  866. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  867. template <>
  868. struct hash<VULKAN_HPP_NAMESPACE::ApplicationInfo>
  869. {
  870. std::size_t operator()( VULKAN_HPP_NAMESPACE::ApplicationInfo const & applicationInfo ) const VULKAN_HPP_NOEXCEPT
  871. {
  872. std::size_t seed = 0;
  873. VULKAN_HPP_HASH_COMBINE( seed, applicationInfo.sType );
  874. VULKAN_HPP_HASH_COMBINE( seed, applicationInfo.pNext );
  875. for ( const char * p = applicationInfo.pApplicationName; *p != '\0'; ++p )
  876. {
  877. VULKAN_HPP_HASH_COMBINE( seed, *p );
  878. }
  879. VULKAN_HPP_HASH_COMBINE( seed, applicationInfo.applicationVersion );
  880. for ( const char * p = applicationInfo.pEngineName; *p != '\0'; ++p )
  881. {
  882. VULKAN_HPP_HASH_COMBINE( seed, *p );
  883. }
  884. VULKAN_HPP_HASH_COMBINE( seed, applicationInfo.engineVersion );
  885. VULKAN_HPP_HASH_COMBINE( seed, applicationInfo.apiVersion );
  886. return seed;
  887. }
  888. };
  889. template <>
  890. struct hash<VULKAN_HPP_NAMESPACE::AttachmentDescription>
  891. {
  892. std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentDescription const & attachmentDescription ) const VULKAN_HPP_NOEXCEPT
  893. {
  894. std::size_t seed = 0;
  895. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.flags );
  896. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.format );
  897. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.samples );
  898. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.loadOp );
  899. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.storeOp );
  900. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.stencilLoadOp );
  901. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.stencilStoreOp );
  902. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.initialLayout );
  903. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.finalLayout );
  904. return seed;
  905. }
  906. };
  907. template <>
  908. struct hash<VULKAN_HPP_NAMESPACE::AttachmentDescription2>
  909. {
  910. std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentDescription2 const & attachmentDescription2 ) const VULKAN_HPP_NOEXCEPT
  911. {
  912. std::size_t seed = 0;
  913. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.sType );
  914. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.pNext );
  915. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.flags );
  916. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.format );
  917. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.samples );
  918. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.loadOp );
  919. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.storeOp );
  920. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.stencilLoadOp );
  921. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.stencilStoreOp );
  922. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.initialLayout );
  923. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.finalLayout );
  924. return seed;
  925. }
  926. };
  927. template <>
  928. struct hash<VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout>
  929. {
  930. std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const & attachmentDescriptionStencilLayout ) const VULKAN_HPP_NOEXCEPT
  931. {
  932. std::size_t seed = 0;
  933. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescriptionStencilLayout.sType );
  934. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescriptionStencilLayout.pNext );
  935. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescriptionStencilLayout.stencilInitialLayout );
  936. VULKAN_HPP_HASH_COMBINE( seed, attachmentDescriptionStencilLayout.stencilFinalLayout );
  937. return seed;
  938. }
  939. };
  940. template <>
  941. struct hash<VULKAN_HPP_NAMESPACE::AttachmentReference>
  942. {
  943. std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentReference const & attachmentReference ) const VULKAN_HPP_NOEXCEPT
  944. {
  945. std::size_t seed = 0;
  946. VULKAN_HPP_HASH_COMBINE( seed, attachmentReference.attachment );
  947. VULKAN_HPP_HASH_COMBINE( seed, attachmentReference.layout );
  948. return seed;
  949. }
  950. };
  951. template <>
  952. struct hash<VULKAN_HPP_NAMESPACE::AttachmentReference2>
  953. {
  954. std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentReference2 const & attachmentReference2 ) const VULKAN_HPP_NOEXCEPT
  955. {
  956. std::size_t seed = 0;
  957. VULKAN_HPP_HASH_COMBINE( seed, attachmentReference2.sType );
  958. VULKAN_HPP_HASH_COMBINE( seed, attachmentReference2.pNext );
  959. VULKAN_HPP_HASH_COMBINE( seed, attachmentReference2.attachment );
  960. VULKAN_HPP_HASH_COMBINE( seed, attachmentReference2.layout );
  961. VULKAN_HPP_HASH_COMBINE( seed, attachmentReference2.aspectMask );
  962. return seed;
  963. }
  964. };
  965. template <>
  966. struct hash<VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout>
  967. {
  968. std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const & attachmentReferenceStencilLayout ) const VULKAN_HPP_NOEXCEPT
  969. {
  970. std::size_t seed = 0;
  971. VULKAN_HPP_HASH_COMBINE( seed, attachmentReferenceStencilLayout.sType );
  972. VULKAN_HPP_HASH_COMBINE( seed, attachmentReferenceStencilLayout.pNext );
  973. VULKAN_HPP_HASH_COMBINE( seed, attachmentReferenceStencilLayout.stencilLayout );
  974. return seed;
  975. }
  976. };
  977. template <>
  978. struct hash<VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD>
  979. {
  980. std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD const & attachmentSampleCountInfoAMD ) const VULKAN_HPP_NOEXCEPT
  981. {
  982. std::size_t seed = 0;
  983. VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleCountInfoAMD.sType );
  984. VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleCountInfoAMD.pNext );
  985. VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleCountInfoAMD.colorAttachmentCount );
  986. VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleCountInfoAMD.pColorAttachmentSamples );
  987. VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleCountInfoAMD.depthStencilAttachmentSamples );
  988. return seed;
  989. }
  990. };
  991. template <>
  992. struct hash<VULKAN_HPP_NAMESPACE::Extent2D>
  993. {
  994. std::size_t operator()( VULKAN_HPP_NAMESPACE::Extent2D const & extent2D ) const VULKAN_HPP_NOEXCEPT
  995. {
  996. std::size_t seed = 0;
  997. VULKAN_HPP_HASH_COMBINE( seed, extent2D.width );
  998. VULKAN_HPP_HASH_COMBINE( seed, extent2D.height );
  999. return seed;
  1000. }
  1001. };
  1002. template <>
  1003. struct hash<VULKAN_HPP_NAMESPACE::SampleLocationEXT>
  1004. {
  1005. std::size_t operator()( VULKAN_HPP_NAMESPACE::SampleLocationEXT const & sampleLocationEXT ) const VULKAN_HPP_NOEXCEPT
  1006. {
  1007. std::size_t seed = 0;
  1008. VULKAN_HPP_HASH_COMBINE( seed, sampleLocationEXT.x );
  1009. VULKAN_HPP_HASH_COMBINE( seed, sampleLocationEXT.y );
  1010. return seed;
  1011. }
  1012. };
  1013. template <>
  1014. struct hash<VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT>
  1015. {
  1016. std::size_t operator()( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfoEXT ) const VULKAN_HPP_NOEXCEPT
  1017. {
  1018. std::size_t seed = 0;
  1019. VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.sType );
  1020. VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.pNext );
  1021. VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.sampleLocationsPerPixel );
  1022. VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.sampleLocationGridSize );
  1023. VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.sampleLocationsCount );
  1024. VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.pSampleLocations );
  1025. return seed;
  1026. }
  1027. };
  1028. template <>
  1029. struct hash<VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT>
  1030. {
  1031. std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT const & attachmentSampleLocationsEXT ) const VULKAN_HPP_NOEXCEPT
  1032. {
  1033. std::size_t seed = 0;
  1034. VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleLocationsEXT.attachmentIndex );
  1035. VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleLocationsEXT.sampleLocationsInfo );
  1036. return seed;
  1037. }
  1038. };
  1039. template <>
  1040. struct hash<VULKAN_HPP_NAMESPACE::BaseInStructure>
  1041. {
  1042. std::size_t operator()( VULKAN_HPP_NAMESPACE::BaseInStructure const & baseInStructure ) const VULKAN_HPP_NOEXCEPT
  1043. {
  1044. std::size_t seed = 0;
  1045. VULKAN_HPP_HASH_COMBINE( seed, baseInStructure.sType );
  1046. VULKAN_HPP_HASH_COMBINE( seed, baseInStructure.pNext );
  1047. return seed;
  1048. }
  1049. };
  1050. template <>
  1051. struct hash<VULKAN_HPP_NAMESPACE::BaseOutStructure>
  1052. {
  1053. std::size_t operator()( VULKAN_HPP_NAMESPACE::BaseOutStructure const & baseOutStructure ) const VULKAN_HPP_NOEXCEPT
  1054. {
  1055. std::size_t seed = 0;
  1056. VULKAN_HPP_HASH_COMBINE( seed, baseOutStructure.sType );
  1057. VULKAN_HPP_HASH_COMBINE( seed, baseOutStructure.pNext );
  1058. return seed;
  1059. }
  1060. };
  1061. template <>
  1062. struct hash<VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV>
  1063. {
  1064. std::size_t
  1065. operator()( VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV const & bindAccelerationStructureMemoryInfoNV ) const VULKAN_HPP_NOEXCEPT
  1066. {
  1067. std::size_t seed = 0;
  1068. VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.sType );
  1069. VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.pNext );
  1070. VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.accelerationStructure );
  1071. VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.memory );
  1072. VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.memoryOffset );
  1073. VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.deviceIndexCount );
  1074. VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.pDeviceIndices );
  1075. return seed;
  1076. }
  1077. };
  1078. template <>
  1079. struct hash<VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo>
  1080. {
  1081. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const & bindBufferMemoryDeviceGroupInfo ) const VULKAN_HPP_NOEXCEPT
  1082. {
  1083. std::size_t seed = 0;
  1084. VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryDeviceGroupInfo.sType );
  1085. VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryDeviceGroupInfo.pNext );
  1086. VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryDeviceGroupInfo.deviceIndexCount );
  1087. VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryDeviceGroupInfo.pDeviceIndices );
  1088. return seed;
  1089. }
  1090. };
  1091. template <>
  1092. struct hash<VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo>
  1093. {
  1094. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const & bindBufferMemoryInfo ) const VULKAN_HPP_NOEXCEPT
  1095. {
  1096. std::size_t seed = 0;
  1097. VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryInfo.sType );
  1098. VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryInfo.pNext );
  1099. VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryInfo.buffer );
  1100. VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryInfo.memory );
  1101. VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryInfo.memoryOffset );
  1102. return seed;
  1103. }
  1104. };
  1105. template <>
  1106. struct hash<VULKAN_HPP_NAMESPACE::Offset2D>
  1107. {
  1108. std::size_t operator()( VULKAN_HPP_NAMESPACE::Offset2D const & offset2D ) const VULKAN_HPP_NOEXCEPT
  1109. {
  1110. std::size_t seed = 0;
  1111. VULKAN_HPP_HASH_COMBINE( seed, offset2D.x );
  1112. VULKAN_HPP_HASH_COMBINE( seed, offset2D.y );
  1113. return seed;
  1114. }
  1115. };
  1116. template <>
  1117. struct hash<VULKAN_HPP_NAMESPACE::Rect2D>
  1118. {
  1119. std::size_t operator()( VULKAN_HPP_NAMESPACE::Rect2D const & rect2D ) const VULKAN_HPP_NOEXCEPT
  1120. {
  1121. std::size_t seed = 0;
  1122. VULKAN_HPP_HASH_COMBINE( seed, rect2D.offset );
  1123. VULKAN_HPP_HASH_COMBINE( seed, rect2D.extent );
  1124. return seed;
  1125. }
  1126. };
  1127. template <>
  1128. struct hash<VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo>
  1129. {
  1130. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const & bindImageMemoryDeviceGroupInfo ) const VULKAN_HPP_NOEXCEPT
  1131. {
  1132. std::size_t seed = 0;
  1133. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.sType );
  1134. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.pNext );
  1135. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.deviceIndexCount );
  1136. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.pDeviceIndices );
  1137. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.splitInstanceBindRegionCount );
  1138. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.pSplitInstanceBindRegions );
  1139. return seed;
  1140. }
  1141. };
  1142. template <>
  1143. struct hash<VULKAN_HPP_NAMESPACE::BindImageMemoryInfo>
  1144. {
  1145. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const & bindImageMemoryInfo ) const VULKAN_HPP_NOEXCEPT
  1146. {
  1147. std::size_t seed = 0;
  1148. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryInfo.sType );
  1149. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryInfo.pNext );
  1150. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryInfo.image );
  1151. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryInfo.memory );
  1152. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryInfo.memoryOffset );
  1153. return seed;
  1154. }
  1155. };
  1156. template <>
  1157. struct hash<VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR>
  1158. {
  1159. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const & bindImageMemorySwapchainInfoKHR ) const VULKAN_HPP_NOEXCEPT
  1160. {
  1161. std::size_t seed = 0;
  1162. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemorySwapchainInfoKHR.sType );
  1163. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemorySwapchainInfoKHR.pNext );
  1164. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemorySwapchainInfoKHR.swapchain );
  1165. VULKAN_HPP_HASH_COMBINE( seed, bindImageMemorySwapchainInfoKHR.imageIndex );
  1166. return seed;
  1167. }
  1168. };
  1169. template <>
  1170. struct hash<VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo>
  1171. {
  1172. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const & bindImagePlaneMemoryInfo ) const VULKAN_HPP_NOEXCEPT
  1173. {
  1174. std::size_t seed = 0;
  1175. VULKAN_HPP_HASH_COMBINE( seed, bindImagePlaneMemoryInfo.sType );
  1176. VULKAN_HPP_HASH_COMBINE( seed, bindImagePlaneMemoryInfo.pNext );
  1177. VULKAN_HPP_HASH_COMBINE( seed, bindImagePlaneMemoryInfo.planeAspect );
  1178. return seed;
  1179. }
  1180. };
  1181. template <>
  1182. struct hash<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV>
  1183. {
  1184. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const & bindIndexBufferIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
  1185. {
  1186. std::size_t seed = 0;
  1187. VULKAN_HPP_HASH_COMBINE( seed, bindIndexBufferIndirectCommandNV.bufferAddress );
  1188. VULKAN_HPP_HASH_COMBINE( seed, bindIndexBufferIndirectCommandNV.size );
  1189. VULKAN_HPP_HASH_COMBINE( seed, bindIndexBufferIndirectCommandNV.indexType );
  1190. return seed;
  1191. }
  1192. };
  1193. template <>
  1194. struct hash<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV>
  1195. {
  1196. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const & bindShaderGroupIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
  1197. {
  1198. std::size_t seed = 0;
  1199. VULKAN_HPP_HASH_COMBINE( seed, bindShaderGroupIndirectCommandNV.groupIndex );
  1200. return seed;
  1201. }
  1202. };
  1203. template <>
  1204. struct hash<VULKAN_HPP_NAMESPACE::SparseMemoryBind>
  1205. {
  1206. std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseMemoryBind const & sparseMemoryBind ) const VULKAN_HPP_NOEXCEPT
  1207. {
  1208. std::size_t seed = 0;
  1209. VULKAN_HPP_HASH_COMBINE( seed, sparseMemoryBind.resourceOffset );
  1210. VULKAN_HPP_HASH_COMBINE( seed, sparseMemoryBind.size );
  1211. VULKAN_HPP_HASH_COMBINE( seed, sparseMemoryBind.memory );
  1212. VULKAN_HPP_HASH_COMBINE( seed, sparseMemoryBind.memoryOffset );
  1213. VULKAN_HPP_HASH_COMBINE( seed, sparseMemoryBind.flags );
  1214. return seed;
  1215. }
  1216. };
  1217. template <>
  1218. struct hash<VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo>
  1219. {
  1220. std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo const & sparseBufferMemoryBindInfo ) const VULKAN_HPP_NOEXCEPT
  1221. {
  1222. std::size_t seed = 0;
  1223. VULKAN_HPP_HASH_COMBINE( seed, sparseBufferMemoryBindInfo.buffer );
  1224. VULKAN_HPP_HASH_COMBINE( seed, sparseBufferMemoryBindInfo.bindCount );
  1225. VULKAN_HPP_HASH_COMBINE( seed, sparseBufferMemoryBindInfo.pBinds );
  1226. return seed;
  1227. }
  1228. };
  1229. template <>
  1230. struct hash<VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo>
  1231. {
  1232. std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo const & sparseImageOpaqueMemoryBindInfo ) const VULKAN_HPP_NOEXCEPT
  1233. {
  1234. std::size_t seed = 0;
  1235. VULKAN_HPP_HASH_COMBINE( seed, sparseImageOpaqueMemoryBindInfo.image );
  1236. VULKAN_HPP_HASH_COMBINE( seed, sparseImageOpaqueMemoryBindInfo.bindCount );
  1237. VULKAN_HPP_HASH_COMBINE( seed, sparseImageOpaqueMemoryBindInfo.pBinds );
  1238. return seed;
  1239. }
  1240. };
  1241. template <>
  1242. struct hash<VULKAN_HPP_NAMESPACE::ImageSubresource>
  1243. {
  1244. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSubresource const & imageSubresource ) const VULKAN_HPP_NOEXCEPT
  1245. {
  1246. std::size_t seed = 0;
  1247. VULKAN_HPP_HASH_COMBINE( seed, imageSubresource.aspectMask );
  1248. VULKAN_HPP_HASH_COMBINE( seed, imageSubresource.mipLevel );
  1249. VULKAN_HPP_HASH_COMBINE( seed, imageSubresource.arrayLayer );
  1250. return seed;
  1251. }
  1252. };
  1253. template <>
  1254. struct hash<VULKAN_HPP_NAMESPACE::Offset3D>
  1255. {
  1256. std::size_t operator()( VULKAN_HPP_NAMESPACE::Offset3D const & offset3D ) const VULKAN_HPP_NOEXCEPT
  1257. {
  1258. std::size_t seed = 0;
  1259. VULKAN_HPP_HASH_COMBINE( seed, offset3D.x );
  1260. VULKAN_HPP_HASH_COMBINE( seed, offset3D.y );
  1261. VULKAN_HPP_HASH_COMBINE( seed, offset3D.z );
  1262. return seed;
  1263. }
  1264. };
  1265. template <>
  1266. struct hash<VULKAN_HPP_NAMESPACE::Extent3D>
  1267. {
  1268. std::size_t operator()( VULKAN_HPP_NAMESPACE::Extent3D const & extent3D ) const VULKAN_HPP_NOEXCEPT
  1269. {
  1270. std::size_t seed = 0;
  1271. VULKAN_HPP_HASH_COMBINE( seed, extent3D.width );
  1272. VULKAN_HPP_HASH_COMBINE( seed, extent3D.height );
  1273. VULKAN_HPP_HASH_COMBINE( seed, extent3D.depth );
  1274. return seed;
  1275. }
  1276. };
  1277. template <>
  1278. struct hash<VULKAN_HPP_NAMESPACE::SparseImageMemoryBind>
  1279. {
  1280. std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageMemoryBind const & sparseImageMemoryBind ) const VULKAN_HPP_NOEXCEPT
  1281. {
  1282. std::size_t seed = 0;
  1283. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.subresource );
  1284. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.offset );
  1285. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.extent );
  1286. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.memory );
  1287. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.memoryOffset );
  1288. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.flags );
  1289. return seed;
  1290. }
  1291. };
  1292. template <>
  1293. struct hash<VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo>
  1294. {
  1295. std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo const & sparseImageMemoryBindInfo ) const VULKAN_HPP_NOEXCEPT
  1296. {
  1297. std::size_t seed = 0;
  1298. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBindInfo.image );
  1299. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBindInfo.bindCount );
  1300. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBindInfo.pBinds );
  1301. return seed;
  1302. }
  1303. };
  1304. template <>
  1305. struct hash<VULKAN_HPP_NAMESPACE::BindSparseInfo>
  1306. {
  1307. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindSparseInfo const & bindSparseInfo ) const VULKAN_HPP_NOEXCEPT
  1308. {
  1309. std::size_t seed = 0;
  1310. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.sType );
  1311. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pNext );
  1312. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.waitSemaphoreCount );
  1313. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pWaitSemaphores );
  1314. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.bufferBindCount );
  1315. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pBufferBinds );
  1316. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.imageOpaqueBindCount );
  1317. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pImageOpaqueBinds );
  1318. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.imageBindCount );
  1319. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pImageBinds );
  1320. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.signalSemaphoreCount );
  1321. VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pSignalSemaphores );
  1322. return seed;
  1323. }
  1324. };
  1325. template <>
  1326. struct hash<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV>
  1327. {
  1328. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const & bindVertexBufferIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
  1329. {
  1330. std::size_t seed = 0;
  1331. VULKAN_HPP_HASH_COMBINE( seed, bindVertexBufferIndirectCommandNV.bufferAddress );
  1332. VULKAN_HPP_HASH_COMBINE( seed, bindVertexBufferIndirectCommandNV.size );
  1333. VULKAN_HPP_HASH_COMBINE( seed, bindVertexBufferIndirectCommandNV.stride );
  1334. return seed;
  1335. }
  1336. };
  1337. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  1338. template <>
  1339. struct hash<VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR>
  1340. {
  1341. std::size_t operator()( VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR const & bindVideoSessionMemoryInfoKHR ) const VULKAN_HPP_NOEXCEPT
  1342. {
  1343. std::size_t seed = 0;
  1344. VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.sType );
  1345. VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.pNext );
  1346. VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.memoryBindIndex );
  1347. VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.memory );
  1348. VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.memoryOffset );
  1349. VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.memorySize );
  1350. return seed;
  1351. }
  1352. };
  1353. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  1354. template <>
  1355. struct hash<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers>
  1356. {
  1357. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresourceLayers ) const VULKAN_HPP_NOEXCEPT
  1358. {
  1359. std::size_t seed = 0;
  1360. VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceLayers.aspectMask );
  1361. VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceLayers.mipLevel );
  1362. VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceLayers.baseArrayLayer );
  1363. VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceLayers.layerCount );
  1364. return seed;
  1365. }
  1366. };
  1367. template <>
  1368. struct hash<VULKAN_HPP_NAMESPACE::ImageBlit2>
  1369. {
  1370. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageBlit2 const & imageBlit2 ) const VULKAN_HPP_NOEXCEPT
  1371. {
  1372. std::size_t seed = 0;
  1373. VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.sType );
  1374. VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.pNext );
  1375. VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.srcSubresource );
  1376. for ( size_t i = 0; i < 2; ++i )
  1377. {
  1378. VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.srcOffsets[i] );
  1379. }
  1380. VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.dstSubresource );
  1381. for ( size_t i = 0; i < 2; ++i )
  1382. {
  1383. VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.dstOffsets[i] );
  1384. }
  1385. return seed;
  1386. }
  1387. };
  1388. template <>
  1389. struct hash<VULKAN_HPP_NAMESPACE::BlitImageInfo2>
  1390. {
  1391. std::size_t operator()( VULKAN_HPP_NAMESPACE::BlitImageInfo2 const & blitImageInfo2 ) const VULKAN_HPP_NOEXCEPT
  1392. {
  1393. std::size_t seed = 0;
  1394. VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.sType );
  1395. VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.pNext );
  1396. VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.srcImage );
  1397. VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.srcImageLayout );
  1398. VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.dstImage );
  1399. VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.dstImageLayout );
  1400. VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.regionCount );
  1401. VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.pRegions );
  1402. VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.filter );
  1403. return seed;
  1404. }
  1405. };
  1406. # if defined( VK_USE_PLATFORM_FUCHSIA )
  1407. template <>
  1408. struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA>
  1409. {
  1410. std::size_t
  1411. operator()( VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA const & bufferCollectionBufferCreateInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  1412. {
  1413. std::size_t seed = 0;
  1414. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionBufferCreateInfoFUCHSIA.sType );
  1415. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionBufferCreateInfoFUCHSIA.pNext );
  1416. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionBufferCreateInfoFUCHSIA.collection );
  1417. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionBufferCreateInfoFUCHSIA.index );
  1418. return seed;
  1419. }
  1420. };
  1421. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  1422. # if defined( VK_USE_PLATFORM_FUCHSIA )
  1423. template <>
  1424. struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA>
  1425. {
  1426. std::size_t
  1427. operator()( VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const & bufferCollectionConstraintsInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  1428. {
  1429. std::size_t seed = 0;
  1430. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.sType );
  1431. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.pNext );
  1432. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.minBufferCount );
  1433. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.maxBufferCount );
  1434. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.minBufferCountForCamping );
  1435. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.minBufferCountForDedicatedSlack );
  1436. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.minBufferCountForSharedSlack );
  1437. return seed;
  1438. }
  1439. };
  1440. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  1441. # if defined( VK_USE_PLATFORM_FUCHSIA )
  1442. template <>
  1443. struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA>
  1444. {
  1445. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const & bufferCollectionCreateInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  1446. {
  1447. std::size_t seed = 0;
  1448. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionCreateInfoFUCHSIA.sType );
  1449. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionCreateInfoFUCHSIA.pNext );
  1450. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionCreateInfoFUCHSIA.collectionToken );
  1451. return seed;
  1452. }
  1453. };
  1454. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  1455. # if defined( VK_USE_PLATFORM_FUCHSIA )
  1456. template <>
  1457. struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA>
  1458. {
  1459. std::size_t
  1460. operator()( VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA const & bufferCollectionImageCreateInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  1461. {
  1462. std::size_t seed = 0;
  1463. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionImageCreateInfoFUCHSIA.sType );
  1464. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionImageCreateInfoFUCHSIA.pNext );
  1465. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionImageCreateInfoFUCHSIA.collection );
  1466. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionImageCreateInfoFUCHSIA.index );
  1467. return seed;
  1468. }
  1469. };
  1470. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  1471. # if defined( VK_USE_PLATFORM_FUCHSIA )
  1472. template <>
  1473. struct hash<VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA>
  1474. {
  1475. std::size_t operator()( VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const & sysmemColorSpaceFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  1476. {
  1477. std::size_t seed = 0;
  1478. VULKAN_HPP_HASH_COMBINE( seed, sysmemColorSpaceFUCHSIA.sType );
  1479. VULKAN_HPP_HASH_COMBINE( seed, sysmemColorSpaceFUCHSIA.pNext );
  1480. VULKAN_HPP_HASH_COMBINE( seed, sysmemColorSpaceFUCHSIA.colorSpace );
  1481. return seed;
  1482. }
  1483. };
  1484. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  1485. # if defined( VK_USE_PLATFORM_FUCHSIA )
  1486. template <>
  1487. struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA>
  1488. {
  1489. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA const & bufferCollectionPropertiesFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  1490. {
  1491. std::size_t seed = 0;
  1492. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.sType );
  1493. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.pNext );
  1494. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.memoryTypeBits );
  1495. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.bufferCount );
  1496. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.createInfoIndex );
  1497. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.sysmemPixelFormat );
  1498. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.formatFeatures );
  1499. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.sysmemColorSpaceIndex );
  1500. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.samplerYcbcrConversionComponents );
  1501. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.suggestedYcbcrModel );
  1502. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.suggestedYcbcrRange );
  1503. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.suggestedXChromaOffset );
  1504. VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.suggestedYChromaOffset );
  1505. return seed;
  1506. }
  1507. };
  1508. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  1509. template <>
  1510. struct hash<VULKAN_HPP_NAMESPACE::BufferCreateInfo>
  1511. {
  1512. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCreateInfo const & bufferCreateInfo ) const VULKAN_HPP_NOEXCEPT
  1513. {
  1514. std::size_t seed = 0;
  1515. VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.sType );
  1516. VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.pNext );
  1517. VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.flags );
  1518. VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.size );
  1519. VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.usage );
  1520. VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.sharingMode );
  1521. VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.queueFamilyIndexCount );
  1522. VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.pQueueFamilyIndices );
  1523. return seed;
  1524. }
  1525. };
  1526. # if defined( VK_USE_PLATFORM_FUCHSIA )
  1527. template <>
  1528. struct hash<VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA>
  1529. {
  1530. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA const & bufferConstraintsInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  1531. {
  1532. std::size_t seed = 0;
  1533. VULKAN_HPP_HASH_COMBINE( seed, bufferConstraintsInfoFUCHSIA.sType );
  1534. VULKAN_HPP_HASH_COMBINE( seed, bufferConstraintsInfoFUCHSIA.pNext );
  1535. VULKAN_HPP_HASH_COMBINE( seed, bufferConstraintsInfoFUCHSIA.createInfo );
  1536. VULKAN_HPP_HASH_COMBINE( seed, bufferConstraintsInfoFUCHSIA.requiredFormatFeatures );
  1537. VULKAN_HPP_HASH_COMBINE( seed, bufferConstraintsInfoFUCHSIA.bufferCollectionConstraints );
  1538. return seed;
  1539. }
  1540. };
  1541. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  1542. template <>
  1543. struct hash<VULKAN_HPP_NAMESPACE::BufferCopy>
  1544. {
  1545. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCopy const & bufferCopy ) const VULKAN_HPP_NOEXCEPT
  1546. {
  1547. std::size_t seed = 0;
  1548. VULKAN_HPP_HASH_COMBINE( seed, bufferCopy.srcOffset );
  1549. VULKAN_HPP_HASH_COMBINE( seed, bufferCopy.dstOffset );
  1550. VULKAN_HPP_HASH_COMBINE( seed, bufferCopy.size );
  1551. return seed;
  1552. }
  1553. };
  1554. template <>
  1555. struct hash<VULKAN_HPP_NAMESPACE::BufferCopy2>
  1556. {
  1557. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCopy2 const & bufferCopy2 ) const VULKAN_HPP_NOEXCEPT
  1558. {
  1559. std::size_t seed = 0;
  1560. VULKAN_HPP_HASH_COMBINE( seed, bufferCopy2.sType );
  1561. VULKAN_HPP_HASH_COMBINE( seed, bufferCopy2.pNext );
  1562. VULKAN_HPP_HASH_COMBINE( seed, bufferCopy2.srcOffset );
  1563. VULKAN_HPP_HASH_COMBINE( seed, bufferCopy2.dstOffset );
  1564. VULKAN_HPP_HASH_COMBINE( seed, bufferCopy2.size );
  1565. return seed;
  1566. }
  1567. };
  1568. template <>
  1569. struct hash<VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT>
  1570. {
  1571. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const & bufferDeviceAddressCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  1572. {
  1573. std::size_t seed = 0;
  1574. VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressCreateInfoEXT.sType );
  1575. VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressCreateInfoEXT.pNext );
  1576. VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressCreateInfoEXT.deviceAddress );
  1577. return seed;
  1578. }
  1579. };
  1580. template <>
  1581. struct hash<VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo>
  1582. {
  1583. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const & bufferDeviceAddressInfo ) const VULKAN_HPP_NOEXCEPT
  1584. {
  1585. std::size_t seed = 0;
  1586. VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressInfo.sType );
  1587. VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressInfo.pNext );
  1588. VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressInfo.buffer );
  1589. return seed;
  1590. }
  1591. };
  1592. template <>
  1593. struct hash<VULKAN_HPP_NAMESPACE::BufferImageCopy>
  1594. {
  1595. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferImageCopy const & bufferImageCopy ) const VULKAN_HPP_NOEXCEPT
  1596. {
  1597. std::size_t seed = 0;
  1598. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.bufferOffset );
  1599. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.bufferRowLength );
  1600. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.bufferImageHeight );
  1601. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.imageSubresource );
  1602. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.imageOffset );
  1603. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.imageExtent );
  1604. return seed;
  1605. }
  1606. };
  1607. template <>
  1608. struct hash<VULKAN_HPP_NAMESPACE::BufferImageCopy2>
  1609. {
  1610. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferImageCopy2 const & bufferImageCopy2 ) const VULKAN_HPP_NOEXCEPT
  1611. {
  1612. std::size_t seed = 0;
  1613. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.sType );
  1614. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.pNext );
  1615. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.bufferOffset );
  1616. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.bufferRowLength );
  1617. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.bufferImageHeight );
  1618. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.imageSubresource );
  1619. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.imageOffset );
  1620. VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.imageExtent );
  1621. return seed;
  1622. }
  1623. };
  1624. template <>
  1625. struct hash<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier>
  1626. {
  1627. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const & bufferMemoryBarrier ) const VULKAN_HPP_NOEXCEPT
  1628. {
  1629. std::size_t seed = 0;
  1630. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.sType );
  1631. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.pNext );
  1632. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.srcAccessMask );
  1633. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.dstAccessMask );
  1634. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.srcQueueFamilyIndex );
  1635. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.dstQueueFamilyIndex );
  1636. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.buffer );
  1637. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.offset );
  1638. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.size );
  1639. return seed;
  1640. }
  1641. };
  1642. template <>
  1643. struct hash<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2>
  1644. {
  1645. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 const & bufferMemoryBarrier2 ) const VULKAN_HPP_NOEXCEPT
  1646. {
  1647. std::size_t seed = 0;
  1648. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.sType );
  1649. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.pNext );
  1650. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.srcStageMask );
  1651. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.srcAccessMask );
  1652. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.dstStageMask );
  1653. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.dstAccessMask );
  1654. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.srcQueueFamilyIndex );
  1655. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.dstQueueFamilyIndex );
  1656. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.buffer );
  1657. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.offset );
  1658. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.size );
  1659. return seed;
  1660. }
  1661. };
  1662. template <>
  1663. struct hash<VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2>
  1664. {
  1665. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const & bufferMemoryRequirementsInfo2 ) const VULKAN_HPP_NOEXCEPT
  1666. {
  1667. std::size_t seed = 0;
  1668. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryRequirementsInfo2.sType );
  1669. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryRequirementsInfo2.pNext );
  1670. VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryRequirementsInfo2.buffer );
  1671. return seed;
  1672. }
  1673. };
  1674. template <>
  1675. struct hash<VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo>
  1676. {
  1677. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const & bufferOpaqueCaptureAddressCreateInfo ) const VULKAN_HPP_NOEXCEPT
  1678. {
  1679. std::size_t seed = 0;
  1680. VULKAN_HPP_HASH_COMBINE( seed, bufferOpaqueCaptureAddressCreateInfo.sType );
  1681. VULKAN_HPP_HASH_COMBINE( seed, bufferOpaqueCaptureAddressCreateInfo.pNext );
  1682. VULKAN_HPP_HASH_COMBINE( seed, bufferOpaqueCaptureAddressCreateInfo.opaqueCaptureAddress );
  1683. return seed;
  1684. }
  1685. };
  1686. template <>
  1687. struct hash<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo>
  1688. {
  1689. std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & bufferViewCreateInfo ) const VULKAN_HPP_NOEXCEPT
  1690. {
  1691. std::size_t seed = 0;
  1692. VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.sType );
  1693. VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.pNext );
  1694. VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.flags );
  1695. VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.buffer );
  1696. VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.format );
  1697. VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.offset );
  1698. VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.range );
  1699. return seed;
  1700. }
  1701. };
  1702. template <>
  1703. struct hash<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT>
  1704. {
  1705. std::size_t operator()( VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT const & calibratedTimestampInfoEXT ) const VULKAN_HPP_NOEXCEPT
  1706. {
  1707. std::size_t seed = 0;
  1708. VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoEXT.sType );
  1709. VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoEXT.pNext );
  1710. VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoEXT.timeDomain );
  1711. return seed;
  1712. }
  1713. };
  1714. template <>
  1715. struct hash<VULKAN_HPP_NAMESPACE::CheckpointData2NV>
  1716. {
  1717. std::size_t operator()( VULKAN_HPP_NAMESPACE::CheckpointData2NV const & checkpointData2NV ) const VULKAN_HPP_NOEXCEPT
  1718. {
  1719. std::size_t seed = 0;
  1720. VULKAN_HPP_HASH_COMBINE( seed, checkpointData2NV.sType );
  1721. VULKAN_HPP_HASH_COMBINE( seed, checkpointData2NV.pNext );
  1722. VULKAN_HPP_HASH_COMBINE( seed, checkpointData2NV.stage );
  1723. VULKAN_HPP_HASH_COMBINE( seed, checkpointData2NV.pCheckpointMarker );
  1724. return seed;
  1725. }
  1726. };
  1727. template <>
  1728. struct hash<VULKAN_HPP_NAMESPACE::CheckpointDataNV>
  1729. {
  1730. std::size_t operator()( VULKAN_HPP_NAMESPACE::CheckpointDataNV const & checkpointDataNV ) const VULKAN_HPP_NOEXCEPT
  1731. {
  1732. std::size_t seed = 0;
  1733. VULKAN_HPP_HASH_COMBINE( seed, checkpointDataNV.sType );
  1734. VULKAN_HPP_HASH_COMBINE( seed, checkpointDataNV.pNext );
  1735. VULKAN_HPP_HASH_COMBINE( seed, checkpointDataNV.stage );
  1736. VULKAN_HPP_HASH_COMBINE( seed, checkpointDataNV.pCheckpointMarker );
  1737. return seed;
  1738. }
  1739. };
  1740. template <>
  1741. struct hash<VULKAN_HPP_NAMESPACE::ClearDepthStencilValue>
  1742. {
  1743. std::size_t operator()( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & clearDepthStencilValue ) const VULKAN_HPP_NOEXCEPT
  1744. {
  1745. std::size_t seed = 0;
  1746. VULKAN_HPP_HASH_COMBINE( seed, clearDepthStencilValue.depth );
  1747. VULKAN_HPP_HASH_COMBINE( seed, clearDepthStencilValue.stencil );
  1748. return seed;
  1749. }
  1750. };
  1751. template <>
  1752. struct hash<VULKAN_HPP_NAMESPACE::ClearRect>
  1753. {
  1754. std::size_t operator()( VULKAN_HPP_NAMESPACE::ClearRect const & clearRect ) const VULKAN_HPP_NOEXCEPT
  1755. {
  1756. std::size_t seed = 0;
  1757. VULKAN_HPP_HASH_COMBINE( seed, clearRect.rect );
  1758. VULKAN_HPP_HASH_COMBINE( seed, clearRect.baseArrayLayer );
  1759. VULKAN_HPP_HASH_COMBINE( seed, clearRect.layerCount );
  1760. return seed;
  1761. }
  1762. };
  1763. template <>
  1764. struct hash<VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV>
  1765. {
  1766. std::size_t operator()( VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV const & coarseSampleLocationNV ) const VULKAN_HPP_NOEXCEPT
  1767. {
  1768. std::size_t seed = 0;
  1769. VULKAN_HPP_HASH_COMBINE( seed, coarseSampleLocationNV.pixelX );
  1770. VULKAN_HPP_HASH_COMBINE( seed, coarseSampleLocationNV.pixelY );
  1771. VULKAN_HPP_HASH_COMBINE( seed, coarseSampleLocationNV.sample );
  1772. return seed;
  1773. }
  1774. };
  1775. template <>
  1776. struct hash<VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV>
  1777. {
  1778. std::size_t operator()( VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV const & coarseSampleOrderCustomNV ) const VULKAN_HPP_NOEXCEPT
  1779. {
  1780. std::size_t seed = 0;
  1781. VULKAN_HPP_HASH_COMBINE( seed, coarseSampleOrderCustomNV.shadingRate );
  1782. VULKAN_HPP_HASH_COMBINE( seed, coarseSampleOrderCustomNV.sampleCount );
  1783. VULKAN_HPP_HASH_COMBINE( seed, coarseSampleOrderCustomNV.sampleLocationCount );
  1784. VULKAN_HPP_HASH_COMBINE( seed, coarseSampleOrderCustomNV.pSampleLocations );
  1785. return seed;
  1786. }
  1787. };
  1788. template <>
  1789. struct hash<VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo>
  1790. {
  1791. std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & commandBufferAllocateInfo ) const VULKAN_HPP_NOEXCEPT
  1792. {
  1793. std::size_t seed = 0;
  1794. VULKAN_HPP_HASH_COMBINE( seed, commandBufferAllocateInfo.sType );
  1795. VULKAN_HPP_HASH_COMBINE( seed, commandBufferAllocateInfo.pNext );
  1796. VULKAN_HPP_HASH_COMBINE( seed, commandBufferAllocateInfo.commandPool );
  1797. VULKAN_HPP_HASH_COMBINE( seed, commandBufferAllocateInfo.level );
  1798. VULKAN_HPP_HASH_COMBINE( seed, commandBufferAllocateInfo.commandBufferCount );
  1799. return seed;
  1800. }
  1801. };
  1802. template <>
  1803. struct hash<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo>
  1804. {
  1805. std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const & commandBufferInheritanceInfo ) const VULKAN_HPP_NOEXCEPT
  1806. {
  1807. std::size_t seed = 0;
  1808. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.sType );
  1809. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.pNext );
  1810. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.renderPass );
  1811. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.subpass );
  1812. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.framebuffer );
  1813. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.occlusionQueryEnable );
  1814. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.queryFlags );
  1815. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.pipelineStatistics );
  1816. return seed;
  1817. }
  1818. };
  1819. template <>
  1820. struct hash<VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo>
  1821. {
  1822. std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const & commandBufferBeginInfo ) const VULKAN_HPP_NOEXCEPT
  1823. {
  1824. std::size_t seed = 0;
  1825. VULKAN_HPP_HASH_COMBINE( seed, commandBufferBeginInfo.sType );
  1826. VULKAN_HPP_HASH_COMBINE( seed, commandBufferBeginInfo.pNext );
  1827. VULKAN_HPP_HASH_COMBINE( seed, commandBufferBeginInfo.flags );
  1828. VULKAN_HPP_HASH_COMBINE( seed, commandBufferBeginInfo.pInheritanceInfo );
  1829. return seed;
  1830. }
  1831. };
  1832. template <>
  1833. struct hash<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT>
  1834. {
  1835. std::size_t
  1836. operator()( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const & commandBufferInheritanceConditionalRenderingInfoEXT ) const
  1837. VULKAN_HPP_NOEXCEPT
  1838. {
  1839. std::size_t seed = 0;
  1840. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceConditionalRenderingInfoEXT.sType );
  1841. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceConditionalRenderingInfoEXT.pNext );
  1842. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceConditionalRenderingInfoEXT.conditionalRenderingEnable );
  1843. return seed;
  1844. }
  1845. };
  1846. template <>
  1847. struct hash<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM>
  1848. {
  1849. std::size_t
  1850. operator()( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM const & commandBufferInheritanceRenderPassTransformInfoQCOM ) const
  1851. VULKAN_HPP_NOEXCEPT
  1852. {
  1853. std::size_t seed = 0;
  1854. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderPassTransformInfoQCOM.sType );
  1855. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderPassTransformInfoQCOM.pNext );
  1856. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderPassTransformInfoQCOM.transform );
  1857. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderPassTransformInfoQCOM.renderArea );
  1858. return seed;
  1859. }
  1860. };
  1861. template <>
  1862. struct hash<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo>
  1863. {
  1864. std::size_t
  1865. operator()( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo const & commandBufferInheritanceRenderingInfo ) const VULKAN_HPP_NOEXCEPT
  1866. {
  1867. std::size_t seed = 0;
  1868. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.sType );
  1869. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.pNext );
  1870. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.flags );
  1871. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.viewMask );
  1872. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.colorAttachmentCount );
  1873. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.pColorAttachmentFormats );
  1874. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.depthAttachmentFormat );
  1875. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.stencilAttachmentFormat );
  1876. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.rasterizationSamples );
  1877. return seed;
  1878. }
  1879. };
  1880. template <>
  1881. struct hash<VULKAN_HPP_NAMESPACE::Viewport>
  1882. {
  1883. std::size_t operator()( VULKAN_HPP_NAMESPACE::Viewport const & viewport ) const VULKAN_HPP_NOEXCEPT
  1884. {
  1885. std::size_t seed = 0;
  1886. VULKAN_HPP_HASH_COMBINE( seed, viewport.x );
  1887. VULKAN_HPP_HASH_COMBINE( seed, viewport.y );
  1888. VULKAN_HPP_HASH_COMBINE( seed, viewport.width );
  1889. VULKAN_HPP_HASH_COMBINE( seed, viewport.height );
  1890. VULKAN_HPP_HASH_COMBINE( seed, viewport.minDepth );
  1891. VULKAN_HPP_HASH_COMBINE( seed, viewport.maxDepth );
  1892. return seed;
  1893. }
  1894. };
  1895. template <>
  1896. struct hash<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV>
  1897. {
  1898. std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV const & commandBufferInheritanceViewportScissorInfoNV ) const
  1899. VULKAN_HPP_NOEXCEPT
  1900. {
  1901. std::size_t seed = 0;
  1902. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceViewportScissorInfoNV.sType );
  1903. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceViewportScissorInfoNV.pNext );
  1904. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceViewportScissorInfoNV.viewportScissor2D );
  1905. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceViewportScissorInfoNV.viewportDepthCount );
  1906. VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceViewportScissorInfoNV.pViewportDepths );
  1907. return seed;
  1908. }
  1909. };
  1910. template <>
  1911. struct hash<VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo>
  1912. {
  1913. std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo const & commandBufferSubmitInfo ) const VULKAN_HPP_NOEXCEPT
  1914. {
  1915. std::size_t seed = 0;
  1916. VULKAN_HPP_HASH_COMBINE( seed, commandBufferSubmitInfo.sType );
  1917. VULKAN_HPP_HASH_COMBINE( seed, commandBufferSubmitInfo.pNext );
  1918. VULKAN_HPP_HASH_COMBINE( seed, commandBufferSubmitInfo.commandBuffer );
  1919. VULKAN_HPP_HASH_COMBINE( seed, commandBufferSubmitInfo.deviceMask );
  1920. return seed;
  1921. }
  1922. };
  1923. template <>
  1924. struct hash<VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo>
  1925. {
  1926. std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const & commandPoolCreateInfo ) const VULKAN_HPP_NOEXCEPT
  1927. {
  1928. std::size_t seed = 0;
  1929. VULKAN_HPP_HASH_COMBINE( seed, commandPoolCreateInfo.sType );
  1930. VULKAN_HPP_HASH_COMBINE( seed, commandPoolCreateInfo.pNext );
  1931. VULKAN_HPP_HASH_COMBINE( seed, commandPoolCreateInfo.flags );
  1932. VULKAN_HPP_HASH_COMBINE( seed, commandPoolCreateInfo.queueFamilyIndex );
  1933. return seed;
  1934. }
  1935. };
  1936. template <>
  1937. struct hash<VULKAN_HPP_NAMESPACE::SpecializationMapEntry>
  1938. {
  1939. std::size_t operator()( VULKAN_HPP_NAMESPACE::SpecializationMapEntry const & specializationMapEntry ) const VULKAN_HPP_NOEXCEPT
  1940. {
  1941. std::size_t seed = 0;
  1942. VULKAN_HPP_HASH_COMBINE( seed, specializationMapEntry.constantID );
  1943. VULKAN_HPP_HASH_COMBINE( seed, specializationMapEntry.offset );
  1944. VULKAN_HPP_HASH_COMBINE( seed, specializationMapEntry.size );
  1945. return seed;
  1946. }
  1947. };
  1948. template <>
  1949. struct hash<VULKAN_HPP_NAMESPACE::SpecializationInfo>
  1950. {
  1951. std::size_t operator()( VULKAN_HPP_NAMESPACE::SpecializationInfo const & specializationInfo ) const VULKAN_HPP_NOEXCEPT
  1952. {
  1953. std::size_t seed = 0;
  1954. VULKAN_HPP_HASH_COMBINE( seed, specializationInfo.mapEntryCount );
  1955. VULKAN_HPP_HASH_COMBINE( seed, specializationInfo.pMapEntries );
  1956. VULKAN_HPP_HASH_COMBINE( seed, specializationInfo.dataSize );
  1957. VULKAN_HPP_HASH_COMBINE( seed, specializationInfo.pData );
  1958. return seed;
  1959. }
  1960. };
  1961. template <>
  1962. struct hash<VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo>
  1963. {
  1964. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & pipelineShaderStageCreateInfo ) const VULKAN_HPP_NOEXCEPT
  1965. {
  1966. std::size_t seed = 0;
  1967. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.sType );
  1968. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.pNext );
  1969. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.flags );
  1970. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.stage );
  1971. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.module );
  1972. for ( const char * p = pipelineShaderStageCreateInfo.pName; *p != '\0'; ++p )
  1973. {
  1974. VULKAN_HPP_HASH_COMBINE( seed, *p );
  1975. }
  1976. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.pSpecializationInfo );
  1977. return seed;
  1978. }
  1979. };
  1980. template <>
  1981. struct hash<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo>
  1982. {
  1983. std::size_t operator()( VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const & computePipelineCreateInfo ) const VULKAN_HPP_NOEXCEPT
  1984. {
  1985. std::size_t seed = 0;
  1986. VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.sType );
  1987. VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.pNext );
  1988. VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.flags );
  1989. VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.stage );
  1990. VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.layout );
  1991. VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.basePipelineHandle );
  1992. VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.basePipelineIndex );
  1993. return seed;
  1994. }
  1995. };
  1996. template <>
  1997. struct hash<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT>
  1998. {
  1999. std::size_t operator()( VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const & conditionalRenderingBeginInfoEXT ) const VULKAN_HPP_NOEXCEPT
  2000. {
  2001. std::size_t seed = 0;
  2002. VULKAN_HPP_HASH_COMBINE( seed, conditionalRenderingBeginInfoEXT.sType );
  2003. VULKAN_HPP_HASH_COMBINE( seed, conditionalRenderingBeginInfoEXT.pNext );
  2004. VULKAN_HPP_HASH_COMBINE( seed, conditionalRenderingBeginInfoEXT.buffer );
  2005. VULKAN_HPP_HASH_COMBINE( seed, conditionalRenderingBeginInfoEXT.offset );
  2006. VULKAN_HPP_HASH_COMBINE( seed, conditionalRenderingBeginInfoEXT.flags );
  2007. return seed;
  2008. }
  2009. };
  2010. template <>
  2011. struct hash<VULKAN_HPP_NAMESPACE::ConformanceVersion>
  2012. {
  2013. std::size_t operator()( VULKAN_HPP_NAMESPACE::ConformanceVersion const & conformanceVersion ) const VULKAN_HPP_NOEXCEPT
  2014. {
  2015. std::size_t seed = 0;
  2016. VULKAN_HPP_HASH_COMBINE( seed, conformanceVersion.major );
  2017. VULKAN_HPP_HASH_COMBINE( seed, conformanceVersion.minor );
  2018. VULKAN_HPP_HASH_COMBINE( seed, conformanceVersion.subminor );
  2019. VULKAN_HPP_HASH_COMBINE( seed, conformanceVersion.patch );
  2020. return seed;
  2021. }
  2022. };
  2023. template <>
  2024. struct hash<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV>
  2025. {
  2026. std::size_t operator()( VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const & cooperativeMatrixPropertiesNV ) const VULKAN_HPP_NOEXCEPT
  2027. {
  2028. std::size_t seed = 0;
  2029. VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.sType );
  2030. VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.pNext );
  2031. VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.MSize );
  2032. VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.NSize );
  2033. VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.KSize );
  2034. VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.AType );
  2035. VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.BType );
  2036. VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.CType );
  2037. VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.DType );
  2038. VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.scope );
  2039. return seed;
  2040. }
  2041. };
  2042. template <>
  2043. struct hash<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR>
  2044. {
  2045. std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR const & copyAccelerationStructureInfoKHR ) const VULKAN_HPP_NOEXCEPT
  2046. {
  2047. std::size_t seed = 0;
  2048. VULKAN_HPP_HASH_COMBINE( seed, copyAccelerationStructureInfoKHR.sType );
  2049. VULKAN_HPP_HASH_COMBINE( seed, copyAccelerationStructureInfoKHR.pNext );
  2050. VULKAN_HPP_HASH_COMBINE( seed, copyAccelerationStructureInfoKHR.src );
  2051. VULKAN_HPP_HASH_COMBINE( seed, copyAccelerationStructureInfoKHR.dst );
  2052. VULKAN_HPP_HASH_COMBINE( seed, copyAccelerationStructureInfoKHR.mode );
  2053. return seed;
  2054. }
  2055. };
  2056. template <>
  2057. struct hash<VULKAN_HPP_NAMESPACE::CopyBufferInfo2>
  2058. {
  2059. std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyBufferInfo2 const & copyBufferInfo2 ) const VULKAN_HPP_NOEXCEPT
  2060. {
  2061. std::size_t seed = 0;
  2062. VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.sType );
  2063. VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.pNext );
  2064. VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.srcBuffer );
  2065. VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.dstBuffer );
  2066. VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.regionCount );
  2067. VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.pRegions );
  2068. return seed;
  2069. }
  2070. };
  2071. template <>
  2072. struct hash<VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2>
  2073. {
  2074. std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 const & copyBufferToImageInfo2 ) const VULKAN_HPP_NOEXCEPT
  2075. {
  2076. std::size_t seed = 0;
  2077. VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.sType );
  2078. VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.pNext );
  2079. VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.srcBuffer );
  2080. VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.dstImage );
  2081. VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.dstImageLayout );
  2082. VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.regionCount );
  2083. VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.pRegions );
  2084. return seed;
  2085. }
  2086. };
  2087. template <>
  2088. struct hash<VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM>
  2089. {
  2090. std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM const & copyCommandTransformInfoQCOM ) const VULKAN_HPP_NOEXCEPT
  2091. {
  2092. std::size_t seed = 0;
  2093. VULKAN_HPP_HASH_COMBINE( seed, copyCommandTransformInfoQCOM.sType );
  2094. VULKAN_HPP_HASH_COMBINE( seed, copyCommandTransformInfoQCOM.pNext );
  2095. VULKAN_HPP_HASH_COMBINE( seed, copyCommandTransformInfoQCOM.transform );
  2096. return seed;
  2097. }
  2098. };
  2099. template <>
  2100. struct hash<VULKAN_HPP_NAMESPACE::CopyDescriptorSet>
  2101. {
  2102. std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyDescriptorSet const & copyDescriptorSet ) const VULKAN_HPP_NOEXCEPT
  2103. {
  2104. std::size_t seed = 0;
  2105. VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.sType );
  2106. VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.pNext );
  2107. VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.srcSet );
  2108. VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.srcBinding );
  2109. VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.srcArrayElement );
  2110. VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.dstSet );
  2111. VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.dstBinding );
  2112. VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.dstArrayElement );
  2113. VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.descriptorCount );
  2114. return seed;
  2115. }
  2116. };
  2117. template <>
  2118. struct hash<VULKAN_HPP_NAMESPACE::ImageCopy2>
  2119. {
  2120. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCopy2 const & imageCopy2 ) const VULKAN_HPP_NOEXCEPT
  2121. {
  2122. std::size_t seed = 0;
  2123. VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.sType );
  2124. VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.pNext );
  2125. VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.srcSubresource );
  2126. VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.srcOffset );
  2127. VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.dstSubresource );
  2128. VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.dstOffset );
  2129. VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.extent );
  2130. return seed;
  2131. }
  2132. };
  2133. template <>
  2134. struct hash<VULKAN_HPP_NAMESPACE::CopyImageInfo2>
  2135. {
  2136. std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyImageInfo2 const & copyImageInfo2 ) const VULKAN_HPP_NOEXCEPT
  2137. {
  2138. std::size_t seed = 0;
  2139. VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.sType );
  2140. VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.pNext );
  2141. VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.srcImage );
  2142. VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.srcImageLayout );
  2143. VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.dstImage );
  2144. VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.dstImageLayout );
  2145. VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.regionCount );
  2146. VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.pRegions );
  2147. return seed;
  2148. }
  2149. };
  2150. template <>
  2151. struct hash<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2>
  2152. {
  2153. std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 const & copyImageToBufferInfo2 ) const VULKAN_HPP_NOEXCEPT
  2154. {
  2155. std::size_t seed = 0;
  2156. VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.sType );
  2157. VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.pNext );
  2158. VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.srcImage );
  2159. VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.srcImageLayout );
  2160. VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.dstBuffer );
  2161. VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.regionCount );
  2162. VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.pRegions );
  2163. return seed;
  2164. }
  2165. };
  2166. template <>
  2167. struct hash<VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX>
  2168. {
  2169. std::size_t operator()( VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const & cuFunctionCreateInfoNVX ) const VULKAN_HPP_NOEXCEPT
  2170. {
  2171. std::size_t seed = 0;
  2172. VULKAN_HPP_HASH_COMBINE( seed, cuFunctionCreateInfoNVX.sType );
  2173. VULKAN_HPP_HASH_COMBINE( seed, cuFunctionCreateInfoNVX.pNext );
  2174. VULKAN_HPP_HASH_COMBINE( seed, cuFunctionCreateInfoNVX.module );
  2175. for ( const char * p = cuFunctionCreateInfoNVX.pName; *p != '\0'; ++p )
  2176. {
  2177. VULKAN_HPP_HASH_COMBINE( seed, *p );
  2178. }
  2179. return seed;
  2180. }
  2181. };
  2182. template <>
  2183. struct hash<VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX>
  2184. {
  2185. std::size_t operator()( VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX const & cuLaunchInfoNVX ) const VULKAN_HPP_NOEXCEPT
  2186. {
  2187. std::size_t seed = 0;
  2188. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.sType );
  2189. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.pNext );
  2190. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.function );
  2191. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.gridDimX );
  2192. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.gridDimY );
  2193. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.gridDimZ );
  2194. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.blockDimX );
  2195. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.blockDimY );
  2196. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.blockDimZ );
  2197. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.sharedMemBytes );
  2198. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.paramCount );
  2199. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.pParams );
  2200. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.extraCount );
  2201. VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.pExtras );
  2202. return seed;
  2203. }
  2204. };
  2205. template <>
  2206. struct hash<VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX>
  2207. {
  2208. std::size_t operator()( VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const & cuModuleCreateInfoNVX ) const VULKAN_HPP_NOEXCEPT
  2209. {
  2210. std::size_t seed = 0;
  2211. VULKAN_HPP_HASH_COMBINE( seed, cuModuleCreateInfoNVX.sType );
  2212. VULKAN_HPP_HASH_COMBINE( seed, cuModuleCreateInfoNVX.pNext );
  2213. VULKAN_HPP_HASH_COMBINE( seed, cuModuleCreateInfoNVX.dataSize );
  2214. VULKAN_HPP_HASH_COMBINE( seed, cuModuleCreateInfoNVX.pData );
  2215. return seed;
  2216. }
  2217. };
  2218. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  2219. template <>
  2220. struct hash<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR>
  2221. {
  2222. std::size_t operator()( VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const & d3D12FenceSubmitInfoKHR ) const VULKAN_HPP_NOEXCEPT
  2223. {
  2224. std::size_t seed = 0;
  2225. VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.sType );
  2226. VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.pNext );
  2227. VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.waitSemaphoreValuesCount );
  2228. VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.pWaitSemaphoreValues );
  2229. VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.signalSemaphoreValuesCount );
  2230. VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.pSignalSemaphoreValues );
  2231. return seed;
  2232. }
  2233. };
  2234. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  2235. template <>
  2236. struct hash<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT>
  2237. {
  2238. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const & debugMarkerMarkerInfoEXT ) const VULKAN_HPP_NOEXCEPT
  2239. {
  2240. std::size_t seed = 0;
  2241. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerMarkerInfoEXT.sType );
  2242. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerMarkerInfoEXT.pNext );
  2243. for ( const char * p = debugMarkerMarkerInfoEXT.pMarkerName; *p != '\0'; ++p )
  2244. {
  2245. VULKAN_HPP_HASH_COMBINE( seed, *p );
  2246. }
  2247. for ( size_t i = 0; i < 4; ++i )
  2248. {
  2249. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerMarkerInfoEXT.color[i] );
  2250. }
  2251. return seed;
  2252. }
  2253. };
  2254. template <>
  2255. struct hash<VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT>
  2256. {
  2257. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const & debugMarkerObjectNameInfoEXT ) const VULKAN_HPP_NOEXCEPT
  2258. {
  2259. std::size_t seed = 0;
  2260. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectNameInfoEXT.sType );
  2261. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectNameInfoEXT.pNext );
  2262. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectNameInfoEXT.objectType );
  2263. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectNameInfoEXT.object );
  2264. for ( const char * p = debugMarkerObjectNameInfoEXT.pObjectName; *p != '\0'; ++p )
  2265. {
  2266. VULKAN_HPP_HASH_COMBINE( seed, *p );
  2267. }
  2268. return seed;
  2269. }
  2270. };
  2271. template <>
  2272. struct hash<VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT>
  2273. {
  2274. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const & debugMarkerObjectTagInfoEXT ) const VULKAN_HPP_NOEXCEPT
  2275. {
  2276. std::size_t seed = 0;
  2277. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.sType );
  2278. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.pNext );
  2279. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.objectType );
  2280. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.object );
  2281. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.tagName );
  2282. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.tagSize );
  2283. VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.pTag );
  2284. return seed;
  2285. }
  2286. };
  2287. template <>
  2288. struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT>
  2289. {
  2290. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const & debugReportCallbackCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  2291. {
  2292. std::size_t seed = 0;
  2293. VULKAN_HPP_HASH_COMBINE( seed, debugReportCallbackCreateInfoEXT.sType );
  2294. VULKAN_HPP_HASH_COMBINE( seed, debugReportCallbackCreateInfoEXT.pNext );
  2295. VULKAN_HPP_HASH_COMBINE( seed, debugReportCallbackCreateInfoEXT.flags );
  2296. VULKAN_HPP_HASH_COMBINE( seed, debugReportCallbackCreateInfoEXT.pfnCallback );
  2297. VULKAN_HPP_HASH_COMBINE( seed, debugReportCallbackCreateInfoEXT.pUserData );
  2298. return seed;
  2299. }
  2300. };
  2301. template <>
  2302. struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT>
  2303. {
  2304. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const & debugUtilsLabelEXT ) const VULKAN_HPP_NOEXCEPT
  2305. {
  2306. std::size_t seed = 0;
  2307. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsLabelEXT.sType );
  2308. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsLabelEXT.pNext );
  2309. for ( const char * p = debugUtilsLabelEXT.pLabelName; *p != '\0'; ++p )
  2310. {
  2311. VULKAN_HPP_HASH_COMBINE( seed, *p );
  2312. }
  2313. for ( size_t i = 0; i < 4; ++i )
  2314. {
  2315. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsLabelEXT.color[i] );
  2316. }
  2317. return seed;
  2318. }
  2319. };
  2320. template <>
  2321. struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT>
  2322. {
  2323. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const & debugUtilsObjectNameInfoEXT ) const VULKAN_HPP_NOEXCEPT
  2324. {
  2325. std::size_t seed = 0;
  2326. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectNameInfoEXT.sType );
  2327. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectNameInfoEXT.pNext );
  2328. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectNameInfoEXT.objectType );
  2329. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectNameInfoEXT.objectHandle );
  2330. for ( const char * p = debugUtilsObjectNameInfoEXT.pObjectName; *p != '\0'; ++p )
  2331. {
  2332. VULKAN_HPP_HASH_COMBINE( seed, *p );
  2333. }
  2334. return seed;
  2335. }
  2336. };
  2337. template <>
  2338. struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT>
  2339. {
  2340. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const & debugUtilsMessengerCallbackDataEXT ) const VULKAN_HPP_NOEXCEPT
  2341. {
  2342. std::size_t seed = 0;
  2343. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.sType );
  2344. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.pNext );
  2345. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.flags );
  2346. for ( const char * p = debugUtilsMessengerCallbackDataEXT.pMessageIdName; *p != '\0'; ++p )
  2347. {
  2348. VULKAN_HPP_HASH_COMBINE( seed, *p );
  2349. }
  2350. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.messageIdNumber );
  2351. for ( const char * p = debugUtilsMessengerCallbackDataEXT.pMessage; *p != '\0'; ++p )
  2352. {
  2353. VULKAN_HPP_HASH_COMBINE( seed, *p );
  2354. }
  2355. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.queueLabelCount );
  2356. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.pQueueLabels );
  2357. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.cmdBufLabelCount );
  2358. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.pCmdBufLabels );
  2359. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.objectCount );
  2360. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.pObjects );
  2361. return seed;
  2362. }
  2363. };
  2364. template <>
  2365. struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT>
  2366. {
  2367. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const & debugUtilsMessengerCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  2368. {
  2369. std::size_t seed = 0;
  2370. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.sType );
  2371. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.pNext );
  2372. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.flags );
  2373. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.messageSeverity );
  2374. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.messageType );
  2375. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.pfnUserCallback );
  2376. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.pUserData );
  2377. return seed;
  2378. }
  2379. };
  2380. template <>
  2381. struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT>
  2382. {
  2383. std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const & debugUtilsObjectTagInfoEXT ) const VULKAN_HPP_NOEXCEPT
  2384. {
  2385. std::size_t seed = 0;
  2386. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.sType );
  2387. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.pNext );
  2388. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.objectType );
  2389. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.objectHandle );
  2390. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.tagName );
  2391. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.tagSize );
  2392. VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.pTag );
  2393. return seed;
  2394. }
  2395. };
  2396. template <>
  2397. struct hash<VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV>
  2398. {
  2399. std::size_t
  2400. operator()( VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const & dedicatedAllocationBufferCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  2401. {
  2402. std::size_t seed = 0;
  2403. VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationBufferCreateInfoNV.sType );
  2404. VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationBufferCreateInfoNV.pNext );
  2405. VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationBufferCreateInfoNV.dedicatedAllocation );
  2406. return seed;
  2407. }
  2408. };
  2409. template <>
  2410. struct hash<VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV>
  2411. {
  2412. std::size_t operator()( VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const & dedicatedAllocationImageCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  2413. {
  2414. std::size_t seed = 0;
  2415. VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationImageCreateInfoNV.sType );
  2416. VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationImageCreateInfoNV.pNext );
  2417. VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationImageCreateInfoNV.dedicatedAllocation );
  2418. return seed;
  2419. }
  2420. };
  2421. template <>
  2422. struct hash<VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV>
  2423. {
  2424. std::size_t
  2425. operator()( VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const & dedicatedAllocationMemoryAllocateInfoNV ) const VULKAN_HPP_NOEXCEPT
  2426. {
  2427. std::size_t seed = 0;
  2428. VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationMemoryAllocateInfoNV.sType );
  2429. VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationMemoryAllocateInfoNV.pNext );
  2430. VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationMemoryAllocateInfoNV.image );
  2431. VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationMemoryAllocateInfoNV.buffer );
  2432. return seed;
  2433. }
  2434. };
  2435. template <>
  2436. struct hash<VULKAN_HPP_NAMESPACE::MemoryBarrier2>
  2437. {
  2438. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryBarrier2 const & memoryBarrier2 ) const VULKAN_HPP_NOEXCEPT
  2439. {
  2440. std::size_t seed = 0;
  2441. VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.sType );
  2442. VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.pNext );
  2443. VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.srcStageMask );
  2444. VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.srcAccessMask );
  2445. VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.dstStageMask );
  2446. VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.dstAccessMask );
  2447. return seed;
  2448. }
  2449. };
  2450. template <>
  2451. struct hash<VULKAN_HPP_NAMESPACE::ImageSubresourceRange>
  2452. {
  2453. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & imageSubresourceRange ) const VULKAN_HPP_NOEXCEPT
  2454. {
  2455. std::size_t seed = 0;
  2456. VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceRange.aspectMask );
  2457. VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceRange.baseMipLevel );
  2458. VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceRange.levelCount );
  2459. VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceRange.baseArrayLayer );
  2460. VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceRange.layerCount );
  2461. return seed;
  2462. }
  2463. };
  2464. template <>
  2465. struct hash<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2>
  2466. {
  2467. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 const & imageMemoryBarrier2 ) const VULKAN_HPP_NOEXCEPT
  2468. {
  2469. std::size_t seed = 0;
  2470. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.sType );
  2471. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.pNext );
  2472. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.srcStageMask );
  2473. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.srcAccessMask );
  2474. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.dstStageMask );
  2475. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.dstAccessMask );
  2476. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.oldLayout );
  2477. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.newLayout );
  2478. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.srcQueueFamilyIndex );
  2479. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.dstQueueFamilyIndex );
  2480. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.image );
  2481. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.subresourceRange );
  2482. return seed;
  2483. }
  2484. };
  2485. template <>
  2486. struct hash<VULKAN_HPP_NAMESPACE::DependencyInfo>
  2487. {
  2488. std::size_t operator()( VULKAN_HPP_NAMESPACE::DependencyInfo const & dependencyInfo ) const VULKAN_HPP_NOEXCEPT
  2489. {
  2490. std::size_t seed = 0;
  2491. VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.sType );
  2492. VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.pNext );
  2493. VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.dependencyFlags );
  2494. VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.memoryBarrierCount );
  2495. VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.pMemoryBarriers );
  2496. VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.bufferMemoryBarrierCount );
  2497. VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.pBufferMemoryBarriers );
  2498. VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.imageMemoryBarrierCount );
  2499. VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.pImageMemoryBarriers );
  2500. return seed;
  2501. }
  2502. };
  2503. template <>
  2504. struct hash<VULKAN_HPP_NAMESPACE::DescriptorBufferInfo>
  2505. {
  2506. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorBufferInfo const & descriptorBufferInfo ) const VULKAN_HPP_NOEXCEPT
  2507. {
  2508. std::size_t seed = 0;
  2509. VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferInfo.buffer );
  2510. VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferInfo.offset );
  2511. VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferInfo.range );
  2512. return seed;
  2513. }
  2514. };
  2515. template <>
  2516. struct hash<VULKAN_HPP_NAMESPACE::DescriptorImageInfo>
  2517. {
  2518. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorImageInfo const & descriptorImageInfo ) const VULKAN_HPP_NOEXCEPT
  2519. {
  2520. std::size_t seed = 0;
  2521. VULKAN_HPP_HASH_COMBINE( seed, descriptorImageInfo.sampler );
  2522. VULKAN_HPP_HASH_COMBINE( seed, descriptorImageInfo.imageView );
  2523. VULKAN_HPP_HASH_COMBINE( seed, descriptorImageInfo.imageLayout );
  2524. return seed;
  2525. }
  2526. };
  2527. template <>
  2528. struct hash<VULKAN_HPP_NAMESPACE::DescriptorPoolSize>
  2529. {
  2530. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPoolSize const & descriptorPoolSize ) const VULKAN_HPP_NOEXCEPT
  2531. {
  2532. std::size_t seed = 0;
  2533. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolSize.type );
  2534. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolSize.descriptorCount );
  2535. return seed;
  2536. }
  2537. };
  2538. template <>
  2539. struct hash<VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo>
  2540. {
  2541. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const & descriptorPoolCreateInfo ) const VULKAN_HPP_NOEXCEPT
  2542. {
  2543. std::size_t seed = 0;
  2544. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.sType );
  2545. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.pNext );
  2546. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.flags );
  2547. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.maxSets );
  2548. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.poolSizeCount );
  2549. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.pPoolSizes );
  2550. return seed;
  2551. }
  2552. };
  2553. template <>
  2554. struct hash<VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo>
  2555. {
  2556. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo const & descriptorPoolInlineUniformBlockCreateInfo ) const
  2557. VULKAN_HPP_NOEXCEPT
  2558. {
  2559. std::size_t seed = 0;
  2560. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolInlineUniformBlockCreateInfo.sType );
  2561. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolInlineUniformBlockCreateInfo.pNext );
  2562. VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolInlineUniformBlockCreateInfo.maxInlineUniformBlockBindings );
  2563. return seed;
  2564. }
  2565. };
  2566. template <>
  2567. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo>
  2568. {
  2569. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & descriptorSetAllocateInfo ) const VULKAN_HPP_NOEXCEPT
  2570. {
  2571. std::size_t seed = 0;
  2572. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetAllocateInfo.sType );
  2573. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetAllocateInfo.pNext );
  2574. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetAllocateInfo.descriptorPool );
  2575. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetAllocateInfo.descriptorSetCount );
  2576. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetAllocateInfo.pSetLayouts );
  2577. return seed;
  2578. }
  2579. };
  2580. template <>
  2581. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE>
  2582. {
  2583. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE const & descriptorSetBindingReferenceVALVE ) const VULKAN_HPP_NOEXCEPT
  2584. {
  2585. std::size_t seed = 0;
  2586. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetBindingReferenceVALVE.sType );
  2587. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetBindingReferenceVALVE.pNext );
  2588. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetBindingReferenceVALVE.descriptorSetLayout );
  2589. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetBindingReferenceVALVE.binding );
  2590. return seed;
  2591. }
  2592. };
  2593. template <>
  2594. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding>
  2595. {
  2596. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding const & descriptorSetLayoutBinding ) const VULKAN_HPP_NOEXCEPT
  2597. {
  2598. std::size_t seed = 0;
  2599. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBinding.binding );
  2600. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBinding.descriptorType );
  2601. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBinding.descriptorCount );
  2602. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBinding.stageFlags );
  2603. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBinding.pImmutableSamplers );
  2604. return seed;
  2605. }
  2606. };
  2607. template <>
  2608. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo>
  2609. {
  2610. std::size_t
  2611. operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const & descriptorSetLayoutBindingFlagsCreateInfo ) const VULKAN_HPP_NOEXCEPT
  2612. {
  2613. std::size_t seed = 0;
  2614. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBindingFlagsCreateInfo.sType );
  2615. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBindingFlagsCreateInfo.pNext );
  2616. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBindingFlagsCreateInfo.bindingCount );
  2617. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBindingFlagsCreateInfo.pBindingFlags );
  2618. return seed;
  2619. }
  2620. };
  2621. template <>
  2622. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo>
  2623. {
  2624. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const & descriptorSetLayoutCreateInfo ) const VULKAN_HPP_NOEXCEPT
  2625. {
  2626. std::size_t seed = 0;
  2627. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutCreateInfo.sType );
  2628. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutCreateInfo.pNext );
  2629. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutCreateInfo.flags );
  2630. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutCreateInfo.bindingCount );
  2631. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutCreateInfo.pBindings );
  2632. return seed;
  2633. }
  2634. };
  2635. template <>
  2636. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE>
  2637. {
  2638. std::size_t
  2639. operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE const & descriptorSetLayoutHostMappingInfoVALVE ) const VULKAN_HPP_NOEXCEPT
  2640. {
  2641. std::size_t seed = 0;
  2642. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutHostMappingInfoVALVE.sType );
  2643. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutHostMappingInfoVALVE.pNext );
  2644. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutHostMappingInfoVALVE.descriptorOffset );
  2645. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutHostMappingInfoVALVE.descriptorSize );
  2646. return seed;
  2647. }
  2648. };
  2649. template <>
  2650. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>
  2651. {
  2652. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const & descriptorSetLayoutSupport ) const VULKAN_HPP_NOEXCEPT
  2653. {
  2654. std::size_t seed = 0;
  2655. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutSupport.sType );
  2656. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutSupport.pNext );
  2657. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutSupport.supported );
  2658. return seed;
  2659. }
  2660. };
  2661. template <>
  2662. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo>
  2663. {
  2664. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const & descriptorSetVariableDescriptorCountAllocateInfo )
  2665. const VULKAN_HPP_NOEXCEPT
  2666. {
  2667. std::size_t seed = 0;
  2668. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountAllocateInfo.sType );
  2669. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountAllocateInfo.pNext );
  2670. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountAllocateInfo.descriptorSetCount );
  2671. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountAllocateInfo.pDescriptorCounts );
  2672. return seed;
  2673. }
  2674. };
  2675. template <>
  2676. struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport>
  2677. {
  2678. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const & descriptorSetVariableDescriptorCountLayoutSupport )
  2679. const VULKAN_HPP_NOEXCEPT
  2680. {
  2681. std::size_t seed = 0;
  2682. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountLayoutSupport.sType );
  2683. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountLayoutSupport.pNext );
  2684. VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountLayoutSupport.maxVariableDescriptorCount );
  2685. return seed;
  2686. }
  2687. };
  2688. template <>
  2689. struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry>
  2690. {
  2691. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry const & descriptorUpdateTemplateEntry ) const VULKAN_HPP_NOEXCEPT
  2692. {
  2693. std::size_t seed = 0;
  2694. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.dstBinding );
  2695. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.dstArrayElement );
  2696. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.descriptorCount );
  2697. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.descriptorType );
  2698. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.offset );
  2699. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.stride );
  2700. return seed;
  2701. }
  2702. };
  2703. template <>
  2704. struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo>
  2705. {
  2706. std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & descriptorUpdateTemplateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  2707. {
  2708. std::size_t seed = 0;
  2709. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.sType );
  2710. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.pNext );
  2711. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.flags );
  2712. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.descriptorUpdateEntryCount );
  2713. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.pDescriptorUpdateEntries );
  2714. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.templateType );
  2715. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.descriptorSetLayout );
  2716. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.pipelineBindPoint );
  2717. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.pipelineLayout );
  2718. VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.set );
  2719. return seed;
  2720. }
  2721. };
  2722. template <>
  2723. struct hash<VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements>
  2724. {
  2725. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements const & deviceBufferMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  2726. {
  2727. std::size_t seed = 0;
  2728. VULKAN_HPP_HASH_COMBINE( seed, deviceBufferMemoryRequirements.sType );
  2729. VULKAN_HPP_HASH_COMBINE( seed, deviceBufferMemoryRequirements.pNext );
  2730. VULKAN_HPP_HASH_COMBINE( seed, deviceBufferMemoryRequirements.pCreateInfo );
  2731. return seed;
  2732. }
  2733. };
  2734. template <>
  2735. struct hash<VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo>
  2736. {
  2737. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const & deviceQueueCreateInfo ) const VULKAN_HPP_NOEXCEPT
  2738. {
  2739. std::size_t seed = 0;
  2740. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.sType );
  2741. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.pNext );
  2742. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.flags );
  2743. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.queueFamilyIndex );
  2744. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.queueCount );
  2745. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.pQueuePriorities );
  2746. return seed;
  2747. }
  2748. };
  2749. template <>
  2750. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures>
  2751. {
  2752. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & physicalDeviceFeatures ) const VULKAN_HPP_NOEXCEPT
  2753. {
  2754. std::size_t seed = 0;
  2755. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.robustBufferAccess );
  2756. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.fullDrawIndexUint32 );
  2757. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.imageCubeArray );
  2758. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.independentBlend );
  2759. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.geometryShader );
  2760. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.tessellationShader );
  2761. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sampleRateShading );
  2762. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.dualSrcBlend );
  2763. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.logicOp );
  2764. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.multiDrawIndirect );
  2765. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.drawIndirectFirstInstance );
  2766. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.depthClamp );
  2767. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.depthBiasClamp );
  2768. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.fillModeNonSolid );
  2769. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.depthBounds );
  2770. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.wideLines );
  2771. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.largePoints );
  2772. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.alphaToOne );
  2773. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.multiViewport );
  2774. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.samplerAnisotropy );
  2775. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.textureCompressionETC2 );
  2776. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.textureCompressionASTC_LDR );
  2777. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.textureCompressionBC );
  2778. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.occlusionQueryPrecise );
  2779. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.pipelineStatisticsQuery );
  2780. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.vertexPipelineStoresAndAtomics );
  2781. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.fragmentStoresAndAtomics );
  2782. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderTessellationAndGeometryPointSize );
  2783. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderImageGatherExtended );
  2784. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageImageExtendedFormats );
  2785. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageImageMultisample );
  2786. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageImageReadWithoutFormat );
  2787. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageImageWriteWithoutFormat );
  2788. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderUniformBufferArrayDynamicIndexing );
  2789. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderSampledImageArrayDynamicIndexing );
  2790. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageBufferArrayDynamicIndexing );
  2791. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageImageArrayDynamicIndexing );
  2792. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderClipDistance );
  2793. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderCullDistance );
  2794. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderFloat64 );
  2795. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderInt64 );
  2796. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderInt16 );
  2797. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderResourceResidency );
  2798. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderResourceMinLod );
  2799. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseBinding );
  2800. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidencyBuffer );
  2801. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidencyImage2D );
  2802. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidencyImage3D );
  2803. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidency2Samples );
  2804. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidency4Samples );
  2805. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidency8Samples );
  2806. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidency16Samples );
  2807. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidencyAliased );
  2808. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.variableMultisampleRate );
  2809. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.inheritedQueries );
  2810. return seed;
  2811. }
  2812. };
  2813. template <>
  2814. struct hash<VULKAN_HPP_NAMESPACE::DeviceCreateInfo>
  2815. {
  2816. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceCreateInfo const & deviceCreateInfo ) const VULKAN_HPP_NOEXCEPT
  2817. {
  2818. std::size_t seed = 0;
  2819. VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.sType );
  2820. VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.pNext );
  2821. VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.flags );
  2822. VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.queueCreateInfoCount );
  2823. VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.pQueueCreateInfos );
  2824. VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.enabledLayerCount );
  2825. for ( size_t i = 0; i < deviceCreateInfo.enabledLayerCount; ++i )
  2826. {
  2827. for ( const char * p = deviceCreateInfo.ppEnabledLayerNames[i]; *p != '\0'; ++p )
  2828. {
  2829. VULKAN_HPP_HASH_COMBINE( seed, *p );
  2830. }
  2831. }
  2832. VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.enabledExtensionCount );
  2833. for ( size_t i = 0; i < deviceCreateInfo.enabledExtensionCount; ++i )
  2834. {
  2835. for ( const char * p = deviceCreateInfo.ppEnabledExtensionNames[i]; *p != '\0'; ++p )
  2836. {
  2837. VULKAN_HPP_HASH_COMBINE( seed, *p );
  2838. }
  2839. }
  2840. VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.pEnabledFeatures );
  2841. return seed;
  2842. }
  2843. };
  2844. template <>
  2845. struct hash<VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT>
  2846. {
  2847. std::size_t
  2848. operator()( VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT const & deviceDeviceMemoryReportCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  2849. {
  2850. std::size_t seed = 0;
  2851. VULKAN_HPP_HASH_COMBINE( seed, deviceDeviceMemoryReportCreateInfoEXT.sType );
  2852. VULKAN_HPP_HASH_COMBINE( seed, deviceDeviceMemoryReportCreateInfoEXT.pNext );
  2853. VULKAN_HPP_HASH_COMBINE( seed, deviceDeviceMemoryReportCreateInfoEXT.flags );
  2854. VULKAN_HPP_HASH_COMBINE( seed, deviceDeviceMemoryReportCreateInfoEXT.pfnUserCallback );
  2855. VULKAN_HPP_HASH_COMBINE( seed, deviceDeviceMemoryReportCreateInfoEXT.pUserData );
  2856. return seed;
  2857. }
  2858. };
  2859. template <>
  2860. struct hash<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV>
  2861. {
  2862. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV const & deviceDiagnosticsConfigCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  2863. {
  2864. std::size_t seed = 0;
  2865. VULKAN_HPP_HASH_COMBINE( seed, deviceDiagnosticsConfigCreateInfoNV.sType );
  2866. VULKAN_HPP_HASH_COMBINE( seed, deviceDiagnosticsConfigCreateInfoNV.pNext );
  2867. VULKAN_HPP_HASH_COMBINE( seed, deviceDiagnosticsConfigCreateInfoNV.flags );
  2868. return seed;
  2869. }
  2870. };
  2871. template <>
  2872. struct hash<VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT>
  2873. {
  2874. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const & deviceEventInfoEXT ) const VULKAN_HPP_NOEXCEPT
  2875. {
  2876. std::size_t seed = 0;
  2877. VULKAN_HPP_HASH_COMBINE( seed, deviceEventInfoEXT.sType );
  2878. VULKAN_HPP_HASH_COMBINE( seed, deviceEventInfoEXT.pNext );
  2879. VULKAN_HPP_HASH_COMBINE( seed, deviceEventInfoEXT.deviceEvent );
  2880. return seed;
  2881. }
  2882. };
  2883. template <>
  2884. struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo>
  2885. {
  2886. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const & deviceGroupBindSparseInfo ) const VULKAN_HPP_NOEXCEPT
  2887. {
  2888. std::size_t seed = 0;
  2889. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupBindSparseInfo.sType );
  2890. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupBindSparseInfo.pNext );
  2891. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupBindSparseInfo.resourceDeviceIndex );
  2892. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupBindSparseInfo.memoryDeviceIndex );
  2893. return seed;
  2894. }
  2895. };
  2896. template <>
  2897. struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo>
  2898. {
  2899. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const & deviceGroupCommandBufferBeginInfo ) const VULKAN_HPP_NOEXCEPT
  2900. {
  2901. std::size_t seed = 0;
  2902. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupCommandBufferBeginInfo.sType );
  2903. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupCommandBufferBeginInfo.pNext );
  2904. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupCommandBufferBeginInfo.deviceMask );
  2905. return seed;
  2906. }
  2907. };
  2908. template <>
  2909. struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo>
  2910. {
  2911. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const & deviceGroupDeviceCreateInfo ) const VULKAN_HPP_NOEXCEPT
  2912. {
  2913. std::size_t seed = 0;
  2914. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupDeviceCreateInfo.sType );
  2915. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupDeviceCreateInfo.pNext );
  2916. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupDeviceCreateInfo.physicalDeviceCount );
  2917. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupDeviceCreateInfo.pPhysicalDevices );
  2918. return seed;
  2919. }
  2920. };
  2921. template <>
  2922. struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>
  2923. {
  2924. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const & deviceGroupPresentCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
  2925. {
  2926. std::size_t seed = 0;
  2927. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentCapabilitiesKHR.sType );
  2928. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentCapabilitiesKHR.pNext );
  2929. for ( size_t i = 0; i < VK_MAX_DEVICE_GROUP_SIZE; ++i )
  2930. {
  2931. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentCapabilitiesKHR.presentMask[i] );
  2932. }
  2933. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentCapabilitiesKHR.modes );
  2934. return seed;
  2935. }
  2936. };
  2937. template <>
  2938. struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR>
  2939. {
  2940. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const & deviceGroupPresentInfoKHR ) const VULKAN_HPP_NOEXCEPT
  2941. {
  2942. std::size_t seed = 0;
  2943. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentInfoKHR.sType );
  2944. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentInfoKHR.pNext );
  2945. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentInfoKHR.swapchainCount );
  2946. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentInfoKHR.pDeviceMasks );
  2947. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentInfoKHR.mode );
  2948. return seed;
  2949. }
  2950. };
  2951. template <>
  2952. struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo>
  2953. {
  2954. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const & deviceGroupRenderPassBeginInfo ) const VULKAN_HPP_NOEXCEPT
  2955. {
  2956. std::size_t seed = 0;
  2957. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupRenderPassBeginInfo.sType );
  2958. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupRenderPassBeginInfo.pNext );
  2959. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupRenderPassBeginInfo.deviceMask );
  2960. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupRenderPassBeginInfo.deviceRenderAreaCount );
  2961. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupRenderPassBeginInfo.pDeviceRenderAreas );
  2962. return seed;
  2963. }
  2964. };
  2965. template <>
  2966. struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo>
  2967. {
  2968. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const & deviceGroupSubmitInfo ) const VULKAN_HPP_NOEXCEPT
  2969. {
  2970. std::size_t seed = 0;
  2971. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.sType );
  2972. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.pNext );
  2973. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.waitSemaphoreCount );
  2974. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.pWaitSemaphoreDeviceIndices );
  2975. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.commandBufferCount );
  2976. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.pCommandBufferDeviceMasks );
  2977. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.signalSemaphoreCount );
  2978. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.pSignalSemaphoreDeviceIndices );
  2979. return seed;
  2980. }
  2981. };
  2982. template <>
  2983. struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR>
  2984. {
  2985. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const & deviceGroupSwapchainCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  2986. {
  2987. std::size_t seed = 0;
  2988. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSwapchainCreateInfoKHR.sType );
  2989. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSwapchainCreateInfoKHR.pNext );
  2990. VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSwapchainCreateInfoKHR.modes );
  2991. return seed;
  2992. }
  2993. };
  2994. template <>
  2995. struct hash<VULKAN_HPP_NAMESPACE::ImageCreateInfo>
  2996. {
  2997. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCreateInfo const & imageCreateInfo ) const VULKAN_HPP_NOEXCEPT
  2998. {
  2999. std::size_t seed = 0;
  3000. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.sType );
  3001. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.pNext );
  3002. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.flags );
  3003. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.imageType );
  3004. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.format );
  3005. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.extent );
  3006. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.mipLevels );
  3007. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.arrayLayers );
  3008. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.samples );
  3009. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.tiling );
  3010. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.usage );
  3011. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.sharingMode );
  3012. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.queueFamilyIndexCount );
  3013. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.pQueueFamilyIndices );
  3014. VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.initialLayout );
  3015. return seed;
  3016. }
  3017. };
  3018. template <>
  3019. struct hash<VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements>
  3020. {
  3021. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements const & deviceImageMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  3022. {
  3023. std::size_t seed = 0;
  3024. VULKAN_HPP_HASH_COMBINE( seed, deviceImageMemoryRequirements.sType );
  3025. VULKAN_HPP_HASH_COMBINE( seed, deviceImageMemoryRequirements.pNext );
  3026. VULKAN_HPP_HASH_COMBINE( seed, deviceImageMemoryRequirements.pCreateInfo );
  3027. VULKAN_HPP_HASH_COMBINE( seed, deviceImageMemoryRequirements.planeAspect );
  3028. return seed;
  3029. }
  3030. };
  3031. template <>
  3032. struct hash<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo>
  3033. {
  3034. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const & deviceMemoryOpaqueCaptureAddressInfo ) const VULKAN_HPP_NOEXCEPT
  3035. {
  3036. std::size_t seed = 0;
  3037. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOpaqueCaptureAddressInfo.sType );
  3038. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOpaqueCaptureAddressInfo.pNext );
  3039. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOpaqueCaptureAddressInfo.memory );
  3040. return seed;
  3041. }
  3042. };
  3043. template <>
  3044. struct hash<VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD>
  3045. {
  3046. std::size_t
  3047. operator()( VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const & deviceMemoryOverallocationCreateInfoAMD ) const VULKAN_HPP_NOEXCEPT
  3048. {
  3049. std::size_t seed = 0;
  3050. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOverallocationCreateInfoAMD.sType );
  3051. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOverallocationCreateInfoAMD.pNext );
  3052. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOverallocationCreateInfoAMD.overallocationBehavior );
  3053. return seed;
  3054. }
  3055. };
  3056. template <>
  3057. struct hash<VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT>
  3058. {
  3059. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT const & deviceMemoryReportCallbackDataEXT ) const VULKAN_HPP_NOEXCEPT
  3060. {
  3061. std::size_t seed = 0;
  3062. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.sType );
  3063. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.pNext );
  3064. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.flags );
  3065. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.type );
  3066. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.memoryObjectId );
  3067. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.size );
  3068. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.objectType );
  3069. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.objectHandle );
  3070. VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.heapIndex );
  3071. return seed;
  3072. }
  3073. };
  3074. template <>
  3075. struct hash<VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo>
  3076. {
  3077. std::size_t operator()( VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo const & devicePrivateDataCreateInfo ) const VULKAN_HPP_NOEXCEPT
  3078. {
  3079. std::size_t seed = 0;
  3080. VULKAN_HPP_HASH_COMBINE( seed, devicePrivateDataCreateInfo.sType );
  3081. VULKAN_HPP_HASH_COMBINE( seed, devicePrivateDataCreateInfo.pNext );
  3082. VULKAN_HPP_HASH_COMBINE( seed, devicePrivateDataCreateInfo.privateDataSlotRequestCount );
  3083. return seed;
  3084. }
  3085. };
  3086. template <>
  3087. struct hash<VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR>
  3088. {
  3089. std::size_t
  3090. operator()( VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR const & deviceQueueGlobalPriorityCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  3091. {
  3092. std::size_t seed = 0;
  3093. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueGlobalPriorityCreateInfoKHR.sType );
  3094. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueGlobalPriorityCreateInfoKHR.pNext );
  3095. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueGlobalPriorityCreateInfoKHR.globalPriority );
  3096. return seed;
  3097. }
  3098. };
  3099. template <>
  3100. struct hash<VULKAN_HPP_NAMESPACE::DeviceQueueInfo2>
  3101. {
  3102. std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & deviceQueueInfo2 ) const VULKAN_HPP_NOEXCEPT
  3103. {
  3104. std::size_t seed = 0;
  3105. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueInfo2.sType );
  3106. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueInfo2.pNext );
  3107. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueInfo2.flags );
  3108. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueInfo2.queueFamilyIndex );
  3109. VULKAN_HPP_HASH_COMBINE( seed, deviceQueueInfo2.queueIndex );
  3110. return seed;
  3111. }
  3112. };
  3113. # if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
  3114. template <>
  3115. struct hash<VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT>
  3116. {
  3117. std::size_t operator()( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const & directFBSurfaceCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3118. {
  3119. std::size_t seed = 0;
  3120. VULKAN_HPP_HASH_COMBINE( seed, directFBSurfaceCreateInfoEXT.sType );
  3121. VULKAN_HPP_HASH_COMBINE( seed, directFBSurfaceCreateInfoEXT.pNext );
  3122. VULKAN_HPP_HASH_COMBINE( seed, directFBSurfaceCreateInfoEXT.flags );
  3123. VULKAN_HPP_HASH_COMBINE( seed, directFBSurfaceCreateInfoEXT.dfb );
  3124. VULKAN_HPP_HASH_COMBINE( seed, directFBSurfaceCreateInfoEXT.surface );
  3125. return seed;
  3126. }
  3127. };
  3128. # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
  3129. template <>
  3130. struct hash<VULKAN_HPP_NAMESPACE::DispatchIndirectCommand>
  3131. {
  3132. std::size_t operator()( VULKAN_HPP_NAMESPACE::DispatchIndirectCommand const & dispatchIndirectCommand ) const VULKAN_HPP_NOEXCEPT
  3133. {
  3134. std::size_t seed = 0;
  3135. VULKAN_HPP_HASH_COMBINE( seed, dispatchIndirectCommand.x );
  3136. VULKAN_HPP_HASH_COMBINE( seed, dispatchIndirectCommand.y );
  3137. VULKAN_HPP_HASH_COMBINE( seed, dispatchIndirectCommand.z );
  3138. return seed;
  3139. }
  3140. };
  3141. template <>
  3142. struct hash<VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT>
  3143. {
  3144. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const & displayEventInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3145. {
  3146. std::size_t seed = 0;
  3147. VULKAN_HPP_HASH_COMBINE( seed, displayEventInfoEXT.sType );
  3148. VULKAN_HPP_HASH_COMBINE( seed, displayEventInfoEXT.pNext );
  3149. VULKAN_HPP_HASH_COMBINE( seed, displayEventInfoEXT.displayEvent );
  3150. return seed;
  3151. }
  3152. };
  3153. template <>
  3154. struct hash<VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR>
  3155. {
  3156. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & displayModeParametersKHR ) const VULKAN_HPP_NOEXCEPT
  3157. {
  3158. std::size_t seed = 0;
  3159. VULKAN_HPP_HASH_COMBINE( seed, displayModeParametersKHR.visibleRegion );
  3160. VULKAN_HPP_HASH_COMBINE( seed, displayModeParametersKHR.refreshRate );
  3161. return seed;
  3162. }
  3163. };
  3164. template <>
  3165. struct hash<VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR>
  3166. {
  3167. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const & displayModeCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  3168. {
  3169. std::size_t seed = 0;
  3170. VULKAN_HPP_HASH_COMBINE( seed, displayModeCreateInfoKHR.sType );
  3171. VULKAN_HPP_HASH_COMBINE( seed, displayModeCreateInfoKHR.pNext );
  3172. VULKAN_HPP_HASH_COMBINE( seed, displayModeCreateInfoKHR.flags );
  3173. VULKAN_HPP_HASH_COMBINE( seed, displayModeCreateInfoKHR.parameters );
  3174. return seed;
  3175. }
  3176. };
  3177. template <>
  3178. struct hash<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR>
  3179. {
  3180. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const & displayModePropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  3181. {
  3182. std::size_t seed = 0;
  3183. VULKAN_HPP_HASH_COMBINE( seed, displayModePropertiesKHR.displayMode );
  3184. VULKAN_HPP_HASH_COMBINE( seed, displayModePropertiesKHR.parameters );
  3185. return seed;
  3186. }
  3187. };
  3188. template <>
  3189. struct hash<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>
  3190. {
  3191. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const & displayModeProperties2KHR ) const VULKAN_HPP_NOEXCEPT
  3192. {
  3193. std::size_t seed = 0;
  3194. VULKAN_HPP_HASH_COMBINE( seed, displayModeProperties2KHR.sType );
  3195. VULKAN_HPP_HASH_COMBINE( seed, displayModeProperties2KHR.pNext );
  3196. VULKAN_HPP_HASH_COMBINE( seed, displayModeProperties2KHR.displayModeProperties );
  3197. return seed;
  3198. }
  3199. };
  3200. template <>
  3201. struct hash<VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD>
  3202. {
  3203. std::size_t
  3204. operator()( VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const & displayNativeHdrSurfaceCapabilitiesAMD ) const VULKAN_HPP_NOEXCEPT
  3205. {
  3206. std::size_t seed = 0;
  3207. VULKAN_HPP_HASH_COMBINE( seed, displayNativeHdrSurfaceCapabilitiesAMD.sType );
  3208. VULKAN_HPP_HASH_COMBINE( seed, displayNativeHdrSurfaceCapabilitiesAMD.pNext );
  3209. VULKAN_HPP_HASH_COMBINE( seed, displayNativeHdrSurfaceCapabilitiesAMD.localDimmingSupport );
  3210. return seed;
  3211. }
  3212. };
  3213. template <>
  3214. struct hash<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR>
  3215. {
  3216. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const & displayPlaneCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
  3217. {
  3218. std::size_t seed = 0;
  3219. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.supportedAlpha );
  3220. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.minSrcPosition );
  3221. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.maxSrcPosition );
  3222. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.minSrcExtent );
  3223. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.maxSrcExtent );
  3224. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.minDstPosition );
  3225. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.maxDstPosition );
  3226. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.minDstExtent );
  3227. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.maxDstExtent );
  3228. return seed;
  3229. }
  3230. };
  3231. template <>
  3232. struct hash<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR>
  3233. {
  3234. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const & displayPlaneCapabilities2KHR ) const VULKAN_HPP_NOEXCEPT
  3235. {
  3236. std::size_t seed = 0;
  3237. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilities2KHR.sType );
  3238. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilities2KHR.pNext );
  3239. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilities2KHR.capabilities );
  3240. return seed;
  3241. }
  3242. };
  3243. template <>
  3244. struct hash<VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR>
  3245. {
  3246. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const & displayPlaneInfo2KHR ) const VULKAN_HPP_NOEXCEPT
  3247. {
  3248. std::size_t seed = 0;
  3249. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneInfo2KHR.sType );
  3250. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneInfo2KHR.pNext );
  3251. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneInfo2KHR.mode );
  3252. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneInfo2KHR.planeIndex );
  3253. return seed;
  3254. }
  3255. };
  3256. template <>
  3257. struct hash<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR>
  3258. {
  3259. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const & displayPlanePropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  3260. {
  3261. std::size_t seed = 0;
  3262. VULKAN_HPP_HASH_COMBINE( seed, displayPlanePropertiesKHR.currentDisplay );
  3263. VULKAN_HPP_HASH_COMBINE( seed, displayPlanePropertiesKHR.currentStackIndex );
  3264. return seed;
  3265. }
  3266. };
  3267. template <>
  3268. struct hash<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR>
  3269. {
  3270. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const & displayPlaneProperties2KHR ) const VULKAN_HPP_NOEXCEPT
  3271. {
  3272. std::size_t seed = 0;
  3273. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneProperties2KHR.sType );
  3274. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneProperties2KHR.pNext );
  3275. VULKAN_HPP_HASH_COMBINE( seed, displayPlaneProperties2KHR.displayPlaneProperties );
  3276. return seed;
  3277. }
  3278. };
  3279. template <>
  3280. struct hash<VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT>
  3281. {
  3282. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const & displayPowerInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3283. {
  3284. std::size_t seed = 0;
  3285. VULKAN_HPP_HASH_COMBINE( seed, displayPowerInfoEXT.sType );
  3286. VULKAN_HPP_HASH_COMBINE( seed, displayPowerInfoEXT.pNext );
  3287. VULKAN_HPP_HASH_COMBINE( seed, displayPowerInfoEXT.powerState );
  3288. return seed;
  3289. }
  3290. };
  3291. template <>
  3292. struct hash<VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR>
  3293. {
  3294. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const & displayPresentInfoKHR ) const VULKAN_HPP_NOEXCEPT
  3295. {
  3296. std::size_t seed = 0;
  3297. VULKAN_HPP_HASH_COMBINE( seed, displayPresentInfoKHR.sType );
  3298. VULKAN_HPP_HASH_COMBINE( seed, displayPresentInfoKHR.pNext );
  3299. VULKAN_HPP_HASH_COMBINE( seed, displayPresentInfoKHR.srcRect );
  3300. VULKAN_HPP_HASH_COMBINE( seed, displayPresentInfoKHR.dstRect );
  3301. VULKAN_HPP_HASH_COMBINE( seed, displayPresentInfoKHR.persistent );
  3302. return seed;
  3303. }
  3304. };
  3305. template <>
  3306. struct hash<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR>
  3307. {
  3308. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const & displayPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  3309. {
  3310. std::size_t seed = 0;
  3311. VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.display );
  3312. for ( const char * p = displayPropertiesKHR.displayName; *p != '\0'; ++p )
  3313. {
  3314. VULKAN_HPP_HASH_COMBINE( seed, *p );
  3315. }
  3316. VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.physicalDimensions );
  3317. VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.physicalResolution );
  3318. VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.supportedTransforms );
  3319. VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.planeReorderPossible );
  3320. VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.persistentContent );
  3321. return seed;
  3322. }
  3323. };
  3324. template <>
  3325. struct hash<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR>
  3326. {
  3327. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const & displayProperties2KHR ) const VULKAN_HPP_NOEXCEPT
  3328. {
  3329. std::size_t seed = 0;
  3330. VULKAN_HPP_HASH_COMBINE( seed, displayProperties2KHR.sType );
  3331. VULKAN_HPP_HASH_COMBINE( seed, displayProperties2KHR.pNext );
  3332. VULKAN_HPP_HASH_COMBINE( seed, displayProperties2KHR.displayProperties );
  3333. return seed;
  3334. }
  3335. };
  3336. template <>
  3337. struct hash<VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR>
  3338. {
  3339. std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const & displaySurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  3340. {
  3341. std::size_t seed = 0;
  3342. VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.sType );
  3343. VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.pNext );
  3344. VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.flags );
  3345. VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.displayMode );
  3346. VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.planeIndex );
  3347. VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.planeStackIndex );
  3348. VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.transform );
  3349. VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.globalAlpha );
  3350. VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.alphaMode );
  3351. VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.imageExtent );
  3352. return seed;
  3353. }
  3354. };
  3355. template <>
  3356. struct hash<VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand>
  3357. {
  3358. std::size_t operator()( VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand const & drawIndexedIndirectCommand ) const VULKAN_HPP_NOEXCEPT
  3359. {
  3360. std::size_t seed = 0;
  3361. VULKAN_HPP_HASH_COMBINE( seed, drawIndexedIndirectCommand.indexCount );
  3362. VULKAN_HPP_HASH_COMBINE( seed, drawIndexedIndirectCommand.instanceCount );
  3363. VULKAN_HPP_HASH_COMBINE( seed, drawIndexedIndirectCommand.firstIndex );
  3364. VULKAN_HPP_HASH_COMBINE( seed, drawIndexedIndirectCommand.vertexOffset );
  3365. VULKAN_HPP_HASH_COMBINE( seed, drawIndexedIndirectCommand.firstInstance );
  3366. return seed;
  3367. }
  3368. };
  3369. template <>
  3370. struct hash<VULKAN_HPP_NAMESPACE::DrawIndirectCommand>
  3371. {
  3372. std::size_t operator()( VULKAN_HPP_NAMESPACE::DrawIndirectCommand const & drawIndirectCommand ) const VULKAN_HPP_NOEXCEPT
  3373. {
  3374. std::size_t seed = 0;
  3375. VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCommand.vertexCount );
  3376. VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCommand.instanceCount );
  3377. VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCommand.firstVertex );
  3378. VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCommand.firstInstance );
  3379. return seed;
  3380. }
  3381. };
  3382. template <>
  3383. struct hash<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT>
  3384. {
  3385. std::size_t operator()( VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT const & drawMeshTasksIndirectCommandEXT ) const VULKAN_HPP_NOEXCEPT
  3386. {
  3387. std::size_t seed = 0;
  3388. VULKAN_HPP_HASH_COMBINE( seed, drawMeshTasksIndirectCommandEXT.groupCountX );
  3389. VULKAN_HPP_HASH_COMBINE( seed, drawMeshTasksIndirectCommandEXT.groupCountY );
  3390. VULKAN_HPP_HASH_COMBINE( seed, drawMeshTasksIndirectCommandEXT.groupCountZ );
  3391. return seed;
  3392. }
  3393. };
  3394. template <>
  3395. struct hash<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV>
  3396. {
  3397. std::size_t operator()( VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV const & drawMeshTasksIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
  3398. {
  3399. std::size_t seed = 0;
  3400. VULKAN_HPP_HASH_COMBINE( seed, drawMeshTasksIndirectCommandNV.taskCount );
  3401. VULKAN_HPP_HASH_COMBINE( seed, drawMeshTasksIndirectCommandNV.firstTask );
  3402. return seed;
  3403. }
  3404. };
  3405. template <>
  3406. struct hash<VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT>
  3407. {
  3408. std::size_t operator()( VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT const & drmFormatModifierProperties2EXT ) const VULKAN_HPP_NOEXCEPT
  3409. {
  3410. std::size_t seed = 0;
  3411. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierProperties2EXT.drmFormatModifier );
  3412. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierProperties2EXT.drmFormatModifierPlaneCount );
  3413. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierProperties2EXT.drmFormatModifierTilingFeatures );
  3414. return seed;
  3415. }
  3416. };
  3417. template <>
  3418. struct hash<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT>
  3419. {
  3420. std::size_t operator()( VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT const & drmFormatModifierPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  3421. {
  3422. std::size_t seed = 0;
  3423. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesEXT.drmFormatModifier );
  3424. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesEXT.drmFormatModifierPlaneCount );
  3425. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesEXT.drmFormatModifierTilingFeatures );
  3426. return seed;
  3427. }
  3428. };
  3429. template <>
  3430. struct hash<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT>
  3431. {
  3432. std::size_t operator()( VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT const & drmFormatModifierPropertiesList2EXT ) const VULKAN_HPP_NOEXCEPT
  3433. {
  3434. std::size_t seed = 0;
  3435. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesList2EXT.sType );
  3436. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesList2EXT.pNext );
  3437. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesList2EXT.drmFormatModifierCount );
  3438. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesList2EXT.pDrmFormatModifierProperties );
  3439. return seed;
  3440. }
  3441. };
  3442. template <>
  3443. struct hash<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT>
  3444. {
  3445. std::size_t operator()( VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const & drmFormatModifierPropertiesListEXT ) const VULKAN_HPP_NOEXCEPT
  3446. {
  3447. std::size_t seed = 0;
  3448. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesListEXT.sType );
  3449. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesListEXT.pNext );
  3450. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesListEXT.drmFormatModifierCount );
  3451. VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesListEXT.pDrmFormatModifierProperties );
  3452. return seed;
  3453. }
  3454. };
  3455. template <>
  3456. struct hash<VULKAN_HPP_NAMESPACE::EventCreateInfo>
  3457. {
  3458. std::size_t operator()( VULKAN_HPP_NAMESPACE::EventCreateInfo const & eventCreateInfo ) const VULKAN_HPP_NOEXCEPT
  3459. {
  3460. std::size_t seed = 0;
  3461. VULKAN_HPP_HASH_COMBINE( seed, eventCreateInfo.sType );
  3462. VULKAN_HPP_HASH_COMBINE( seed, eventCreateInfo.pNext );
  3463. VULKAN_HPP_HASH_COMBINE( seed, eventCreateInfo.flags );
  3464. return seed;
  3465. }
  3466. };
  3467. template <>
  3468. struct hash<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo>
  3469. {
  3470. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const & exportFenceCreateInfo ) const VULKAN_HPP_NOEXCEPT
  3471. {
  3472. std::size_t seed = 0;
  3473. VULKAN_HPP_HASH_COMBINE( seed, exportFenceCreateInfo.sType );
  3474. VULKAN_HPP_HASH_COMBINE( seed, exportFenceCreateInfo.pNext );
  3475. VULKAN_HPP_HASH_COMBINE( seed, exportFenceCreateInfo.handleTypes );
  3476. return seed;
  3477. }
  3478. };
  3479. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  3480. template <>
  3481. struct hash<VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR>
  3482. {
  3483. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const & exportFenceWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
  3484. {
  3485. std::size_t seed = 0;
  3486. VULKAN_HPP_HASH_COMBINE( seed, exportFenceWin32HandleInfoKHR.sType );
  3487. VULKAN_HPP_HASH_COMBINE( seed, exportFenceWin32HandleInfoKHR.pNext );
  3488. VULKAN_HPP_HASH_COMBINE( seed, exportFenceWin32HandleInfoKHR.pAttributes );
  3489. VULKAN_HPP_HASH_COMBINE( seed, exportFenceWin32HandleInfoKHR.dwAccess );
  3490. VULKAN_HPP_HASH_COMBINE( seed, exportFenceWin32HandleInfoKHR.name );
  3491. return seed;
  3492. }
  3493. };
  3494. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  3495. template <>
  3496. struct hash<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo>
  3497. {
  3498. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const & exportMemoryAllocateInfo ) const VULKAN_HPP_NOEXCEPT
  3499. {
  3500. std::size_t seed = 0;
  3501. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfo.sType );
  3502. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfo.pNext );
  3503. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfo.handleTypes );
  3504. return seed;
  3505. }
  3506. };
  3507. template <>
  3508. struct hash<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV>
  3509. {
  3510. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const & exportMemoryAllocateInfoNV ) const VULKAN_HPP_NOEXCEPT
  3511. {
  3512. std::size_t seed = 0;
  3513. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfoNV.sType );
  3514. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfoNV.pNext );
  3515. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfoNV.handleTypes );
  3516. return seed;
  3517. }
  3518. };
  3519. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  3520. template <>
  3521. struct hash<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR>
  3522. {
  3523. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const & exportMemoryWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
  3524. {
  3525. std::size_t seed = 0;
  3526. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoKHR.sType );
  3527. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoKHR.pNext );
  3528. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoKHR.pAttributes );
  3529. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoKHR.dwAccess );
  3530. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoKHR.name );
  3531. return seed;
  3532. }
  3533. };
  3534. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  3535. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  3536. template <>
  3537. struct hash<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV>
  3538. {
  3539. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const & exportMemoryWin32HandleInfoNV ) const VULKAN_HPP_NOEXCEPT
  3540. {
  3541. std::size_t seed = 0;
  3542. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoNV.sType );
  3543. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoNV.pNext );
  3544. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoNV.pAttributes );
  3545. VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoNV.dwAccess );
  3546. return seed;
  3547. }
  3548. };
  3549. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  3550. # if defined( VK_USE_PLATFORM_METAL_EXT )
  3551. template <>
  3552. struct hash<VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT>
  3553. {
  3554. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT const & exportMetalBufferInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3555. {
  3556. std::size_t seed = 0;
  3557. VULKAN_HPP_HASH_COMBINE( seed, exportMetalBufferInfoEXT.sType );
  3558. VULKAN_HPP_HASH_COMBINE( seed, exportMetalBufferInfoEXT.pNext );
  3559. VULKAN_HPP_HASH_COMBINE( seed, exportMetalBufferInfoEXT.memory );
  3560. VULKAN_HPP_HASH_COMBINE( seed, exportMetalBufferInfoEXT.mtlBuffer );
  3561. return seed;
  3562. }
  3563. };
  3564. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  3565. # if defined( VK_USE_PLATFORM_METAL_EXT )
  3566. template <>
  3567. struct hash<VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT>
  3568. {
  3569. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT const & exportMetalCommandQueueInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3570. {
  3571. std::size_t seed = 0;
  3572. VULKAN_HPP_HASH_COMBINE( seed, exportMetalCommandQueueInfoEXT.sType );
  3573. VULKAN_HPP_HASH_COMBINE( seed, exportMetalCommandQueueInfoEXT.pNext );
  3574. VULKAN_HPP_HASH_COMBINE( seed, exportMetalCommandQueueInfoEXT.queue );
  3575. VULKAN_HPP_HASH_COMBINE( seed, exportMetalCommandQueueInfoEXT.mtlCommandQueue );
  3576. return seed;
  3577. }
  3578. };
  3579. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  3580. # if defined( VK_USE_PLATFORM_METAL_EXT )
  3581. template <>
  3582. struct hash<VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT>
  3583. {
  3584. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT const & exportMetalDeviceInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3585. {
  3586. std::size_t seed = 0;
  3587. VULKAN_HPP_HASH_COMBINE( seed, exportMetalDeviceInfoEXT.sType );
  3588. VULKAN_HPP_HASH_COMBINE( seed, exportMetalDeviceInfoEXT.pNext );
  3589. VULKAN_HPP_HASH_COMBINE( seed, exportMetalDeviceInfoEXT.mtlDevice );
  3590. return seed;
  3591. }
  3592. };
  3593. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  3594. # if defined( VK_USE_PLATFORM_METAL_EXT )
  3595. template <>
  3596. struct hash<VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT>
  3597. {
  3598. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT const & exportMetalIOSurfaceInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3599. {
  3600. std::size_t seed = 0;
  3601. VULKAN_HPP_HASH_COMBINE( seed, exportMetalIOSurfaceInfoEXT.sType );
  3602. VULKAN_HPP_HASH_COMBINE( seed, exportMetalIOSurfaceInfoEXT.pNext );
  3603. VULKAN_HPP_HASH_COMBINE( seed, exportMetalIOSurfaceInfoEXT.image );
  3604. VULKAN_HPP_HASH_COMBINE( seed, exportMetalIOSurfaceInfoEXT.ioSurface );
  3605. return seed;
  3606. }
  3607. };
  3608. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  3609. # if defined( VK_USE_PLATFORM_METAL_EXT )
  3610. template <>
  3611. struct hash<VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT>
  3612. {
  3613. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT const & exportMetalObjectCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3614. {
  3615. std::size_t seed = 0;
  3616. VULKAN_HPP_HASH_COMBINE( seed, exportMetalObjectCreateInfoEXT.sType );
  3617. VULKAN_HPP_HASH_COMBINE( seed, exportMetalObjectCreateInfoEXT.pNext );
  3618. VULKAN_HPP_HASH_COMBINE( seed, exportMetalObjectCreateInfoEXT.exportObjectType );
  3619. return seed;
  3620. }
  3621. };
  3622. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  3623. # if defined( VK_USE_PLATFORM_METAL_EXT )
  3624. template <>
  3625. struct hash<VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT>
  3626. {
  3627. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT const & exportMetalObjectsInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3628. {
  3629. std::size_t seed = 0;
  3630. VULKAN_HPP_HASH_COMBINE( seed, exportMetalObjectsInfoEXT.sType );
  3631. VULKAN_HPP_HASH_COMBINE( seed, exportMetalObjectsInfoEXT.pNext );
  3632. return seed;
  3633. }
  3634. };
  3635. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  3636. # if defined( VK_USE_PLATFORM_METAL_EXT )
  3637. template <>
  3638. struct hash<VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT>
  3639. {
  3640. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT const & exportMetalSharedEventInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3641. {
  3642. std::size_t seed = 0;
  3643. VULKAN_HPP_HASH_COMBINE( seed, exportMetalSharedEventInfoEXT.sType );
  3644. VULKAN_HPP_HASH_COMBINE( seed, exportMetalSharedEventInfoEXT.pNext );
  3645. VULKAN_HPP_HASH_COMBINE( seed, exportMetalSharedEventInfoEXT.semaphore );
  3646. VULKAN_HPP_HASH_COMBINE( seed, exportMetalSharedEventInfoEXT.event );
  3647. VULKAN_HPP_HASH_COMBINE( seed, exportMetalSharedEventInfoEXT.mtlSharedEvent );
  3648. return seed;
  3649. }
  3650. };
  3651. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  3652. # if defined( VK_USE_PLATFORM_METAL_EXT )
  3653. template <>
  3654. struct hash<VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT>
  3655. {
  3656. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT const & exportMetalTextureInfoEXT ) const VULKAN_HPP_NOEXCEPT
  3657. {
  3658. std::size_t seed = 0;
  3659. VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.sType );
  3660. VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.pNext );
  3661. VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.image );
  3662. VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.imageView );
  3663. VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.bufferView );
  3664. VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.plane );
  3665. VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.mtlTexture );
  3666. return seed;
  3667. }
  3668. };
  3669. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  3670. template <>
  3671. struct hash<VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo>
  3672. {
  3673. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const & exportSemaphoreCreateInfo ) const VULKAN_HPP_NOEXCEPT
  3674. {
  3675. std::size_t seed = 0;
  3676. VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreCreateInfo.sType );
  3677. VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreCreateInfo.pNext );
  3678. VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreCreateInfo.handleTypes );
  3679. return seed;
  3680. }
  3681. };
  3682. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  3683. template <>
  3684. struct hash<VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR>
  3685. {
  3686. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const & exportSemaphoreWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
  3687. {
  3688. std::size_t seed = 0;
  3689. VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreWin32HandleInfoKHR.sType );
  3690. VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreWin32HandleInfoKHR.pNext );
  3691. VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreWin32HandleInfoKHR.pAttributes );
  3692. VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreWin32HandleInfoKHR.dwAccess );
  3693. VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreWin32HandleInfoKHR.name );
  3694. return seed;
  3695. }
  3696. };
  3697. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  3698. template <>
  3699. struct hash<VULKAN_HPP_NAMESPACE::ExtensionProperties>
  3700. {
  3701. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExtensionProperties const & extensionProperties ) const VULKAN_HPP_NOEXCEPT
  3702. {
  3703. std::size_t seed = 0;
  3704. for ( size_t i = 0; i < VK_MAX_EXTENSION_NAME_SIZE; ++i )
  3705. {
  3706. VULKAN_HPP_HASH_COMBINE( seed, extensionProperties.extensionName[i] );
  3707. }
  3708. VULKAN_HPP_HASH_COMBINE( seed, extensionProperties.specVersion );
  3709. return seed;
  3710. }
  3711. };
  3712. template <>
  3713. struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryProperties>
  3714. {
  3715. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const & externalMemoryProperties ) const VULKAN_HPP_NOEXCEPT
  3716. {
  3717. std::size_t seed = 0;
  3718. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryProperties.externalMemoryFeatures );
  3719. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryProperties.exportFromImportedHandleTypes );
  3720. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryProperties.compatibleHandleTypes );
  3721. return seed;
  3722. }
  3723. };
  3724. template <>
  3725. struct hash<VULKAN_HPP_NAMESPACE::ExternalBufferProperties>
  3726. {
  3727. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalBufferProperties const & externalBufferProperties ) const VULKAN_HPP_NOEXCEPT
  3728. {
  3729. std::size_t seed = 0;
  3730. VULKAN_HPP_HASH_COMBINE( seed, externalBufferProperties.sType );
  3731. VULKAN_HPP_HASH_COMBINE( seed, externalBufferProperties.pNext );
  3732. VULKAN_HPP_HASH_COMBINE( seed, externalBufferProperties.externalMemoryProperties );
  3733. return seed;
  3734. }
  3735. };
  3736. template <>
  3737. struct hash<VULKAN_HPP_NAMESPACE::ExternalFenceProperties>
  3738. {
  3739. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalFenceProperties const & externalFenceProperties ) const VULKAN_HPP_NOEXCEPT
  3740. {
  3741. std::size_t seed = 0;
  3742. VULKAN_HPP_HASH_COMBINE( seed, externalFenceProperties.sType );
  3743. VULKAN_HPP_HASH_COMBINE( seed, externalFenceProperties.pNext );
  3744. VULKAN_HPP_HASH_COMBINE( seed, externalFenceProperties.exportFromImportedHandleTypes );
  3745. VULKAN_HPP_HASH_COMBINE( seed, externalFenceProperties.compatibleHandleTypes );
  3746. VULKAN_HPP_HASH_COMBINE( seed, externalFenceProperties.externalFenceFeatures );
  3747. return seed;
  3748. }
  3749. };
  3750. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  3751. template <>
  3752. struct hash<VULKAN_HPP_NAMESPACE::ExternalFormatANDROID>
  3753. {
  3754. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const & externalFormatANDROID ) const VULKAN_HPP_NOEXCEPT
  3755. {
  3756. std::size_t seed = 0;
  3757. VULKAN_HPP_HASH_COMBINE( seed, externalFormatANDROID.sType );
  3758. VULKAN_HPP_HASH_COMBINE( seed, externalFormatANDROID.pNext );
  3759. VULKAN_HPP_HASH_COMBINE( seed, externalFormatANDROID.externalFormat );
  3760. return seed;
  3761. }
  3762. };
  3763. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  3764. template <>
  3765. struct hash<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties>
  3766. {
  3767. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const & externalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
  3768. {
  3769. std::size_t seed = 0;
  3770. VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatProperties.sType );
  3771. VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatProperties.pNext );
  3772. VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatProperties.externalMemoryProperties );
  3773. return seed;
  3774. }
  3775. };
  3776. template <>
  3777. struct hash<VULKAN_HPP_NAMESPACE::ImageFormatProperties>
  3778. {
  3779. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageFormatProperties const & imageFormatProperties ) const VULKAN_HPP_NOEXCEPT
  3780. {
  3781. std::size_t seed = 0;
  3782. VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties.maxExtent );
  3783. VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties.maxMipLevels );
  3784. VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties.maxArrayLayers );
  3785. VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties.sampleCounts );
  3786. VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties.maxResourceSize );
  3787. return seed;
  3788. }
  3789. };
  3790. template <>
  3791. struct hash<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV>
  3792. {
  3793. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV const & externalImageFormatPropertiesNV ) const VULKAN_HPP_NOEXCEPT
  3794. {
  3795. std::size_t seed = 0;
  3796. VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatPropertiesNV.imageFormatProperties );
  3797. VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatPropertiesNV.externalMemoryFeatures );
  3798. VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatPropertiesNV.exportFromImportedHandleTypes );
  3799. VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatPropertiesNV.compatibleHandleTypes );
  3800. return seed;
  3801. }
  3802. };
  3803. template <>
  3804. struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo>
  3805. {
  3806. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const & externalMemoryBufferCreateInfo ) const VULKAN_HPP_NOEXCEPT
  3807. {
  3808. std::size_t seed = 0;
  3809. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryBufferCreateInfo.sType );
  3810. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryBufferCreateInfo.pNext );
  3811. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryBufferCreateInfo.handleTypes );
  3812. return seed;
  3813. }
  3814. };
  3815. template <>
  3816. struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo>
  3817. {
  3818. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const & externalMemoryImageCreateInfo ) const VULKAN_HPP_NOEXCEPT
  3819. {
  3820. std::size_t seed = 0;
  3821. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfo.sType );
  3822. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfo.pNext );
  3823. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfo.handleTypes );
  3824. return seed;
  3825. }
  3826. };
  3827. template <>
  3828. struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV>
  3829. {
  3830. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const & externalMemoryImageCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  3831. {
  3832. std::size_t seed = 0;
  3833. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfoNV.sType );
  3834. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfoNV.pNext );
  3835. VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfoNV.handleTypes );
  3836. return seed;
  3837. }
  3838. };
  3839. template <>
  3840. struct hash<VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties>
  3841. {
  3842. std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const & externalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
  3843. {
  3844. std::size_t seed = 0;
  3845. VULKAN_HPP_HASH_COMBINE( seed, externalSemaphoreProperties.sType );
  3846. VULKAN_HPP_HASH_COMBINE( seed, externalSemaphoreProperties.pNext );
  3847. VULKAN_HPP_HASH_COMBINE( seed, externalSemaphoreProperties.exportFromImportedHandleTypes );
  3848. VULKAN_HPP_HASH_COMBINE( seed, externalSemaphoreProperties.compatibleHandleTypes );
  3849. VULKAN_HPP_HASH_COMBINE( seed, externalSemaphoreProperties.externalSemaphoreFeatures );
  3850. return seed;
  3851. }
  3852. };
  3853. template <>
  3854. struct hash<VULKAN_HPP_NAMESPACE::FenceCreateInfo>
  3855. {
  3856. std::size_t operator()( VULKAN_HPP_NAMESPACE::FenceCreateInfo const & fenceCreateInfo ) const VULKAN_HPP_NOEXCEPT
  3857. {
  3858. std::size_t seed = 0;
  3859. VULKAN_HPP_HASH_COMBINE( seed, fenceCreateInfo.sType );
  3860. VULKAN_HPP_HASH_COMBINE( seed, fenceCreateInfo.pNext );
  3861. VULKAN_HPP_HASH_COMBINE( seed, fenceCreateInfo.flags );
  3862. return seed;
  3863. }
  3864. };
  3865. template <>
  3866. struct hash<VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR>
  3867. {
  3868. std::size_t operator()( VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const & fenceGetFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
  3869. {
  3870. std::size_t seed = 0;
  3871. VULKAN_HPP_HASH_COMBINE( seed, fenceGetFdInfoKHR.sType );
  3872. VULKAN_HPP_HASH_COMBINE( seed, fenceGetFdInfoKHR.pNext );
  3873. VULKAN_HPP_HASH_COMBINE( seed, fenceGetFdInfoKHR.fence );
  3874. VULKAN_HPP_HASH_COMBINE( seed, fenceGetFdInfoKHR.handleType );
  3875. return seed;
  3876. }
  3877. };
  3878. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  3879. template <>
  3880. struct hash<VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR>
  3881. {
  3882. std::size_t operator()( VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const & fenceGetWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
  3883. {
  3884. std::size_t seed = 0;
  3885. VULKAN_HPP_HASH_COMBINE( seed, fenceGetWin32HandleInfoKHR.sType );
  3886. VULKAN_HPP_HASH_COMBINE( seed, fenceGetWin32HandleInfoKHR.pNext );
  3887. VULKAN_HPP_HASH_COMBINE( seed, fenceGetWin32HandleInfoKHR.fence );
  3888. VULKAN_HPP_HASH_COMBINE( seed, fenceGetWin32HandleInfoKHR.handleType );
  3889. return seed;
  3890. }
  3891. };
  3892. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  3893. template <>
  3894. struct hash<VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT>
  3895. {
  3896. std::size_t operator()( VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const & filterCubicImageViewImageFormatPropertiesEXT ) const
  3897. VULKAN_HPP_NOEXCEPT
  3898. {
  3899. std::size_t seed = 0;
  3900. VULKAN_HPP_HASH_COMBINE( seed, filterCubicImageViewImageFormatPropertiesEXT.sType );
  3901. VULKAN_HPP_HASH_COMBINE( seed, filterCubicImageViewImageFormatPropertiesEXT.pNext );
  3902. VULKAN_HPP_HASH_COMBINE( seed, filterCubicImageViewImageFormatPropertiesEXT.filterCubic );
  3903. VULKAN_HPP_HASH_COMBINE( seed, filterCubicImageViewImageFormatPropertiesEXT.filterCubicMinmax );
  3904. return seed;
  3905. }
  3906. };
  3907. template <>
  3908. struct hash<VULKAN_HPP_NAMESPACE::FormatProperties>
  3909. {
  3910. std::size_t operator()( VULKAN_HPP_NAMESPACE::FormatProperties const & formatProperties ) const VULKAN_HPP_NOEXCEPT
  3911. {
  3912. std::size_t seed = 0;
  3913. VULKAN_HPP_HASH_COMBINE( seed, formatProperties.linearTilingFeatures );
  3914. VULKAN_HPP_HASH_COMBINE( seed, formatProperties.optimalTilingFeatures );
  3915. VULKAN_HPP_HASH_COMBINE( seed, formatProperties.bufferFeatures );
  3916. return seed;
  3917. }
  3918. };
  3919. template <>
  3920. struct hash<VULKAN_HPP_NAMESPACE::FormatProperties2>
  3921. {
  3922. std::size_t operator()( VULKAN_HPP_NAMESPACE::FormatProperties2 const & formatProperties2 ) const VULKAN_HPP_NOEXCEPT
  3923. {
  3924. std::size_t seed = 0;
  3925. VULKAN_HPP_HASH_COMBINE( seed, formatProperties2.sType );
  3926. VULKAN_HPP_HASH_COMBINE( seed, formatProperties2.pNext );
  3927. VULKAN_HPP_HASH_COMBINE( seed, formatProperties2.formatProperties );
  3928. return seed;
  3929. }
  3930. };
  3931. template <>
  3932. struct hash<VULKAN_HPP_NAMESPACE::FormatProperties3>
  3933. {
  3934. std::size_t operator()( VULKAN_HPP_NAMESPACE::FormatProperties3 const & formatProperties3 ) const VULKAN_HPP_NOEXCEPT
  3935. {
  3936. std::size_t seed = 0;
  3937. VULKAN_HPP_HASH_COMBINE( seed, formatProperties3.sType );
  3938. VULKAN_HPP_HASH_COMBINE( seed, formatProperties3.pNext );
  3939. VULKAN_HPP_HASH_COMBINE( seed, formatProperties3.linearTilingFeatures );
  3940. VULKAN_HPP_HASH_COMBINE( seed, formatProperties3.optimalTilingFeatures );
  3941. VULKAN_HPP_HASH_COMBINE( seed, formatProperties3.bufferFeatures );
  3942. return seed;
  3943. }
  3944. };
  3945. template <>
  3946. struct hash<VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR>
  3947. {
  3948. std::size_t operator()( VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR const & fragmentShadingRateAttachmentInfoKHR ) const VULKAN_HPP_NOEXCEPT
  3949. {
  3950. std::size_t seed = 0;
  3951. VULKAN_HPP_HASH_COMBINE( seed, fragmentShadingRateAttachmentInfoKHR.sType );
  3952. VULKAN_HPP_HASH_COMBINE( seed, fragmentShadingRateAttachmentInfoKHR.pNext );
  3953. VULKAN_HPP_HASH_COMBINE( seed, fragmentShadingRateAttachmentInfoKHR.pFragmentShadingRateAttachment );
  3954. VULKAN_HPP_HASH_COMBINE( seed, fragmentShadingRateAttachmentInfoKHR.shadingRateAttachmentTexelSize );
  3955. return seed;
  3956. }
  3957. };
  3958. template <>
  3959. struct hash<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo>
  3960. {
  3961. std::size_t operator()( VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const & framebufferAttachmentImageInfo ) const VULKAN_HPP_NOEXCEPT
  3962. {
  3963. std::size_t seed = 0;
  3964. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.sType );
  3965. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.pNext );
  3966. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.flags );
  3967. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.usage );
  3968. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.width );
  3969. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.height );
  3970. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.layerCount );
  3971. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.viewFormatCount );
  3972. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.pViewFormats );
  3973. return seed;
  3974. }
  3975. };
  3976. template <>
  3977. struct hash<VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo>
  3978. {
  3979. std::size_t operator()( VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const & framebufferAttachmentsCreateInfo ) const VULKAN_HPP_NOEXCEPT
  3980. {
  3981. std::size_t seed = 0;
  3982. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentsCreateInfo.sType );
  3983. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentsCreateInfo.pNext );
  3984. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentsCreateInfo.attachmentImageInfoCount );
  3985. VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentsCreateInfo.pAttachmentImageInfos );
  3986. return seed;
  3987. }
  3988. };
  3989. template <>
  3990. struct hash<VULKAN_HPP_NAMESPACE::FramebufferCreateInfo>
  3991. {
  3992. std::size_t operator()( VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const & framebufferCreateInfo ) const VULKAN_HPP_NOEXCEPT
  3993. {
  3994. std::size_t seed = 0;
  3995. VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.sType );
  3996. VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.pNext );
  3997. VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.flags );
  3998. VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.renderPass );
  3999. VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.attachmentCount );
  4000. VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.pAttachments );
  4001. VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.width );
  4002. VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.height );
  4003. VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.layers );
  4004. return seed;
  4005. }
  4006. };
  4007. template <>
  4008. struct hash<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV>
  4009. {
  4010. std::size_t operator()( VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const & framebufferMixedSamplesCombinationNV ) const VULKAN_HPP_NOEXCEPT
  4011. {
  4012. std::size_t seed = 0;
  4013. VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.sType );
  4014. VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.pNext );
  4015. VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.coverageReductionMode );
  4016. VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.rasterizationSamples );
  4017. VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.depthStencilSamples );
  4018. VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.colorSamples );
  4019. return seed;
  4020. }
  4021. };
  4022. template <>
  4023. struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV>
  4024. {
  4025. std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const & indirectCommandsStreamNV ) const VULKAN_HPP_NOEXCEPT
  4026. {
  4027. std::size_t seed = 0;
  4028. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsStreamNV.buffer );
  4029. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsStreamNV.offset );
  4030. return seed;
  4031. }
  4032. };
  4033. template <>
  4034. struct hash<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV>
  4035. {
  4036. std::size_t operator()( VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV const & generatedCommandsInfoNV ) const VULKAN_HPP_NOEXCEPT
  4037. {
  4038. std::size_t seed = 0;
  4039. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sType );
  4040. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.pNext );
  4041. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.pipelineBindPoint );
  4042. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.pipeline );
  4043. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.indirectCommandsLayout );
  4044. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.streamCount );
  4045. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.pStreams );
  4046. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sequencesCount );
  4047. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.preprocessBuffer );
  4048. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.preprocessOffset );
  4049. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.preprocessSize );
  4050. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sequencesCountBuffer );
  4051. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sequencesCountOffset );
  4052. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sequencesIndexBuffer );
  4053. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sequencesIndexOffset );
  4054. return seed;
  4055. }
  4056. };
  4057. template <>
  4058. struct hash<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV>
  4059. {
  4060. std::size_t
  4061. operator()( VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV const & generatedCommandsMemoryRequirementsInfoNV ) const VULKAN_HPP_NOEXCEPT
  4062. {
  4063. std::size_t seed = 0;
  4064. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.sType );
  4065. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.pNext );
  4066. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.pipelineBindPoint );
  4067. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.pipeline );
  4068. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.indirectCommandsLayout );
  4069. VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.maxSequencesCount );
  4070. return seed;
  4071. }
  4072. };
  4073. template <>
  4074. struct hash<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription>
  4075. {
  4076. std::size_t operator()( VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const & vertexInputBindingDescription ) const VULKAN_HPP_NOEXCEPT
  4077. {
  4078. std::size_t seed = 0;
  4079. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription.binding );
  4080. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription.stride );
  4081. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription.inputRate );
  4082. return seed;
  4083. }
  4084. };
  4085. template <>
  4086. struct hash<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription>
  4087. {
  4088. std::size_t operator()( VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription const & vertexInputAttributeDescription ) const VULKAN_HPP_NOEXCEPT
  4089. {
  4090. std::size_t seed = 0;
  4091. VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription.location );
  4092. VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription.binding );
  4093. VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription.format );
  4094. VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription.offset );
  4095. return seed;
  4096. }
  4097. };
  4098. template <>
  4099. struct hash<VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo>
  4100. {
  4101. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const & pipelineVertexInputStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4102. {
  4103. std::size_t seed = 0;
  4104. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.sType );
  4105. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.pNext );
  4106. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.flags );
  4107. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.vertexBindingDescriptionCount );
  4108. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.pVertexBindingDescriptions );
  4109. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.vertexAttributeDescriptionCount );
  4110. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.pVertexAttributeDescriptions );
  4111. return seed;
  4112. }
  4113. };
  4114. template <>
  4115. struct hash<VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo>
  4116. {
  4117. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const & pipelineInputAssemblyStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4118. {
  4119. std::size_t seed = 0;
  4120. VULKAN_HPP_HASH_COMBINE( seed, pipelineInputAssemblyStateCreateInfo.sType );
  4121. VULKAN_HPP_HASH_COMBINE( seed, pipelineInputAssemblyStateCreateInfo.pNext );
  4122. VULKAN_HPP_HASH_COMBINE( seed, pipelineInputAssemblyStateCreateInfo.flags );
  4123. VULKAN_HPP_HASH_COMBINE( seed, pipelineInputAssemblyStateCreateInfo.topology );
  4124. VULKAN_HPP_HASH_COMBINE( seed, pipelineInputAssemblyStateCreateInfo.primitiveRestartEnable );
  4125. return seed;
  4126. }
  4127. };
  4128. template <>
  4129. struct hash<VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo>
  4130. {
  4131. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const & pipelineTessellationStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4132. {
  4133. std::size_t seed = 0;
  4134. VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationStateCreateInfo.sType );
  4135. VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationStateCreateInfo.pNext );
  4136. VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationStateCreateInfo.flags );
  4137. VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationStateCreateInfo.patchControlPoints );
  4138. return seed;
  4139. }
  4140. };
  4141. template <>
  4142. struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo>
  4143. {
  4144. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const & pipelineViewportStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4145. {
  4146. std::size_t seed = 0;
  4147. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.sType );
  4148. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.pNext );
  4149. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.flags );
  4150. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.viewportCount );
  4151. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.pViewports );
  4152. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.scissorCount );
  4153. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.pScissors );
  4154. return seed;
  4155. }
  4156. };
  4157. template <>
  4158. struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo>
  4159. {
  4160. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const & pipelineRasterizationStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4161. {
  4162. std::size_t seed = 0;
  4163. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.sType );
  4164. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.pNext );
  4165. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.flags );
  4166. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.depthClampEnable );
  4167. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.rasterizerDiscardEnable );
  4168. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.polygonMode );
  4169. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.cullMode );
  4170. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.frontFace );
  4171. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.depthBiasEnable );
  4172. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.depthBiasConstantFactor );
  4173. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.depthBiasClamp );
  4174. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.depthBiasSlopeFactor );
  4175. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.lineWidth );
  4176. return seed;
  4177. }
  4178. };
  4179. template <>
  4180. struct hash<VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo>
  4181. {
  4182. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const & pipelineMultisampleStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4183. {
  4184. std::size_t seed = 0;
  4185. VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.sType );
  4186. VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.pNext );
  4187. VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.flags );
  4188. VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.rasterizationSamples );
  4189. VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.sampleShadingEnable );
  4190. VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.minSampleShading );
  4191. VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.pSampleMask );
  4192. VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.alphaToCoverageEnable );
  4193. VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.alphaToOneEnable );
  4194. return seed;
  4195. }
  4196. };
  4197. template <>
  4198. struct hash<VULKAN_HPP_NAMESPACE::StencilOpState>
  4199. {
  4200. std::size_t operator()( VULKAN_HPP_NAMESPACE::StencilOpState const & stencilOpState ) const VULKAN_HPP_NOEXCEPT
  4201. {
  4202. std::size_t seed = 0;
  4203. VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.failOp );
  4204. VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.passOp );
  4205. VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.depthFailOp );
  4206. VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.compareOp );
  4207. VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.compareMask );
  4208. VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.writeMask );
  4209. VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.reference );
  4210. return seed;
  4211. }
  4212. };
  4213. template <>
  4214. struct hash<VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo>
  4215. {
  4216. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const & pipelineDepthStencilStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4217. {
  4218. std::size_t seed = 0;
  4219. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.sType );
  4220. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.pNext );
  4221. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.flags );
  4222. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.depthTestEnable );
  4223. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.depthWriteEnable );
  4224. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.depthCompareOp );
  4225. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.depthBoundsTestEnable );
  4226. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.stencilTestEnable );
  4227. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.front );
  4228. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.back );
  4229. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.minDepthBounds );
  4230. VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.maxDepthBounds );
  4231. return seed;
  4232. }
  4233. };
  4234. template <>
  4235. struct hash<VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState>
  4236. {
  4237. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState const & pipelineColorBlendAttachmentState ) const VULKAN_HPP_NOEXCEPT
  4238. {
  4239. std::size_t seed = 0;
  4240. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.blendEnable );
  4241. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.srcColorBlendFactor );
  4242. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.dstColorBlendFactor );
  4243. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.colorBlendOp );
  4244. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.srcAlphaBlendFactor );
  4245. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.dstAlphaBlendFactor );
  4246. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.alphaBlendOp );
  4247. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.colorWriteMask );
  4248. return seed;
  4249. }
  4250. };
  4251. template <>
  4252. struct hash<VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo>
  4253. {
  4254. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const & pipelineColorBlendStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4255. {
  4256. std::size_t seed = 0;
  4257. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.sType );
  4258. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.pNext );
  4259. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.flags );
  4260. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.logicOpEnable );
  4261. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.logicOp );
  4262. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.attachmentCount );
  4263. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.pAttachments );
  4264. for ( size_t i = 0; i < 4; ++i )
  4265. {
  4266. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.blendConstants[i] );
  4267. }
  4268. return seed;
  4269. }
  4270. };
  4271. template <>
  4272. struct hash<VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo>
  4273. {
  4274. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const & pipelineDynamicStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4275. {
  4276. std::size_t seed = 0;
  4277. VULKAN_HPP_HASH_COMBINE( seed, pipelineDynamicStateCreateInfo.sType );
  4278. VULKAN_HPP_HASH_COMBINE( seed, pipelineDynamicStateCreateInfo.pNext );
  4279. VULKAN_HPP_HASH_COMBINE( seed, pipelineDynamicStateCreateInfo.flags );
  4280. VULKAN_HPP_HASH_COMBINE( seed, pipelineDynamicStateCreateInfo.dynamicStateCount );
  4281. VULKAN_HPP_HASH_COMBINE( seed, pipelineDynamicStateCreateInfo.pDynamicStates );
  4282. return seed;
  4283. }
  4284. };
  4285. template <>
  4286. struct hash<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo>
  4287. {
  4288. std::size_t operator()( VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const & graphicsPipelineCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4289. {
  4290. std::size_t seed = 0;
  4291. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.sType );
  4292. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pNext );
  4293. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.flags );
  4294. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.stageCount );
  4295. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pStages );
  4296. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pVertexInputState );
  4297. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pInputAssemblyState );
  4298. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pTessellationState );
  4299. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pViewportState );
  4300. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pRasterizationState );
  4301. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pMultisampleState );
  4302. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pDepthStencilState );
  4303. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pColorBlendState );
  4304. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pDynamicState );
  4305. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.layout );
  4306. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.renderPass );
  4307. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.subpass );
  4308. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.basePipelineHandle );
  4309. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.basePipelineIndex );
  4310. return seed;
  4311. }
  4312. };
  4313. template <>
  4314. struct hash<VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT>
  4315. {
  4316. std::size_t operator()( VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT const & graphicsPipelineLibraryCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  4317. {
  4318. std::size_t seed = 0;
  4319. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineLibraryCreateInfoEXT.sType );
  4320. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineLibraryCreateInfoEXT.pNext );
  4321. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineLibraryCreateInfoEXT.flags );
  4322. return seed;
  4323. }
  4324. };
  4325. template <>
  4326. struct hash<VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV>
  4327. {
  4328. std::size_t operator()( VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV const & graphicsShaderGroupCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  4329. {
  4330. std::size_t seed = 0;
  4331. VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.sType );
  4332. VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.pNext );
  4333. VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.stageCount );
  4334. VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.pStages );
  4335. VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.pVertexInputState );
  4336. VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.pTessellationState );
  4337. return seed;
  4338. }
  4339. };
  4340. template <>
  4341. struct hash<VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV>
  4342. {
  4343. std::size_t
  4344. operator()( VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV const & graphicsPipelineShaderGroupsCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  4345. {
  4346. std::size_t seed = 0;
  4347. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.sType );
  4348. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.pNext );
  4349. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.groupCount );
  4350. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.pGroups );
  4351. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.pipelineCount );
  4352. VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.pPipelines );
  4353. return seed;
  4354. }
  4355. };
  4356. template <>
  4357. struct hash<VULKAN_HPP_NAMESPACE::XYColorEXT>
  4358. {
  4359. std::size_t operator()( VULKAN_HPP_NAMESPACE::XYColorEXT const & xYColorEXT ) const VULKAN_HPP_NOEXCEPT
  4360. {
  4361. std::size_t seed = 0;
  4362. VULKAN_HPP_HASH_COMBINE( seed, xYColorEXT.x );
  4363. VULKAN_HPP_HASH_COMBINE( seed, xYColorEXT.y );
  4364. return seed;
  4365. }
  4366. };
  4367. template <>
  4368. struct hash<VULKAN_HPP_NAMESPACE::HdrMetadataEXT>
  4369. {
  4370. std::size_t operator()( VULKAN_HPP_NAMESPACE::HdrMetadataEXT const & hdrMetadataEXT ) const VULKAN_HPP_NOEXCEPT
  4371. {
  4372. std::size_t seed = 0;
  4373. VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.sType );
  4374. VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.pNext );
  4375. VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.displayPrimaryRed );
  4376. VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.displayPrimaryGreen );
  4377. VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.displayPrimaryBlue );
  4378. VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.whitePoint );
  4379. VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.maxLuminance );
  4380. VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.minLuminance );
  4381. VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.maxContentLightLevel );
  4382. VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.maxFrameAverageLightLevel );
  4383. return seed;
  4384. }
  4385. };
  4386. template <>
  4387. struct hash<VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT>
  4388. {
  4389. std::size_t operator()( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const & headlessSurfaceCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  4390. {
  4391. std::size_t seed = 0;
  4392. VULKAN_HPP_HASH_COMBINE( seed, headlessSurfaceCreateInfoEXT.sType );
  4393. VULKAN_HPP_HASH_COMBINE( seed, headlessSurfaceCreateInfoEXT.pNext );
  4394. VULKAN_HPP_HASH_COMBINE( seed, headlessSurfaceCreateInfoEXT.flags );
  4395. return seed;
  4396. }
  4397. };
  4398. # if defined( VK_USE_PLATFORM_IOS_MVK )
  4399. template <>
  4400. struct hash<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK>
  4401. {
  4402. std::size_t operator()( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const & iOSSurfaceCreateInfoMVK ) const VULKAN_HPP_NOEXCEPT
  4403. {
  4404. std::size_t seed = 0;
  4405. VULKAN_HPP_HASH_COMBINE( seed, iOSSurfaceCreateInfoMVK.sType );
  4406. VULKAN_HPP_HASH_COMBINE( seed, iOSSurfaceCreateInfoMVK.pNext );
  4407. VULKAN_HPP_HASH_COMBINE( seed, iOSSurfaceCreateInfoMVK.flags );
  4408. VULKAN_HPP_HASH_COMBINE( seed, iOSSurfaceCreateInfoMVK.pView );
  4409. return seed;
  4410. }
  4411. };
  4412. # endif /*VK_USE_PLATFORM_IOS_MVK*/
  4413. template <>
  4414. struct hash<VULKAN_HPP_NAMESPACE::ImageBlit>
  4415. {
  4416. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageBlit const & imageBlit ) const VULKAN_HPP_NOEXCEPT
  4417. {
  4418. std::size_t seed = 0;
  4419. VULKAN_HPP_HASH_COMBINE( seed, imageBlit.srcSubresource );
  4420. for ( size_t i = 0; i < 2; ++i )
  4421. {
  4422. VULKAN_HPP_HASH_COMBINE( seed, imageBlit.srcOffsets[i] );
  4423. }
  4424. VULKAN_HPP_HASH_COMBINE( seed, imageBlit.dstSubresource );
  4425. for ( size_t i = 0; i < 2; ++i )
  4426. {
  4427. VULKAN_HPP_HASH_COMBINE( seed, imageBlit.dstOffsets[i] );
  4428. }
  4429. return seed;
  4430. }
  4431. };
  4432. template <>
  4433. struct hash<VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT>
  4434. {
  4435. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT const & imageCompressionControlEXT ) const VULKAN_HPP_NOEXCEPT
  4436. {
  4437. std::size_t seed = 0;
  4438. VULKAN_HPP_HASH_COMBINE( seed, imageCompressionControlEXT.sType );
  4439. VULKAN_HPP_HASH_COMBINE( seed, imageCompressionControlEXT.pNext );
  4440. VULKAN_HPP_HASH_COMBINE( seed, imageCompressionControlEXT.flags );
  4441. VULKAN_HPP_HASH_COMBINE( seed, imageCompressionControlEXT.compressionControlPlaneCount );
  4442. VULKAN_HPP_HASH_COMBINE( seed, imageCompressionControlEXT.pFixedRateFlags );
  4443. return seed;
  4444. }
  4445. };
  4446. template <>
  4447. struct hash<VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT>
  4448. {
  4449. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT const & imageCompressionPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  4450. {
  4451. std::size_t seed = 0;
  4452. VULKAN_HPP_HASH_COMBINE( seed, imageCompressionPropertiesEXT.sType );
  4453. VULKAN_HPP_HASH_COMBINE( seed, imageCompressionPropertiesEXT.pNext );
  4454. VULKAN_HPP_HASH_COMBINE( seed, imageCompressionPropertiesEXT.imageCompressionFlags );
  4455. VULKAN_HPP_HASH_COMBINE( seed, imageCompressionPropertiesEXT.imageCompressionFixedRateFlags );
  4456. return seed;
  4457. }
  4458. };
  4459. # if defined( VK_USE_PLATFORM_FUCHSIA )
  4460. template <>
  4461. struct hash<VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA>
  4462. {
  4463. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA const & imageFormatConstraintsInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  4464. {
  4465. std::size_t seed = 0;
  4466. VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.sType );
  4467. VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.pNext );
  4468. VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.imageCreateInfo );
  4469. VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.requiredFormatFeatures );
  4470. VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.flags );
  4471. VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.sysmemPixelFormat );
  4472. VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.colorSpaceCount );
  4473. VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.pColorSpaces );
  4474. return seed;
  4475. }
  4476. };
  4477. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  4478. # if defined( VK_USE_PLATFORM_FUCHSIA )
  4479. template <>
  4480. struct hash<VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA>
  4481. {
  4482. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA const & imageConstraintsInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  4483. {
  4484. std::size_t seed = 0;
  4485. VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.sType );
  4486. VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.pNext );
  4487. VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.formatConstraintsCount );
  4488. VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.pFormatConstraints );
  4489. VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.bufferCollectionConstraints );
  4490. VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.flags );
  4491. return seed;
  4492. }
  4493. };
  4494. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  4495. template <>
  4496. struct hash<VULKAN_HPP_NAMESPACE::ImageCopy>
  4497. {
  4498. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCopy const & imageCopy ) const VULKAN_HPP_NOEXCEPT
  4499. {
  4500. std::size_t seed = 0;
  4501. VULKAN_HPP_HASH_COMBINE( seed, imageCopy.srcSubresource );
  4502. VULKAN_HPP_HASH_COMBINE( seed, imageCopy.srcOffset );
  4503. VULKAN_HPP_HASH_COMBINE( seed, imageCopy.dstSubresource );
  4504. VULKAN_HPP_HASH_COMBINE( seed, imageCopy.dstOffset );
  4505. VULKAN_HPP_HASH_COMBINE( seed, imageCopy.extent );
  4506. return seed;
  4507. }
  4508. };
  4509. template <>
  4510. struct hash<VULKAN_HPP_NAMESPACE::SubresourceLayout>
  4511. {
  4512. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubresourceLayout const & subresourceLayout ) const VULKAN_HPP_NOEXCEPT
  4513. {
  4514. std::size_t seed = 0;
  4515. VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout.offset );
  4516. VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout.size );
  4517. VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout.rowPitch );
  4518. VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout.arrayPitch );
  4519. VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout.depthPitch );
  4520. return seed;
  4521. }
  4522. };
  4523. template <>
  4524. struct hash<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT>
  4525. {
  4526. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const & imageDrmFormatModifierExplicitCreateInfoEXT ) const
  4527. VULKAN_HPP_NOEXCEPT
  4528. {
  4529. std::size_t seed = 0;
  4530. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierExplicitCreateInfoEXT.sType );
  4531. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierExplicitCreateInfoEXT.pNext );
  4532. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierExplicitCreateInfoEXT.drmFormatModifier );
  4533. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierExplicitCreateInfoEXT.drmFormatModifierPlaneCount );
  4534. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierExplicitCreateInfoEXT.pPlaneLayouts );
  4535. return seed;
  4536. }
  4537. };
  4538. template <>
  4539. struct hash<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT>
  4540. {
  4541. std::size_t
  4542. operator()( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const & imageDrmFormatModifierListCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  4543. {
  4544. std::size_t seed = 0;
  4545. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierListCreateInfoEXT.sType );
  4546. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierListCreateInfoEXT.pNext );
  4547. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierListCreateInfoEXT.drmFormatModifierCount );
  4548. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierListCreateInfoEXT.pDrmFormatModifiers );
  4549. return seed;
  4550. }
  4551. };
  4552. template <>
  4553. struct hash<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>
  4554. {
  4555. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const & imageDrmFormatModifierPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  4556. {
  4557. std::size_t seed = 0;
  4558. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierPropertiesEXT.sType );
  4559. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierPropertiesEXT.pNext );
  4560. VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierPropertiesEXT.drmFormatModifier );
  4561. return seed;
  4562. }
  4563. };
  4564. template <>
  4565. struct hash<VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo>
  4566. {
  4567. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const & imageFormatListCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4568. {
  4569. std::size_t seed = 0;
  4570. VULKAN_HPP_HASH_COMBINE( seed, imageFormatListCreateInfo.sType );
  4571. VULKAN_HPP_HASH_COMBINE( seed, imageFormatListCreateInfo.pNext );
  4572. VULKAN_HPP_HASH_COMBINE( seed, imageFormatListCreateInfo.viewFormatCount );
  4573. VULKAN_HPP_HASH_COMBINE( seed, imageFormatListCreateInfo.pViewFormats );
  4574. return seed;
  4575. }
  4576. };
  4577. template <>
  4578. struct hash<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>
  4579. {
  4580. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const & imageFormatProperties2 ) const VULKAN_HPP_NOEXCEPT
  4581. {
  4582. std::size_t seed = 0;
  4583. VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties2.sType );
  4584. VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties2.pNext );
  4585. VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties2.imageFormatProperties );
  4586. return seed;
  4587. }
  4588. };
  4589. template <>
  4590. struct hash<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier>
  4591. {
  4592. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const & imageMemoryBarrier ) const VULKAN_HPP_NOEXCEPT
  4593. {
  4594. std::size_t seed = 0;
  4595. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.sType );
  4596. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.pNext );
  4597. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.srcAccessMask );
  4598. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.dstAccessMask );
  4599. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.oldLayout );
  4600. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.newLayout );
  4601. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.srcQueueFamilyIndex );
  4602. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.dstQueueFamilyIndex );
  4603. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.image );
  4604. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.subresourceRange );
  4605. return seed;
  4606. }
  4607. };
  4608. template <>
  4609. struct hash<VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2>
  4610. {
  4611. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const & imageMemoryRequirementsInfo2 ) const VULKAN_HPP_NOEXCEPT
  4612. {
  4613. std::size_t seed = 0;
  4614. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryRequirementsInfo2.sType );
  4615. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryRequirementsInfo2.pNext );
  4616. VULKAN_HPP_HASH_COMBINE( seed, imageMemoryRequirementsInfo2.image );
  4617. return seed;
  4618. }
  4619. };
  4620. # if defined( VK_USE_PLATFORM_FUCHSIA )
  4621. template <>
  4622. struct hash<VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA>
  4623. {
  4624. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const & imagePipeSurfaceCreateInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  4625. {
  4626. std::size_t seed = 0;
  4627. VULKAN_HPP_HASH_COMBINE( seed, imagePipeSurfaceCreateInfoFUCHSIA.sType );
  4628. VULKAN_HPP_HASH_COMBINE( seed, imagePipeSurfaceCreateInfoFUCHSIA.pNext );
  4629. VULKAN_HPP_HASH_COMBINE( seed, imagePipeSurfaceCreateInfoFUCHSIA.flags );
  4630. VULKAN_HPP_HASH_COMBINE( seed, imagePipeSurfaceCreateInfoFUCHSIA.imagePipeHandle );
  4631. return seed;
  4632. }
  4633. };
  4634. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  4635. template <>
  4636. struct hash<VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo>
  4637. {
  4638. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const & imagePlaneMemoryRequirementsInfo ) const VULKAN_HPP_NOEXCEPT
  4639. {
  4640. std::size_t seed = 0;
  4641. VULKAN_HPP_HASH_COMBINE( seed, imagePlaneMemoryRequirementsInfo.sType );
  4642. VULKAN_HPP_HASH_COMBINE( seed, imagePlaneMemoryRequirementsInfo.pNext );
  4643. VULKAN_HPP_HASH_COMBINE( seed, imagePlaneMemoryRequirementsInfo.planeAspect );
  4644. return seed;
  4645. }
  4646. };
  4647. template <>
  4648. struct hash<VULKAN_HPP_NAMESPACE::ImageResolve>
  4649. {
  4650. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageResolve const & imageResolve ) const VULKAN_HPP_NOEXCEPT
  4651. {
  4652. std::size_t seed = 0;
  4653. VULKAN_HPP_HASH_COMBINE( seed, imageResolve.srcSubresource );
  4654. VULKAN_HPP_HASH_COMBINE( seed, imageResolve.srcOffset );
  4655. VULKAN_HPP_HASH_COMBINE( seed, imageResolve.dstSubresource );
  4656. VULKAN_HPP_HASH_COMBINE( seed, imageResolve.dstOffset );
  4657. VULKAN_HPP_HASH_COMBINE( seed, imageResolve.extent );
  4658. return seed;
  4659. }
  4660. };
  4661. template <>
  4662. struct hash<VULKAN_HPP_NAMESPACE::ImageResolve2>
  4663. {
  4664. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageResolve2 const & imageResolve2 ) const VULKAN_HPP_NOEXCEPT
  4665. {
  4666. std::size_t seed = 0;
  4667. VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.sType );
  4668. VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.pNext );
  4669. VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.srcSubresource );
  4670. VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.srcOffset );
  4671. VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.dstSubresource );
  4672. VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.dstOffset );
  4673. VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.extent );
  4674. return seed;
  4675. }
  4676. };
  4677. template <>
  4678. struct hash<VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2>
  4679. {
  4680. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const & imageSparseMemoryRequirementsInfo2 ) const VULKAN_HPP_NOEXCEPT
  4681. {
  4682. std::size_t seed = 0;
  4683. VULKAN_HPP_HASH_COMBINE( seed, imageSparseMemoryRequirementsInfo2.sType );
  4684. VULKAN_HPP_HASH_COMBINE( seed, imageSparseMemoryRequirementsInfo2.pNext );
  4685. VULKAN_HPP_HASH_COMBINE( seed, imageSparseMemoryRequirementsInfo2.image );
  4686. return seed;
  4687. }
  4688. };
  4689. template <>
  4690. struct hash<VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo>
  4691. {
  4692. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const & imageStencilUsageCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4693. {
  4694. std::size_t seed = 0;
  4695. VULKAN_HPP_HASH_COMBINE( seed, imageStencilUsageCreateInfo.sType );
  4696. VULKAN_HPP_HASH_COMBINE( seed, imageStencilUsageCreateInfo.pNext );
  4697. VULKAN_HPP_HASH_COMBINE( seed, imageStencilUsageCreateInfo.stencilUsage );
  4698. return seed;
  4699. }
  4700. };
  4701. template <>
  4702. struct hash<VULKAN_HPP_NAMESPACE::ImageSubresource2EXT>
  4703. {
  4704. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSubresource2EXT const & imageSubresource2EXT ) const VULKAN_HPP_NOEXCEPT
  4705. {
  4706. std::size_t seed = 0;
  4707. VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2EXT.sType );
  4708. VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2EXT.pNext );
  4709. VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2EXT.imageSubresource );
  4710. return seed;
  4711. }
  4712. };
  4713. template <>
  4714. struct hash<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR>
  4715. {
  4716. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const & imageSwapchainCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  4717. {
  4718. std::size_t seed = 0;
  4719. VULKAN_HPP_HASH_COMBINE( seed, imageSwapchainCreateInfoKHR.sType );
  4720. VULKAN_HPP_HASH_COMBINE( seed, imageSwapchainCreateInfoKHR.pNext );
  4721. VULKAN_HPP_HASH_COMBINE( seed, imageSwapchainCreateInfoKHR.swapchain );
  4722. return seed;
  4723. }
  4724. };
  4725. template <>
  4726. struct hash<VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT>
  4727. {
  4728. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const & imageViewASTCDecodeModeEXT ) const VULKAN_HPP_NOEXCEPT
  4729. {
  4730. std::size_t seed = 0;
  4731. VULKAN_HPP_HASH_COMBINE( seed, imageViewASTCDecodeModeEXT.sType );
  4732. VULKAN_HPP_HASH_COMBINE( seed, imageViewASTCDecodeModeEXT.pNext );
  4733. VULKAN_HPP_HASH_COMBINE( seed, imageViewASTCDecodeModeEXT.decodeMode );
  4734. return seed;
  4735. }
  4736. };
  4737. template <>
  4738. struct hash<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX>
  4739. {
  4740. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX const & imageViewAddressPropertiesNVX ) const VULKAN_HPP_NOEXCEPT
  4741. {
  4742. std::size_t seed = 0;
  4743. VULKAN_HPP_HASH_COMBINE( seed, imageViewAddressPropertiesNVX.sType );
  4744. VULKAN_HPP_HASH_COMBINE( seed, imageViewAddressPropertiesNVX.pNext );
  4745. VULKAN_HPP_HASH_COMBINE( seed, imageViewAddressPropertiesNVX.deviceAddress );
  4746. VULKAN_HPP_HASH_COMBINE( seed, imageViewAddressPropertiesNVX.size );
  4747. return seed;
  4748. }
  4749. };
  4750. template <>
  4751. struct hash<VULKAN_HPP_NAMESPACE::ImageViewCreateInfo>
  4752. {
  4753. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const & imageViewCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4754. {
  4755. std::size_t seed = 0;
  4756. VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.sType );
  4757. VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.pNext );
  4758. VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.flags );
  4759. VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.image );
  4760. VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.viewType );
  4761. VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.format );
  4762. VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.components );
  4763. VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.subresourceRange );
  4764. return seed;
  4765. }
  4766. };
  4767. template <>
  4768. struct hash<VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX>
  4769. {
  4770. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const & imageViewHandleInfoNVX ) const VULKAN_HPP_NOEXCEPT
  4771. {
  4772. std::size_t seed = 0;
  4773. VULKAN_HPP_HASH_COMBINE( seed, imageViewHandleInfoNVX.sType );
  4774. VULKAN_HPP_HASH_COMBINE( seed, imageViewHandleInfoNVX.pNext );
  4775. VULKAN_HPP_HASH_COMBINE( seed, imageViewHandleInfoNVX.imageView );
  4776. VULKAN_HPP_HASH_COMBINE( seed, imageViewHandleInfoNVX.descriptorType );
  4777. VULKAN_HPP_HASH_COMBINE( seed, imageViewHandleInfoNVX.sampler );
  4778. return seed;
  4779. }
  4780. };
  4781. template <>
  4782. struct hash<VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT>
  4783. {
  4784. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT const & imageViewMinLodCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  4785. {
  4786. std::size_t seed = 0;
  4787. VULKAN_HPP_HASH_COMBINE( seed, imageViewMinLodCreateInfoEXT.sType );
  4788. VULKAN_HPP_HASH_COMBINE( seed, imageViewMinLodCreateInfoEXT.pNext );
  4789. VULKAN_HPP_HASH_COMBINE( seed, imageViewMinLodCreateInfoEXT.minLod );
  4790. return seed;
  4791. }
  4792. };
  4793. template <>
  4794. struct hash<VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM>
  4795. {
  4796. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM const & imageViewSampleWeightCreateInfoQCOM ) const VULKAN_HPP_NOEXCEPT
  4797. {
  4798. std::size_t seed = 0;
  4799. VULKAN_HPP_HASH_COMBINE( seed, imageViewSampleWeightCreateInfoQCOM.sType );
  4800. VULKAN_HPP_HASH_COMBINE( seed, imageViewSampleWeightCreateInfoQCOM.pNext );
  4801. VULKAN_HPP_HASH_COMBINE( seed, imageViewSampleWeightCreateInfoQCOM.filterCenter );
  4802. VULKAN_HPP_HASH_COMBINE( seed, imageViewSampleWeightCreateInfoQCOM.filterSize );
  4803. VULKAN_HPP_HASH_COMBINE( seed, imageViewSampleWeightCreateInfoQCOM.numPhases );
  4804. return seed;
  4805. }
  4806. };
  4807. template <>
  4808. struct hash<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo>
  4809. {
  4810. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const & imageViewUsageCreateInfo ) const VULKAN_HPP_NOEXCEPT
  4811. {
  4812. std::size_t seed = 0;
  4813. VULKAN_HPP_HASH_COMBINE( seed, imageViewUsageCreateInfo.sType );
  4814. VULKAN_HPP_HASH_COMBINE( seed, imageViewUsageCreateInfo.pNext );
  4815. VULKAN_HPP_HASH_COMBINE( seed, imageViewUsageCreateInfo.usage );
  4816. return seed;
  4817. }
  4818. };
  4819. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  4820. template <>
  4821. struct hash<VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID>
  4822. {
  4823. std::size_t
  4824. operator()( VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const & importAndroidHardwareBufferInfoANDROID ) const VULKAN_HPP_NOEXCEPT
  4825. {
  4826. std::size_t seed = 0;
  4827. VULKAN_HPP_HASH_COMBINE( seed, importAndroidHardwareBufferInfoANDROID.sType );
  4828. VULKAN_HPP_HASH_COMBINE( seed, importAndroidHardwareBufferInfoANDROID.pNext );
  4829. VULKAN_HPP_HASH_COMBINE( seed, importAndroidHardwareBufferInfoANDROID.buffer );
  4830. return seed;
  4831. }
  4832. };
  4833. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  4834. template <>
  4835. struct hash<VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR>
  4836. {
  4837. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const & importFenceFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
  4838. {
  4839. std::size_t seed = 0;
  4840. VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.sType );
  4841. VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.pNext );
  4842. VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.fence );
  4843. VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.flags );
  4844. VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.handleType );
  4845. VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.fd );
  4846. return seed;
  4847. }
  4848. };
  4849. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  4850. template <>
  4851. struct hash<VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR>
  4852. {
  4853. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const & importFenceWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
  4854. {
  4855. std::size_t seed = 0;
  4856. VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.sType );
  4857. VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.pNext );
  4858. VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.fence );
  4859. VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.flags );
  4860. VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.handleType );
  4861. VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.handle );
  4862. VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.name );
  4863. return seed;
  4864. }
  4865. };
  4866. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  4867. # if defined( VK_USE_PLATFORM_FUCHSIA )
  4868. template <>
  4869. struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA>
  4870. {
  4871. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA const & importMemoryBufferCollectionFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  4872. {
  4873. std::size_t seed = 0;
  4874. VULKAN_HPP_HASH_COMBINE( seed, importMemoryBufferCollectionFUCHSIA.sType );
  4875. VULKAN_HPP_HASH_COMBINE( seed, importMemoryBufferCollectionFUCHSIA.pNext );
  4876. VULKAN_HPP_HASH_COMBINE( seed, importMemoryBufferCollectionFUCHSIA.collection );
  4877. VULKAN_HPP_HASH_COMBINE( seed, importMemoryBufferCollectionFUCHSIA.index );
  4878. return seed;
  4879. }
  4880. };
  4881. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  4882. template <>
  4883. struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR>
  4884. {
  4885. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const & importMemoryFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
  4886. {
  4887. std::size_t seed = 0;
  4888. VULKAN_HPP_HASH_COMBINE( seed, importMemoryFdInfoKHR.sType );
  4889. VULKAN_HPP_HASH_COMBINE( seed, importMemoryFdInfoKHR.pNext );
  4890. VULKAN_HPP_HASH_COMBINE( seed, importMemoryFdInfoKHR.handleType );
  4891. VULKAN_HPP_HASH_COMBINE( seed, importMemoryFdInfoKHR.fd );
  4892. return seed;
  4893. }
  4894. };
  4895. template <>
  4896. struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT>
  4897. {
  4898. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const & importMemoryHostPointerInfoEXT ) const VULKAN_HPP_NOEXCEPT
  4899. {
  4900. std::size_t seed = 0;
  4901. VULKAN_HPP_HASH_COMBINE( seed, importMemoryHostPointerInfoEXT.sType );
  4902. VULKAN_HPP_HASH_COMBINE( seed, importMemoryHostPointerInfoEXT.pNext );
  4903. VULKAN_HPP_HASH_COMBINE( seed, importMemoryHostPointerInfoEXT.handleType );
  4904. VULKAN_HPP_HASH_COMBINE( seed, importMemoryHostPointerInfoEXT.pHostPointer );
  4905. return seed;
  4906. }
  4907. };
  4908. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  4909. template <>
  4910. struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR>
  4911. {
  4912. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const & importMemoryWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
  4913. {
  4914. std::size_t seed = 0;
  4915. VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoKHR.sType );
  4916. VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoKHR.pNext );
  4917. VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoKHR.handleType );
  4918. VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoKHR.handle );
  4919. VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoKHR.name );
  4920. return seed;
  4921. }
  4922. };
  4923. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  4924. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  4925. template <>
  4926. struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV>
  4927. {
  4928. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const & importMemoryWin32HandleInfoNV ) const VULKAN_HPP_NOEXCEPT
  4929. {
  4930. std::size_t seed = 0;
  4931. VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoNV.sType );
  4932. VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoNV.pNext );
  4933. VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoNV.handleType );
  4934. VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoNV.handle );
  4935. return seed;
  4936. }
  4937. };
  4938. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  4939. # if defined( VK_USE_PLATFORM_FUCHSIA )
  4940. template <>
  4941. struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA>
  4942. {
  4943. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA const & importMemoryZirconHandleInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  4944. {
  4945. std::size_t seed = 0;
  4946. VULKAN_HPP_HASH_COMBINE( seed, importMemoryZirconHandleInfoFUCHSIA.sType );
  4947. VULKAN_HPP_HASH_COMBINE( seed, importMemoryZirconHandleInfoFUCHSIA.pNext );
  4948. VULKAN_HPP_HASH_COMBINE( seed, importMemoryZirconHandleInfoFUCHSIA.handleType );
  4949. VULKAN_HPP_HASH_COMBINE( seed, importMemoryZirconHandleInfoFUCHSIA.handle );
  4950. return seed;
  4951. }
  4952. };
  4953. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  4954. # if defined( VK_USE_PLATFORM_METAL_EXT )
  4955. template <>
  4956. struct hash<VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT>
  4957. {
  4958. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT const & importMetalBufferInfoEXT ) const VULKAN_HPP_NOEXCEPT
  4959. {
  4960. std::size_t seed = 0;
  4961. VULKAN_HPP_HASH_COMBINE( seed, importMetalBufferInfoEXT.sType );
  4962. VULKAN_HPP_HASH_COMBINE( seed, importMetalBufferInfoEXT.pNext );
  4963. VULKAN_HPP_HASH_COMBINE( seed, importMetalBufferInfoEXT.mtlBuffer );
  4964. return seed;
  4965. }
  4966. };
  4967. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  4968. # if defined( VK_USE_PLATFORM_METAL_EXT )
  4969. template <>
  4970. struct hash<VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT>
  4971. {
  4972. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT const & importMetalIOSurfaceInfoEXT ) const VULKAN_HPP_NOEXCEPT
  4973. {
  4974. std::size_t seed = 0;
  4975. VULKAN_HPP_HASH_COMBINE( seed, importMetalIOSurfaceInfoEXT.sType );
  4976. VULKAN_HPP_HASH_COMBINE( seed, importMetalIOSurfaceInfoEXT.pNext );
  4977. VULKAN_HPP_HASH_COMBINE( seed, importMetalIOSurfaceInfoEXT.ioSurface );
  4978. return seed;
  4979. }
  4980. };
  4981. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  4982. # if defined( VK_USE_PLATFORM_METAL_EXT )
  4983. template <>
  4984. struct hash<VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT>
  4985. {
  4986. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT const & importMetalSharedEventInfoEXT ) const VULKAN_HPP_NOEXCEPT
  4987. {
  4988. std::size_t seed = 0;
  4989. VULKAN_HPP_HASH_COMBINE( seed, importMetalSharedEventInfoEXT.sType );
  4990. VULKAN_HPP_HASH_COMBINE( seed, importMetalSharedEventInfoEXT.pNext );
  4991. VULKAN_HPP_HASH_COMBINE( seed, importMetalSharedEventInfoEXT.mtlSharedEvent );
  4992. return seed;
  4993. }
  4994. };
  4995. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  4996. # if defined( VK_USE_PLATFORM_METAL_EXT )
  4997. template <>
  4998. struct hash<VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT>
  4999. {
  5000. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT const & importMetalTextureInfoEXT ) const VULKAN_HPP_NOEXCEPT
  5001. {
  5002. std::size_t seed = 0;
  5003. VULKAN_HPP_HASH_COMBINE( seed, importMetalTextureInfoEXT.sType );
  5004. VULKAN_HPP_HASH_COMBINE( seed, importMetalTextureInfoEXT.pNext );
  5005. VULKAN_HPP_HASH_COMBINE( seed, importMetalTextureInfoEXT.plane );
  5006. VULKAN_HPP_HASH_COMBINE( seed, importMetalTextureInfoEXT.mtlTexture );
  5007. return seed;
  5008. }
  5009. };
  5010. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  5011. template <>
  5012. struct hash<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR>
  5013. {
  5014. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const & importSemaphoreFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
  5015. {
  5016. std::size_t seed = 0;
  5017. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.sType );
  5018. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.pNext );
  5019. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.semaphore );
  5020. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.flags );
  5021. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.handleType );
  5022. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.fd );
  5023. return seed;
  5024. }
  5025. };
  5026. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  5027. template <>
  5028. struct hash<VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR>
  5029. {
  5030. std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const & importSemaphoreWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
  5031. {
  5032. std::size_t seed = 0;
  5033. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.sType );
  5034. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.pNext );
  5035. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.semaphore );
  5036. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.flags );
  5037. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.handleType );
  5038. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.handle );
  5039. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.name );
  5040. return seed;
  5041. }
  5042. };
  5043. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  5044. # if defined( VK_USE_PLATFORM_FUCHSIA )
  5045. template <>
  5046. struct hash<VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA>
  5047. {
  5048. std::size_t
  5049. operator()( VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA const & importSemaphoreZirconHandleInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  5050. {
  5051. std::size_t seed = 0;
  5052. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.sType );
  5053. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.pNext );
  5054. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.semaphore );
  5055. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.flags );
  5056. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.handleType );
  5057. VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.zirconHandle );
  5058. return seed;
  5059. }
  5060. };
  5061. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  5062. template <>
  5063. struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV>
  5064. {
  5065. std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const & indirectCommandsLayoutTokenNV ) const VULKAN_HPP_NOEXCEPT
  5066. {
  5067. std::size_t seed = 0;
  5068. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.sType );
  5069. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pNext );
  5070. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.tokenType );
  5071. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.stream );
  5072. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.offset );
  5073. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.vertexBindingUnit );
  5074. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.vertexDynamicStride );
  5075. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pushconstantPipelineLayout );
  5076. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pushconstantShaderStageFlags );
  5077. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pushconstantOffset );
  5078. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pushconstantSize );
  5079. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.indirectStateFlags );
  5080. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.indexTypeCount );
  5081. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pIndexTypes );
  5082. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pIndexTypeValues );
  5083. return seed;
  5084. }
  5085. };
  5086. template <>
  5087. struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV>
  5088. {
  5089. std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const & indirectCommandsLayoutCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  5090. {
  5091. std::size_t seed = 0;
  5092. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.sType );
  5093. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.pNext );
  5094. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.flags );
  5095. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.pipelineBindPoint );
  5096. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.tokenCount );
  5097. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.pTokens );
  5098. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.streamCount );
  5099. VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.pStreamStrides );
  5100. return seed;
  5101. }
  5102. };
  5103. template <>
  5104. struct hash<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL>
  5105. {
  5106. std::size_t operator()( VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const & initializePerformanceApiInfoINTEL ) const VULKAN_HPP_NOEXCEPT
  5107. {
  5108. std::size_t seed = 0;
  5109. VULKAN_HPP_HASH_COMBINE( seed, initializePerformanceApiInfoINTEL.sType );
  5110. VULKAN_HPP_HASH_COMBINE( seed, initializePerformanceApiInfoINTEL.pNext );
  5111. VULKAN_HPP_HASH_COMBINE( seed, initializePerformanceApiInfoINTEL.pUserData );
  5112. return seed;
  5113. }
  5114. };
  5115. template <>
  5116. struct hash<VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference>
  5117. {
  5118. std::size_t operator()( VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference const & inputAttachmentAspectReference ) const VULKAN_HPP_NOEXCEPT
  5119. {
  5120. std::size_t seed = 0;
  5121. VULKAN_HPP_HASH_COMBINE( seed, inputAttachmentAspectReference.subpass );
  5122. VULKAN_HPP_HASH_COMBINE( seed, inputAttachmentAspectReference.inputAttachmentIndex );
  5123. VULKAN_HPP_HASH_COMBINE( seed, inputAttachmentAspectReference.aspectMask );
  5124. return seed;
  5125. }
  5126. };
  5127. template <>
  5128. struct hash<VULKAN_HPP_NAMESPACE::InstanceCreateInfo>
  5129. {
  5130. std::size_t operator()( VULKAN_HPP_NAMESPACE::InstanceCreateInfo const & instanceCreateInfo ) const VULKAN_HPP_NOEXCEPT
  5131. {
  5132. std::size_t seed = 0;
  5133. VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.sType );
  5134. VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.pNext );
  5135. VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.flags );
  5136. VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.pApplicationInfo );
  5137. VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.enabledLayerCount );
  5138. for ( size_t i = 0; i < instanceCreateInfo.enabledLayerCount; ++i )
  5139. {
  5140. for ( const char * p = instanceCreateInfo.ppEnabledLayerNames[i]; *p != '\0'; ++p )
  5141. {
  5142. VULKAN_HPP_HASH_COMBINE( seed, *p );
  5143. }
  5144. }
  5145. VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.enabledExtensionCount );
  5146. for ( size_t i = 0; i < instanceCreateInfo.enabledExtensionCount; ++i )
  5147. {
  5148. for ( const char * p = instanceCreateInfo.ppEnabledExtensionNames[i]; *p != '\0'; ++p )
  5149. {
  5150. VULKAN_HPP_HASH_COMBINE( seed, *p );
  5151. }
  5152. }
  5153. return seed;
  5154. }
  5155. };
  5156. template <>
  5157. struct hash<VULKAN_HPP_NAMESPACE::LayerProperties>
  5158. {
  5159. std::size_t operator()( VULKAN_HPP_NAMESPACE::LayerProperties const & layerProperties ) const VULKAN_HPP_NOEXCEPT
  5160. {
  5161. std::size_t seed = 0;
  5162. for ( size_t i = 0; i < VK_MAX_EXTENSION_NAME_SIZE; ++i )
  5163. {
  5164. VULKAN_HPP_HASH_COMBINE( seed, layerProperties.layerName[i] );
  5165. }
  5166. VULKAN_HPP_HASH_COMBINE( seed, layerProperties.specVersion );
  5167. VULKAN_HPP_HASH_COMBINE( seed, layerProperties.implementationVersion );
  5168. for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
  5169. {
  5170. VULKAN_HPP_HASH_COMBINE( seed, layerProperties.description[i] );
  5171. }
  5172. return seed;
  5173. }
  5174. };
  5175. # if defined( VK_USE_PLATFORM_MACOS_MVK )
  5176. template <>
  5177. struct hash<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK>
  5178. {
  5179. std::size_t operator()( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const & macOSSurfaceCreateInfoMVK ) const VULKAN_HPP_NOEXCEPT
  5180. {
  5181. std::size_t seed = 0;
  5182. VULKAN_HPP_HASH_COMBINE( seed, macOSSurfaceCreateInfoMVK.sType );
  5183. VULKAN_HPP_HASH_COMBINE( seed, macOSSurfaceCreateInfoMVK.pNext );
  5184. VULKAN_HPP_HASH_COMBINE( seed, macOSSurfaceCreateInfoMVK.flags );
  5185. VULKAN_HPP_HASH_COMBINE( seed, macOSSurfaceCreateInfoMVK.pView );
  5186. return seed;
  5187. }
  5188. };
  5189. # endif /*VK_USE_PLATFORM_MACOS_MVK*/
  5190. template <>
  5191. struct hash<VULKAN_HPP_NAMESPACE::MappedMemoryRange>
  5192. {
  5193. std::size_t operator()( VULKAN_HPP_NAMESPACE::MappedMemoryRange const & mappedMemoryRange ) const VULKAN_HPP_NOEXCEPT
  5194. {
  5195. std::size_t seed = 0;
  5196. VULKAN_HPP_HASH_COMBINE( seed, mappedMemoryRange.sType );
  5197. VULKAN_HPP_HASH_COMBINE( seed, mappedMemoryRange.pNext );
  5198. VULKAN_HPP_HASH_COMBINE( seed, mappedMemoryRange.memory );
  5199. VULKAN_HPP_HASH_COMBINE( seed, mappedMemoryRange.offset );
  5200. VULKAN_HPP_HASH_COMBINE( seed, mappedMemoryRange.size );
  5201. return seed;
  5202. }
  5203. };
  5204. template <>
  5205. struct hash<VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo>
  5206. {
  5207. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const & memoryAllocateFlagsInfo ) const VULKAN_HPP_NOEXCEPT
  5208. {
  5209. std::size_t seed = 0;
  5210. VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateFlagsInfo.sType );
  5211. VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateFlagsInfo.pNext );
  5212. VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateFlagsInfo.flags );
  5213. VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateFlagsInfo.deviceMask );
  5214. return seed;
  5215. }
  5216. };
  5217. template <>
  5218. struct hash<VULKAN_HPP_NAMESPACE::MemoryAllocateInfo>
  5219. {
  5220. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const & memoryAllocateInfo ) const VULKAN_HPP_NOEXCEPT
  5221. {
  5222. std::size_t seed = 0;
  5223. VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateInfo.sType );
  5224. VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateInfo.pNext );
  5225. VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateInfo.allocationSize );
  5226. VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateInfo.memoryTypeIndex );
  5227. return seed;
  5228. }
  5229. };
  5230. template <>
  5231. struct hash<VULKAN_HPP_NAMESPACE::MemoryBarrier>
  5232. {
  5233. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryBarrier const & memoryBarrier ) const VULKAN_HPP_NOEXCEPT
  5234. {
  5235. std::size_t seed = 0;
  5236. VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier.sType );
  5237. VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier.pNext );
  5238. VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier.srcAccessMask );
  5239. VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier.dstAccessMask );
  5240. return seed;
  5241. }
  5242. };
  5243. template <>
  5244. struct hash<VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo>
  5245. {
  5246. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const & memoryDedicatedAllocateInfo ) const VULKAN_HPP_NOEXCEPT
  5247. {
  5248. std::size_t seed = 0;
  5249. VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfo.sType );
  5250. VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfo.pNext );
  5251. VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfo.image );
  5252. VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfo.buffer );
  5253. return seed;
  5254. }
  5255. };
  5256. template <>
  5257. struct hash<VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements>
  5258. {
  5259. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const & memoryDedicatedRequirements ) const VULKAN_HPP_NOEXCEPT
  5260. {
  5261. std::size_t seed = 0;
  5262. VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedRequirements.sType );
  5263. VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedRequirements.pNext );
  5264. VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedRequirements.prefersDedicatedAllocation );
  5265. VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedRequirements.requiresDedicatedAllocation );
  5266. return seed;
  5267. }
  5268. };
  5269. template <>
  5270. struct hash<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR>
  5271. {
  5272. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const & memoryFdPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  5273. {
  5274. std::size_t seed = 0;
  5275. VULKAN_HPP_HASH_COMBINE( seed, memoryFdPropertiesKHR.sType );
  5276. VULKAN_HPP_HASH_COMBINE( seed, memoryFdPropertiesKHR.pNext );
  5277. VULKAN_HPP_HASH_COMBINE( seed, memoryFdPropertiesKHR.memoryTypeBits );
  5278. return seed;
  5279. }
  5280. };
  5281. # if defined( VK_USE_PLATFORM_ANDROID_KHR )
  5282. template <>
  5283. struct hash<VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID>
  5284. {
  5285. std::size_t
  5286. operator()( VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const & memoryGetAndroidHardwareBufferInfoANDROID ) const VULKAN_HPP_NOEXCEPT
  5287. {
  5288. std::size_t seed = 0;
  5289. VULKAN_HPP_HASH_COMBINE( seed, memoryGetAndroidHardwareBufferInfoANDROID.sType );
  5290. VULKAN_HPP_HASH_COMBINE( seed, memoryGetAndroidHardwareBufferInfoANDROID.pNext );
  5291. VULKAN_HPP_HASH_COMBINE( seed, memoryGetAndroidHardwareBufferInfoANDROID.memory );
  5292. return seed;
  5293. }
  5294. };
  5295. # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
  5296. template <>
  5297. struct hash<VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR>
  5298. {
  5299. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const & memoryGetFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
  5300. {
  5301. std::size_t seed = 0;
  5302. VULKAN_HPP_HASH_COMBINE( seed, memoryGetFdInfoKHR.sType );
  5303. VULKAN_HPP_HASH_COMBINE( seed, memoryGetFdInfoKHR.pNext );
  5304. VULKAN_HPP_HASH_COMBINE( seed, memoryGetFdInfoKHR.memory );
  5305. VULKAN_HPP_HASH_COMBINE( seed, memoryGetFdInfoKHR.handleType );
  5306. return seed;
  5307. }
  5308. };
  5309. template <>
  5310. struct hash<VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV>
  5311. {
  5312. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV const & memoryGetRemoteAddressInfoNV ) const VULKAN_HPP_NOEXCEPT
  5313. {
  5314. std::size_t seed = 0;
  5315. VULKAN_HPP_HASH_COMBINE( seed, memoryGetRemoteAddressInfoNV.sType );
  5316. VULKAN_HPP_HASH_COMBINE( seed, memoryGetRemoteAddressInfoNV.pNext );
  5317. VULKAN_HPP_HASH_COMBINE( seed, memoryGetRemoteAddressInfoNV.memory );
  5318. VULKAN_HPP_HASH_COMBINE( seed, memoryGetRemoteAddressInfoNV.handleType );
  5319. return seed;
  5320. }
  5321. };
  5322. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  5323. template <>
  5324. struct hash<VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR>
  5325. {
  5326. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const & memoryGetWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
  5327. {
  5328. std::size_t seed = 0;
  5329. VULKAN_HPP_HASH_COMBINE( seed, memoryGetWin32HandleInfoKHR.sType );
  5330. VULKAN_HPP_HASH_COMBINE( seed, memoryGetWin32HandleInfoKHR.pNext );
  5331. VULKAN_HPP_HASH_COMBINE( seed, memoryGetWin32HandleInfoKHR.memory );
  5332. VULKAN_HPP_HASH_COMBINE( seed, memoryGetWin32HandleInfoKHR.handleType );
  5333. return seed;
  5334. }
  5335. };
  5336. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  5337. # if defined( VK_USE_PLATFORM_FUCHSIA )
  5338. template <>
  5339. struct hash<VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA>
  5340. {
  5341. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA const & memoryGetZirconHandleInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  5342. {
  5343. std::size_t seed = 0;
  5344. VULKAN_HPP_HASH_COMBINE( seed, memoryGetZirconHandleInfoFUCHSIA.sType );
  5345. VULKAN_HPP_HASH_COMBINE( seed, memoryGetZirconHandleInfoFUCHSIA.pNext );
  5346. VULKAN_HPP_HASH_COMBINE( seed, memoryGetZirconHandleInfoFUCHSIA.memory );
  5347. VULKAN_HPP_HASH_COMBINE( seed, memoryGetZirconHandleInfoFUCHSIA.handleType );
  5348. return seed;
  5349. }
  5350. };
  5351. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  5352. template <>
  5353. struct hash<VULKAN_HPP_NAMESPACE::MemoryHeap>
  5354. {
  5355. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryHeap const & memoryHeap ) const VULKAN_HPP_NOEXCEPT
  5356. {
  5357. std::size_t seed = 0;
  5358. VULKAN_HPP_HASH_COMBINE( seed, memoryHeap.size );
  5359. VULKAN_HPP_HASH_COMBINE( seed, memoryHeap.flags );
  5360. return seed;
  5361. }
  5362. };
  5363. template <>
  5364. struct hash<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT>
  5365. {
  5366. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const & memoryHostPointerPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  5367. {
  5368. std::size_t seed = 0;
  5369. VULKAN_HPP_HASH_COMBINE( seed, memoryHostPointerPropertiesEXT.sType );
  5370. VULKAN_HPP_HASH_COMBINE( seed, memoryHostPointerPropertiesEXT.pNext );
  5371. VULKAN_HPP_HASH_COMBINE( seed, memoryHostPointerPropertiesEXT.memoryTypeBits );
  5372. return seed;
  5373. }
  5374. };
  5375. template <>
  5376. struct hash<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo>
  5377. {
  5378. std::size_t
  5379. operator()( VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const & memoryOpaqueCaptureAddressAllocateInfo ) const VULKAN_HPP_NOEXCEPT
  5380. {
  5381. std::size_t seed = 0;
  5382. VULKAN_HPP_HASH_COMBINE( seed, memoryOpaqueCaptureAddressAllocateInfo.sType );
  5383. VULKAN_HPP_HASH_COMBINE( seed, memoryOpaqueCaptureAddressAllocateInfo.pNext );
  5384. VULKAN_HPP_HASH_COMBINE( seed, memoryOpaqueCaptureAddressAllocateInfo.opaqueCaptureAddress );
  5385. return seed;
  5386. }
  5387. };
  5388. template <>
  5389. struct hash<VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT>
  5390. {
  5391. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const & memoryPriorityAllocateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  5392. {
  5393. std::size_t seed = 0;
  5394. VULKAN_HPP_HASH_COMBINE( seed, memoryPriorityAllocateInfoEXT.sType );
  5395. VULKAN_HPP_HASH_COMBINE( seed, memoryPriorityAllocateInfoEXT.pNext );
  5396. VULKAN_HPP_HASH_COMBINE( seed, memoryPriorityAllocateInfoEXT.priority );
  5397. return seed;
  5398. }
  5399. };
  5400. template <>
  5401. struct hash<VULKAN_HPP_NAMESPACE::MemoryRequirements>
  5402. {
  5403. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryRequirements const & memoryRequirements ) const VULKAN_HPP_NOEXCEPT
  5404. {
  5405. std::size_t seed = 0;
  5406. VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements.size );
  5407. VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements.alignment );
  5408. VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements.memoryTypeBits );
  5409. return seed;
  5410. }
  5411. };
  5412. template <>
  5413. struct hash<VULKAN_HPP_NAMESPACE::MemoryRequirements2>
  5414. {
  5415. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryRequirements2 const & memoryRequirements2 ) const VULKAN_HPP_NOEXCEPT
  5416. {
  5417. std::size_t seed = 0;
  5418. VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements2.sType );
  5419. VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements2.pNext );
  5420. VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements2.memoryRequirements );
  5421. return seed;
  5422. }
  5423. };
  5424. template <>
  5425. struct hash<VULKAN_HPP_NAMESPACE::MemoryType>
  5426. {
  5427. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryType const & memoryType ) const VULKAN_HPP_NOEXCEPT
  5428. {
  5429. std::size_t seed = 0;
  5430. VULKAN_HPP_HASH_COMBINE( seed, memoryType.propertyFlags );
  5431. VULKAN_HPP_HASH_COMBINE( seed, memoryType.heapIndex );
  5432. return seed;
  5433. }
  5434. };
  5435. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  5436. template <>
  5437. struct hash<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR>
  5438. {
  5439. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const & memoryWin32HandlePropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  5440. {
  5441. std::size_t seed = 0;
  5442. VULKAN_HPP_HASH_COMBINE( seed, memoryWin32HandlePropertiesKHR.sType );
  5443. VULKAN_HPP_HASH_COMBINE( seed, memoryWin32HandlePropertiesKHR.pNext );
  5444. VULKAN_HPP_HASH_COMBINE( seed, memoryWin32HandlePropertiesKHR.memoryTypeBits );
  5445. return seed;
  5446. }
  5447. };
  5448. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  5449. # if defined( VK_USE_PLATFORM_FUCHSIA )
  5450. template <>
  5451. struct hash<VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA>
  5452. {
  5453. std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA const & memoryZirconHandlePropertiesFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  5454. {
  5455. std::size_t seed = 0;
  5456. VULKAN_HPP_HASH_COMBINE( seed, memoryZirconHandlePropertiesFUCHSIA.sType );
  5457. VULKAN_HPP_HASH_COMBINE( seed, memoryZirconHandlePropertiesFUCHSIA.pNext );
  5458. VULKAN_HPP_HASH_COMBINE( seed, memoryZirconHandlePropertiesFUCHSIA.memoryTypeBits );
  5459. return seed;
  5460. }
  5461. };
  5462. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  5463. # if defined( VK_USE_PLATFORM_METAL_EXT )
  5464. template <>
  5465. struct hash<VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT>
  5466. {
  5467. std::size_t operator()( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const & metalSurfaceCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  5468. {
  5469. std::size_t seed = 0;
  5470. VULKAN_HPP_HASH_COMBINE( seed, metalSurfaceCreateInfoEXT.sType );
  5471. VULKAN_HPP_HASH_COMBINE( seed, metalSurfaceCreateInfoEXT.pNext );
  5472. VULKAN_HPP_HASH_COMBINE( seed, metalSurfaceCreateInfoEXT.flags );
  5473. VULKAN_HPP_HASH_COMBINE( seed, metalSurfaceCreateInfoEXT.pLayer );
  5474. return seed;
  5475. }
  5476. };
  5477. # endif /*VK_USE_PLATFORM_METAL_EXT*/
  5478. template <>
  5479. struct hash<VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT>
  5480. {
  5481. std::size_t operator()( VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT const & multiDrawIndexedInfoEXT ) const VULKAN_HPP_NOEXCEPT
  5482. {
  5483. std::size_t seed = 0;
  5484. VULKAN_HPP_HASH_COMBINE( seed, multiDrawIndexedInfoEXT.firstIndex );
  5485. VULKAN_HPP_HASH_COMBINE( seed, multiDrawIndexedInfoEXT.indexCount );
  5486. VULKAN_HPP_HASH_COMBINE( seed, multiDrawIndexedInfoEXT.vertexOffset );
  5487. return seed;
  5488. }
  5489. };
  5490. template <>
  5491. struct hash<VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT>
  5492. {
  5493. std::size_t operator()( VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT const & multiDrawInfoEXT ) const VULKAN_HPP_NOEXCEPT
  5494. {
  5495. std::size_t seed = 0;
  5496. VULKAN_HPP_HASH_COMBINE( seed, multiDrawInfoEXT.firstVertex );
  5497. VULKAN_HPP_HASH_COMBINE( seed, multiDrawInfoEXT.vertexCount );
  5498. return seed;
  5499. }
  5500. };
  5501. template <>
  5502. struct hash<VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT>
  5503. {
  5504. std::size_t operator()( VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const & multisamplePropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  5505. {
  5506. std::size_t seed = 0;
  5507. VULKAN_HPP_HASH_COMBINE( seed, multisamplePropertiesEXT.sType );
  5508. VULKAN_HPP_HASH_COMBINE( seed, multisamplePropertiesEXT.pNext );
  5509. VULKAN_HPP_HASH_COMBINE( seed, multisamplePropertiesEXT.maxSampleLocationGridSize );
  5510. return seed;
  5511. }
  5512. };
  5513. template <>
  5514. struct hash<VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT>
  5515. {
  5516. std::size_t
  5517. operator()( VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT const & multisampledRenderToSingleSampledInfoEXT ) const VULKAN_HPP_NOEXCEPT
  5518. {
  5519. std::size_t seed = 0;
  5520. VULKAN_HPP_HASH_COMBINE( seed, multisampledRenderToSingleSampledInfoEXT.sType );
  5521. VULKAN_HPP_HASH_COMBINE( seed, multisampledRenderToSingleSampledInfoEXT.pNext );
  5522. VULKAN_HPP_HASH_COMBINE( seed, multisampledRenderToSingleSampledInfoEXT.multisampledRenderToSingleSampledEnable );
  5523. VULKAN_HPP_HASH_COMBINE( seed, multisampledRenderToSingleSampledInfoEXT.rasterizationSamples );
  5524. return seed;
  5525. }
  5526. };
  5527. template <>
  5528. struct hash<VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX>
  5529. {
  5530. std::size_t operator()( VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX const & multiviewPerViewAttributesInfoNVX ) const VULKAN_HPP_NOEXCEPT
  5531. {
  5532. std::size_t seed = 0;
  5533. VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewAttributesInfoNVX.sType );
  5534. VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewAttributesInfoNVX.pNext );
  5535. VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewAttributesInfoNVX.perViewAttributes );
  5536. VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewAttributesInfoNVX.perViewAttributesPositionXOnly );
  5537. return seed;
  5538. }
  5539. };
  5540. template <>
  5541. struct hash<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE>
  5542. {
  5543. std::size_t operator()( VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE const & mutableDescriptorTypeListVALVE ) const VULKAN_HPP_NOEXCEPT
  5544. {
  5545. std::size_t seed = 0;
  5546. VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeListVALVE.descriptorTypeCount );
  5547. VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeListVALVE.pDescriptorTypes );
  5548. return seed;
  5549. }
  5550. };
  5551. template <>
  5552. struct hash<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE>
  5553. {
  5554. std::size_t operator()( VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoVALVE const & mutableDescriptorTypeCreateInfoVALVE ) const VULKAN_HPP_NOEXCEPT
  5555. {
  5556. std::size_t seed = 0;
  5557. VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeCreateInfoVALVE.sType );
  5558. VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeCreateInfoVALVE.pNext );
  5559. VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeCreateInfoVALVE.mutableDescriptorTypeListCount );
  5560. VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeCreateInfoVALVE.pMutableDescriptorTypeLists );
  5561. return seed;
  5562. }
  5563. };
  5564. template <>
  5565. struct hash<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE>
  5566. {
  5567. std::size_t operator()( VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const & pastPresentationTimingGOOGLE ) const VULKAN_HPP_NOEXCEPT
  5568. {
  5569. std::size_t seed = 0;
  5570. VULKAN_HPP_HASH_COMBINE( seed, pastPresentationTimingGOOGLE.presentID );
  5571. VULKAN_HPP_HASH_COMBINE( seed, pastPresentationTimingGOOGLE.desiredPresentTime );
  5572. VULKAN_HPP_HASH_COMBINE( seed, pastPresentationTimingGOOGLE.actualPresentTime );
  5573. VULKAN_HPP_HASH_COMBINE( seed, pastPresentationTimingGOOGLE.earliestPresentTime );
  5574. VULKAN_HPP_HASH_COMBINE( seed, pastPresentationTimingGOOGLE.presentMargin );
  5575. return seed;
  5576. }
  5577. };
  5578. template <>
  5579. struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL>
  5580. {
  5581. std::size_t
  5582. operator()( VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & performanceConfigurationAcquireInfoINTEL ) const VULKAN_HPP_NOEXCEPT
  5583. {
  5584. std::size_t seed = 0;
  5585. VULKAN_HPP_HASH_COMBINE( seed, performanceConfigurationAcquireInfoINTEL.sType );
  5586. VULKAN_HPP_HASH_COMBINE( seed, performanceConfigurationAcquireInfoINTEL.pNext );
  5587. VULKAN_HPP_HASH_COMBINE( seed, performanceConfigurationAcquireInfoINTEL.type );
  5588. return seed;
  5589. }
  5590. };
  5591. template <>
  5592. struct hash<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>
  5593. {
  5594. std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const & performanceCounterDescriptionKHR ) const VULKAN_HPP_NOEXCEPT
  5595. {
  5596. std::size_t seed = 0;
  5597. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.sType );
  5598. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.pNext );
  5599. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.flags );
  5600. for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
  5601. {
  5602. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.name[i] );
  5603. }
  5604. for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
  5605. {
  5606. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.category[i] );
  5607. }
  5608. for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
  5609. {
  5610. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.description[i] );
  5611. }
  5612. return seed;
  5613. }
  5614. };
  5615. template <>
  5616. struct hash<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>
  5617. {
  5618. std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const & performanceCounterKHR ) const VULKAN_HPP_NOEXCEPT
  5619. {
  5620. std::size_t seed = 0;
  5621. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.sType );
  5622. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.pNext );
  5623. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.unit );
  5624. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.scope );
  5625. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.storage );
  5626. for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
  5627. {
  5628. VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.uuid[i] );
  5629. }
  5630. return seed;
  5631. }
  5632. };
  5633. template <>
  5634. struct hash<VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL>
  5635. {
  5636. std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const & performanceMarkerInfoINTEL ) const VULKAN_HPP_NOEXCEPT
  5637. {
  5638. std::size_t seed = 0;
  5639. VULKAN_HPP_HASH_COMBINE( seed, performanceMarkerInfoINTEL.sType );
  5640. VULKAN_HPP_HASH_COMBINE( seed, performanceMarkerInfoINTEL.pNext );
  5641. VULKAN_HPP_HASH_COMBINE( seed, performanceMarkerInfoINTEL.marker );
  5642. return seed;
  5643. }
  5644. };
  5645. template <>
  5646. struct hash<VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL>
  5647. {
  5648. std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const & performanceOverrideInfoINTEL ) const VULKAN_HPP_NOEXCEPT
  5649. {
  5650. std::size_t seed = 0;
  5651. VULKAN_HPP_HASH_COMBINE( seed, performanceOverrideInfoINTEL.sType );
  5652. VULKAN_HPP_HASH_COMBINE( seed, performanceOverrideInfoINTEL.pNext );
  5653. VULKAN_HPP_HASH_COMBINE( seed, performanceOverrideInfoINTEL.type );
  5654. VULKAN_HPP_HASH_COMBINE( seed, performanceOverrideInfoINTEL.enable );
  5655. VULKAN_HPP_HASH_COMBINE( seed, performanceOverrideInfoINTEL.parameter );
  5656. return seed;
  5657. }
  5658. };
  5659. template <>
  5660. struct hash<VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR>
  5661. {
  5662. std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const & performanceQuerySubmitInfoKHR ) const VULKAN_HPP_NOEXCEPT
  5663. {
  5664. std::size_t seed = 0;
  5665. VULKAN_HPP_HASH_COMBINE( seed, performanceQuerySubmitInfoKHR.sType );
  5666. VULKAN_HPP_HASH_COMBINE( seed, performanceQuerySubmitInfoKHR.pNext );
  5667. VULKAN_HPP_HASH_COMBINE( seed, performanceQuerySubmitInfoKHR.counterPassIndex );
  5668. return seed;
  5669. }
  5670. };
  5671. template <>
  5672. struct hash<VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL>
  5673. {
  5674. std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const & performanceStreamMarkerInfoINTEL ) const VULKAN_HPP_NOEXCEPT
  5675. {
  5676. std::size_t seed = 0;
  5677. VULKAN_HPP_HASH_COMBINE( seed, performanceStreamMarkerInfoINTEL.sType );
  5678. VULKAN_HPP_HASH_COMBINE( seed, performanceStreamMarkerInfoINTEL.pNext );
  5679. VULKAN_HPP_HASH_COMBINE( seed, performanceStreamMarkerInfoINTEL.marker );
  5680. return seed;
  5681. }
  5682. };
  5683. template <>
  5684. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures>
  5685. {
  5686. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const & physicalDevice16BitStorageFeatures ) const VULKAN_HPP_NOEXCEPT
  5687. {
  5688. std::size_t seed = 0;
  5689. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.sType );
  5690. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.pNext );
  5691. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.storageBuffer16BitAccess );
  5692. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.uniformAndStorageBuffer16BitAccess );
  5693. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.storagePushConstant16 );
  5694. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.storageInputOutput16 );
  5695. return seed;
  5696. }
  5697. };
  5698. template <>
  5699. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT>
  5700. {
  5701. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT const & physicalDevice4444FormatsFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  5702. {
  5703. std::size_t seed = 0;
  5704. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice4444FormatsFeaturesEXT.sType );
  5705. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice4444FormatsFeaturesEXT.pNext );
  5706. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice4444FormatsFeaturesEXT.formatA4R4G4B4 );
  5707. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice4444FormatsFeaturesEXT.formatA4B4G4R4 );
  5708. return seed;
  5709. }
  5710. };
  5711. template <>
  5712. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures>
  5713. {
  5714. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const & physicalDevice8BitStorageFeatures ) const VULKAN_HPP_NOEXCEPT
  5715. {
  5716. std::size_t seed = 0;
  5717. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice8BitStorageFeatures.sType );
  5718. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice8BitStorageFeatures.pNext );
  5719. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice8BitStorageFeatures.storageBuffer8BitAccess );
  5720. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice8BitStorageFeatures.uniformAndStorageBuffer8BitAccess );
  5721. VULKAN_HPP_HASH_COMBINE( seed, physicalDevice8BitStorageFeatures.storagePushConstant8 );
  5722. return seed;
  5723. }
  5724. };
  5725. template <>
  5726. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT>
  5727. {
  5728. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const & physicalDeviceASTCDecodeFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  5729. {
  5730. std::size_t seed = 0;
  5731. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceASTCDecodeFeaturesEXT.sType );
  5732. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceASTCDecodeFeaturesEXT.pNext );
  5733. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceASTCDecodeFeaturesEXT.decodeModeSharedExponent );
  5734. return seed;
  5735. }
  5736. };
  5737. template <>
  5738. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR>
  5739. {
  5740. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR const & physicalDeviceAccelerationStructureFeaturesKHR ) const
  5741. VULKAN_HPP_NOEXCEPT
  5742. {
  5743. std::size_t seed = 0;
  5744. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.sType );
  5745. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.pNext );
  5746. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.accelerationStructure );
  5747. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.accelerationStructureCaptureReplay );
  5748. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.accelerationStructureIndirectBuild );
  5749. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.accelerationStructureHostCommands );
  5750. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.descriptorBindingAccelerationStructureUpdateAfterBind );
  5751. return seed;
  5752. }
  5753. };
  5754. template <>
  5755. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR>
  5756. {
  5757. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR const & physicalDeviceAccelerationStructurePropertiesKHR )
  5758. const VULKAN_HPP_NOEXCEPT
  5759. {
  5760. std::size_t seed = 0;
  5761. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.sType );
  5762. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.pNext );
  5763. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxGeometryCount );
  5764. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxInstanceCount );
  5765. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxPrimitiveCount );
  5766. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxPerStageDescriptorAccelerationStructures );
  5767. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxPerStageDescriptorUpdateAfterBindAccelerationStructures );
  5768. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxDescriptorSetAccelerationStructures );
  5769. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxDescriptorSetUpdateAfterBindAccelerationStructures );
  5770. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.minAccelerationStructureScratchOffsetAlignment );
  5771. return seed;
  5772. }
  5773. };
  5774. template <>
  5775. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC>
  5776. {
  5777. std::size_t
  5778. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC const & physicalDeviceAmigoProfilingFeaturesSEC ) const VULKAN_HPP_NOEXCEPT
  5779. {
  5780. std::size_t seed = 0;
  5781. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAmigoProfilingFeaturesSEC.sType );
  5782. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAmigoProfilingFeaturesSEC.pNext );
  5783. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAmigoProfilingFeaturesSEC.amigoProfiling );
  5784. return seed;
  5785. }
  5786. };
  5787. template <>
  5788. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT>
  5789. {
  5790. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const &
  5791. physicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  5792. {
  5793. std::size_t seed = 0;
  5794. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.sType );
  5795. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.pNext );
  5796. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.attachmentFeedbackLoopLayout );
  5797. return seed;
  5798. }
  5799. };
  5800. template <>
  5801. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT>
  5802. {
  5803. std::size_t operator()(
  5804. VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & physicalDeviceBlendOperationAdvancedFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  5805. {
  5806. std::size_t seed = 0;
  5807. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedFeaturesEXT.sType );
  5808. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedFeaturesEXT.pNext );
  5809. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedFeaturesEXT.advancedBlendCoherentOperations );
  5810. return seed;
  5811. }
  5812. };
  5813. template <>
  5814. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT>
  5815. {
  5816. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & physicalDeviceBlendOperationAdvancedPropertiesEXT )
  5817. const VULKAN_HPP_NOEXCEPT
  5818. {
  5819. std::size_t seed = 0;
  5820. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.sType );
  5821. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.pNext );
  5822. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendMaxColorAttachments );
  5823. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendIndependentBlend );
  5824. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendNonPremultipliedSrcColor );
  5825. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendNonPremultipliedDstColor );
  5826. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendCorrelatedOverlap );
  5827. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendAllOperations );
  5828. return seed;
  5829. }
  5830. };
  5831. template <>
  5832. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT>
  5833. {
  5834. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT const & physicalDeviceBorderColorSwizzleFeaturesEXT ) const
  5835. VULKAN_HPP_NOEXCEPT
  5836. {
  5837. std::size_t seed = 0;
  5838. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBorderColorSwizzleFeaturesEXT.sType );
  5839. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBorderColorSwizzleFeaturesEXT.pNext );
  5840. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBorderColorSwizzleFeaturesEXT.borderColorSwizzle );
  5841. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBorderColorSwizzleFeaturesEXT.borderColorSwizzleFromImage );
  5842. return seed;
  5843. }
  5844. };
  5845. template <>
  5846. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures>
  5847. {
  5848. std::size_t
  5849. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const & physicalDeviceBufferDeviceAddressFeatures ) const VULKAN_HPP_NOEXCEPT
  5850. {
  5851. std::size_t seed = 0;
  5852. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeatures.sType );
  5853. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeatures.pNext );
  5854. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeatures.bufferDeviceAddress );
  5855. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeatures.bufferDeviceAddressCaptureReplay );
  5856. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeatures.bufferDeviceAddressMultiDevice );
  5857. return seed;
  5858. }
  5859. };
  5860. template <>
  5861. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT>
  5862. {
  5863. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const & physicalDeviceBufferDeviceAddressFeaturesEXT ) const
  5864. VULKAN_HPP_NOEXCEPT
  5865. {
  5866. std::size_t seed = 0;
  5867. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeaturesEXT.sType );
  5868. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeaturesEXT.pNext );
  5869. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeaturesEXT.bufferDeviceAddress );
  5870. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeaturesEXT.bufferDeviceAddressCaptureReplay );
  5871. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeaturesEXT.bufferDeviceAddressMultiDevice );
  5872. return seed;
  5873. }
  5874. };
  5875. template <>
  5876. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD>
  5877. {
  5878. std::size_t
  5879. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const & physicalDeviceCoherentMemoryFeaturesAMD ) const VULKAN_HPP_NOEXCEPT
  5880. {
  5881. std::size_t seed = 0;
  5882. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoherentMemoryFeaturesAMD.sType );
  5883. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoherentMemoryFeaturesAMD.pNext );
  5884. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoherentMemoryFeaturesAMD.deviceCoherentMemory );
  5885. return seed;
  5886. }
  5887. };
  5888. template <>
  5889. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT>
  5890. {
  5891. std::size_t
  5892. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT const & physicalDeviceColorWriteEnableFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  5893. {
  5894. std::size_t seed = 0;
  5895. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceColorWriteEnableFeaturesEXT.sType );
  5896. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceColorWriteEnableFeaturesEXT.pNext );
  5897. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceColorWriteEnableFeaturesEXT.colorWriteEnable );
  5898. return seed;
  5899. }
  5900. };
  5901. template <>
  5902. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV>
  5903. {
  5904. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const & physicalDeviceComputeShaderDerivativesFeaturesNV )
  5905. const VULKAN_HPP_NOEXCEPT
  5906. {
  5907. std::size_t seed = 0;
  5908. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceComputeShaderDerivativesFeaturesNV.sType );
  5909. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceComputeShaderDerivativesFeaturesNV.pNext );
  5910. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceComputeShaderDerivativesFeaturesNV.computeDerivativeGroupQuads );
  5911. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceComputeShaderDerivativesFeaturesNV.computeDerivativeGroupLinear );
  5912. return seed;
  5913. }
  5914. };
  5915. template <>
  5916. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT>
  5917. {
  5918. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const & physicalDeviceConditionalRenderingFeaturesEXT ) const
  5919. VULKAN_HPP_NOEXCEPT
  5920. {
  5921. std::size_t seed = 0;
  5922. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConditionalRenderingFeaturesEXT.sType );
  5923. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConditionalRenderingFeaturesEXT.pNext );
  5924. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConditionalRenderingFeaturesEXT.conditionalRendering );
  5925. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConditionalRenderingFeaturesEXT.inheritedConditionalRendering );
  5926. return seed;
  5927. }
  5928. };
  5929. template <>
  5930. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT>
  5931. {
  5932. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const &
  5933. physicalDeviceConservativeRasterizationPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  5934. {
  5935. std::size_t seed = 0;
  5936. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.sType );
  5937. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.pNext );
  5938. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.primitiveOverestimationSize );
  5939. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.maxExtraPrimitiveOverestimationSize );
  5940. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.extraPrimitiveOverestimationSizeGranularity );
  5941. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.primitiveUnderestimation );
  5942. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.conservativePointAndLineRasterization );
  5943. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.degenerateTrianglesRasterized );
  5944. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.degenerateLinesRasterized );
  5945. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.fullyCoveredFragmentShaderInputVariable );
  5946. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.conservativeRasterizationPostDepthCoverage );
  5947. return seed;
  5948. }
  5949. };
  5950. template <>
  5951. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV>
  5952. {
  5953. std::size_t
  5954. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const & physicalDeviceCooperativeMatrixFeaturesNV ) const VULKAN_HPP_NOEXCEPT
  5955. {
  5956. std::size_t seed = 0;
  5957. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesNV.sType );
  5958. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesNV.pNext );
  5959. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesNV.cooperativeMatrix );
  5960. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesNV.cooperativeMatrixRobustBufferAccess );
  5961. return seed;
  5962. }
  5963. };
  5964. template <>
  5965. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV>
  5966. {
  5967. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const & physicalDeviceCooperativeMatrixPropertiesNV ) const
  5968. VULKAN_HPP_NOEXCEPT
  5969. {
  5970. std::size_t seed = 0;
  5971. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesNV.sType );
  5972. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesNV.pNext );
  5973. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesNV.cooperativeMatrixSupportedStages );
  5974. return seed;
  5975. }
  5976. };
  5977. template <>
  5978. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV>
  5979. {
  5980. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const & physicalDeviceCornerSampledImageFeaturesNV ) const
  5981. VULKAN_HPP_NOEXCEPT
  5982. {
  5983. std::size_t seed = 0;
  5984. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCornerSampledImageFeaturesNV.sType );
  5985. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCornerSampledImageFeaturesNV.pNext );
  5986. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCornerSampledImageFeaturesNV.cornerSampledImage );
  5987. return seed;
  5988. }
  5989. };
  5990. template <>
  5991. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV>
  5992. {
  5993. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const & physicalDeviceCoverageReductionModeFeaturesNV ) const
  5994. VULKAN_HPP_NOEXCEPT
  5995. {
  5996. std::size_t seed = 0;
  5997. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoverageReductionModeFeaturesNV.sType );
  5998. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoverageReductionModeFeaturesNV.pNext );
  5999. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoverageReductionModeFeaturesNV.coverageReductionMode );
  6000. return seed;
  6001. }
  6002. };
  6003. template <>
  6004. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT>
  6005. {
  6006. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const & physicalDeviceCustomBorderColorFeaturesEXT ) const
  6007. VULKAN_HPP_NOEXCEPT
  6008. {
  6009. std::size_t seed = 0;
  6010. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorFeaturesEXT.sType );
  6011. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorFeaturesEXT.pNext );
  6012. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorFeaturesEXT.customBorderColors );
  6013. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorFeaturesEXT.customBorderColorWithoutFormat );
  6014. return seed;
  6015. }
  6016. };
  6017. template <>
  6018. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT>
  6019. {
  6020. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT const & physicalDeviceCustomBorderColorPropertiesEXT ) const
  6021. VULKAN_HPP_NOEXCEPT
  6022. {
  6023. std::size_t seed = 0;
  6024. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorPropertiesEXT.sType );
  6025. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorPropertiesEXT.pNext );
  6026. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorPropertiesEXT.maxCustomBorderColorSamplers );
  6027. return seed;
  6028. }
  6029. };
  6030. template <>
  6031. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>
  6032. {
  6033. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const &
  6034. physicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) const VULKAN_HPP_NOEXCEPT
  6035. {
  6036. std::size_t seed = 0;
  6037. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDedicatedAllocationImageAliasingFeaturesNV.sType );
  6038. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDedicatedAllocationImageAliasingFeaturesNV.pNext );
  6039. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDedicatedAllocationImageAliasingFeaturesNV.dedicatedAllocationImageAliasing );
  6040. return seed;
  6041. }
  6042. };
  6043. template <>
  6044. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT>
  6045. {
  6046. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT const & physicalDeviceDepthClampZeroOneFeaturesEXT ) const
  6047. VULKAN_HPP_NOEXCEPT
  6048. {
  6049. std::size_t seed = 0;
  6050. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClampZeroOneFeaturesEXT.sType );
  6051. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClampZeroOneFeaturesEXT.pNext );
  6052. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClampZeroOneFeaturesEXT.depthClampZeroOne );
  6053. return seed;
  6054. }
  6055. };
  6056. template <>
  6057. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT>
  6058. {
  6059. std::size_t
  6060. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT const & physicalDeviceDepthClipControlFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  6061. {
  6062. std::size_t seed = 0;
  6063. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipControlFeaturesEXT.sType );
  6064. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipControlFeaturesEXT.pNext );
  6065. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipControlFeaturesEXT.depthClipControl );
  6066. return seed;
  6067. }
  6068. };
  6069. template <>
  6070. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT>
  6071. {
  6072. std::size_t
  6073. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const & physicalDeviceDepthClipEnableFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  6074. {
  6075. std::size_t seed = 0;
  6076. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipEnableFeaturesEXT.sType );
  6077. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipEnableFeaturesEXT.pNext );
  6078. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipEnableFeaturesEXT.depthClipEnable );
  6079. return seed;
  6080. }
  6081. };
  6082. template <>
  6083. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties>
  6084. {
  6085. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const & physicalDeviceDepthStencilResolveProperties ) const
  6086. VULKAN_HPP_NOEXCEPT
  6087. {
  6088. std::size_t seed = 0;
  6089. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.sType );
  6090. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.pNext );
  6091. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.supportedDepthResolveModes );
  6092. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.supportedStencilResolveModes );
  6093. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.independentResolveNone );
  6094. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.independentResolve );
  6095. return seed;
  6096. }
  6097. };
  6098. template <>
  6099. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures>
  6100. {
  6101. std::size_t
  6102. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const & physicalDeviceDescriptorIndexingFeatures ) const VULKAN_HPP_NOEXCEPT
  6103. {
  6104. std::size_t seed = 0;
  6105. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.sType );
  6106. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.pNext );
  6107. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderInputAttachmentArrayDynamicIndexing );
  6108. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderUniformTexelBufferArrayDynamicIndexing );
  6109. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderStorageTexelBufferArrayDynamicIndexing );
  6110. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderUniformBufferArrayNonUniformIndexing );
  6111. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderSampledImageArrayNonUniformIndexing );
  6112. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderStorageBufferArrayNonUniformIndexing );
  6113. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderStorageImageArrayNonUniformIndexing );
  6114. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderInputAttachmentArrayNonUniformIndexing );
  6115. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderUniformTexelBufferArrayNonUniformIndexing );
  6116. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderStorageTexelBufferArrayNonUniformIndexing );
  6117. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingUniformBufferUpdateAfterBind );
  6118. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingSampledImageUpdateAfterBind );
  6119. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingStorageImageUpdateAfterBind );
  6120. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingStorageBufferUpdateAfterBind );
  6121. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingUniformTexelBufferUpdateAfterBind );
  6122. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingStorageTexelBufferUpdateAfterBind );
  6123. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingUpdateUnusedWhilePending );
  6124. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingPartiallyBound );
  6125. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingVariableDescriptorCount );
  6126. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.runtimeDescriptorArray );
  6127. return seed;
  6128. }
  6129. };
  6130. template <>
  6131. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties>
  6132. {
  6133. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const & physicalDeviceDescriptorIndexingProperties ) const
  6134. VULKAN_HPP_NOEXCEPT
  6135. {
  6136. std::size_t seed = 0;
  6137. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.sType );
  6138. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.pNext );
  6139. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxUpdateAfterBindDescriptorsInAllPools );
  6140. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.shaderUniformBufferArrayNonUniformIndexingNative );
  6141. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.shaderSampledImageArrayNonUniformIndexingNative );
  6142. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.shaderStorageBufferArrayNonUniformIndexingNative );
  6143. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.shaderStorageImageArrayNonUniformIndexingNative );
  6144. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.shaderInputAttachmentArrayNonUniformIndexingNative );
  6145. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.robustBufferAccessUpdateAfterBind );
  6146. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.quadDivergentImplicitLod );
  6147. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindSamplers );
  6148. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindUniformBuffers );
  6149. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindStorageBuffers );
  6150. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindSampledImages );
  6151. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindStorageImages );
  6152. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindInputAttachments );
  6153. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageUpdateAfterBindResources );
  6154. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindSamplers );
  6155. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindUniformBuffers );
  6156. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic );
  6157. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindStorageBuffers );
  6158. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic );
  6159. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindSampledImages );
  6160. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindStorageImages );
  6161. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindInputAttachments );
  6162. return seed;
  6163. }
  6164. };
  6165. template <>
  6166. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>
  6167. {
  6168. std::size_t
  6169. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & physicalDeviceDescriptorSetHostMappingFeaturesVALVE ) const
  6170. VULKAN_HPP_NOEXCEPT
  6171. {
  6172. std::size_t seed = 0;
  6173. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorSetHostMappingFeaturesVALVE.sType );
  6174. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorSetHostMappingFeaturesVALVE.pNext );
  6175. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorSetHostMappingFeaturesVALVE.descriptorSetHostMapping );
  6176. return seed;
  6177. }
  6178. };
  6179. template <>
  6180. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
  6181. {
  6182. std::size_t operator()(
  6183. VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & physicalDeviceDeviceGeneratedCommandsFeaturesNV ) const VULKAN_HPP_NOEXCEPT
  6184. {
  6185. std::size_t seed = 0;
  6186. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsFeaturesNV.sType );
  6187. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsFeaturesNV.pNext );
  6188. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsFeaturesNV.deviceGeneratedCommands );
  6189. return seed;
  6190. }
  6191. };
  6192. template <>
  6193. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
  6194. {
  6195. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & physicalDeviceDeviceGeneratedCommandsPropertiesNV )
  6196. const VULKAN_HPP_NOEXCEPT
  6197. {
  6198. std::size_t seed = 0;
  6199. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.sType );
  6200. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.pNext );
  6201. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxGraphicsShaderGroupCount );
  6202. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxIndirectSequenceCount );
  6203. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxIndirectCommandsTokenCount );
  6204. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxIndirectCommandsStreamCount );
  6205. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxIndirectCommandsTokenOffset );
  6206. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxIndirectCommandsStreamStride );
  6207. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.minSequencesCountBufferOffsetAlignment );
  6208. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.minSequencesIndexBufferOffsetAlignment );
  6209. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.minIndirectCommandsBufferOffsetAlignment );
  6210. return seed;
  6211. }
  6212. };
  6213. template <>
  6214. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT>
  6215. {
  6216. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT const & physicalDeviceDeviceMemoryReportFeaturesEXT ) const
  6217. VULKAN_HPP_NOEXCEPT
  6218. {
  6219. std::size_t seed = 0;
  6220. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceMemoryReportFeaturesEXT.sType );
  6221. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceMemoryReportFeaturesEXT.pNext );
  6222. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceMemoryReportFeaturesEXT.deviceMemoryReport );
  6223. return seed;
  6224. }
  6225. };
  6226. template <>
  6227. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV>
  6228. {
  6229. std::size_t
  6230. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV const & physicalDeviceDiagnosticsConfigFeaturesNV ) const VULKAN_HPP_NOEXCEPT
  6231. {
  6232. std::size_t seed = 0;
  6233. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiagnosticsConfigFeaturesNV.sType );
  6234. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiagnosticsConfigFeaturesNV.pNext );
  6235. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiagnosticsConfigFeaturesNV.diagnosticsConfig );
  6236. return seed;
  6237. }
  6238. };
  6239. template <>
  6240. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT>
  6241. {
  6242. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const & physicalDeviceDiscardRectanglePropertiesEXT ) const
  6243. VULKAN_HPP_NOEXCEPT
  6244. {
  6245. std::size_t seed = 0;
  6246. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiscardRectanglePropertiesEXT.sType );
  6247. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiscardRectanglePropertiesEXT.pNext );
  6248. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiscardRectanglePropertiesEXT.maxDiscardRectangles );
  6249. return seed;
  6250. }
  6251. };
  6252. template <>
  6253. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties>
  6254. {
  6255. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const & physicalDeviceDriverProperties ) const VULKAN_HPP_NOEXCEPT
  6256. {
  6257. std::size_t seed = 0;
  6258. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.sType );
  6259. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.pNext );
  6260. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.driverID );
  6261. for ( size_t i = 0; i < VK_MAX_DRIVER_NAME_SIZE; ++i )
  6262. {
  6263. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.driverName[i] );
  6264. }
  6265. for ( size_t i = 0; i < VK_MAX_DRIVER_INFO_SIZE; ++i )
  6266. {
  6267. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.driverInfo[i] );
  6268. }
  6269. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.conformanceVersion );
  6270. return seed;
  6271. }
  6272. };
  6273. template <>
  6274. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT>
  6275. {
  6276. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT const & physicalDeviceDrmPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  6277. {
  6278. std::size_t seed = 0;
  6279. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.sType );
  6280. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.pNext );
  6281. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.hasPrimary );
  6282. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.hasRender );
  6283. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.primaryMajor );
  6284. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.primaryMinor );
  6285. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.renderMajor );
  6286. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.renderMinor );
  6287. return seed;
  6288. }
  6289. };
  6290. template <>
  6291. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures>
  6292. {
  6293. std::size_t
  6294. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures const & physicalDeviceDynamicRenderingFeatures ) const VULKAN_HPP_NOEXCEPT
  6295. {
  6296. std::size_t seed = 0;
  6297. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingFeatures.sType );
  6298. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingFeatures.pNext );
  6299. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingFeatures.dynamicRendering );
  6300. return seed;
  6301. }
  6302. };
  6303. template <>
  6304. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV>
  6305. {
  6306. std::size_t
  6307. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const & physicalDeviceExclusiveScissorFeaturesNV ) const VULKAN_HPP_NOEXCEPT
  6308. {
  6309. std::size_t seed = 0;
  6310. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExclusiveScissorFeaturesNV.sType );
  6311. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExclusiveScissorFeaturesNV.pNext );
  6312. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExclusiveScissorFeaturesNV.exclusiveScissor );
  6313. return seed;
  6314. }
  6315. };
  6316. template <>
  6317. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT>
  6318. {
  6319. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT const & physicalDeviceExtendedDynamicState2FeaturesEXT ) const
  6320. VULKAN_HPP_NOEXCEPT
  6321. {
  6322. std::size_t seed = 0;
  6323. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState2FeaturesEXT.sType );
  6324. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState2FeaturesEXT.pNext );
  6325. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState2FeaturesEXT.extendedDynamicState2 );
  6326. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState2FeaturesEXT.extendedDynamicState2LogicOp );
  6327. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState2FeaturesEXT.extendedDynamicState2PatchControlPoints );
  6328. return seed;
  6329. }
  6330. };
  6331. template <>
  6332. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT>
  6333. {
  6334. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT const & physicalDeviceExtendedDynamicStateFeaturesEXT ) const
  6335. VULKAN_HPP_NOEXCEPT
  6336. {
  6337. std::size_t seed = 0;
  6338. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicStateFeaturesEXT.sType );
  6339. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicStateFeaturesEXT.pNext );
  6340. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicStateFeaturesEXT.extendedDynamicState );
  6341. return seed;
  6342. }
  6343. };
  6344. template <>
  6345. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo>
  6346. {
  6347. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const & physicalDeviceExternalBufferInfo ) const VULKAN_HPP_NOEXCEPT
  6348. {
  6349. std::size_t seed = 0;
  6350. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalBufferInfo.sType );
  6351. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalBufferInfo.pNext );
  6352. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalBufferInfo.flags );
  6353. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalBufferInfo.usage );
  6354. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalBufferInfo.handleType );
  6355. return seed;
  6356. }
  6357. };
  6358. template <>
  6359. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo>
  6360. {
  6361. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const & physicalDeviceExternalFenceInfo ) const VULKAN_HPP_NOEXCEPT
  6362. {
  6363. std::size_t seed = 0;
  6364. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFenceInfo.sType );
  6365. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFenceInfo.pNext );
  6366. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFenceInfo.handleType );
  6367. return seed;
  6368. }
  6369. };
  6370. template <>
  6371. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo>
  6372. {
  6373. std::size_t
  6374. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const & physicalDeviceExternalImageFormatInfo ) const VULKAN_HPP_NOEXCEPT
  6375. {
  6376. std::size_t seed = 0;
  6377. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalImageFormatInfo.sType );
  6378. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalImageFormatInfo.pNext );
  6379. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalImageFormatInfo.handleType );
  6380. return seed;
  6381. }
  6382. };
  6383. template <>
  6384. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT>
  6385. {
  6386. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const & physicalDeviceExternalMemoryHostPropertiesEXT ) const
  6387. VULKAN_HPP_NOEXCEPT
  6388. {
  6389. std::size_t seed = 0;
  6390. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryHostPropertiesEXT.sType );
  6391. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryHostPropertiesEXT.pNext );
  6392. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryHostPropertiesEXT.minImportedHostPointerAlignment );
  6393. return seed;
  6394. }
  6395. };
  6396. template <>
  6397. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV>
  6398. {
  6399. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV const & physicalDeviceExternalMemoryRDMAFeaturesNV ) const
  6400. VULKAN_HPP_NOEXCEPT
  6401. {
  6402. std::size_t seed = 0;
  6403. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryRDMAFeaturesNV.sType );
  6404. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryRDMAFeaturesNV.pNext );
  6405. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryRDMAFeaturesNV.externalMemoryRDMA );
  6406. return seed;
  6407. }
  6408. };
  6409. template <>
  6410. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo>
  6411. {
  6412. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const & physicalDeviceExternalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT
  6413. {
  6414. std::size_t seed = 0;
  6415. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalSemaphoreInfo.sType );
  6416. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalSemaphoreInfo.pNext );
  6417. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalSemaphoreInfo.handleType );
  6418. return seed;
  6419. }
  6420. };
  6421. template <>
  6422. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>
  6423. {
  6424. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const & physicalDeviceFeatures2 ) const VULKAN_HPP_NOEXCEPT
  6425. {
  6426. std::size_t seed = 0;
  6427. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures2.sType );
  6428. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures2.pNext );
  6429. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures2.features );
  6430. return seed;
  6431. }
  6432. };
  6433. template <>
  6434. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties>
  6435. {
  6436. std::size_t
  6437. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const & physicalDeviceFloatControlsProperties ) const VULKAN_HPP_NOEXCEPT
  6438. {
  6439. std::size_t seed = 0;
  6440. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.sType );
  6441. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.pNext );
  6442. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.denormBehaviorIndependence );
  6443. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.roundingModeIndependence );
  6444. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderSignedZeroInfNanPreserveFloat16 );
  6445. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderSignedZeroInfNanPreserveFloat32 );
  6446. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderSignedZeroInfNanPreserveFloat64 );
  6447. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormPreserveFloat16 );
  6448. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormPreserveFloat32 );
  6449. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormPreserveFloat64 );
  6450. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormFlushToZeroFloat16 );
  6451. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormFlushToZeroFloat32 );
  6452. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormFlushToZeroFloat64 );
  6453. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTEFloat16 );
  6454. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTEFloat32 );
  6455. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTEFloat64 );
  6456. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTZFloat16 );
  6457. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTZFloat32 );
  6458. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTZFloat64 );
  6459. return seed;
  6460. }
  6461. };
  6462. template <>
  6463. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT>
  6464. {
  6465. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT const & physicalDeviceFragmentDensityMap2FeaturesEXT ) const
  6466. VULKAN_HPP_NOEXCEPT
  6467. {
  6468. std::size_t seed = 0;
  6469. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2FeaturesEXT.sType );
  6470. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2FeaturesEXT.pNext );
  6471. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2FeaturesEXT.fragmentDensityMapDeferred );
  6472. return seed;
  6473. }
  6474. };
  6475. template <>
  6476. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT>
  6477. {
  6478. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT const & physicalDeviceFragmentDensityMap2PropertiesEXT ) const
  6479. VULKAN_HPP_NOEXCEPT
  6480. {
  6481. std::size_t seed = 0;
  6482. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.sType );
  6483. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.pNext );
  6484. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.subsampledLoads );
  6485. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.subsampledCoarseReconstructionEarlyAccess );
  6486. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.maxSubsampledArrayLayers );
  6487. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.maxDescriptorSetSubsampledSamplers );
  6488. return seed;
  6489. }
  6490. };
  6491. template <>
  6492. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT>
  6493. {
  6494. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const & physicalDeviceFragmentDensityMapFeaturesEXT ) const
  6495. VULKAN_HPP_NOEXCEPT
  6496. {
  6497. std::size_t seed = 0;
  6498. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapFeaturesEXT.sType );
  6499. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapFeaturesEXT.pNext );
  6500. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapFeaturesEXT.fragmentDensityMap );
  6501. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapFeaturesEXT.fragmentDensityMapDynamic );
  6502. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapFeaturesEXT.fragmentDensityMapNonSubsampledImages );
  6503. return seed;
  6504. }
  6505. };
  6506. template <>
  6507. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>
  6508. {
  6509. std::size_t
  6510. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & physicalDeviceFragmentDensityMapOffsetFeaturesQCOM ) const
  6511. VULKAN_HPP_NOEXCEPT
  6512. {
  6513. std::size_t seed = 0;
  6514. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetFeaturesQCOM.sType );
  6515. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetFeaturesQCOM.pNext );
  6516. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetFeaturesQCOM.fragmentDensityMapOffset );
  6517. return seed;
  6518. }
  6519. };
  6520. template <>
  6521. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>
  6522. {
  6523. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const &
  6524. physicalDeviceFragmentDensityMapOffsetPropertiesQCOM ) const VULKAN_HPP_NOEXCEPT
  6525. {
  6526. std::size_t seed = 0;
  6527. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetPropertiesQCOM.sType );
  6528. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetPropertiesQCOM.pNext );
  6529. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetPropertiesQCOM.fragmentDensityOffsetGranularity );
  6530. return seed;
  6531. }
  6532. };
  6533. template <>
  6534. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT>
  6535. {
  6536. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const & physicalDeviceFragmentDensityMapPropertiesEXT ) const
  6537. VULKAN_HPP_NOEXCEPT
  6538. {
  6539. std::size_t seed = 0;
  6540. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapPropertiesEXT.sType );
  6541. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapPropertiesEXT.pNext );
  6542. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapPropertiesEXT.minFragmentDensityTexelSize );
  6543. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapPropertiesEXT.maxFragmentDensityTexelSize );
  6544. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapPropertiesEXT.fragmentDensityInvocations );
  6545. return seed;
  6546. }
  6547. };
  6548. template <>
  6549. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR>
  6550. {
  6551. std::size_t
  6552. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & physicalDeviceFragmentShaderBarycentricFeaturesKHR ) const
  6553. VULKAN_HPP_NOEXCEPT
  6554. {
  6555. std::size_t seed = 0;
  6556. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricFeaturesKHR.sType );
  6557. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricFeaturesKHR.pNext );
  6558. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricFeaturesKHR.fragmentShaderBarycentric );
  6559. return seed;
  6560. }
  6561. };
  6562. template <>
  6563. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR>
  6564. {
  6565. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const &
  6566. physicalDeviceFragmentShaderBarycentricPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  6567. {
  6568. std::size_t seed = 0;
  6569. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricPropertiesKHR.sType );
  6570. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricPropertiesKHR.pNext );
  6571. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricPropertiesKHR.triStripVertexOrderIndependentOfProvokingVertex );
  6572. return seed;
  6573. }
  6574. };
  6575. template <>
  6576. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT>
  6577. {
  6578. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & physicalDeviceFragmentShaderInterlockFeaturesEXT )
  6579. const VULKAN_HPP_NOEXCEPT
  6580. {
  6581. std::size_t seed = 0;
  6582. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderInterlockFeaturesEXT.sType );
  6583. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderInterlockFeaturesEXT.pNext );
  6584. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderInterlockFeaturesEXT.fragmentShaderSampleInterlock );
  6585. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderInterlockFeaturesEXT.fragmentShaderPixelInterlock );
  6586. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderInterlockFeaturesEXT.fragmentShaderShadingRateInterlock );
  6587. return seed;
  6588. }
  6589. };
  6590. template <>
  6591. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV>
  6592. {
  6593. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & physicalDeviceFragmentShadingRateEnumsFeaturesNV )
  6594. const VULKAN_HPP_NOEXCEPT
  6595. {
  6596. std::size_t seed = 0;
  6597. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsFeaturesNV.sType );
  6598. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsFeaturesNV.pNext );
  6599. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsFeaturesNV.fragmentShadingRateEnums );
  6600. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsFeaturesNV.supersampleFragmentShadingRates );
  6601. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsFeaturesNV.noInvocationFragmentShadingRates );
  6602. return seed;
  6603. }
  6604. };
  6605. template <>
  6606. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV>
  6607. {
  6608. std::size_t
  6609. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & physicalDeviceFragmentShadingRateEnumsPropertiesNV ) const
  6610. VULKAN_HPP_NOEXCEPT
  6611. {
  6612. std::size_t seed = 0;
  6613. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsPropertiesNV.sType );
  6614. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsPropertiesNV.pNext );
  6615. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsPropertiesNV.maxFragmentShadingRateInvocationCount );
  6616. return seed;
  6617. }
  6618. };
  6619. template <>
  6620. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR>
  6621. {
  6622. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR const & physicalDeviceFragmentShadingRateFeaturesKHR ) const
  6623. VULKAN_HPP_NOEXCEPT
  6624. {
  6625. std::size_t seed = 0;
  6626. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateFeaturesKHR.sType );
  6627. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateFeaturesKHR.pNext );
  6628. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateFeaturesKHR.pipelineFragmentShadingRate );
  6629. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateFeaturesKHR.primitiveFragmentShadingRate );
  6630. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateFeaturesKHR.attachmentFragmentShadingRate );
  6631. return seed;
  6632. }
  6633. };
  6634. template <>
  6635. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR>
  6636. {
  6637. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR const & physicalDeviceFragmentShadingRateKHR ) const VULKAN_HPP_NOEXCEPT
  6638. {
  6639. std::size_t seed = 0;
  6640. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateKHR.sType );
  6641. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateKHR.pNext );
  6642. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateKHR.sampleCounts );
  6643. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateKHR.fragmentSize );
  6644. return seed;
  6645. }
  6646. };
  6647. template <>
  6648. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR>
  6649. {
  6650. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR const & physicalDeviceFragmentShadingRatePropertiesKHR ) const
  6651. VULKAN_HPP_NOEXCEPT
  6652. {
  6653. std::size_t seed = 0;
  6654. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.sType );
  6655. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.pNext );
  6656. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.minFragmentShadingRateAttachmentTexelSize );
  6657. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentShadingRateAttachmentTexelSize );
  6658. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentShadingRateAttachmentTexelSizeAspectRatio );
  6659. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.primitiveFragmentShadingRateWithMultipleViewports );
  6660. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.layeredShadingRateAttachments );
  6661. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateNonTrivialCombinerOps );
  6662. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentSize );
  6663. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentSizeAspectRatio );
  6664. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentShadingRateCoverageSamples );
  6665. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentShadingRateRasterizationSamples );
  6666. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithShaderDepthStencilWrites );
  6667. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithSampleMask );
  6668. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithShaderSampleMask );
  6669. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithConservativeRasterization );
  6670. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithFragmentShaderInterlock );
  6671. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithCustomSampleLocations );
  6672. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateStrictMultiplyCombiner );
  6673. return seed;
  6674. }
  6675. };
  6676. template <>
  6677. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR>
  6678. {
  6679. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & physicalDeviceGlobalPriorityQueryFeaturesKHR ) const
  6680. VULKAN_HPP_NOEXCEPT
  6681. {
  6682. std::size_t seed = 0;
  6683. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGlobalPriorityQueryFeaturesKHR.sType );
  6684. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGlobalPriorityQueryFeaturesKHR.pNext );
  6685. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGlobalPriorityQueryFeaturesKHR.globalPriorityQuery );
  6686. return seed;
  6687. }
  6688. };
  6689. template <>
  6690. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>
  6691. {
  6692. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & physicalDeviceGraphicsPipelineLibraryFeaturesEXT )
  6693. const VULKAN_HPP_NOEXCEPT
  6694. {
  6695. std::size_t seed = 0;
  6696. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryFeaturesEXT.sType );
  6697. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryFeaturesEXT.pNext );
  6698. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryFeaturesEXT.graphicsPipelineLibrary );
  6699. return seed;
  6700. }
  6701. };
  6702. template <>
  6703. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>
  6704. {
  6705. std::size_t
  6706. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & physicalDeviceGraphicsPipelineLibraryPropertiesEXT ) const
  6707. VULKAN_HPP_NOEXCEPT
  6708. {
  6709. std::size_t seed = 0;
  6710. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryPropertiesEXT.sType );
  6711. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryPropertiesEXT.pNext );
  6712. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryPropertiesEXT.graphicsPipelineLibraryFastLinking );
  6713. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryPropertiesEXT.graphicsPipelineLibraryIndependentInterpolationDecoration );
  6714. return seed;
  6715. }
  6716. };
  6717. template <>
  6718. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>
  6719. {
  6720. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const & physicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
  6721. {
  6722. std::size_t seed = 0;
  6723. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGroupProperties.sType );
  6724. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGroupProperties.pNext );
  6725. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGroupProperties.physicalDeviceCount );
  6726. for ( size_t i = 0; i < VK_MAX_DEVICE_GROUP_SIZE; ++i )
  6727. {
  6728. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGroupProperties.physicalDevices[i] );
  6729. }
  6730. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGroupProperties.subsetAllocation );
  6731. return seed;
  6732. }
  6733. };
  6734. template <>
  6735. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures>
  6736. {
  6737. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const & physicalDeviceHostQueryResetFeatures ) const VULKAN_HPP_NOEXCEPT
  6738. {
  6739. std::size_t seed = 0;
  6740. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostQueryResetFeatures.sType );
  6741. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostQueryResetFeatures.pNext );
  6742. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostQueryResetFeatures.hostQueryReset );
  6743. return seed;
  6744. }
  6745. };
  6746. template <>
  6747. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties>
  6748. {
  6749. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const & physicalDeviceIDProperties ) const VULKAN_HPP_NOEXCEPT
  6750. {
  6751. std::size_t seed = 0;
  6752. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.sType );
  6753. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.pNext );
  6754. for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
  6755. {
  6756. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.deviceUUID[i] );
  6757. }
  6758. for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
  6759. {
  6760. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.driverUUID[i] );
  6761. }
  6762. for ( size_t i = 0; i < VK_LUID_SIZE; ++i )
  6763. {
  6764. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.deviceLUID[i] );
  6765. }
  6766. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.deviceNodeMask );
  6767. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.deviceLUIDValid );
  6768. return seed;
  6769. }
  6770. };
  6771. template <>
  6772. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT>
  6773. {
  6774. std::size_t
  6775. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT const & physicalDeviceImage2DViewOf3DFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  6776. {
  6777. std::size_t seed = 0;
  6778. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImage2DViewOf3DFeaturesEXT.sType );
  6779. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImage2DViewOf3DFeaturesEXT.pNext );
  6780. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImage2DViewOf3DFeaturesEXT.image2DViewOf3D );
  6781. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImage2DViewOf3DFeaturesEXT.sampler2DViewOf3D );
  6782. return seed;
  6783. }
  6784. };
  6785. template <>
  6786. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT>
  6787. {
  6788. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT const & physicalDeviceImageCompressionControlFeaturesEXT )
  6789. const VULKAN_HPP_NOEXCEPT
  6790. {
  6791. std::size_t seed = 0;
  6792. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlFeaturesEXT.sType );
  6793. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlFeaturesEXT.pNext );
  6794. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlFeaturesEXT.imageCompressionControl );
  6795. return seed;
  6796. }
  6797. };
  6798. template <>
  6799. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>
  6800. {
  6801. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const &
  6802. physicalDeviceImageCompressionControlSwapchainFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  6803. {
  6804. std::size_t seed = 0;
  6805. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlSwapchainFeaturesEXT.sType );
  6806. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlSwapchainFeaturesEXT.pNext );
  6807. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlSwapchainFeaturesEXT.imageCompressionControlSwapchain );
  6808. return seed;
  6809. }
  6810. };
  6811. template <>
  6812. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT>
  6813. {
  6814. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const & physicalDeviceImageDrmFormatModifierInfoEXT ) const
  6815. VULKAN_HPP_NOEXCEPT
  6816. {
  6817. std::size_t seed = 0;
  6818. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.sType );
  6819. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.pNext );
  6820. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.drmFormatModifier );
  6821. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.sharingMode );
  6822. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.queueFamilyIndexCount );
  6823. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.pQueueFamilyIndices );
  6824. return seed;
  6825. }
  6826. };
  6827. template <>
  6828. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2>
  6829. {
  6830. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const & physicalDeviceImageFormatInfo2 ) const VULKAN_HPP_NOEXCEPT
  6831. {
  6832. std::size_t seed = 0;
  6833. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.sType );
  6834. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.pNext );
  6835. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.format );
  6836. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.type );
  6837. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.tiling );
  6838. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.usage );
  6839. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.flags );
  6840. return seed;
  6841. }
  6842. };
  6843. template <>
  6844. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM>
  6845. {
  6846. std::size_t
  6847. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM const & physicalDeviceImageProcessingFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
  6848. {
  6849. std::size_t seed = 0;
  6850. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingFeaturesQCOM.sType );
  6851. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingFeaturesQCOM.pNext );
  6852. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingFeaturesQCOM.textureSampleWeighted );
  6853. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingFeaturesQCOM.textureBoxFilter );
  6854. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingFeaturesQCOM.textureBlockMatch );
  6855. return seed;
  6856. }
  6857. };
  6858. template <>
  6859. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM>
  6860. {
  6861. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM const & physicalDeviceImageProcessingPropertiesQCOM ) const
  6862. VULKAN_HPP_NOEXCEPT
  6863. {
  6864. std::size_t seed = 0;
  6865. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.sType );
  6866. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.pNext );
  6867. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.maxWeightFilterPhases );
  6868. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.maxWeightFilterDimension );
  6869. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.maxBlockMatchRegion );
  6870. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.maxBoxFilterBlockSize );
  6871. return seed;
  6872. }
  6873. };
  6874. template <>
  6875. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures>
  6876. {
  6877. std::size_t
  6878. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures const & physicalDeviceImageRobustnessFeatures ) const VULKAN_HPP_NOEXCEPT
  6879. {
  6880. std::size_t seed = 0;
  6881. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageRobustnessFeatures.sType );
  6882. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageRobustnessFeatures.pNext );
  6883. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageRobustnessFeatures.robustImageAccess );
  6884. return seed;
  6885. }
  6886. };
  6887. template <>
  6888. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT>
  6889. {
  6890. std::size_t
  6891. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const & physicalDeviceImageViewImageFormatInfoEXT ) const VULKAN_HPP_NOEXCEPT
  6892. {
  6893. std::size_t seed = 0;
  6894. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewImageFormatInfoEXT.sType );
  6895. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewImageFormatInfoEXT.pNext );
  6896. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewImageFormatInfoEXT.imageViewType );
  6897. return seed;
  6898. }
  6899. };
  6900. template <>
  6901. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT>
  6902. {
  6903. std::size_t
  6904. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT const & physicalDeviceImageViewMinLodFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  6905. {
  6906. std::size_t seed = 0;
  6907. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewMinLodFeaturesEXT.sType );
  6908. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewMinLodFeaturesEXT.pNext );
  6909. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewMinLodFeaturesEXT.minLod );
  6910. return seed;
  6911. }
  6912. };
  6913. template <>
  6914. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures>
  6915. {
  6916. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const & physicalDeviceImagelessFramebufferFeatures ) const
  6917. VULKAN_HPP_NOEXCEPT
  6918. {
  6919. std::size_t seed = 0;
  6920. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImagelessFramebufferFeatures.sType );
  6921. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImagelessFramebufferFeatures.pNext );
  6922. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImagelessFramebufferFeatures.imagelessFramebuffer );
  6923. return seed;
  6924. }
  6925. };
  6926. template <>
  6927. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT>
  6928. {
  6929. std::size_t
  6930. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const & physicalDeviceIndexTypeUint8FeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  6931. {
  6932. std::size_t seed = 0;
  6933. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIndexTypeUint8FeaturesEXT.sType );
  6934. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIndexTypeUint8FeaturesEXT.pNext );
  6935. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIndexTypeUint8FeaturesEXT.indexTypeUint8 );
  6936. return seed;
  6937. }
  6938. };
  6939. template <>
  6940. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV>
  6941. {
  6942. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV const & physicalDeviceInheritedViewportScissorFeaturesNV )
  6943. const VULKAN_HPP_NOEXCEPT
  6944. {
  6945. std::size_t seed = 0;
  6946. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInheritedViewportScissorFeaturesNV.sType );
  6947. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInheritedViewportScissorFeaturesNV.pNext );
  6948. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInheritedViewportScissorFeaturesNV.inheritedViewportScissor2D );
  6949. return seed;
  6950. }
  6951. };
  6952. template <>
  6953. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures>
  6954. {
  6955. std::size_t
  6956. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures const & physicalDeviceInlineUniformBlockFeatures ) const VULKAN_HPP_NOEXCEPT
  6957. {
  6958. std::size_t seed = 0;
  6959. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockFeatures.sType );
  6960. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockFeatures.pNext );
  6961. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockFeatures.inlineUniformBlock );
  6962. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockFeatures.descriptorBindingInlineUniformBlockUpdateAfterBind );
  6963. return seed;
  6964. }
  6965. };
  6966. template <>
  6967. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties>
  6968. {
  6969. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties const & physicalDeviceInlineUniformBlockProperties ) const
  6970. VULKAN_HPP_NOEXCEPT
  6971. {
  6972. std::size_t seed = 0;
  6973. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.sType );
  6974. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.pNext );
  6975. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.maxInlineUniformBlockSize );
  6976. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.maxPerStageDescriptorInlineUniformBlocks );
  6977. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks );
  6978. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.maxDescriptorSetInlineUniformBlocks );
  6979. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
  6980. return seed;
  6981. }
  6982. };
  6983. template <>
  6984. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI>
  6985. {
  6986. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI const & physicalDeviceInvocationMaskFeaturesHUAWEI ) const
  6987. VULKAN_HPP_NOEXCEPT
  6988. {
  6989. std::size_t seed = 0;
  6990. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInvocationMaskFeaturesHUAWEI.sType );
  6991. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInvocationMaskFeaturesHUAWEI.pNext );
  6992. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInvocationMaskFeaturesHUAWEI.invocationMask );
  6993. return seed;
  6994. }
  6995. };
  6996. template <>
  6997. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits>
  6998. {
  6999. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const & physicalDeviceLimits ) const VULKAN_HPP_NOEXCEPT
  7000. {
  7001. std::size_t seed = 0;
  7002. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxImageDimension1D );
  7003. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxImageDimension2D );
  7004. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxImageDimension3D );
  7005. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxImageDimensionCube );
  7006. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxImageArrayLayers );
  7007. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTexelBufferElements );
  7008. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxUniformBufferRange );
  7009. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxStorageBufferRange );
  7010. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPushConstantsSize );
  7011. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxMemoryAllocationCount );
  7012. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxSamplerAllocationCount );
  7013. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.bufferImageGranularity );
  7014. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.sparseAddressSpaceSize );
  7015. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxBoundDescriptorSets );
  7016. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorSamplers );
  7017. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorUniformBuffers );
  7018. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorStorageBuffers );
  7019. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorSampledImages );
  7020. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorStorageImages );
  7021. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorInputAttachments );
  7022. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageResources );
  7023. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetSamplers );
  7024. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetUniformBuffers );
  7025. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetUniformBuffersDynamic );
  7026. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetStorageBuffers );
  7027. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetStorageBuffersDynamic );
  7028. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetSampledImages );
  7029. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetStorageImages );
  7030. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetInputAttachments );
  7031. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxVertexInputAttributes );
  7032. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxVertexInputBindings );
  7033. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxVertexInputAttributeOffset );
  7034. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxVertexInputBindingStride );
  7035. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxVertexOutputComponents );
  7036. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationGenerationLevel );
  7037. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationPatchSize );
  7038. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationControlPerVertexInputComponents );
  7039. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationControlPerVertexOutputComponents );
  7040. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationControlPerPatchOutputComponents );
  7041. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationControlTotalOutputComponents );
  7042. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationEvaluationInputComponents );
  7043. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationEvaluationOutputComponents );
  7044. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxGeometryShaderInvocations );
  7045. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxGeometryInputComponents );
  7046. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxGeometryOutputComponents );
  7047. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxGeometryOutputVertices );
  7048. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxGeometryTotalOutputComponents );
  7049. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFragmentInputComponents );
  7050. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFragmentOutputAttachments );
  7051. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFragmentDualSrcAttachments );
  7052. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFragmentCombinedOutputResources );
  7053. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxComputeSharedMemorySize );
  7054. for ( size_t i = 0; i < 3; ++i )
  7055. {
  7056. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxComputeWorkGroupCount[i] );
  7057. }
  7058. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxComputeWorkGroupInvocations );
  7059. for ( size_t i = 0; i < 3; ++i )
  7060. {
  7061. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxComputeWorkGroupSize[i] );
  7062. }
  7063. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.subPixelPrecisionBits );
  7064. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.subTexelPrecisionBits );
  7065. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.mipmapPrecisionBits );
  7066. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDrawIndexedIndexValue );
  7067. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDrawIndirectCount );
  7068. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxSamplerLodBias );
  7069. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxSamplerAnisotropy );
  7070. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxViewports );
  7071. for ( size_t i = 0; i < 2; ++i )
  7072. {
  7073. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxViewportDimensions[i] );
  7074. }
  7075. for ( size_t i = 0; i < 2; ++i )
  7076. {
  7077. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.viewportBoundsRange[i] );
  7078. }
  7079. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.viewportSubPixelBits );
  7080. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minMemoryMapAlignment );
  7081. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minTexelBufferOffsetAlignment );
  7082. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minUniformBufferOffsetAlignment );
  7083. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minStorageBufferOffsetAlignment );
  7084. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minTexelOffset );
  7085. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTexelOffset );
  7086. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minTexelGatherOffset );
  7087. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTexelGatherOffset );
  7088. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minInterpolationOffset );
  7089. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxInterpolationOffset );
  7090. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.subPixelInterpolationOffsetBits );
  7091. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFramebufferWidth );
  7092. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFramebufferHeight );
  7093. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFramebufferLayers );
  7094. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.framebufferColorSampleCounts );
  7095. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.framebufferDepthSampleCounts );
  7096. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.framebufferStencilSampleCounts );
  7097. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.framebufferNoAttachmentsSampleCounts );
  7098. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxColorAttachments );
  7099. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.sampledImageColorSampleCounts );
  7100. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.sampledImageIntegerSampleCounts );
  7101. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.sampledImageDepthSampleCounts );
  7102. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.sampledImageStencilSampleCounts );
  7103. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.storageImageSampleCounts );
  7104. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxSampleMaskWords );
  7105. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.timestampComputeAndGraphics );
  7106. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.timestampPeriod );
  7107. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxClipDistances );
  7108. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxCullDistances );
  7109. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxCombinedClipAndCullDistances );
  7110. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.discreteQueuePriorities );
  7111. for ( size_t i = 0; i < 2; ++i )
  7112. {
  7113. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.pointSizeRange[i] );
  7114. }
  7115. for ( size_t i = 0; i < 2; ++i )
  7116. {
  7117. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.lineWidthRange[i] );
  7118. }
  7119. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.pointSizeGranularity );
  7120. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.lineWidthGranularity );
  7121. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.strictLines );
  7122. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.standardSampleLocations );
  7123. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.optimalBufferCopyOffsetAlignment );
  7124. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.optimalBufferCopyRowPitchAlignment );
  7125. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.nonCoherentAtomSize );
  7126. return seed;
  7127. }
  7128. };
  7129. template <>
  7130. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT>
  7131. {
  7132. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const & physicalDeviceLineRasterizationFeaturesEXT ) const
  7133. VULKAN_HPP_NOEXCEPT
  7134. {
  7135. std::size_t seed = 0;
  7136. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.sType );
  7137. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.pNext );
  7138. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.rectangularLines );
  7139. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.bresenhamLines );
  7140. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.smoothLines );
  7141. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.stippledRectangularLines );
  7142. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.stippledBresenhamLines );
  7143. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.stippledSmoothLines );
  7144. return seed;
  7145. }
  7146. };
  7147. template <>
  7148. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT>
  7149. {
  7150. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const & physicalDeviceLineRasterizationPropertiesEXT ) const
  7151. VULKAN_HPP_NOEXCEPT
  7152. {
  7153. std::size_t seed = 0;
  7154. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationPropertiesEXT.sType );
  7155. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationPropertiesEXT.pNext );
  7156. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationPropertiesEXT.lineSubPixelPrecisionBits );
  7157. return seed;
  7158. }
  7159. };
  7160. template <>
  7161. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV>
  7162. {
  7163. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV const & physicalDeviceLinearColorAttachmentFeaturesNV ) const
  7164. VULKAN_HPP_NOEXCEPT
  7165. {
  7166. std::size_t seed = 0;
  7167. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLinearColorAttachmentFeaturesNV.sType );
  7168. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLinearColorAttachmentFeaturesNV.pNext );
  7169. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLinearColorAttachmentFeaturesNV.linearColorAttachment );
  7170. return seed;
  7171. }
  7172. };
  7173. template <>
  7174. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties>
  7175. {
  7176. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const & physicalDeviceMaintenance3Properties ) const VULKAN_HPP_NOEXCEPT
  7177. {
  7178. std::size_t seed = 0;
  7179. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance3Properties.sType );
  7180. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance3Properties.pNext );
  7181. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance3Properties.maxPerSetDescriptors );
  7182. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance3Properties.maxMemoryAllocationSize );
  7183. return seed;
  7184. }
  7185. };
  7186. template <>
  7187. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features>
  7188. {
  7189. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features const & physicalDeviceMaintenance4Features ) const VULKAN_HPP_NOEXCEPT
  7190. {
  7191. std::size_t seed = 0;
  7192. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Features.sType );
  7193. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Features.pNext );
  7194. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Features.maintenance4 );
  7195. return seed;
  7196. }
  7197. };
  7198. template <>
  7199. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties>
  7200. {
  7201. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties const & physicalDeviceMaintenance4Properties ) const VULKAN_HPP_NOEXCEPT
  7202. {
  7203. std::size_t seed = 0;
  7204. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Properties.sType );
  7205. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Properties.pNext );
  7206. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Properties.maxBufferSize );
  7207. return seed;
  7208. }
  7209. };
  7210. template <>
  7211. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT>
  7212. {
  7213. std::size_t
  7214. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const & physicalDeviceMemoryBudgetPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  7215. {
  7216. std::size_t seed = 0;
  7217. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryBudgetPropertiesEXT.sType );
  7218. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryBudgetPropertiesEXT.pNext );
  7219. for ( size_t i = 0; i < VK_MAX_MEMORY_HEAPS; ++i )
  7220. {
  7221. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryBudgetPropertiesEXT.heapBudget[i] );
  7222. }
  7223. for ( size_t i = 0; i < VK_MAX_MEMORY_HEAPS; ++i )
  7224. {
  7225. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryBudgetPropertiesEXT.heapUsage[i] );
  7226. }
  7227. return seed;
  7228. }
  7229. };
  7230. template <>
  7231. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT>
  7232. {
  7233. std::size_t
  7234. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const & physicalDeviceMemoryPriorityFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  7235. {
  7236. std::size_t seed = 0;
  7237. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryPriorityFeaturesEXT.sType );
  7238. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryPriorityFeaturesEXT.pNext );
  7239. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryPriorityFeaturesEXT.memoryPriority );
  7240. return seed;
  7241. }
  7242. };
  7243. template <>
  7244. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties>
  7245. {
  7246. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const & physicalDeviceMemoryProperties ) const VULKAN_HPP_NOEXCEPT
  7247. {
  7248. std::size_t seed = 0;
  7249. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties.memoryTypeCount );
  7250. for ( size_t i = 0; i < VK_MAX_MEMORY_TYPES; ++i )
  7251. {
  7252. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties.memoryTypes[i] );
  7253. }
  7254. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties.memoryHeapCount );
  7255. for ( size_t i = 0; i < VK_MAX_MEMORY_HEAPS; ++i )
  7256. {
  7257. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties.memoryHeaps[i] );
  7258. }
  7259. return seed;
  7260. }
  7261. };
  7262. template <>
  7263. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>
  7264. {
  7265. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const & physicalDeviceMemoryProperties2 ) const VULKAN_HPP_NOEXCEPT
  7266. {
  7267. std::size_t seed = 0;
  7268. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties2.sType );
  7269. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties2.pNext );
  7270. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties2.memoryProperties );
  7271. return seed;
  7272. }
  7273. };
  7274. template <>
  7275. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT>
  7276. {
  7277. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT const & physicalDeviceMeshShaderFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  7278. {
  7279. std::size_t seed = 0;
  7280. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.sType );
  7281. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.pNext );
  7282. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.taskShader );
  7283. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.meshShader );
  7284. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.multiviewMeshShader );
  7285. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.primitiveFragmentShadingRateMeshShader );
  7286. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.meshShaderQueries );
  7287. return seed;
  7288. }
  7289. };
  7290. template <>
  7291. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV>
  7292. {
  7293. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const & physicalDeviceMeshShaderFeaturesNV ) const VULKAN_HPP_NOEXCEPT
  7294. {
  7295. std::size_t seed = 0;
  7296. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesNV.sType );
  7297. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesNV.pNext );
  7298. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesNV.taskShader );
  7299. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesNV.meshShader );
  7300. return seed;
  7301. }
  7302. };
  7303. template <>
  7304. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT>
  7305. {
  7306. std::size_t
  7307. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT const & physicalDeviceMeshShaderPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  7308. {
  7309. std::size_t seed = 0;
  7310. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.sType );
  7311. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.pNext );
  7312. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskWorkGroupTotalCount );
  7313. for ( size_t i = 0; i < 3; ++i )
  7314. {
  7315. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskWorkGroupCount[i] );
  7316. }
  7317. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskWorkGroupInvocations );
  7318. for ( size_t i = 0; i < 3; ++i )
  7319. {
  7320. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskWorkGroupSize[i] );
  7321. }
  7322. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskPayloadSize );
  7323. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskSharedMemorySize );
  7324. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskPayloadAndSharedMemorySize );
  7325. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshWorkGroupTotalCount );
  7326. for ( size_t i = 0; i < 3; ++i )
  7327. {
  7328. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshWorkGroupCount[i] );
  7329. }
  7330. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshWorkGroupInvocations );
  7331. for ( size_t i = 0; i < 3; ++i )
  7332. {
  7333. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshWorkGroupSize[i] );
  7334. }
  7335. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshSharedMemorySize );
  7336. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshPayloadAndSharedMemorySize );
  7337. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshOutputMemorySize );
  7338. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshPayloadAndOutputMemorySize );
  7339. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshOutputComponents );
  7340. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshOutputVertices );
  7341. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshOutputPrimitives );
  7342. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshOutputLayers );
  7343. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshMultiviewViewCount );
  7344. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.meshOutputPerVertexGranularity );
  7345. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.meshOutputPerPrimitiveGranularity );
  7346. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxPreferredTaskWorkGroupInvocations );
  7347. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxPreferredMeshWorkGroupInvocations );
  7348. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.prefersLocalInvocationVertexOutput );
  7349. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.prefersLocalInvocationPrimitiveOutput );
  7350. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.prefersCompactVertexOutput );
  7351. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.prefersCompactPrimitiveOutput );
  7352. return seed;
  7353. }
  7354. };
  7355. template <>
  7356. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV>
  7357. {
  7358. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const & physicalDeviceMeshShaderPropertiesNV ) const VULKAN_HPP_NOEXCEPT
  7359. {
  7360. std::size_t seed = 0;
  7361. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.sType );
  7362. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.pNext );
  7363. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxDrawMeshTasksCount );
  7364. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxTaskWorkGroupInvocations );
  7365. for ( size_t i = 0; i < 3; ++i )
  7366. {
  7367. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxTaskWorkGroupSize[i] );
  7368. }
  7369. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxTaskTotalMemorySize );
  7370. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxTaskOutputCount );
  7371. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshWorkGroupInvocations );
  7372. for ( size_t i = 0; i < 3; ++i )
  7373. {
  7374. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshWorkGroupSize[i] );
  7375. }
  7376. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshTotalMemorySize );
  7377. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshOutputVertices );
  7378. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshOutputPrimitives );
  7379. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshMultiviewViewCount );
  7380. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.meshOutputPerVertexGranularity );
  7381. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.meshOutputPerPrimitiveGranularity );
  7382. return seed;
  7383. }
  7384. };
  7385. template <>
  7386. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT>
  7387. {
  7388. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT const & physicalDeviceMultiDrawFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  7389. {
  7390. std::size_t seed = 0;
  7391. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawFeaturesEXT.sType );
  7392. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawFeaturesEXT.pNext );
  7393. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawFeaturesEXT.multiDraw );
  7394. return seed;
  7395. }
  7396. };
  7397. template <>
  7398. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT>
  7399. {
  7400. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT const & physicalDeviceMultiDrawPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  7401. {
  7402. std::size_t seed = 0;
  7403. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawPropertiesEXT.sType );
  7404. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawPropertiesEXT.pNext );
  7405. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawPropertiesEXT.maxMultiDrawCount );
  7406. return seed;
  7407. }
  7408. };
  7409. template <>
  7410. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>
  7411. {
  7412. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const &
  7413. physicalDeviceMultisampledRenderToSingleSampledFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  7414. {
  7415. std::size_t seed = 0;
  7416. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.sType );
  7417. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.pNext );
  7418. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.multisampledRenderToSingleSampled );
  7419. return seed;
  7420. }
  7421. };
  7422. template <>
  7423. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures>
  7424. {
  7425. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const & physicalDeviceMultiviewFeatures ) const VULKAN_HPP_NOEXCEPT
  7426. {
  7427. std::size_t seed = 0;
  7428. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewFeatures.sType );
  7429. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewFeatures.pNext );
  7430. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewFeatures.multiview );
  7431. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewFeatures.multiviewGeometryShader );
  7432. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewFeatures.multiviewTessellationShader );
  7433. return seed;
  7434. }
  7435. };
  7436. template <>
  7437. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>
  7438. {
  7439. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const &
  7440. physicalDeviceMultiviewPerViewAttributesPropertiesNVX ) const VULKAN_HPP_NOEXCEPT
  7441. {
  7442. std::size_t seed = 0;
  7443. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewAttributesPropertiesNVX.sType );
  7444. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewAttributesPropertiesNVX.pNext );
  7445. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewAttributesPropertiesNVX.perViewPositionAllComponents );
  7446. return seed;
  7447. }
  7448. };
  7449. template <>
  7450. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties>
  7451. {
  7452. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const & physicalDeviceMultiviewProperties ) const VULKAN_HPP_NOEXCEPT
  7453. {
  7454. std::size_t seed = 0;
  7455. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewProperties.sType );
  7456. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewProperties.pNext );
  7457. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewProperties.maxMultiviewViewCount );
  7458. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewProperties.maxMultiviewInstanceIndex );
  7459. return seed;
  7460. }
  7461. };
  7462. template <>
  7463. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE>
  7464. {
  7465. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & physicalDeviceMutableDescriptorTypeFeaturesVALVE )
  7466. const VULKAN_HPP_NOEXCEPT
  7467. {
  7468. std::size_t seed = 0;
  7469. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMutableDescriptorTypeFeaturesVALVE.sType );
  7470. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMutableDescriptorTypeFeaturesVALVE.pNext );
  7471. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMutableDescriptorTypeFeaturesVALVE.mutableDescriptorType );
  7472. return seed;
  7473. }
  7474. };
  7475. template <>
  7476. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT>
  7477. {
  7478. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & physicalDeviceNonSeamlessCubeMapFeaturesEXT ) const
  7479. VULKAN_HPP_NOEXCEPT
  7480. {
  7481. std::size_t seed = 0;
  7482. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNonSeamlessCubeMapFeaturesEXT.sType );
  7483. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNonSeamlessCubeMapFeaturesEXT.pNext );
  7484. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNonSeamlessCubeMapFeaturesEXT.nonSeamlessCubeMap );
  7485. return seed;
  7486. }
  7487. };
  7488. template <>
  7489. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT>
  7490. {
  7491. std::size_t
  7492. operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const & physicalDevicePCIBusInfoPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  7493. {
  7494. std::size_t seed = 0;
  7495. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.sType );
  7496. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.pNext );
  7497. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.pciDomain );
  7498. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.pciBus );
  7499. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.pciDevice );
  7500. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.pciFunction );
  7501. return seed;
  7502. }
  7503. };
  7504. template <>
  7505. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>
  7506. {
  7507. std::size_t
  7508. operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & physicalDevicePageableDeviceLocalMemoryFeaturesEXT ) const
  7509. VULKAN_HPP_NOEXCEPT
  7510. {
  7511. std::size_t seed = 0;
  7512. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePageableDeviceLocalMemoryFeaturesEXT.sType );
  7513. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePageableDeviceLocalMemoryFeaturesEXT.pNext );
  7514. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePageableDeviceLocalMemoryFeaturesEXT.pageableDeviceLocalMemory );
  7515. return seed;
  7516. }
  7517. };
  7518. template <>
  7519. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR>
  7520. {
  7521. std::size_t
  7522. operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const & physicalDevicePerformanceQueryFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
  7523. {
  7524. std::size_t seed = 0;
  7525. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryFeaturesKHR.sType );
  7526. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryFeaturesKHR.pNext );
  7527. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryFeaturesKHR.performanceCounterQueryPools );
  7528. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryFeaturesKHR.performanceCounterMultipleQueryPools );
  7529. return seed;
  7530. }
  7531. };
  7532. template <>
  7533. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR>
  7534. {
  7535. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const & physicalDevicePerformanceQueryPropertiesKHR ) const
  7536. VULKAN_HPP_NOEXCEPT
  7537. {
  7538. std::size_t seed = 0;
  7539. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryPropertiesKHR.sType );
  7540. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryPropertiesKHR.pNext );
  7541. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryPropertiesKHR.allowCommandBufferQueryCopies );
  7542. return seed;
  7543. }
  7544. };
  7545. template <>
  7546. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures>
  7547. {
  7548. std::size_t
  7549. operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures const & physicalDevicePipelineCreationCacheControlFeatures ) const
  7550. VULKAN_HPP_NOEXCEPT
  7551. {
  7552. std::size_t seed = 0;
  7553. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineCreationCacheControlFeatures.sType );
  7554. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineCreationCacheControlFeatures.pNext );
  7555. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineCreationCacheControlFeatures.pipelineCreationCacheControl );
  7556. return seed;
  7557. }
  7558. };
  7559. template <>
  7560. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>
  7561. {
  7562. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const &
  7563. physicalDevicePipelineExecutablePropertiesFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
  7564. {
  7565. std::size_t seed = 0;
  7566. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineExecutablePropertiesFeaturesKHR.sType );
  7567. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineExecutablePropertiesFeaturesKHR.pNext );
  7568. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineExecutablePropertiesFeaturesKHR.pipelineExecutableInfo );
  7569. return seed;
  7570. }
  7571. };
  7572. template <>
  7573. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT>
  7574. {
  7575. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT const & physicalDevicePipelinePropertiesFeaturesEXT ) const
  7576. VULKAN_HPP_NOEXCEPT
  7577. {
  7578. std::size_t seed = 0;
  7579. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelinePropertiesFeaturesEXT.sType );
  7580. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelinePropertiesFeaturesEXT.pNext );
  7581. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelinePropertiesFeaturesEXT.pipelinePropertiesIdentifier );
  7582. return seed;
  7583. }
  7584. };
  7585. template <>
  7586. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT>
  7587. {
  7588. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT const & physicalDevicePipelineRobustnessFeaturesEXT ) const
  7589. VULKAN_HPP_NOEXCEPT
  7590. {
  7591. std::size_t seed = 0;
  7592. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessFeaturesEXT.sType );
  7593. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessFeaturesEXT.pNext );
  7594. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessFeaturesEXT.pipelineRobustness );
  7595. return seed;
  7596. }
  7597. };
  7598. template <>
  7599. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT>
  7600. {
  7601. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT const & physicalDevicePipelineRobustnessPropertiesEXT ) const
  7602. VULKAN_HPP_NOEXCEPT
  7603. {
  7604. std::size_t seed = 0;
  7605. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.sType );
  7606. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.pNext );
  7607. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.defaultRobustnessStorageBuffers );
  7608. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.defaultRobustnessUniformBuffers );
  7609. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.defaultRobustnessVertexInputs );
  7610. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.defaultRobustnessImages );
  7611. return seed;
  7612. }
  7613. };
  7614. template <>
  7615. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties>
  7616. {
  7617. std::size_t
  7618. operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const & physicalDevicePointClippingProperties ) const VULKAN_HPP_NOEXCEPT
  7619. {
  7620. std::size_t seed = 0;
  7621. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePointClippingProperties.sType );
  7622. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePointClippingProperties.pNext );
  7623. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePointClippingProperties.pointClippingBehavior );
  7624. return seed;
  7625. }
  7626. };
  7627. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  7628. template <>
  7629. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR>
  7630. {
  7631. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR const & physicalDevicePortabilitySubsetFeaturesKHR ) const
  7632. VULKAN_HPP_NOEXCEPT
  7633. {
  7634. std::size_t seed = 0;
  7635. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.sType );
  7636. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.pNext );
  7637. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.constantAlphaColorBlendFactors );
  7638. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.events );
  7639. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.imageViewFormatReinterpretation );
  7640. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.imageViewFormatSwizzle );
  7641. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.imageView2DOn3DImage );
  7642. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.multisampleArrayImage );
  7643. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.mutableComparisonSamplers );
  7644. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.pointPolygons );
  7645. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.samplerMipLodBias );
  7646. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.separateStencilMaskRef );
  7647. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.shaderSampleRateInterpolationFunctions );
  7648. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.tessellationIsolines );
  7649. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.tessellationPointMode );
  7650. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.triangleFans );
  7651. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.vertexAttributeAccessBeyondStride );
  7652. return seed;
  7653. }
  7654. };
  7655. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  7656. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  7657. template <>
  7658. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR>
  7659. {
  7660. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR const & physicalDevicePortabilitySubsetPropertiesKHR ) const
  7661. VULKAN_HPP_NOEXCEPT
  7662. {
  7663. std::size_t seed = 0;
  7664. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetPropertiesKHR.sType );
  7665. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetPropertiesKHR.pNext );
  7666. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetPropertiesKHR.minVertexInputBindingStrideAlignment );
  7667. return seed;
  7668. }
  7669. };
  7670. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  7671. template <>
  7672. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR>
  7673. {
  7674. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR const & physicalDevicePresentIdFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
  7675. {
  7676. std::size_t seed = 0;
  7677. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentIdFeaturesKHR.sType );
  7678. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentIdFeaturesKHR.pNext );
  7679. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentIdFeaturesKHR.presentId );
  7680. return seed;
  7681. }
  7682. };
  7683. template <>
  7684. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR>
  7685. {
  7686. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR const & physicalDevicePresentWaitFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
  7687. {
  7688. std::size_t seed = 0;
  7689. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentWaitFeaturesKHR.sType );
  7690. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentWaitFeaturesKHR.pNext );
  7691. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentWaitFeaturesKHR.presentWait );
  7692. return seed;
  7693. }
  7694. };
  7695. template <>
  7696. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>
  7697. {
  7698. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const &
  7699. physicalDevicePrimitiveTopologyListRestartFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  7700. {
  7701. std::size_t seed = 0;
  7702. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitiveTopologyListRestartFeaturesEXT.sType );
  7703. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitiveTopologyListRestartFeaturesEXT.pNext );
  7704. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitiveTopologyListRestartFeaturesEXT.primitiveTopologyListRestart );
  7705. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitiveTopologyListRestartFeaturesEXT.primitiveTopologyPatchListRestart );
  7706. return seed;
  7707. }
  7708. };
  7709. template <>
  7710. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>
  7711. {
  7712. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & physicalDevicePrimitivesGeneratedQueryFeaturesEXT )
  7713. const VULKAN_HPP_NOEXCEPT
  7714. {
  7715. std::size_t seed = 0;
  7716. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitivesGeneratedQueryFeaturesEXT.sType );
  7717. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitivesGeneratedQueryFeaturesEXT.pNext );
  7718. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitivesGeneratedQueryFeaturesEXT.primitivesGeneratedQuery );
  7719. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitivesGeneratedQueryFeaturesEXT.primitivesGeneratedQueryWithRasterizerDiscard );
  7720. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitivesGeneratedQueryFeaturesEXT.primitivesGeneratedQueryWithNonZeroStreams );
  7721. return seed;
  7722. }
  7723. };
  7724. template <>
  7725. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures>
  7726. {
  7727. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures const & physicalDevicePrivateDataFeatures ) const VULKAN_HPP_NOEXCEPT
  7728. {
  7729. std::size_t seed = 0;
  7730. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrivateDataFeatures.sType );
  7731. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrivateDataFeatures.pNext );
  7732. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrivateDataFeatures.privateData );
  7733. return seed;
  7734. }
  7735. };
  7736. template <>
  7737. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties>
  7738. {
  7739. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const & physicalDeviceSparseProperties ) const VULKAN_HPP_NOEXCEPT
  7740. {
  7741. std::size_t seed = 0;
  7742. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseProperties.residencyStandard2DBlockShape );
  7743. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseProperties.residencyStandard2DMultisampleBlockShape );
  7744. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseProperties.residencyStandard3DBlockShape );
  7745. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseProperties.residencyAlignedMipSize );
  7746. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseProperties.residencyNonResidentStrict );
  7747. return seed;
  7748. }
  7749. };
  7750. template <>
  7751. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties>
  7752. {
  7753. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const & physicalDeviceProperties ) const VULKAN_HPP_NOEXCEPT
  7754. {
  7755. std::size_t seed = 0;
  7756. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.apiVersion );
  7757. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.driverVersion );
  7758. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.vendorID );
  7759. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.deviceID );
  7760. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.deviceType );
  7761. for ( size_t i = 0; i < VK_MAX_PHYSICAL_DEVICE_NAME_SIZE; ++i )
  7762. {
  7763. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.deviceName[i] );
  7764. }
  7765. for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
  7766. {
  7767. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.pipelineCacheUUID[i] );
  7768. }
  7769. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.limits );
  7770. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.sparseProperties );
  7771. return seed;
  7772. }
  7773. };
  7774. template <>
  7775. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>
  7776. {
  7777. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const & physicalDeviceProperties2 ) const VULKAN_HPP_NOEXCEPT
  7778. {
  7779. std::size_t seed = 0;
  7780. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties2.sType );
  7781. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties2.pNext );
  7782. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties2.properties );
  7783. return seed;
  7784. }
  7785. };
  7786. template <>
  7787. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures>
  7788. {
  7789. std::size_t
  7790. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const & physicalDeviceProtectedMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
  7791. {
  7792. std::size_t seed = 0;
  7793. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryFeatures.sType );
  7794. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryFeatures.pNext );
  7795. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryFeatures.protectedMemory );
  7796. return seed;
  7797. }
  7798. };
  7799. template <>
  7800. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties>
  7801. {
  7802. std::size_t
  7803. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const & physicalDeviceProtectedMemoryProperties ) const VULKAN_HPP_NOEXCEPT
  7804. {
  7805. std::size_t seed = 0;
  7806. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryProperties.sType );
  7807. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryProperties.pNext );
  7808. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryProperties.protectedNoFault );
  7809. return seed;
  7810. }
  7811. };
  7812. template <>
  7813. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT>
  7814. {
  7815. std::size_t
  7816. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT const & physicalDeviceProvokingVertexFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  7817. {
  7818. std::size_t seed = 0;
  7819. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexFeaturesEXT.sType );
  7820. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexFeaturesEXT.pNext );
  7821. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexFeaturesEXT.provokingVertexLast );
  7822. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexFeaturesEXT.transformFeedbackPreservesProvokingVertex );
  7823. return seed;
  7824. }
  7825. };
  7826. template <>
  7827. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT>
  7828. {
  7829. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT const & physicalDeviceProvokingVertexPropertiesEXT ) const
  7830. VULKAN_HPP_NOEXCEPT
  7831. {
  7832. std::size_t seed = 0;
  7833. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexPropertiesEXT.sType );
  7834. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexPropertiesEXT.pNext );
  7835. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexPropertiesEXT.provokingVertexModePerPipeline );
  7836. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexPropertiesEXT.transformFeedbackPreservesTriangleFanProvokingVertex );
  7837. return seed;
  7838. }
  7839. };
  7840. template <>
  7841. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR>
  7842. {
  7843. std::size_t
  7844. operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const & physicalDevicePushDescriptorPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  7845. {
  7846. std::size_t seed = 0;
  7847. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePushDescriptorPropertiesKHR.sType );
  7848. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePushDescriptorPropertiesKHR.pNext );
  7849. VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePushDescriptorPropertiesKHR.maxPushDescriptors );
  7850. return seed;
  7851. }
  7852. };
  7853. template <>
  7854. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT>
  7855. {
  7856. std::size_t
  7857. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & physicalDeviceRGBA10X6FormatsFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  7858. {
  7859. std::size_t seed = 0;
  7860. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRGBA10X6FormatsFeaturesEXT.sType );
  7861. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRGBA10X6FormatsFeaturesEXT.pNext );
  7862. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRGBA10X6FormatsFeaturesEXT.formatRgba10x6WithoutYCbCrSampler );
  7863. return seed;
  7864. }
  7865. };
  7866. template <>
  7867. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT>
  7868. {
  7869. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const &
  7870. physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  7871. {
  7872. std::size_t seed = 0;
  7873. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.sType );
  7874. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.pNext );
  7875. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.rasterizationOrderColorAttachmentAccess );
  7876. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.rasterizationOrderDepthAttachmentAccess );
  7877. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.rasterizationOrderStencilAttachmentAccess );
  7878. return seed;
  7879. }
  7880. };
  7881. template <>
  7882. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR>
  7883. {
  7884. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR const & physicalDeviceRayQueryFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
  7885. {
  7886. std::size_t seed = 0;
  7887. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayQueryFeaturesKHR.sType );
  7888. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayQueryFeaturesKHR.pNext );
  7889. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayQueryFeaturesKHR.rayQuery );
  7890. return seed;
  7891. }
  7892. };
  7893. template <>
  7894. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR>
  7895. {
  7896. std::size_t operator()(
  7897. VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & physicalDeviceRayTracingMaintenance1FeaturesKHR ) const VULKAN_HPP_NOEXCEPT
  7898. {
  7899. std::size_t seed = 0;
  7900. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMaintenance1FeaturesKHR.sType );
  7901. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMaintenance1FeaturesKHR.pNext );
  7902. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMaintenance1FeaturesKHR.rayTracingMaintenance1 );
  7903. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMaintenance1FeaturesKHR.rayTracingPipelineTraceRaysIndirect2 );
  7904. return seed;
  7905. }
  7906. };
  7907. template <>
  7908. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV>
  7909. {
  7910. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV const & physicalDeviceRayTracingMotionBlurFeaturesNV ) const
  7911. VULKAN_HPP_NOEXCEPT
  7912. {
  7913. std::size_t seed = 0;
  7914. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMotionBlurFeaturesNV.sType );
  7915. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMotionBlurFeaturesNV.pNext );
  7916. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMotionBlurFeaturesNV.rayTracingMotionBlur );
  7917. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMotionBlurFeaturesNV.rayTracingMotionBlurPipelineTraceRaysIndirect );
  7918. return seed;
  7919. }
  7920. };
  7921. template <>
  7922. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR>
  7923. {
  7924. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR const & physicalDeviceRayTracingPipelineFeaturesKHR ) const
  7925. VULKAN_HPP_NOEXCEPT
  7926. {
  7927. std::size_t seed = 0;
  7928. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.sType );
  7929. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.pNext );
  7930. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipeline );
  7931. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipelineShaderGroupHandleCaptureReplay );
  7932. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipelineShaderGroupHandleCaptureReplayMixed );
  7933. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipelineTraceRaysIndirect );
  7934. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.rayTraversalPrimitiveCulling );
  7935. return seed;
  7936. }
  7937. };
  7938. template <>
  7939. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR>
  7940. {
  7941. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR const & physicalDeviceRayTracingPipelinePropertiesKHR ) const
  7942. VULKAN_HPP_NOEXCEPT
  7943. {
  7944. std::size_t seed = 0;
  7945. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.sType );
  7946. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.pNext );
  7947. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.shaderGroupHandleSize );
  7948. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.maxRayRecursionDepth );
  7949. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.maxShaderGroupStride );
  7950. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.shaderGroupBaseAlignment );
  7951. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.shaderGroupHandleCaptureReplaySize );
  7952. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.maxRayDispatchInvocationCount );
  7953. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.shaderGroupHandleAlignment );
  7954. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.maxRayHitAttributeSize );
  7955. return seed;
  7956. }
  7957. };
  7958. template <>
  7959. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV>
  7960. {
  7961. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const & physicalDeviceRayTracingPropertiesNV ) const VULKAN_HPP_NOEXCEPT
  7962. {
  7963. std::size_t seed = 0;
  7964. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.sType );
  7965. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.pNext );
  7966. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.shaderGroupHandleSize );
  7967. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxRecursionDepth );
  7968. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxShaderGroupStride );
  7969. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.shaderGroupBaseAlignment );
  7970. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxGeometryCount );
  7971. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxInstanceCount );
  7972. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxTriangleCount );
  7973. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxDescriptorSetAccelerationStructures );
  7974. return seed;
  7975. }
  7976. };
  7977. template <>
  7978. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV>
  7979. {
  7980. std::size_t
  7981. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & physicalDeviceRepresentativeFragmentTestFeaturesNV ) const
  7982. VULKAN_HPP_NOEXCEPT
  7983. {
  7984. std::size_t seed = 0;
  7985. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRepresentativeFragmentTestFeaturesNV.sType );
  7986. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRepresentativeFragmentTestFeaturesNV.pNext );
  7987. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRepresentativeFragmentTestFeaturesNV.representativeFragmentTest );
  7988. return seed;
  7989. }
  7990. };
  7991. template <>
  7992. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT>
  7993. {
  7994. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT const & physicalDeviceRobustness2FeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  7995. {
  7996. std::size_t seed = 0;
  7997. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2FeaturesEXT.sType );
  7998. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2FeaturesEXT.pNext );
  7999. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2FeaturesEXT.robustBufferAccess2 );
  8000. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2FeaturesEXT.robustImageAccess2 );
  8001. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2FeaturesEXT.nullDescriptor );
  8002. return seed;
  8003. }
  8004. };
  8005. template <>
  8006. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT>
  8007. {
  8008. std::size_t
  8009. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT const & physicalDeviceRobustness2PropertiesEXT ) const VULKAN_HPP_NOEXCEPT
  8010. {
  8011. std::size_t seed = 0;
  8012. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2PropertiesEXT.sType );
  8013. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2PropertiesEXT.pNext );
  8014. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2PropertiesEXT.robustStorageBufferAccessSizeAlignment );
  8015. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2PropertiesEXT.robustUniformBufferAccessSizeAlignment );
  8016. return seed;
  8017. }
  8018. };
  8019. template <>
  8020. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT>
  8021. {
  8022. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const & physicalDeviceSampleLocationsPropertiesEXT ) const
  8023. VULKAN_HPP_NOEXCEPT
  8024. {
  8025. std::size_t seed = 0;
  8026. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.sType );
  8027. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.pNext );
  8028. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.sampleLocationSampleCounts );
  8029. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.maxSampleLocationGridSize );
  8030. for ( size_t i = 0; i < 2; ++i )
  8031. {
  8032. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.sampleLocationCoordinateRange[i] );
  8033. }
  8034. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.sampleLocationSubPixelBits );
  8035. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.variableSampleLocations );
  8036. return seed;
  8037. }
  8038. };
  8039. template <>
  8040. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties>
  8041. {
  8042. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const & physicalDeviceSamplerFilterMinmaxProperties ) const
  8043. VULKAN_HPP_NOEXCEPT
  8044. {
  8045. std::size_t seed = 0;
  8046. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerFilterMinmaxProperties.sType );
  8047. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerFilterMinmaxProperties.pNext );
  8048. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerFilterMinmaxProperties.filterMinmaxSingleComponentFormats );
  8049. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerFilterMinmaxProperties.filterMinmaxImageComponentMapping );
  8050. return seed;
  8051. }
  8052. };
  8053. template <>
  8054. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures>
  8055. {
  8056. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const & physicalDeviceSamplerYcbcrConversionFeatures ) const
  8057. VULKAN_HPP_NOEXCEPT
  8058. {
  8059. std::size_t seed = 0;
  8060. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerYcbcrConversionFeatures.sType );
  8061. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerYcbcrConversionFeatures.pNext );
  8062. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerYcbcrConversionFeatures.samplerYcbcrConversion );
  8063. return seed;
  8064. }
  8065. };
  8066. template <>
  8067. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures>
  8068. {
  8069. std::size_t
  8070. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const & physicalDeviceScalarBlockLayoutFeatures ) const VULKAN_HPP_NOEXCEPT
  8071. {
  8072. std::size_t seed = 0;
  8073. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceScalarBlockLayoutFeatures.sType );
  8074. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceScalarBlockLayoutFeatures.pNext );
  8075. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceScalarBlockLayoutFeatures.scalarBlockLayout );
  8076. return seed;
  8077. }
  8078. };
  8079. template <>
  8080. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures>
  8081. {
  8082. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & physicalDeviceSeparateDepthStencilLayoutsFeatures )
  8083. const VULKAN_HPP_NOEXCEPT
  8084. {
  8085. std::size_t seed = 0;
  8086. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSeparateDepthStencilLayoutsFeatures.sType );
  8087. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSeparateDepthStencilLayoutsFeatures.pNext );
  8088. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSeparateDepthStencilLayoutsFeatures.separateDepthStencilLayouts );
  8089. return seed;
  8090. }
  8091. };
  8092. template <>
  8093. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT>
  8094. {
  8095. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & physicalDeviceShaderAtomicFloat2FeaturesEXT ) const
  8096. VULKAN_HPP_NOEXCEPT
  8097. {
  8098. std::size_t seed = 0;
  8099. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.sType );
  8100. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.pNext );
  8101. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderBufferFloat16Atomics );
  8102. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderBufferFloat16AtomicAdd );
  8103. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderBufferFloat16AtomicMinMax );
  8104. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderBufferFloat32AtomicMinMax );
  8105. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderBufferFloat64AtomicMinMax );
  8106. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderSharedFloat16Atomics );
  8107. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderSharedFloat16AtomicAdd );
  8108. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderSharedFloat16AtomicMinMax );
  8109. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderSharedFloat32AtomicMinMax );
  8110. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderSharedFloat64AtomicMinMax );
  8111. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderImageFloat32AtomicMinMax );
  8112. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.sparseImageFloat32AtomicMinMax );
  8113. return seed;
  8114. }
  8115. };
  8116. template <>
  8117. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT>
  8118. {
  8119. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT const & physicalDeviceShaderAtomicFloatFeaturesEXT ) const
  8120. VULKAN_HPP_NOEXCEPT
  8121. {
  8122. std::size_t seed = 0;
  8123. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.sType );
  8124. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.pNext );
  8125. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderBufferFloat32Atomics );
  8126. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderBufferFloat32AtomicAdd );
  8127. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderBufferFloat64Atomics );
  8128. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderBufferFloat64AtomicAdd );
  8129. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderSharedFloat32Atomics );
  8130. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderSharedFloat32AtomicAdd );
  8131. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderSharedFloat64Atomics );
  8132. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderSharedFloat64AtomicAdd );
  8133. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderImageFloat32Atomics );
  8134. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderImageFloat32AtomicAdd );
  8135. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.sparseImageFloat32Atomics );
  8136. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.sparseImageFloat32AtomicAdd );
  8137. return seed;
  8138. }
  8139. };
  8140. template <>
  8141. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features>
  8142. {
  8143. std::size_t
  8144. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const & physicalDeviceShaderAtomicInt64Features ) const VULKAN_HPP_NOEXCEPT
  8145. {
  8146. std::size_t seed = 0;
  8147. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicInt64Features.sType );
  8148. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicInt64Features.pNext );
  8149. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicInt64Features.shaderBufferInt64Atomics );
  8150. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicInt64Features.shaderSharedInt64Atomics );
  8151. return seed;
  8152. }
  8153. };
  8154. template <>
  8155. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR>
  8156. {
  8157. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const & physicalDeviceShaderClockFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
  8158. {
  8159. std::size_t seed = 0;
  8160. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderClockFeaturesKHR.sType );
  8161. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderClockFeaturesKHR.pNext );
  8162. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderClockFeaturesKHR.shaderSubgroupClock );
  8163. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderClockFeaturesKHR.shaderDeviceClock );
  8164. return seed;
  8165. }
  8166. };
  8167. template <>
  8168. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD>
  8169. {
  8170. std::size_t
  8171. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const & physicalDeviceShaderCoreProperties2AMD ) const VULKAN_HPP_NOEXCEPT
  8172. {
  8173. std::size_t seed = 0;
  8174. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreProperties2AMD.sType );
  8175. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreProperties2AMD.pNext );
  8176. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreProperties2AMD.shaderCoreFeatures );
  8177. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreProperties2AMD.activeComputeUnitCount );
  8178. return seed;
  8179. }
  8180. };
  8181. template <>
  8182. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD>
  8183. {
  8184. std::size_t
  8185. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const & physicalDeviceShaderCorePropertiesAMD ) const VULKAN_HPP_NOEXCEPT
  8186. {
  8187. std::size_t seed = 0;
  8188. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.sType );
  8189. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.pNext );
  8190. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.shaderEngineCount );
  8191. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.shaderArraysPerEngineCount );
  8192. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.computeUnitsPerShaderArray );
  8193. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.simdPerComputeUnit );
  8194. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.wavefrontsPerSimd );
  8195. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.wavefrontSize );
  8196. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.sgprsPerSimd );
  8197. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.minSgprAllocation );
  8198. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.maxSgprAllocation );
  8199. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.sgprAllocationGranularity );
  8200. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.vgprsPerSimd );
  8201. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.minVgprAllocation );
  8202. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.maxVgprAllocation );
  8203. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.vgprAllocationGranularity );
  8204. return seed;
  8205. }
  8206. };
  8207. template <>
  8208. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures>
  8209. {
  8210. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures const &
  8211. physicalDeviceShaderDemoteToHelperInvocationFeatures ) const VULKAN_HPP_NOEXCEPT
  8212. {
  8213. std::size_t seed = 0;
  8214. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDemoteToHelperInvocationFeatures.sType );
  8215. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDemoteToHelperInvocationFeatures.pNext );
  8216. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDemoteToHelperInvocationFeatures.shaderDemoteToHelperInvocation );
  8217. return seed;
  8218. }
  8219. };
  8220. template <>
  8221. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures>
  8222. {
  8223. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const & physicalDeviceShaderDrawParametersFeatures ) const
  8224. VULKAN_HPP_NOEXCEPT
  8225. {
  8226. std::size_t seed = 0;
  8227. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDrawParametersFeatures.sType );
  8228. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDrawParametersFeatures.pNext );
  8229. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDrawParametersFeatures.shaderDrawParameters );
  8230. return seed;
  8231. }
  8232. };
  8233. template <>
  8234. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>
  8235. {
  8236. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const &
  8237. physicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD ) const VULKAN_HPP_NOEXCEPT
  8238. {
  8239. std::size_t seed = 0;
  8240. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.sType );
  8241. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.pNext );
  8242. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.shaderEarlyAndLateFragmentTests );
  8243. return seed;
  8244. }
  8245. };
  8246. template <>
  8247. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features>
  8248. {
  8249. std::size_t
  8250. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const & physicalDeviceShaderFloat16Int8Features ) const VULKAN_HPP_NOEXCEPT
  8251. {
  8252. std::size_t seed = 0;
  8253. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat16Int8Features.sType );
  8254. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat16Int8Features.pNext );
  8255. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat16Int8Features.shaderFloat16 );
  8256. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat16Int8Features.shaderInt8 );
  8257. return seed;
  8258. }
  8259. };
  8260. template <>
  8261. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
  8262. {
  8263. std::size_t operator()(
  8264. VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & physicalDeviceShaderImageAtomicInt64FeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  8265. {
  8266. std::size_t seed = 0;
  8267. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageAtomicInt64FeaturesEXT.sType );
  8268. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageAtomicInt64FeaturesEXT.pNext );
  8269. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageAtomicInt64FeaturesEXT.shaderImageInt64Atomics );
  8270. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageAtomicInt64FeaturesEXT.sparseImageInt64Atomics );
  8271. return seed;
  8272. }
  8273. };
  8274. template <>
  8275. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV>
  8276. {
  8277. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const & physicalDeviceShaderImageFootprintFeaturesNV ) const
  8278. VULKAN_HPP_NOEXCEPT
  8279. {
  8280. std::size_t seed = 0;
  8281. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageFootprintFeaturesNV.sType );
  8282. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageFootprintFeaturesNV.pNext );
  8283. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageFootprintFeaturesNV.imageFootprint );
  8284. return seed;
  8285. }
  8286. };
  8287. template <>
  8288. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures>
  8289. {
  8290. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures const & physicalDeviceShaderIntegerDotProductFeatures ) const
  8291. VULKAN_HPP_NOEXCEPT
  8292. {
  8293. std::size_t seed = 0;
  8294. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductFeatures.sType );
  8295. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductFeatures.pNext );
  8296. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductFeatures.shaderIntegerDotProduct );
  8297. return seed;
  8298. }
  8299. };
  8300. template <>
  8301. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties>
  8302. {
  8303. std::size_t operator()(
  8304. VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties const & physicalDeviceShaderIntegerDotProductProperties ) const VULKAN_HPP_NOEXCEPT
  8305. {
  8306. std::size_t seed = 0;
  8307. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.sType );
  8308. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.pNext );
  8309. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct8BitUnsignedAccelerated );
  8310. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct8BitSignedAccelerated );
  8311. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct8BitMixedSignednessAccelerated );
  8312. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct4x8BitPackedUnsignedAccelerated );
  8313. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct4x8BitPackedSignedAccelerated );
  8314. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct4x8BitPackedMixedSignednessAccelerated );
  8315. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct16BitUnsignedAccelerated );
  8316. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct16BitSignedAccelerated );
  8317. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct16BitMixedSignednessAccelerated );
  8318. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct32BitUnsignedAccelerated );
  8319. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct32BitSignedAccelerated );
  8320. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct32BitMixedSignednessAccelerated );
  8321. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct64BitUnsignedAccelerated );
  8322. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct64BitSignedAccelerated );
  8323. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct64BitMixedSignednessAccelerated );
  8324. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated );
  8325. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating8BitSignedAccelerated );
  8326. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated );
  8327. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated );
  8328. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated );
  8329. VULKAN_HPP_HASH_COMBINE( seed,
  8330. physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated );
  8331. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated );
  8332. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating16BitSignedAccelerated );
  8333. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated );
  8334. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated );
  8335. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating32BitSignedAccelerated );
  8336. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated );
  8337. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated );
  8338. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating64BitSignedAccelerated );
  8339. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
  8340. return seed;
  8341. }
  8342. };
  8343. template <>
  8344. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>
  8345. {
  8346. std::size_t
  8347. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & physicalDeviceShaderIntegerFunctions2FeaturesINTEL ) const
  8348. VULKAN_HPP_NOEXCEPT
  8349. {
  8350. std::size_t seed = 0;
  8351. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerFunctions2FeaturesINTEL.sType );
  8352. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerFunctions2FeaturesINTEL.pNext );
  8353. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerFunctions2FeaturesINTEL.shaderIntegerFunctions2 );
  8354. return seed;
  8355. }
  8356. };
  8357. template <>
  8358. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT>
  8359. {
  8360. std::size_t operator()(
  8361. VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & physicalDeviceShaderModuleIdentifierFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  8362. {
  8363. std::size_t seed = 0;
  8364. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierFeaturesEXT.sType );
  8365. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierFeaturesEXT.pNext );
  8366. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierFeaturesEXT.shaderModuleIdentifier );
  8367. return seed;
  8368. }
  8369. };
  8370. template <>
  8371. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT>
  8372. {
  8373. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & physicalDeviceShaderModuleIdentifierPropertiesEXT )
  8374. const VULKAN_HPP_NOEXCEPT
  8375. {
  8376. std::size_t seed = 0;
  8377. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierPropertiesEXT.sType );
  8378. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierPropertiesEXT.pNext );
  8379. for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
  8380. {
  8381. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierPropertiesEXT.shaderModuleIdentifierAlgorithmUUID[i] );
  8382. }
  8383. return seed;
  8384. }
  8385. };
  8386. template <>
  8387. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV>
  8388. {
  8389. std::size_t
  8390. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const & physicalDeviceShaderSMBuiltinsFeaturesNV ) const VULKAN_HPP_NOEXCEPT
  8391. {
  8392. std::size_t seed = 0;
  8393. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsFeaturesNV.sType );
  8394. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsFeaturesNV.pNext );
  8395. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsFeaturesNV.shaderSMBuiltins );
  8396. return seed;
  8397. }
  8398. };
  8399. template <>
  8400. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV>
  8401. {
  8402. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const & physicalDeviceShaderSMBuiltinsPropertiesNV ) const
  8403. VULKAN_HPP_NOEXCEPT
  8404. {
  8405. std::size_t seed = 0;
  8406. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsPropertiesNV.sType );
  8407. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsPropertiesNV.pNext );
  8408. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsPropertiesNV.shaderSMCount );
  8409. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsPropertiesNV.shaderWarpsPerSM );
  8410. return seed;
  8411. }
  8412. };
  8413. template <>
  8414. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures>
  8415. {
  8416. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & physicalDeviceShaderSubgroupExtendedTypesFeatures )
  8417. const VULKAN_HPP_NOEXCEPT
  8418. {
  8419. std::size_t seed = 0;
  8420. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupExtendedTypesFeatures.sType );
  8421. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupExtendedTypesFeatures.pNext );
  8422. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupExtendedTypesFeatures.shaderSubgroupExtendedTypes );
  8423. return seed;
  8424. }
  8425. };
  8426. template <>
  8427. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>
  8428. {
  8429. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const &
  8430. physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
  8431. {
  8432. std::size_t seed = 0;
  8433. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.sType );
  8434. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.pNext );
  8435. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.shaderSubgroupUniformControlFlow );
  8436. return seed;
  8437. }
  8438. };
  8439. template <>
  8440. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures>
  8441. {
  8442. std::size_t operator()(
  8443. VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures const & physicalDeviceShaderTerminateInvocationFeatures ) const VULKAN_HPP_NOEXCEPT
  8444. {
  8445. std::size_t seed = 0;
  8446. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTerminateInvocationFeatures.sType );
  8447. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTerminateInvocationFeatures.pNext );
  8448. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTerminateInvocationFeatures.shaderTerminateInvocation );
  8449. return seed;
  8450. }
  8451. };
  8452. template <>
  8453. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV>
  8454. {
  8455. std::size_t
  8456. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const & physicalDeviceShadingRateImageFeaturesNV ) const VULKAN_HPP_NOEXCEPT
  8457. {
  8458. std::size_t seed = 0;
  8459. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImageFeaturesNV.sType );
  8460. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImageFeaturesNV.pNext );
  8461. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImageFeaturesNV.shadingRateImage );
  8462. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImageFeaturesNV.shadingRateCoarseSampleOrder );
  8463. return seed;
  8464. }
  8465. };
  8466. template <>
  8467. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV>
  8468. {
  8469. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const & physicalDeviceShadingRateImagePropertiesNV ) const
  8470. VULKAN_HPP_NOEXCEPT
  8471. {
  8472. std::size_t seed = 0;
  8473. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImagePropertiesNV.sType );
  8474. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImagePropertiesNV.pNext );
  8475. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImagePropertiesNV.shadingRateTexelSize );
  8476. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImagePropertiesNV.shadingRatePaletteSize );
  8477. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImagePropertiesNV.shadingRateMaxCoarseSamples );
  8478. return seed;
  8479. }
  8480. };
  8481. template <>
  8482. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2>
  8483. {
  8484. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const & physicalDeviceSparseImageFormatInfo2 ) const VULKAN_HPP_NOEXCEPT
  8485. {
  8486. std::size_t seed = 0;
  8487. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.sType );
  8488. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.pNext );
  8489. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.format );
  8490. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.type );
  8491. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.samples );
  8492. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.usage );
  8493. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.tiling );
  8494. return seed;
  8495. }
  8496. };
  8497. template <>
  8498. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties>
  8499. {
  8500. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const & physicalDeviceSubgroupProperties ) const VULKAN_HPP_NOEXCEPT
  8501. {
  8502. std::size_t seed = 0;
  8503. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.sType );
  8504. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.pNext );
  8505. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.subgroupSize );
  8506. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.supportedStages );
  8507. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.supportedOperations );
  8508. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.quadOperationsInAllStages );
  8509. return seed;
  8510. }
  8511. };
  8512. template <>
  8513. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures>
  8514. {
  8515. std::size_t
  8516. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures const & physicalDeviceSubgroupSizeControlFeatures ) const VULKAN_HPP_NOEXCEPT
  8517. {
  8518. std::size_t seed = 0;
  8519. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlFeatures.sType );
  8520. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlFeatures.pNext );
  8521. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlFeatures.subgroupSizeControl );
  8522. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlFeatures.computeFullSubgroups );
  8523. return seed;
  8524. }
  8525. };
  8526. template <>
  8527. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties>
  8528. {
  8529. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties const & physicalDeviceSubgroupSizeControlProperties ) const
  8530. VULKAN_HPP_NOEXCEPT
  8531. {
  8532. std::size_t seed = 0;
  8533. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.sType );
  8534. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.pNext );
  8535. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.minSubgroupSize );
  8536. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.maxSubgroupSize );
  8537. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.maxComputeWorkgroupSubgroups );
  8538. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.requiredSubgroupSizeStages );
  8539. return seed;
  8540. }
  8541. };
  8542. template <>
  8543. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT>
  8544. {
  8545. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & physicalDeviceSubpassMergeFeedbackFeaturesEXT ) const
  8546. VULKAN_HPP_NOEXCEPT
  8547. {
  8548. std::size_t seed = 0;
  8549. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassMergeFeedbackFeaturesEXT.sType );
  8550. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassMergeFeedbackFeaturesEXT.pNext );
  8551. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassMergeFeedbackFeaturesEXT.subpassMergeFeedback );
  8552. return seed;
  8553. }
  8554. };
  8555. template <>
  8556. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI>
  8557. {
  8558. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI const & physicalDeviceSubpassShadingFeaturesHUAWEI ) const
  8559. VULKAN_HPP_NOEXCEPT
  8560. {
  8561. std::size_t seed = 0;
  8562. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingFeaturesHUAWEI.sType );
  8563. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingFeaturesHUAWEI.pNext );
  8564. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingFeaturesHUAWEI.subpassShading );
  8565. return seed;
  8566. }
  8567. };
  8568. template <>
  8569. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI>
  8570. {
  8571. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI const & physicalDeviceSubpassShadingPropertiesHUAWEI ) const
  8572. VULKAN_HPP_NOEXCEPT
  8573. {
  8574. std::size_t seed = 0;
  8575. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingPropertiesHUAWEI.sType );
  8576. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingPropertiesHUAWEI.pNext );
  8577. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingPropertiesHUAWEI.maxSubpassShadingWorkgroupSizeAspectRatio );
  8578. return seed;
  8579. }
  8580. };
  8581. template <>
  8582. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR>
  8583. {
  8584. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const & physicalDeviceSurfaceInfo2KHR ) const VULKAN_HPP_NOEXCEPT
  8585. {
  8586. std::size_t seed = 0;
  8587. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSurfaceInfo2KHR.sType );
  8588. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSurfaceInfo2KHR.pNext );
  8589. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSurfaceInfo2KHR.surface );
  8590. return seed;
  8591. }
  8592. };
  8593. template <>
  8594. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features>
  8595. {
  8596. std::size_t
  8597. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features const & physicalDeviceSynchronization2Features ) const VULKAN_HPP_NOEXCEPT
  8598. {
  8599. std::size_t seed = 0;
  8600. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSynchronization2Features.sType );
  8601. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSynchronization2Features.pNext );
  8602. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSynchronization2Features.synchronization2 );
  8603. return seed;
  8604. }
  8605. };
  8606. template <>
  8607. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT>
  8608. {
  8609. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & physicalDeviceTexelBufferAlignmentFeaturesEXT ) const
  8610. VULKAN_HPP_NOEXCEPT
  8611. {
  8612. std::size_t seed = 0;
  8613. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentFeaturesEXT.sType );
  8614. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentFeaturesEXT.pNext );
  8615. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentFeaturesEXT.texelBufferAlignment );
  8616. return seed;
  8617. }
  8618. };
  8619. template <>
  8620. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties>
  8621. {
  8622. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties const & physicalDeviceTexelBufferAlignmentProperties ) const
  8623. VULKAN_HPP_NOEXCEPT
  8624. {
  8625. std::size_t seed = 0;
  8626. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.sType );
  8627. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.pNext );
  8628. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.storageTexelBufferOffsetAlignmentBytes );
  8629. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.storageTexelBufferOffsetSingleTexelAlignment );
  8630. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.uniformTexelBufferOffsetAlignmentBytes );
  8631. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.uniformTexelBufferOffsetSingleTexelAlignment );
  8632. return seed;
  8633. }
  8634. };
  8635. template <>
  8636. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures>
  8637. {
  8638. std::size_t operator()(
  8639. VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures const & physicalDeviceTextureCompressionASTCHDRFeatures ) const VULKAN_HPP_NOEXCEPT
  8640. {
  8641. std::size_t seed = 0;
  8642. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTextureCompressionASTCHDRFeatures.sType );
  8643. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTextureCompressionASTCHDRFeatures.pNext );
  8644. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTextureCompressionASTCHDRFeatures.textureCompressionASTC_HDR );
  8645. return seed;
  8646. }
  8647. };
  8648. template <>
  8649. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM>
  8650. {
  8651. std::size_t
  8652. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM const & physicalDeviceTilePropertiesFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
  8653. {
  8654. std::size_t seed = 0;
  8655. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTilePropertiesFeaturesQCOM.sType );
  8656. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTilePropertiesFeaturesQCOM.pNext );
  8657. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTilePropertiesFeaturesQCOM.tileProperties );
  8658. return seed;
  8659. }
  8660. };
  8661. template <>
  8662. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures>
  8663. {
  8664. std::size_t
  8665. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const & physicalDeviceTimelineSemaphoreFeatures ) const VULKAN_HPP_NOEXCEPT
  8666. {
  8667. std::size_t seed = 0;
  8668. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreFeatures.sType );
  8669. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreFeatures.pNext );
  8670. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreFeatures.timelineSemaphore );
  8671. return seed;
  8672. }
  8673. };
  8674. template <>
  8675. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties>
  8676. {
  8677. std::size_t
  8678. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const & physicalDeviceTimelineSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
  8679. {
  8680. std::size_t seed = 0;
  8681. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreProperties.sType );
  8682. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreProperties.pNext );
  8683. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreProperties.maxTimelineSemaphoreValueDifference );
  8684. return seed;
  8685. }
  8686. };
  8687. template <>
  8688. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>
  8689. {
  8690. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties const & physicalDeviceToolProperties ) const VULKAN_HPP_NOEXCEPT
  8691. {
  8692. std::size_t seed = 0;
  8693. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.sType );
  8694. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.pNext );
  8695. for ( size_t i = 0; i < VK_MAX_EXTENSION_NAME_SIZE; ++i )
  8696. {
  8697. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.name[i] );
  8698. }
  8699. for ( size_t i = 0; i < VK_MAX_EXTENSION_NAME_SIZE; ++i )
  8700. {
  8701. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.version[i] );
  8702. }
  8703. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.purposes );
  8704. for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
  8705. {
  8706. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.description[i] );
  8707. }
  8708. for ( size_t i = 0; i < VK_MAX_EXTENSION_NAME_SIZE; ++i )
  8709. {
  8710. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.layer[i] );
  8711. }
  8712. return seed;
  8713. }
  8714. };
  8715. template <>
  8716. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT>
  8717. {
  8718. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const & physicalDeviceTransformFeedbackFeaturesEXT ) const
  8719. VULKAN_HPP_NOEXCEPT
  8720. {
  8721. std::size_t seed = 0;
  8722. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackFeaturesEXT.sType );
  8723. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackFeaturesEXT.pNext );
  8724. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackFeaturesEXT.transformFeedback );
  8725. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackFeaturesEXT.geometryStreams );
  8726. return seed;
  8727. }
  8728. };
  8729. template <>
  8730. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT>
  8731. {
  8732. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const & physicalDeviceTransformFeedbackPropertiesEXT ) const
  8733. VULKAN_HPP_NOEXCEPT
  8734. {
  8735. std::size_t seed = 0;
  8736. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.sType );
  8737. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.pNext );
  8738. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackStreams );
  8739. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackBuffers );
  8740. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackBufferSize );
  8741. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackStreamDataSize );
  8742. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackBufferDataSize );
  8743. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackBufferDataStride );
  8744. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.transformFeedbackQueries );
  8745. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.transformFeedbackStreamsLinesTriangles );
  8746. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.transformFeedbackRasterizationStreamSelect );
  8747. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.transformFeedbackDraw );
  8748. return seed;
  8749. }
  8750. };
  8751. template <>
  8752. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures>
  8753. {
  8754. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const & physicalDeviceUniformBufferStandardLayoutFeatures )
  8755. const VULKAN_HPP_NOEXCEPT
  8756. {
  8757. std::size_t seed = 0;
  8758. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceUniformBufferStandardLayoutFeatures.sType );
  8759. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceUniformBufferStandardLayoutFeatures.pNext );
  8760. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceUniformBufferStandardLayoutFeatures.uniformBufferStandardLayout );
  8761. return seed;
  8762. }
  8763. };
  8764. template <>
  8765. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures>
  8766. {
  8767. std::size_t
  8768. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const & physicalDeviceVariablePointersFeatures ) const VULKAN_HPP_NOEXCEPT
  8769. {
  8770. std::size_t seed = 0;
  8771. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVariablePointersFeatures.sType );
  8772. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVariablePointersFeatures.pNext );
  8773. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVariablePointersFeatures.variablePointersStorageBuffer );
  8774. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVariablePointersFeatures.variablePointers );
  8775. return seed;
  8776. }
  8777. };
  8778. template <>
  8779. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT>
  8780. {
  8781. std::size_t operator()(
  8782. VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & physicalDeviceVertexAttributeDivisorFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  8783. {
  8784. std::size_t seed = 0;
  8785. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesEXT.sType );
  8786. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesEXT.pNext );
  8787. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesEXT.vertexAttributeInstanceRateDivisor );
  8788. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesEXT.vertexAttributeInstanceRateZeroDivisor );
  8789. return seed;
  8790. }
  8791. };
  8792. template <>
  8793. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT>
  8794. {
  8795. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & physicalDeviceVertexAttributeDivisorPropertiesEXT )
  8796. const VULKAN_HPP_NOEXCEPT
  8797. {
  8798. std::size_t seed = 0;
  8799. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesEXT.sType );
  8800. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesEXT.pNext );
  8801. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesEXT.maxVertexAttribDivisor );
  8802. return seed;
  8803. }
  8804. };
  8805. template <>
  8806. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT>
  8807. {
  8808. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & physicalDeviceVertexInputDynamicStateFeaturesEXT )
  8809. const VULKAN_HPP_NOEXCEPT
  8810. {
  8811. std::size_t seed = 0;
  8812. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexInputDynamicStateFeaturesEXT.sType );
  8813. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexInputDynamicStateFeaturesEXT.pNext );
  8814. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexInputDynamicStateFeaturesEXT.vertexInputDynamicState );
  8815. return seed;
  8816. }
  8817. };
  8818. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  8819. template <>
  8820. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR>
  8821. {
  8822. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR const & physicalDeviceVideoFormatInfoKHR ) const VULKAN_HPP_NOEXCEPT
  8823. {
  8824. std::size_t seed = 0;
  8825. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoFormatInfoKHR.sType );
  8826. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoFormatInfoKHR.pNext );
  8827. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoFormatInfoKHR.imageUsage );
  8828. return seed;
  8829. }
  8830. };
  8831. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  8832. template <>
  8833. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features>
  8834. {
  8835. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const & physicalDeviceVulkan11Features ) const VULKAN_HPP_NOEXCEPT
  8836. {
  8837. std::size_t seed = 0;
  8838. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.sType );
  8839. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.pNext );
  8840. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.storageBuffer16BitAccess );
  8841. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.uniformAndStorageBuffer16BitAccess );
  8842. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.storagePushConstant16 );
  8843. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.storageInputOutput16 );
  8844. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.multiview );
  8845. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.multiviewGeometryShader );
  8846. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.multiviewTessellationShader );
  8847. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.variablePointersStorageBuffer );
  8848. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.variablePointers );
  8849. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.protectedMemory );
  8850. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.samplerYcbcrConversion );
  8851. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.shaderDrawParameters );
  8852. return seed;
  8853. }
  8854. };
  8855. template <>
  8856. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties>
  8857. {
  8858. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const & physicalDeviceVulkan11Properties ) const VULKAN_HPP_NOEXCEPT
  8859. {
  8860. std::size_t seed = 0;
  8861. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.sType );
  8862. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.pNext );
  8863. for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
  8864. {
  8865. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.deviceUUID[i] );
  8866. }
  8867. for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
  8868. {
  8869. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.driverUUID[i] );
  8870. }
  8871. for ( size_t i = 0; i < VK_LUID_SIZE; ++i )
  8872. {
  8873. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.deviceLUID[i] );
  8874. }
  8875. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.deviceNodeMask );
  8876. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.deviceLUIDValid );
  8877. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.subgroupSize );
  8878. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.subgroupSupportedStages );
  8879. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.subgroupSupportedOperations );
  8880. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.subgroupQuadOperationsInAllStages );
  8881. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.pointClippingBehavior );
  8882. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.maxMultiviewViewCount );
  8883. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.maxMultiviewInstanceIndex );
  8884. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.protectedNoFault );
  8885. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.maxPerSetDescriptors );
  8886. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.maxMemoryAllocationSize );
  8887. return seed;
  8888. }
  8889. };
  8890. template <>
  8891. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features>
  8892. {
  8893. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const & physicalDeviceVulkan12Features ) const VULKAN_HPP_NOEXCEPT
  8894. {
  8895. std::size_t seed = 0;
  8896. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.sType );
  8897. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.pNext );
  8898. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.samplerMirrorClampToEdge );
  8899. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.drawIndirectCount );
  8900. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.storageBuffer8BitAccess );
  8901. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.uniformAndStorageBuffer8BitAccess );
  8902. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.storagePushConstant8 );
  8903. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderBufferInt64Atomics );
  8904. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderSharedInt64Atomics );
  8905. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderFloat16 );
  8906. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderInt8 );
  8907. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorIndexing );
  8908. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderInputAttachmentArrayDynamicIndexing );
  8909. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderUniformTexelBufferArrayDynamicIndexing );
  8910. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderStorageTexelBufferArrayDynamicIndexing );
  8911. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderUniformBufferArrayNonUniformIndexing );
  8912. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderSampledImageArrayNonUniformIndexing );
  8913. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderStorageBufferArrayNonUniformIndexing );
  8914. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderStorageImageArrayNonUniformIndexing );
  8915. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderInputAttachmentArrayNonUniformIndexing );
  8916. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderUniformTexelBufferArrayNonUniformIndexing );
  8917. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderStorageTexelBufferArrayNonUniformIndexing );
  8918. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingUniformBufferUpdateAfterBind );
  8919. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingSampledImageUpdateAfterBind );
  8920. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingStorageImageUpdateAfterBind );
  8921. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingStorageBufferUpdateAfterBind );
  8922. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingUniformTexelBufferUpdateAfterBind );
  8923. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingStorageTexelBufferUpdateAfterBind );
  8924. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingUpdateUnusedWhilePending );
  8925. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingPartiallyBound );
  8926. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingVariableDescriptorCount );
  8927. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.runtimeDescriptorArray );
  8928. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.samplerFilterMinmax );
  8929. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.scalarBlockLayout );
  8930. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.imagelessFramebuffer );
  8931. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.uniformBufferStandardLayout );
  8932. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderSubgroupExtendedTypes );
  8933. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.separateDepthStencilLayouts );
  8934. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.hostQueryReset );
  8935. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.timelineSemaphore );
  8936. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.bufferDeviceAddress );
  8937. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.bufferDeviceAddressCaptureReplay );
  8938. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.bufferDeviceAddressMultiDevice );
  8939. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.vulkanMemoryModel );
  8940. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.vulkanMemoryModelDeviceScope );
  8941. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.vulkanMemoryModelAvailabilityVisibilityChains );
  8942. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderOutputViewportIndex );
  8943. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderOutputLayer );
  8944. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.subgroupBroadcastDynamicId );
  8945. return seed;
  8946. }
  8947. };
  8948. template <>
  8949. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties>
  8950. {
  8951. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const & physicalDeviceVulkan12Properties ) const VULKAN_HPP_NOEXCEPT
  8952. {
  8953. std::size_t seed = 0;
  8954. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.sType );
  8955. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.pNext );
  8956. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.driverID );
  8957. for ( size_t i = 0; i < VK_MAX_DRIVER_NAME_SIZE; ++i )
  8958. {
  8959. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.driverName[i] );
  8960. }
  8961. for ( size_t i = 0; i < VK_MAX_DRIVER_INFO_SIZE; ++i )
  8962. {
  8963. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.driverInfo[i] );
  8964. }
  8965. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.conformanceVersion );
  8966. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.denormBehaviorIndependence );
  8967. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.roundingModeIndependence );
  8968. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderSignedZeroInfNanPreserveFloat16 );
  8969. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderSignedZeroInfNanPreserveFloat32 );
  8970. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderSignedZeroInfNanPreserveFloat64 );
  8971. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormPreserveFloat16 );
  8972. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormPreserveFloat32 );
  8973. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormPreserveFloat64 );
  8974. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormFlushToZeroFloat16 );
  8975. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormFlushToZeroFloat32 );
  8976. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormFlushToZeroFloat64 );
  8977. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTEFloat16 );
  8978. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTEFloat32 );
  8979. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTEFloat64 );
  8980. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTZFloat16 );
  8981. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTZFloat32 );
  8982. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTZFloat64 );
  8983. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxUpdateAfterBindDescriptorsInAllPools );
  8984. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderUniformBufferArrayNonUniformIndexingNative );
  8985. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderSampledImageArrayNonUniformIndexingNative );
  8986. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderStorageBufferArrayNonUniformIndexingNative );
  8987. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderStorageImageArrayNonUniformIndexingNative );
  8988. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderInputAttachmentArrayNonUniformIndexingNative );
  8989. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.robustBufferAccessUpdateAfterBind );
  8990. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.quadDivergentImplicitLod );
  8991. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindSamplers );
  8992. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindUniformBuffers );
  8993. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindStorageBuffers );
  8994. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindSampledImages );
  8995. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindStorageImages );
  8996. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindInputAttachments );
  8997. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageUpdateAfterBindResources );
  8998. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindSamplers );
  8999. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindUniformBuffers );
  9000. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic );
  9001. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindStorageBuffers );
  9002. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic );
  9003. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindSampledImages );
  9004. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindStorageImages );
  9005. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindInputAttachments );
  9006. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.supportedDepthResolveModes );
  9007. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.supportedStencilResolveModes );
  9008. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.independentResolveNone );
  9009. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.independentResolve );
  9010. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.filterMinmaxSingleComponentFormats );
  9011. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.filterMinmaxImageComponentMapping );
  9012. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxTimelineSemaphoreValueDifference );
  9013. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.framebufferIntegerColorSampleCounts );
  9014. return seed;
  9015. }
  9016. };
  9017. template <>
  9018. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features>
  9019. {
  9020. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features const & physicalDeviceVulkan13Features ) const VULKAN_HPP_NOEXCEPT
  9021. {
  9022. std::size_t seed = 0;
  9023. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.sType );
  9024. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.pNext );
  9025. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.robustImageAccess );
  9026. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.inlineUniformBlock );
  9027. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.descriptorBindingInlineUniformBlockUpdateAfterBind );
  9028. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.pipelineCreationCacheControl );
  9029. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.privateData );
  9030. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.shaderDemoteToHelperInvocation );
  9031. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.shaderTerminateInvocation );
  9032. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.subgroupSizeControl );
  9033. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.computeFullSubgroups );
  9034. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.synchronization2 );
  9035. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.textureCompressionASTC_HDR );
  9036. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.shaderZeroInitializeWorkgroupMemory );
  9037. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.dynamicRendering );
  9038. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.shaderIntegerDotProduct );
  9039. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.maintenance4 );
  9040. return seed;
  9041. }
  9042. };
  9043. template <>
  9044. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties>
  9045. {
  9046. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties const & physicalDeviceVulkan13Properties ) const VULKAN_HPP_NOEXCEPT
  9047. {
  9048. std::size_t seed = 0;
  9049. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.sType );
  9050. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.pNext );
  9051. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.minSubgroupSize );
  9052. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxSubgroupSize );
  9053. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxComputeWorkgroupSubgroups );
  9054. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.requiredSubgroupSizeStages );
  9055. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxInlineUniformBlockSize );
  9056. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxPerStageDescriptorInlineUniformBlocks );
  9057. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks );
  9058. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxDescriptorSetInlineUniformBlocks );
  9059. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
  9060. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxInlineUniformTotalSize );
  9061. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct8BitUnsignedAccelerated );
  9062. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct8BitSignedAccelerated );
  9063. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct8BitMixedSignednessAccelerated );
  9064. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct4x8BitPackedUnsignedAccelerated );
  9065. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct4x8BitPackedSignedAccelerated );
  9066. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct4x8BitPackedMixedSignednessAccelerated );
  9067. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct16BitUnsignedAccelerated );
  9068. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct16BitSignedAccelerated );
  9069. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct16BitMixedSignednessAccelerated );
  9070. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct32BitUnsignedAccelerated );
  9071. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct32BitSignedAccelerated );
  9072. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct32BitMixedSignednessAccelerated );
  9073. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct64BitUnsignedAccelerated );
  9074. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct64BitSignedAccelerated );
  9075. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct64BitMixedSignednessAccelerated );
  9076. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated );
  9077. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating8BitSignedAccelerated );
  9078. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated );
  9079. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated );
  9080. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated );
  9081. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated );
  9082. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated );
  9083. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating16BitSignedAccelerated );
  9084. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated );
  9085. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated );
  9086. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating32BitSignedAccelerated );
  9087. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated );
  9088. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated );
  9089. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating64BitSignedAccelerated );
  9090. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
  9091. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.storageTexelBufferOffsetAlignmentBytes );
  9092. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.storageTexelBufferOffsetSingleTexelAlignment );
  9093. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.uniformTexelBufferOffsetAlignmentBytes );
  9094. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.uniformTexelBufferOffsetSingleTexelAlignment );
  9095. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxBufferSize );
  9096. return seed;
  9097. }
  9098. };
  9099. template <>
  9100. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures>
  9101. {
  9102. std::size_t
  9103. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const & physicalDeviceVulkanMemoryModelFeatures ) const VULKAN_HPP_NOEXCEPT
  9104. {
  9105. std::size_t seed = 0;
  9106. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkanMemoryModelFeatures.sType );
  9107. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkanMemoryModelFeatures.pNext );
  9108. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkanMemoryModelFeatures.vulkanMemoryModel );
  9109. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkanMemoryModelFeatures.vulkanMemoryModelDeviceScope );
  9110. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkanMemoryModelFeatures.vulkanMemoryModelAvailabilityVisibilityChains );
  9111. return seed;
  9112. }
  9113. };
  9114. template <>
  9115. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>
  9116. {
  9117. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const &
  9118. physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
  9119. {
  9120. std::size_t seed = 0;
  9121. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.sType );
  9122. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.pNext );
  9123. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.workgroupMemoryExplicitLayout );
  9124. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.workgroupMemoryExplicitLayoutScalarBlockLayout );
  9125. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.workgroupMemoryExplicitLayout8BitAccess );
  9126. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.workgroupMemoryExplicitLayout16BitAccess );
  9127. return seed;
  9128. }
  9129. };
  9130. template <>
  9131. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>
  9132. {
  9133. std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & physicalDeviceYcbcr2Plane444FormatsFeaturesEXT ) const
  9134. VULKAN_HPP_NOEXCEPT
  9135. {
  9136. std::size_t seed = 0;
  9137. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcr2Plane444FormatsFeaturesEXT.sType );
  9138. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcr2Plane444FormatsFeaturesEXT.pNext );
  9139. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcr2Plane444FormatsFeaturesEXT.ycbcr2plane444Formats );
  9140. return seed;
  9141. }
  9142. };
  9143. template <>
  9144. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT>
  9145. {
  9146. std::size_t
  9147. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const & physicalDeviceYcbcrImageArraysFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  9148. {
  9149. std::size_t seed = 0;
  9150. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrImageArraysFeaturesEXT.sType );
  9151. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrImageArraysFeaturesEXT.pNext );
  9152. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrImageArraysFeaturesEXT.ycbcrImageArrays );
  9153. return seed;
  9154. }
  9155. };
  9156. template <>
  9157. struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>
  9158. {
  9159. std::size_t
  9160. operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & physicalDeviceZeroInitializeWorkgroupMemoryFeatures ) const
  9161. VULKAN_HPP_NOEXCEPT
  9162. {
  9163. std::size_t seed = 0;
  9164. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceZeroInitializeWorkgroupMemoryFeatures.sType );
  9165. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceZeroInitializeWorkgroupMemoryFeatures.pNext );
  9166. VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceZeroInitializeWorkgroupMemoryFeatures.shaderZeroInitializeWorkgroupMemory );
  9167. return seed;
  9168. }
  9169. };
  9170. template <>
  9171. struct hash<VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo>
  9172. {
  9173. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const & pipelineCacheCreateInfo ) const VULKAN_HPP_NOEXCEPT
  9174. {
  9175. std::size_t seed = 0;
  9176. VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheCreateInfo.sType );
  9177. VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheCreateInfo.pNext );
  9178. VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheCreateInfo.flags );
  9179. VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheCreateInfo.initialDataSize );
  9180. VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheCreateInfo.pInitialData );
  9181. return seed;
  9182. }
  9183. };
  9184. template <>
  9185. struct hash<VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne>
  9186. {
  9187. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne const & pipelineCacheHeaderVersionOne ) const VULKAN_HPP_NOEXCEPT
  9188. {
  9189. std::size_t seed = 0;
  9190. VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheHeaderVersionOne.headerSize );
  9191. VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheHeaderVersionOne.headerVersion );
  9192. VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheHeaderVersionOne.vendorID );
  9193. VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheHeaderVersionOne.deviceID );
  9194. for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
  9195. {
  9196. VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheHeaderVersionOne.pipelineCacheUUID[i] );
  9197. }
  9198. return seed;
  9199. }
  9200. };
  9201. template <>
  9202. struct hash<VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT>
  9203. {
  9204. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const & pipelineColorBlendAdvancedStateCreateInfoEXT ) const
  9205. VULKAN_HPP_NOEXCEPT
  9206. {
  9207. std::size_t seed = 0;
  9208. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAdvancedStateCreateInfoEXT.sType );
  9209. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAdvancedStateCreateInfoEXT.pNext );
  9210. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAdvancedStateCreateInfoEXT.srcPremultiplied );
  9211. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAdvancedStateCreateInfoEXT.dstPremultiplied );
  9212. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAdvancedStateCreateInfoEXT.blendOverlap );
  9213. return seed;
  9214. }
  9215. };
  9216. template <>
  9217. struct hash<VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT>
  9218. {
  9219. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT const & pipelineColorWriteCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  9220. {
  9221. std::size_t seed = 0;
  9222. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorWriteCreateInfoEXT.sType );
  9223. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorWriteCreateInfoEXT.pNext );
  9224. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorWriteCreateInfoEXT.attachmentCount );
  9225. VULKAN_HPP_HASH_COMBINE( seed, pipelineColorWriteCreateInfoEXT.pColorWriteEnables );
  9226. return seed;
  9227. }
  9228. };
  9229. template <>
  9230. struct hash<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD>
  9231. {
  9232. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const & pipelineCompilerControlCreateInfoAMD ) const VULKAN_HPP_NOEXCEPT
  9233. {
  9234. std::size_t seed = 0;
  9235. VULKAN_HPP_HASH_COMBINE( seed, pipelineCompilerControlCreateInfoAMD.sType );
  9236. VULKAN_HPP_HASH_COMBINE( seed, pipelineCompilerControlCreateInfoAMD.pNext );
  9237. VULKAN_HPP_HASH_COMBINE( seed, pipelineCompilerControlCreateInfoAMD.compilerControlFlags );
  9238. return seed;
  9239. }
  9240. };
  9241. template <>
  9242. struct hash<VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV>
  9243. {
  9244. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const & pipelineCoverageModulationStateCreateInfoNV ) const
  9245. VULKAN_HPP_NOEXCEPT
  9246. {
  9247. std::size_t seed = 0;
  9248. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.sType );
  9249. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.pNext );
  9250. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.flags );
  9251. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.coverageModulationMode );
  9252. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.coverageModulationTableEnable );
  9253. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.coverageModulationTableCount );
  9254. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.pCoverageModulationTable );
  9255. return seed;
  9256. }
  9257. };
  9258. template <>
  9259. struct hash<VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV>
  9260. {
  9261. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const & pipelineCoverageReductionStateCreateInfoNV ) const
  9262. VULKAN_HPP_NOEXCEPT
  9263. {
  9264. std::size_t seed = 0;
  9265. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageReductionStateCreateInfoNV.sType );
  9266. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageReductionStateCreateInfoNV.pNext );
  9267. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageReductionStateCreateInfoNV.flags );
  9268. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageReductionStateCreateInfoNV.coverageReductionMode );
  9269. return seed;
  9270. }
  9271. };
  9272. template <>
  9273. struct hash<VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV>
  9274. {
  9275. std::size_t
  9276. operator()( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const & pipelineCoverageToColorStateCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  9277. {
  9278. std::size_t seed = 0;
  9279. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageToColorStateCreateInfoNV.sType );
  9280. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageToColorStateCreateInfoNV.pNext );
  9281. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageToColorStateCreateInfoNV.flags );
  9282. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageToColorStateCreateInfoNV.coverageToColorEnable );
  9283. VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageToColorStateCreateInfoNV.coverageToColorLocation );
  9284. return seed;
  9285. }
  9286. };
  9287. template <>
  9288. struct hash<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback>
  9289. {
  9290. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback const & pipelineCreationFeedback ) const VULKAN_HPP_NOEXCEPT
  9291. {
  9292. std::size_t seed = 0;
  9293. VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedback.flags );
  9294. VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedback.duration );
  9295. return seed;
  9296. }
  9297. };
  9298. template <>
  9299. struct hash<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo>
  9300. {
  9301. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo const & pipelineCreationFeedbackCreateInfo ) const VULKAN_HPP_NOEXCEPT
  9302. {
  9303. std::size_t seed = 0;
  9304. VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedbackCreateInfo.sType );
  9305. VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedbackCreateInfo.pNext );
  9306. VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedbackCreateInfo.pPipelineCreationFeedback );
  9307. VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedbackCreateInfo.pipelineStageCreationFeedbackCount );
  9308. VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedbackCreateInfo.pPipelineStageCreationFeedbacks );
  9309. return seed;
  9310. }
  9311. };
  9312. template <>
  9313. struct hash<VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT>
  9314. {
  9315. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const & pipelineDiscardRectangleStateCreateInfoEXT ) const
  9316. VULKAN_HPP_NOEXCEPT
  9317. {
  9318. std::size_t seed = 0;
  9319. VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.sType );
  9320. VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.pNext );
  9321. VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.flags );
  9322. VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.discardRectangleMode );
  9323. VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.discardRectangleCount );
  9324. VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.pDiscardRectangles );
  9325. return seed;
  9326. }
  9327. };
  9328. template <>
  9329. struct hash<VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR>
  9330. {
  9331. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const & pipelineExecutableInfoKHR ) const VULKAN_HPP_NOEXCEPT
  9332. {
  9333. std::size_t seed = 0;
  9334. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInfoKHR.sType );
  9335. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInfoKHR.pNext );
  9336. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInfoKHR.pipeline );
  9337. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInfoKHR.executableIndex );
  9338. return seed;
  9339. }
  9340. };
  9341. template <>
  9342. struct hash<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>
  9343. {
  9344. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const & pipelineExecutableInternalRepresentationKHR ) const
  9345. VULKAN_HPP_NOEXCEPT
  9346. {
  9347. std::size_t seed = 0;
  9348. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.sType );
  9349. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.pNext );
  9350. for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
  9351. {
  9352. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.name[i] );
  9353. }
  9354. for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
  9355. {
  9356. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.description[i] );
  9357. }
  9358. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.isText );
  9359. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.dataSize );
  9360. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.pData );
  9361. return seed;
  9362. }
  9363. };
  9364. template <>
  9365. struct hash<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR>
  9366. {
  9367. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const & pipelineExecutablePropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  9368. {
  9369. std::size_t seed = 0;
  9370. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.sType );
  9371. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.pNext );
  9372. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.stages );
  9373. for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
  9374. {
  9375. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.name[i] );
  9376. }
  9377. for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
  9378. {
  9379. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.description[i] );
  9380. }
  9381. VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.subgroupSize );
  9382. return seed;
  9383. }
  9384. };
  9385. template <>
  9386. struct hash<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV>
  9387. {
  9388. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV const & pipelineFragmentShadingRateEnumStateCreateInfoNV )
  9389. const VULKAN_HPP_NOEXCEPT
  9390. {
  9391. std::size_t seed = 0;
  9392. VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateEnumStateCreateInfoNV.sType );
  9393. VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateEnumStateCreateInfoNV.pNext );
  9394. VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateEnumStateCreateInfoNV.shadingRateType );
  9395. VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateEnumStateCreateInfoNV.shadingRate );
  9396. for ( size_t i = 0; i < 2; ++i )
  9397. {
  9398. VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateEnumStateCreateInfoNV.combinerOps[i] );
  9399. }
  9400. return seed;
  9401. }
  9402. };
  9403. template <>
  9404. struct hash<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR>
  9405. {
  9406. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR const & pipelineFragmentShadingRateStateCreateInfoKHR ) const
  9407. VULKAN_HPP_NOEXCEPT
  9408. {
  9409. std::size_t seed = 0;
  9410. VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateStateCreateInfoKHR.sType );
  9411. VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateStateCreateInfoKHR.pNext );
  9412. VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateStateCreateInfoKHR.fragmentSize );
  9413. for ( size_t i = 0; i < 2; ++i )
  9414. {
  9415. VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateStateCreateInfoKHR.combinerOps[i] );
  9416. }
  9417. return seed;
  9418. }
  9419. };
  9420. template <>
  9421. struct hash<VULKAN_HPP_NAMESPACE::PipelineInfoKHR>
  9422. {
  9423. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineInfoKHR const & pipelineInfoKHR ) const VULKAN_HPP_NOEXCEPT
  9424. {
  9425. std::size_t seed = 0;
  9426. VULKAN_HPP_HASH_COMBINE( seed, pipelineInfoKHR.sType );
  9427. VULKAN_HPP_HASH_COMBINE( seed, pipelineInfoKHR.pNext );
  9428. VULKAN_HPP_HASH_COMBINE( seed, pipelineInfoKHR.pipeline );
  9429. return seed;
  9430. }
  9431. };
  9432. template <>
  9433. struct hash<VULKAN_HPP_NAMESPACE::PushConstantRange>
  9434. {
  9435. std::size_t operator()( VULKAN_HPP_NAMESPACE::PushConstantRange const & pushConstantRange ) const VULKAN_HPP_NOEXCEPT
  9436. {
  9437. std::size_t seed = 0;
  9438. VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.stageFlags );
  9439. VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.offset );
  9440. VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.size );
  9441. return seed;
  9442. }
  9443. };
  9444. template <>
  9445. struct hash<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo>
  9446. {
  9447. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & pipelineLayoutCreateInfo ) const VULKAN_HPP_NOEXCEPT
  9448. {
  9449. std::size_t seed = 0;
  9450. VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.sType );
  9451. VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.pNext );
  9452. VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.flags );
  9453. VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.setLayoutCount );
  9454. VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.pSetLayouts );
  9455. VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.pushConstantRangeCount );
  9456. VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.pPushConstantRanges );
  9457. return seed;
  9458. }
  9459. };
  9460. template <>
  9461. struct hash<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR>
  9462. {
  9463. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const & pipelineLibraryCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  9464. {
  9465. std::size_t seed = 0;
  9466. VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.sType );
  9467. VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.pNext );
  9468. VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.libraryCount );
  9469. VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.pLibraries );
  9470. return seed;
  9471. }
  9472. };
  9473. template <>
  9474. struct hash<VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT>
  9475. {
  9476. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT const & pipelinePropertiesIdentifierEXT ) const VULKAN_HPP_NOEXCEPT
  9477. {
  9478. std::size_t seed = 0;
  9479. VULKAN_HPP_HASH_COMBINE( seed, pipelinePropertiesIdentifierEXT.sType );
  9480. VULKAN_HPP_HASH_COMBINE( seed, pipelinePropertiesIdentifierEXT.pNext );
  9481. for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
  9482. {
  9483. VULKAN_HPP_HASH_COMBINE( seed, pipelinePropertiesIdentifierEXT.pipelineIdentifier[i] );
  9484. }
  9485. return seed;
  9486. }
  9487. };
  9488. template <>
  9489. struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT>
  9490. {
  9491. std::size_t
  9492. operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const & pipelineRasterizationConservativeStateCreateInfoEXT ) const
  9493. VULKAN_HPP_NOEXCEPT
  9494. {
  9495. std::size_t seed = 0;
  9496. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationConservativeStateCreateInfoEXT.sType );
  9497. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationConservativeStateCreateInfoEXT.pNext );
  9498. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationConservativeStateCreateInfoEXT.flags );
  9499. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationConservativeStateCreateInfoEXT.conservativeRasterizationMode );
  9500. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationConservativeStateCreateInfoEXT.extraPrimitiveOverestimationSize );
  9501. return seed;
  9502. }
  9503. };
  9504. template <>
  9505. struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT>
  9506. {
  9507. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const & pipelineRasterizationDepthClipStateCreateInfoEXT )
  9508. const VULKAN_HPP_NOEXCEPT
  9509. {
  9510. std::size_t seed = 0;
  9511. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationDepthClipStateCreateInfoEXT.sType );
  9512. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationDepthClipStateCreateInfoEXT.pNext );
  9513. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationDepthClipStateCreateInfoEXT.flags );
  9514. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationDepthClipStateCreateInfoEXT.depthClipEnable );
  9515. return seed;
  9516. }
  9517. };
  9518. template <>
  9519. struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT>
  9520. {
  9521. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const & pipelineRasterizationLineStateCreateInfoEXT ) const
  9522. VULKAN_HPP_NOEXCEPT
  9523. {
  9524. std::size_t seed = 0;
  9525. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.sType );
  9526. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.pNext );
  9527. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.lineRasterizationMode );
  9528. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.stippledLineEnable );
  9529. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.lineStippleFactor );
  9530. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.lineStipplePattern );
  9531. return seed;
  9532. }
  9533. };
  9534. template <>
  9535. struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT>
  9536. {
  9537. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT const &
  9538. pipelineRasterizationProvokingVertexStateCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  9539. {
  9540. std::size_t seed = 0;
  9541. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationProvokingVertexStateCreateInfoEXT.sType );
  9542. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationProvokingVertexStateCreateInfoEXT.pNext );
  9543. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationProvokingVertexStateCreateInfoEXT.provokingVertexMode );
  9544. return seed;
  9545. }
  9546. };
  9547. template <>
  9548. struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD>
  9549. {
  9550. std::size_t operator()(
  9551. VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const & pipelineRasterizationStateRasterizationOrderAMD ) const VULKAN_HPP_NOEXCEPT
  9552. {
  9553. std::size_t seed = 0;
  9554. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateRasterizationOrderAMD.sType );
  9555. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateRasterizationOrderAMD.pNext );
  9556. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateRasterizationOrderAMD.rasterizationOrder );
  9557. return seed;
  9558. }
  9559. };
  9560. template <>
  9561. struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT>
  9562. {
  9563. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const & pipelineRasterizationStateStreamCreateInfoEXT ) const
  9564. VULKAN_HPP_NOEXCEPT
  9565. {
  9566. std::size_t seed = 0;
  9567. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateStreamCreateInfoEXT.sType );
  9568. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateStreamCreateInfoEXT.pNext );
  9569. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateStreamCreateInfoEXT.flags );
  9570. VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateStreamCreateInfoEXT.rasterizationStream );
  9571. return seed;
  9572. }
  9573. };
  9574. template <>
  9575. struct hash<VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo>
  9576. {
  9577. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo const & pipelineRenderingCreateInfo ) const VULKAN_HPP_NOEXCEPT
  9578. {
  9579. std::size_t seed = 0;
  9580. VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.sType );
  9581. VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.pNext );
  9582. VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.viewMask );
  9583. VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.colorAttachmentCount );
  9584. VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.pColorAttachmentFormats );
  9585. VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.depthAttachmentFormat );
  9586. VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.stencilAttachmentFormat );
  9587. return seed;
  9588. }
  9589. };
  9590. template <>
  9591. struct hash<VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV>
  9592. {
  9593. std::size_t
  9594. operator()( VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const & pipelineRepresentativeFragmentTestStateCreateInfoNV ) const
  9595. VULKAN_HPP_NOEXCEPT
  9596. {
  9597. std::size_t seed = 0;
  9598. VULKAN_HPP_HASH_COMBINE( seed, pipelineRepresentativeFragmentTestStateCreateInfoNV.sType );
  9599. VULKAN_HPP_HASH_COMBINE( seed, pipelineRepresentativeFragmentTestStateCreateInfoNV.pNext );
  9600. VULKAN_HPP_HASH_COMBINE( seed, pipelineRepresentativeFragmentTestStateCreateInfoNV.representativeFragmentTestEnable );
  9601. return seed;
  9602. }
  9603. };
  9604. template <>
  9605. struct hash<VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT>
  9606. {
  9607. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT const & pipelineRobustnessCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  9608. {
  9609. std::size_t seed = 0;
  9610. VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.sType );
  9611. VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.pNext );
  9612. VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.storageBuffers );
  9613. VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.uniformBuffers );
  9614. VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.vertexInputs );
  9615. VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.images );
  9616. return seed;
  9617. }
  9618. };
  9619. template <>
  9620. struct hash<VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT>
  9621. {
  9622. std::size_t
  9623. operator()( VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const & pipelineSampleLocationsStateCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  9624. {
  9625. std::size_t seed = 0;
  9626. VULKAN_HPP_HASH_COMBINE( seed, pipelineSampleLocationsStateCreateInfoEXT.sType );
  9627. VULKAN_HPP_HASH_COMBINE( seed, pipelineSampleLocationsStateCreateInfoEXT.pNext );
  9628. VULKAN_HPP_HASH_COMBINE( seed, pipelineSampleLocationsStateCreateInfoEXT.sampleLocationsEnable );
  9629. VULKAN_HPP_HASH_COMBINE( seed, pipelineSampleLocationsStateCreateInfoEXT.sampleLocationsInfo );
  9630. return seed;
  9631. }
  9632. };
  9633. template <>
  9634. struct hash<VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT>
  9635. {
  9636. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT const & pipelineShaderStageModuleIdentifierCreateInfoEXT )
  9637. const VULKAN_HPP_NOEXCEPT
  9638. {
  9639. std::size_t seed = 0;
  9640. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageModuleIdentifierCreateInfoEXT.sType );
  9641. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageModuleIdentifierCreateInfoEXT.pNext );
  9642. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageModuleIdentifierCreateInfoEXT.identifierSize );
  9643. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageModuleIdentifierCreateInfoEXT.pIdentifier );
  9644. return seed;
  9645. }
  9646. };
  9647. template <>
  9648. struct hash<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo>
  9649. {
  9650. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo const & pipelineShaderStageRequiredSubgroupSizeCreateInfo )
  9651. const VULKAN_HPP_NOEXCEPT
  9652. {
  9653. std::size_t seed = 0;
  9654. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageRequiredSubgroupSizeCreateInfo.sType );
  9655. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageRequiredSubgroupSizeCreateInfo.pNext );
  9656. VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageRequiredSubgroupSizeCreateInfo.requiredSubgroupSize );
  9657. return seed;
  9658. }
  9659. };
  9660. template <>
  9661. struct hash<VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo>
  9662. {
  9663. std::size_t operator()(
  9664. VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const & pipelineTessellationDomainOriginStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
  9665. {
  9666. std::size_t seed = 0;
  9667. VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationDomainOriginStateCreateInfo.sType );
  9668. VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationDomainOriginStateCreateInfo.pNext );
  9669. VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationDomainOriginStateCreateInfo.domainOrigin );
  9670. return seed;
  9671. }
  9672. };
  9673. template <>
  9674. struct hash<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT>
  9675. {
  9676. std::size_t
  9677. operator()( VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT const & vertexInputBindingDivisorDescriptionEXT ) const VULKAN_HPP_NOEXCEPT
  9678. {
  9679. std::size_t seed = 0;
  9680. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDivisorDescriptionEXT.binding );
  9681. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDivisorDescriptionEXT.divisor );
  9682. return seed;
  9683. }
  9684. };
  9685. template <>
  9686. struct hash<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT>
  9687. {
  9688. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoEXT const & pipelineVertexInputDivisorStateCreateInfoEXT ) const
  9689. VULKAN_HPP_NOEXCEPT
  9690. {
  9691. std::size_t seed = 0;
  9692. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoEXT.sType );
  9693. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoEXT.pNext );
  9694. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoEXT.vertexBindingDivisorCount );
  9695. VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoEXT.pVertexBindingDivisors );
  9696. return seed;
  9697. }
  9698. };
  9699. template <>
  9700. struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV>
  9701. {
  9702. std::size_t
  9703. operator()( VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const & pipelineViewportCoarseSampleOrderStateCreateInfoNV ) const
  9704. VULKAN_HPP_NOEXCEPT
  9705. {
  9706. std::size_t seed = 0;
  9707. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportCoarseSampleOrderStateCreateInfoNV.sType );
  9708. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportCoarseSampleOrderStateCreateInfoNV.pNext );
  9709. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportCoarseSampleOrderStateCreateInfoNV.sampleOrderType );
  9710. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportCoarseSampleOrderStateCreateInfoNV.customSampleOrderCount );
  9711. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportCoarseSampleOrderStateCreateInfoNV.pCustomSampleOrders );
  9712. return seed;
  9713. }
  9714. };
  9715. template <>
  9716. struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT>
  9717. {
  9718. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT const & pipelineViewportDepthClipControlCreateInfoEXT ) const
  9719. VULKAN_HPP_NOEXCEPT
  9720. {
  9721. std::size_t seed = 0;
  9722. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportDepthClipControlCreateInfoEXT.sType );
  9723. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportDepthClipControlCreateInfoEXT.pNext );
  9724. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportDepthClipControlCreateInfoEXT.negativeOneToOne );
  9725. return seed;
  9726. }
  9727. };
  9728. template <>
  9729. struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV>
  9730. {
  9731. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const & pipelineViewportExclusiveScissorStateCreateInfoNV )
  9732. const VULKAN_HPP_NOEXCEPT
  9733. {
  9734. std::size_t seed = 0;
  9735. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportExclusiveScissorStateCreateInfoNV.sType );
  9736. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportExclusiveScissorStateCreateInfoNV.pNext );
  9737. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportExclusiveScissorStateCreateInfoNV.exclusiveScissorCount );
  9738. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportExclusiveScissorStateCreateInfoNV.pExclusiveScissors );
  9739. return seed;
  9740. }
  9741. };
  9742. template <>
  9743. struct hash<VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV>
  9744. {
  9745. std::size_t operator()( VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV const & shadingRatePaletteNV ) const VULKAN_HPP_NOEXCEPT
  9746. {
  9747. std::size_t seed = 0;
  9748. VULKAN_HPP_HASH_COMBINE( seed, shadingRatePaletteNV.shadingRatePaletteEntryCount );
  9749. VULKAN_HPP_HASH_COMBINE( seed, shadingRatePaletteNV.pShadingRatePaletteEntries );
  9750. return seed;
  9751. }
  9752. };
  9753. template <>
  9754. struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV>
  9755. {
  9756. std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const & pipelineViewportShadingRateImageStateCreateInfoNV )
  9757. const VULKAN_HPP_NOEXCEPT
  9758. {
  9759. std::size_t seed = 0;
  9760. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportShadingRateImageStateCreateInfoNV.sType );
  9761. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportShadingRateImageStateCreateInfoNV.pNext );
  9762. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportShadingRateImageStateCreateInfoNV.shadingRateImageEnable );
  9763. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportShadingRateImageStateCreateInfoNV.viewportCount );
  9764. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportShadingRateImageStateCreateInfoNV.pShadingRatePalettes );
  9765. return seed;
  9766. }
  9767. };
  9768. template <>
  9769. struct hash<VULKAN_HPP_NAMESPACE::ViewportSwizzleNV>
  9770. {
  9771. std::size_t operator()( VULKAN_HPP_NAMESPACE::ViewportSwizzleNV const & viewportSwizzleNV ) const VULKAN_HPP_NOEXCEPT
  9772. {
  9773. std::size_t seed = 0;
  9774. VULKAN_HPP_HASH_COMBINE( seed, viewportSwizzleNV.x );
  9775. VULKAN_HPP_HASH_COMBINE( seed, viewportSwizzleNV.y );
  9776. VULKAN_HPP_HASH_COMBINE( seed, viewportSwizzleNV.z );
  9777. VULKAN_HPP_HASH_COMBINE( seed, viewportSwizzleNV.w );
  9778. return seed;
  9779. }
  9780. };
  9781. template <>
  9782. struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV>
  9783. {
  9784. std::size_t
  9785. operator()( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const & pipelineViewportSwizzleStateCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  9786. {
  9787. std::size_t seed = 0;
  9788. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportSwizzleStateCreateInfoNV.sType );
  9789. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportSwizzleStateCreateInfoNV.pNext );
  9790. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportSwizzleStateCreateInfoNV.flags );
  9791. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportSwizzleStateCreateInfoNV.viewportCount );
  9792. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportSwizzleStateCreateInfoNV.pViewportSwizzles );
  9793. return seed;
  9794. }
  9795. };
  9796. template <>
  9797. struct hash<VULKAN_HPP_NAMESPACE::ViewportWScalingNV>
  9798. {
  9799. std::size_t operator()( VULKAN_HPP_NAMESPACE::ViewportWScalingNV const & viewportWScalingNV ) const VULKAN_HPP_NOEXCEPT
  9800. {
  9801. std::size_t seed = 0;
  9802. VULKAN_HPP_HASH_COMBINE( seed, viewportWScalingNV.xcoeff );
  9803. VULKAN_HPP_HASH_COMBINE( seed, viewportWScalingNV.ycoeff );
  9804. return seed;
  9805. }
  9806. };
  9807. template <>
  9808. struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV>
  9809. {
  9810. std::size_t
  9811. operator()( VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const & pipelineViewportWScalingStateCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  9812. {
  9813. std::size_t seed = 0;
  9814. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportWScalingStateCreateInfoNV.sType );
  9815. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportWScalingStateCreateInfoNV.pNext );
  9816. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportWScalingStateCreateInfoNV.viewportWScalingEnable );
  9817. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportWScalingStateCreateInfoNV.viewportCount );
  9818. VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportWScalingStateCreateInfoNV.pViewportWScalings );
  9819. return seed;
  9820. }
  9821. };
  9822. # if defined( VK_USE_PLATFORM_GGP )
  9823. template <>
  9824. struct hash<VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP>
  9825. {
  9826. std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const & presentFrameTokenGGP ) const VULKAN_HPP_NOEXCEPT
  9827. {
  9828. std::size_t seed = 0;
  9829. VULKAN_HPP_HASH_COMBINE( seed, presentFrameTokenGGP.sType );
  9830. VULKAN_HPP_HASH_COMBINE( seed, presentFrameTokenGGP.pNext );
  9831. VULKAN_HPP_HASH_COMBINE( seed, presentFrameTokenGGP.frameToken );
  9832. return seed;
  9833. }
  9834. };
  9835. # endif /*VK_USE_PLATFORM_GGP*/
  9836. template <>
  9837. struct hash<VULKAN_HPP_NAMESPACE::PresentIdKHR>
  9838. {
  9839. std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentIdKHR const & presentIdKHR ) const VULKAN_HPP_NOEXCEPT
  9840. {
  9841. std::size_t seed = 0;
  9842. VULKAN_HPP_HASH_COMBINE( seed, presentIdKHR.sType );
  9843. VULKAN_HPP_HASH_COMBINE( seed, presentIdKHR.pNext );
  9844. VULKAN_HPP_HASH_COMBINE( seed, presentIdKHR.swapchainCount );
  9845. VULKAN_HPP_HASH_COMBINE( seed, presentIdKHR.pPresentIds );
  9846. return seed;
  9847. }
  9848. };
  9849. template <>
  9850. struct hash<VULKAN_HPP_NAMESPACE::PresentInfoKHR>
  9851. {
  9852. std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentInfoKHR const & presentInfoKHR ) const VULKAN_HPP_NOEXCEPT
  9853. {
  9854. std::size_t seed = 0;
  9855. VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.sType );
  9856. VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.pNext );
  9857. VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.waitSemaphoreCount );
  9858. VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.pWaitSemaphores );
  9859. VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.swapchainCount );
  9860. VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.pSwapchains );
  9861. VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.pImageIndices );
  9862. VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.pResults );
  9863. return seed;
  9864. }
  9865. };
  9866. template <>
  9867. struct hash<VULKAN_HPP_NAMESPACE::RectLayerKHR>
  9868. {
  9869. std::size_t operator()( VULKAN_HPP_NAMESPACE::RectLayerKHR const & rectLayerKHR ) const VULKAN_HPP_NOEXCEPT
  9870. {
  9871. std::size_t seed = 0;
  9872. VULKAN_HPP_HASH_COMBINE( seed, rectLayerKHR.offset );
  9873. VULKAN_HPP_HASH_COMBINE( seed, rectLayerKHR.extent );
  9874. VULKAN_HPP_HASH_COMBINE( seed, rectLayerKHR.layer );
  9875. return seed;
  9876. }
  9877. };
  9878. template <>
  9879. struct hash<VULKAN_HPP_NAMESPACE::PresentRegionKHR>
  9880. {
  9881. std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentRegionKHR const & presentRegionKHR ) const VULKAN_HPP_NOEXCEPT
  9882. {
  9883. std::size_t seed = 0;
  9884. VULKAN_HPP_HASH_COMBINE( seed, presentRegionKHR.rectangleCount );
  9885. VULKAN_HPP_HASH_COMBINE( seed, presentRegionKHR.pRectangles );
  9886. return seed;
  9887. }
  9888. };
  9889. template <>
  9890. struct hash<VULKAN_HPP_NAMESPACE::PresentRegionsKHR>
  9891. {
  9892. std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentRegionsKHR const & presentRegionsKHR ) const VULKAN_HPP_NOEXCEPT
  9893. {
  9894. std::size_t seed = 0;
  9895. VULKAN_HPP_HASH_COMBINE( seed, presentRegionsKHR.sType );
  9896. VULKAN_HPP_HASH_COMBINE( seed, presentRegionsKHR.pNext );
  9897. VULKAN_HPP_HASH_COMBINE( seed, presentRegionsKHR.swapchainCount );
  9898. VULKAN_HPP_HASH_COMBINE( seed, presentRegionsKHR.pRegions );
  9899. return seed;
  9900. }
  9901. };
  9902. template <>
  9903. struct hash<VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE>
  9904. {
  9905. std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE const & presentTimeGOOGLE ) const VULKAN_HPP_NOEXCEPT
  9906. {
  9907. std::size_t seed = 0;
  9908. VULKAN_HPP_HASH_COMBINE( seed, presentTimeGOOGLE.presentID );
  9909. VULKAN_HPP_HASH_COMBINE( seed, presentTimeGOOGLE.desiredPresentTime );
  9910. return seed;
  9911. }
  9912. };
  9913. template <>
  9914. struct hash<VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE>
  9915. {
  9916. std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const & presentTimesInfoGOOGLE ) const VULKAN_HPP_NOEXCEPT
  9917. {
  9918. std::size_t seed = 0;
  9919. VULKAN_HPP_HASH_COMBINE( seed, presentTimesInfoGOOGLE.sType );
  9920. VULKAN_HPP_HASH_COMBINE( seed, presentTimesInfoGOOGLE.pNext );
  9921. VULKAN_HPP_HASH_COMBINE( seed, presentTimesInfoGOOGLE.swapchainCount );
  9922. VULKAN_HPP_HASH_COMBINE( seed, presentTimesInfoGOOGLE.pTimes );
  9923. return seed;
  9924. }
  9925. };
  9926. template <>
  9927. struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo>
  9928. {
  9929. std::size_t operator()( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & privateDataSlotCreateInfo ) const VULKAN_HPP_NOEXCEPT
  9930. {
  9931. std::size_t seed = 0;
  9932. VULKAN_HPP_HASH_COMBINE( seed, privateDataSlotCreateInfo.sType );
  9933. VULKAN_HPP_HASH_COMBINE( seed, privateDataSlotCreateInfo.pNext );
  9934. VULKAN_HPP_HASH_COMBINE( seed, privateDataSlotCreateInfo.flags );
  9935. return seed;
  9936. }
  9937. };
  9938. template <>
  9939. struct hash<VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo>
  9940. {
  9941. std::size_t operator()( VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const & protectedSubmitInfo ) const VULKAN_HPP_NOEXCEPT
  9942. {
  9943. std::size_t seed = 0;
  9944. VULKAN_HPP_HASH_COMBINE( seed, protectedSubmitInfo.sType );
  9945. VULKAN_HPP_HASH_COMBINE( seed, protectedSubmitInfo.pNext );
  9946. VULKAN_HPP_HASH_COMBINE( seed, protectedSubmitInfo.protectedSubmit );
  9947. return seed;
  9948. }
  9949. };
  9950. template <>
  9951. struct hash<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo>
  9952. {
  9953. std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & queryPoolCreateInfo ) const VULKAN_HPP_NOEXCEPT
  9954. {
  9955. std::size_t seed = 0;
  9956. VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.sType );
  9957. VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.pNext );
  9958. VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.flags );
  9959. VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.queryType );
  9960. VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.queryCount );
  9961. VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.pipelineStatistics );
  9962. return seed;
  9963. }
  9964. };
  9965. template <>
  9966. struct hash<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR>
  9967. {
  9968. std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const & queryPoolPerformanceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  9969. {
  9970. std::size_t seed = 0;
  9971. VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceCreateInfoKHR.sType );
  9972. VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceCreateInfoKHR.pNext );
  9973. VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceCreateInfoKHR.queueFamilyIndex );
  9974. VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceCreateInfoKHR.counterIndexCount );
  9975. VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceCreateInfoKHR.pCounterIndices );
  9976. return seed;
  9977. }
  9978. };
  9979. template <>
  9980. struct hash<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL>
  9981. {
  9982. std::size_t
  9983. operator()( VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL const & queryPoolPerformanceQueryCreateInfoINTEL ) const VULKAN_HPP_NOEXCEPT
  9984. {
  9985. std::size_t seed = 0;
  9986. VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceQueryCreateInfoINTEL.sType );
  9987. VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceQueryCreateInfoINTEL.pNext );
  9988. VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceQueryCreateInfoINTEL.performanceCountersSampling );
  9989. return seed;
  9990. }
  9991. };
  9992. template <>
  9993. struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV>
  9994. {
  9995. std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV const & queueFamilyCheckpointProperties2NV ) const VULKAN_HPP_NOEXCEPT
  9996. {
  9997. std::size_t seed = 0;
  9998. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointProperties2NV.sType );
  9999. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointProperties2NV.pNext );
  10000. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointProperties2NV.checkpointExecutionStageMask );
  10001. return seed;
  10002. }
  10003. };
  10004. template <>
  10005. struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV>
  10006. {
  10007. std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const & queueFamilyCheckpointPropertiesNV ) const VULKAN_HPP_NOEXCEPT
  10008. {
  10009. std::size_t seed = 0;
  10010. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointPropertiesNV.sType );
  10011. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointPropertiesNV.pNext );
  10012. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointPropertiesNV.checkpointExecutionStageMask );
  10013. return seed;
  10014. }
  10015. };
  10016. template <>
  10017. struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR>
  10018. {
  10019. std::size_t
  10020. operator()( VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR const & queueFamilyGlobalPriorityPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  10021. {
  10022. std::size_t seed = 0;
  10023. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyGlobalPriorityPropertiesKHR.sType );
  10024. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyGlobalPriorityPropertiesKHR.pNext );
  10025. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyGlobalPriorityPropertiesKHR.priorityCount );
  10026. for ( size_t i = 0; i < VK_MAX_GLOBAL_PRIORITY_SIZE_KHR; ++i )
  10027. {
  10028. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyGlobalPriorityPropertiesKHR.priorities[i] );
  10029. }
  10030. return seed;
  10031. }
  10032. };
  10033. template <>
  10034. struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyProperties>
  10035. {
  10036. std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyProperties const & queueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
  10037. {
  10038. std::size_t seed = 0;
  10039. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties.queueFlags );
  10040. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties.queueCount );
  10041. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties.timestampValidBits );
  10042. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties.minImageTransferGranularity );
  10043. return seed;
  10044. }
  10045. };
  10046. template <>
  10047. struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>
  10048. {
  10049. std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const & queueFamilyProperties2 ) const VULKAN_HPP_NOEXCEPT
  10050. {
  10051. std::size_t seed = 0;
  10052. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties2.sType );
  10053. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties2.pNext );
  10054. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties2.queueFamilyProperties );
  10055. return seed;
  10056. }
  10057. };
  10058. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  10059. template <>
  10060. struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR>
  10061. {
  10062. std::size_t
  10063. operator()( VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR const & queueFamilyQueryResultStatusPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  10064. {
  10065. std::size_t seed = 0;
  10066. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyQueryResultStatusPropertiesKHR.sType );
  10067. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyQueryResultStatusPropertiesKHR.pNext );
  10068. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyQueryResultStatusPropertiesKHR.queryResultStatusSupport );
  10069. return seed;
  10070. }
  10071. };
  10072. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  10073. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  10074. template <>
  10075. struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR>
  10076. {
  10077. std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR const & queueFamilyVideoPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  10078. {
  10079. std::size_t seed = 0;
  10080. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyVideoPropertiesKHR.sType );
  10081. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyVideoPropertiesKHR.pNext );
  10082. VULKAN_HPP_HASH_COMBINE( seed, queueFamilyVideoPropertiesKHR.videoCodecOperations );
  10083. return seed;
  10084. }
  10085. };
  10086. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  10087. template <>
  10088. struct hash<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR>
  10089. {
  10090. std::size_t operator()( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR const & rayTracingShaderGroupCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  10091. {
  10092. std::size_t seed = 0;
  10093. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.sType );
  10094. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.pNext );
  10095. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.type );
  10096. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.generalShader );
  10097. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.closestHitShader );
  10098. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.anyHitShader );
  10099. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.intersectionShader );
  10100. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.pShaderGroupCaptureReplayHandle );
  10101. return seed;
  10102. }
  10103. };
  10104. template <>
  10105. struct hash<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR>
  10106. {
  10107. std::size_t
  10108. operator()( VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR const & rayTracingPipelineInterfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  10109. {
  10110. std::size_t seed = 0;
  10111. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineInterfaceCreateInfoKHR.sType );
  10112. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineInterfaceCreateInfoKHR.pNext );
  10113. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineInterfaceCreateInfoKHR.maxPipelineRayPayloadSize );
  10114. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineInterfaceCreateInfoKHR.maxPipelineRayHitAttributeSize );
  10115. return seed;
  10116. }
  10117. };
  10118. template <>
  10119. struct hash<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR>
  10120. {
  10121. std::size_t operator()( VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const & rayTracingPipelineCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  10122. {
  10123. std::size_t seed = 0;
  10124. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.sType );
  10125. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pNext );
  10126. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.flags );
  10127. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.stageCount );
  10128. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pStages );
  10129. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.groupCount );
  10130. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pGroups );
  10131. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.maxPipelineRayRecursionDepth );
  10132. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pLibraryInfo );
  10133. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pLibraryInterface );
  10134. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pDynamicState );
  10135. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.layout );
  10136. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.basePipelineHandle );
  10137. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.basePipelineIndex );
  10138. return seed;
  10139. }
  10140. };
  10141. template <>
  10142. struct hash<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV>
  10143. {
  10144. std::size_t operator()( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const & rayTracingShaderGroupCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  10145. {
  10146. std::size_t seed = 0;
  10147. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.sType );
  10148. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.pNext );
  10149. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.type );
  10150. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.generalShader );
  10151. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.closestHitShader );
  10152. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.anyHitShader );
  10153. VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.intersectionShader );
  10154. return seed;
  10155. }
  10156. };
  10157. template <>
  10158. struct hash<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV>
  10159. {
  10160. std::size_t operator()( VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const & rayTracingPipelineCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
  10161. {
  10162. std::size_t seed = 0;
  10163. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.sType );
  10164. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.pNext );
  10165. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.flags );
  10166. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.stageCount );
  10167. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.pStages );
  10168. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.groupCount );
  10169. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.pGroups );
  10170. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.maxRecursionDepth );
  10171. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.layout );
  10172. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.basePipelineHandle );
  10173. VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.basePipelineIndex );
  10174. return seed;
  10175. }
  10176. };
  10177. template <>
  10178. struct hash<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE>
  10179. {
  10180. std::size_t operator()( VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE const & refreshCycleDurationGOOGLE ) const VULKAN_HPP_NOEXCEPT
  10181. {
  10182. std::size_t seed = 0;
  10183. VULKAN_HPP_HASH_COMBINE( seed, refreshCycleDurationGOOGLE.refreshDuration );
  10184. return seed;
  10185. }
  10186. };
  10187. template <>
  10188. struct hash<VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo>
  10189. {
  10190. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const & renderPassAttachmentBeginInfo ) const VULKAN_HPP_NOEXCEPT
  10191. {
  10192. std::size_t seed = 0;
  10193. VULKAN_HPP_HASH_COMBINE( seed, renderPassAttachmentBeginInfo.sType );
  10194. VULKAN_HPP_HASH_COMBINE( seed, renderPassAttachmentBeginInfo.pNext );
  10195. VULKAN_HPP_HASH_COMBINE( seed, renderPassAttachmentBeginInfo.attachmentCount );
  10196. VULKAN_HPP_HASH_COMBINE( seed, renderPassAttachmentBeginInfo.pAttachments );
  10197. return seed;
  10198. }
  10199. };
  10200. template <>
  10201. struct hash<VULKAN_HPP_NAMESPACE::RenderPassBeginInfo>
  10202. {
  10203. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const & renderPassBeginInfo ) const VULKAN_HPP_NOEXCEPT
  10204. {
  10205. std::size_t seed = 0;
  10206. VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.sType );
  10207. VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.pNext );
  10208. VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.renderPass );
  10209. VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.framebuffer );
  10210. VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.renderArea );
  10211. VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.clearValueCount );
  10212. VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.pClearValues );
  10213. return seed;
  10214. }
  10215. };
  10216. template <>
  10217. struct hash<VULKAN_HPP_NAMESPACE::SubpassDescription>
  10218. {
  10219. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassDescription const & subpassDescription ) const VULKAN_HPP_NOEXCEPT
  10220. {
  10221. std::size_t seed = 0;
  10222. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.flags );
  10223. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pipelineBindPoint );
  10224. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.inputAttachmentCount );
  10225. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pInputAttachments );
  10226. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.colorAttachmentCount );
  10227. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pColorAttachments );
  10228. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pResolveAttachments );
  10229. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pDepthStencilAttachment );
  10230. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.preserveAttachmentCount );
  10231. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pPreserveAttachments );
  10232. return seed;
  10233. }
  10234. };
  10235. template <>
  10236. struct hash<VULKAN_HPP_NAMESPACE::SubpassDependency>
  10237. {
  10238. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassDependency const & subpassDependency ) const VULKAN_HPP_NOEXCEPT
  10239. {
  10240. std::size_t seed = 0;
  10241. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.srcSubpass );
  10242. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.dstSubpass );
  10243. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.srcStageMask );
  10244. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.dstStageMask );
  10245. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.srcAccessMask );
  10246. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.dstAccessMask );
  10247. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.dependencyFlags );
  10248. return seed;
  10249. }
  10250. };
  10251. template <>
  10252. struct hash<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo>
  10253. {
  10254. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const & renderPassCreateInfo ) const VULKAN_HPP_NOEXCEPT
  10255. {
  10256. std::size_t seed = 0;
  10257. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.sType );
  10258. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.pNext );
  10259. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.flags );
  10260. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.attachmentCount );
  10261. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.pAttachments );
  10262. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.subpassCount );
  10263. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.pSubpasses );
  10264. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.dependencyCount );
  10265. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.pDependencies );
  10266. return seed;
  10267. }
  10268. };
  10269. template <>
  10270. struct hash<VULKAN_HPP_NAMESPACE::SubpassDescription2>
  10271. {
  10272. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassDescription2 const & subpassDescription2 ) const VULKAN_HPP_NOEXCEPT
  10273. {
  10274. std::size_t seed = 0;
  10275. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.sType );
  10276. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pNext );
  10277. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.flags );
  10278. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pipelineBindPoint );
  10279. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.viewMask );
  10280. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.inputAttachmentCount );
  10281. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pInputAttachments );
  10282. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.colorAttachmentCount );
  10283. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pColorAttachments );
  10284. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pResolveAttachments );
  10285. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pDepthStencilAttachment );
  10286. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.preserveAttachmentCount );
  10287. VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pPreserveAttachments );
  10288. return seed;
  10289. }
  10290. };
  10291. template <>
  10292. struct hash<VULKAN_HPP_NAMESPACE::SubpassDependency2>
  10293. {
  10294. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassDependency2 const & subpassDependency2 ) const VULKAN_HPP_NOEXCEPT
  10295. {
  10296. std::size_t seed = 0;
  10297. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.sType );
  10298. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.pNext );
  10299. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.srcSubpass );
  10300. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.dstSubpass );
  10301. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.srcStageMask );
  10302. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.dstStageMask );
  10303. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.srcAccessMask );
  10304. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.dstAccessMask );
  10305. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.dependencyFlags );
  10306. VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.viewOffset );
  10307. return seed;
  10308. }
  10309. };
  10310. template <>
  10311. struct hash<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2>
  10312. {
  10313. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & renderPassCreateInfo2 ) const VULKAN_HPP_NOEXCEPT
  10314. {
  10315. std::size_t seed = 0;
  10316. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.sType );
  10317. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.pNext );
  10318. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.flags );
  10319. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.attachmentCount );
  10320. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.pAttachments );
  10321. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.subpassCount );
  10322. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.pSubpasses );
  10323. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.dependencyCount );
  10324. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.pDependencies );
  10325. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.correlatedViewMaskCount );
  10326. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.pCorrelatedViewMasks );
  10327. return seed;
  10328. }
  10329. };
  10330. template <>
  10331. struct hash<VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT>
  10332. {
  10333. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT const & renderPassCreationControlEXT ) const VULKAN_HPP_NOEXCEPT
  10334. {
  10335. std::size_t seed = 0;
  10336. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationControlEXT.sType );
  10337. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationControlEXT.pNext );
  10338. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationControlEXT.disallowMerging );
  10339. return seed;
  10340. }
  10341. };
  10342. template <>
  10343. struct hash<VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT>
  10344. {
  10345. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT const & renderPassCreationFeedbackInfoEXT ) const VULKAN_HPP_NOEXCEPT
  10346. {
  10347. std::size_t seed = 0;
  10348. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationFeedbackInfoEXT.postMergeSubpassCount );
  10349. return seed;
  10350. }
  10351. };
  10352. template <>
  10353. struct hash<VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT>
  10354. {
  10355. std::size_t
  10356. operator()( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT const & renderPassCreationFeedbackCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  10357. {
  10358. std::size_t seed = 0;
  10359. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationFeedbackCreateInfoEXT.sType );
  10360. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationFeedbackCreateInfoEXT.pNext );
  10361. VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationFeedbackCreateInfoEXT.pRenderPassFeedback );
  10362. return seed;
  10363. }
  10364. };
  10365. template <>
  10366. struct hash<VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT>
  10367. {
  10368. std::size_t
  10369. operator()( VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const & renderPassFragmentDensityMapCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  10370. {
  10371. std::size_t seed = 0;
  10372. VULKAN_HPP_HASH_COMBINE( seed, renderPassFragmentDensityMapCreateInfoEXT.sType );
  10373. VULKAN_HPP_HASH_COMBINE( seed, renderPassFragmentDensityMapCreateInfoEXT.pNext );
  10374. VULKAN_HPP_HASH_COMBINE( seed, renderPassFragmentDensityMapCreateInfoEXT.fragmentDensityMapAttachment );
  10375. return seed;
  10376. }
  10377. };
  10378. template <>
  10379. struct hash<VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo>
  10380. {
  10381. std::size_t
  10382. operator()( VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const & renderPassInputAttachmentAspectCreateInfo ) const VULKAN_HPP_NOEXCEPT
  10383. {
  10384. std::size_t seed = 0;
  10385. VULKAN_HPP_HASH_COMBINE( seed, renderPassInputAttachmentAspectCreateInfo.sType );
  10386. VULKAN_HPP_HASH_COMBINE( seed, renderPassInputAttachmentAspectCreateInfo.pNext );
  10387. VULKAN_HPP_HASH_COMBINE( seed, renderPassInputAttachmentAspectCreateInfo.aspectReferenceCount );
  10388. VULKAN_HPP_HASH_COMBINE( seed, renderPassInputAttachmentAspectCreateInfo.pAspectReferences );
  10389. return seed;
  10390. }
  10391. };
  10392. template <>
  10393. struct hash<VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo>
  10394. {
  10395. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const & renderPassMultiviewCreateInfo ) const VULKAN_HPP_NOEXCEPT
  10396. {
  10397. std::size_t seed = 0;
  10398. VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.sType );
  10399. VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.pNext );
  10400. VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.subpassCount );
  10401. VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.pViewMasks );
  10402. VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.dependencyCount );
  10403. VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.pViewOffsets );
  10404. VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.correlationMaskCount );
  10405. VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.pCorrelationMasks );
  10406. return seed;
  10407. }
  10408. };
  10409. template <>
  10410. struct hash<VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT>
  10411. {
  10412. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT const & subpassSampleLocationsEXT ) const VULKAN_HPP_NOEXCEPT
  10413. {
  10414. std::size_t seed = 0;
  10415. VULKAN_HPP_HASH_COMBINE( seed, subpassSampleLocationsEXT.subpassIndex );
  10416. VULKAN_HPP_HASH_COMBINE( seed, subpassSampleLocationsEXT.sampleLocationsInfo );
  10417. return seed;
  10418. }
  10419. };
  10420. template <>
  10421. struct hash<VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT>
  10422. {
  10423. std::size_t
  10424. operator()( VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const & renderPassSampleLocationsBeginInfoEXT ) const VULKAN_HPP_NOEXCEPT
  10425. {
  10426. std::size_t seed = 0;
  10427. VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.sType );
  10428. VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.pNext );
  10429. VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.attachmentInitialSampleLocationsCount );
  10430. VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.pAttachmentInitialSampleLocations );
  10431. VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.postSubpassSampleLocationsCount );
  10432. VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.pPostSubpassSampleLocations );
  10433. return seed;
  10434. }
  10435. };
  10436. template <>
  10437. struct hash<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT>
  10438. {
  10439. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT const & renderPassSubpassFeedbackInfoEXT ) const VULKAN_HPP_NOEXCEPT
  10440. {
  10441. std::size_t seed = 0;
  10442. VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackInfoEXT.subpassMergeStatus );
  10443. for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
  10444. {
  10445. VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackInfoEXT.description[i] );
  10446. }
  10447. VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackInfoEXT.postMergeIndex );
  10448. return seed;
  10449. }
  10450. };
  10451. template <>
  10452. struct hash<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT>
  10453. {
  10454. std::size_t
  10455. operator()( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT const & renderPassSubpassFeedbackCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  10456. {
  10457. std::size_t seed = 0;
  10458. VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackCreateInfoEXT.sType );
  10459. VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackCreateInfoEXT.pNext );
  10460. VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackCreateInfoEXT.pSubpassFeedback );
  10461. return seed;
  10462. }
  10463. };
  10464. template <>
  10465. struct hash<VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM>
  10466. {
  10467. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM const & renderPassTransformBeginInfoQCOM ) const VULKAN_HPP_NOEXCEPT
  10468. {
  10469. std::size_t seed = 0;
  10470. VULKAN_HPP_HASH_COMBINE( seed, renderPassTransformBeginInfoQCOM.sType );
  10471. VULKAN_HPP_HASH_COMBINE( seed, renderPassTransformBeginInfoQCOM.pNext );
  10472. VULKAN_HPP_HASH_COMBINE( seed, renderPassTransformBeginInfoQCOM.transform );
  10473. return seed;
  10474. }
  10475. };
  10476. template <>
  10477. struct hash<VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT>
  10478. {
  10479. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT const & renderingFragmentDensityMapAttachmentInfoEXT ) const
  10480. VULKAN_HPP_NOEXCEPT
  10481. {
  10482. std::size_t seed = 0;
  10483. VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentDensityMapAttachmentInfoEXT.sType );
  10484. VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentDensityMapAttachmentInfoEXT.pNext );
  10485. VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentDensityMapAttachmentInfoEXT.imageView );
  10486. VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentDensityMapAttachmentInfoEXT.imageLayout );
  10487. return seed;
  10488. }
  10489. };
  10490. template <>
  10491. struct hash<VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR>
  10492. {
  10493. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR const & renderingFragmentShadingRateAttachmentInfoKHR ) const
  10494. VULKAN_HPP_NOEXCEPT
  10495. {
  10496. std::size_t seed = 0;
  10497. VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentShadingRateAttachmentInfoKHR.sType );
  10498. VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentShadingRateAttachmentInfoKHR.pNext );
  10499. VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentShadingRateAttachmentInfoKHR.imageView );
  10500. VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentShadingRateAttachmentInfoKHR.imageLayout );
  10501. VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentShadingRateAttachmentInfoKHR.shadingRateAttachmentTexelSize );
  10502. return seed;
  10503. }
  10504. };
  10505. template <>
  10506. struct hash<VULKAN_HPP_NAMESPACE::RenderingInfo>
  10507. {
  10508. std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderingInfo const & renderingInfo ) const VULKAN_HPP_NOEXCEPT
  10509. {
  10510. std::size_t seed = 0;
  10511. VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.sType );
  10512. VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.pNext );
  10513. VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.flags );
  10514. VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.renderArea );
  10515. VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.layerCount );
  10516. VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.viewMask );
  10517. VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.colorAttachmentCount );
  10518. VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.pColorAttachments );
  10519. VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.pDepthAttachment );
  10520. VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.pStencilAttachment );
  10521. return seed;
  10522. }
  10523. };
  10524. template <>
  10525. struct hash<VULKAN_HPP_NAMESPACE::ResolveImageInfo2>
  10526. {
  10527. std::size_t operator()( VULKAN_HPP_NAMESPACE::ResolveImageInfo2 const & resolveImageInfo2 ) const VULKAN_HPP_NOEXCEPT
  10528. {
  10529. std::size_t seed = 0;
  10530. VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.sType );
  10531. VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.pNext );
  10532. VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.srcImage );
  10533. VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.srcImageLayout );
  10534. VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.dstImage );
  10535. VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.dstImageLayout );
  10536. VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.regionCount );
  10537. VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.pRegions );
  10538. return seed;
  10539. }
  10540. };
  10541. template <>
  10542. struct hash<VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT>
  10543. {
  10544. std::size_t operator()(
  10545. VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT const & samplerBorderColorComponentMappingCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  10546. {
  10547. std::size_t seed = 0;
  10548. VULKAN_HPP_HASH_COMBINE( seed, samplerBorderColorComponentMappingCreateInfoEXT.sType );
  10549. VULKAN_HPP_HASH_COMBINE( seed, samplerBorderColorComponentMappingCreateInfoEXT.pNext );
  10550. VULKAN_HPP_HASH_COMBINE( seed, samplerBorderColorComponentMappingCreateInfoEXT.components );
  10551. VULKAN_HPP_HASH_COMBINE( seed, samplerBorderColorComponentMappingCreateInfoEXT.srgb );
  10552. return seed;
  10553. }
  10554. };
  10555. template <>
  10556. struct hash<VULKAN_HPP_NAMESPACE::SamplerCreateInfo>
  10557. {
  10558. std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerCreateInfo const & samplerCreateInfo ) const VULKAN_HPP_NOEXCEPT
  10559. {
  10560. std::size_t seed = 0;
  10561. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.sType );
  10562. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.pNext );
  10563. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.flags );
  10564. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.magFilter );
  10565. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.minFilter );
  10566. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.mipmapMode );
  10567. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.addressModeU );
  10568. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.addressModeV );
  10569. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.addressModeW );
  10570. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.mipLodBias );
  10571. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.anisotropyEnable );
  10572. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.maxAnisotropy );
  10573. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.compareEnable );
  10574. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.compareOp );
  10575. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.minLod );
  10576. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.maxLod );
  10577. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.borderColor );
  10578. VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.unnormalizedCoordinates );
  10579. return seed;
  10580. }
  10581. };
  10582. template <>
  10583. struct hash<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo>
  10584. {
  10585. std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const & samplerReductionModeCreateInfo ) const VULKAN_HPP_NOEXCEPT
  10586. {
  10587. std::size_t seed = 0;
  10588. VULKAN_HPP_HASH_COMBINE( seed, samplerReductionModeCreateInfo.sType );
  10589. VULKAN_HPP_HASH_COMBINE( seed, samplerReductionModeCreateInfo.pNext );
  10590. VULKAN_HPP_HASH_COMBINE( seed, samplerReductionModeCreateInfo.reductionMode );
  10591. return seed;
  10592. }
  10593. };
  10594. template <>
  10595. struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo>
  10596. {
  10597. std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & samplerYcbcrConversionCreateInfo ) const VULKAN_HPP_NOEXCEPT
  10598. {
  10599. std::size_t seed = 0;
  10600. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.sType );
  10601. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.pNext );
  10602. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.format );
  10603. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.ycbcrModel );
  10604. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.ycbcrRange );
  10605. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.components );
  10606. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.xChromaOffset );
  10607. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.yChromaOffset );
  10608. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.chromaFilter );
  10609. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.forceExplicitReconstruction );
  10610. return seed;
  10611. }
  10612. };
  10613. template <>
  10614. struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties>
  10615. {
  10616. std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const & samplerYcbcrConversionImageFormatProperties ) const
  10617. VULKAN_HPP_NOEXCEPT
  10618. {
  10619. std::size_t seed = 0;
  10620. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionImageFormatProperties.sType );
  10621. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionImageFormatProperties.pNext );
  10622. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionImageFormatProperties.combinedImageSamplerDescriptorCount );
  10623. return seed;
  10624. }
  10625. };
  10626. template <>
  10627. struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo>
  10628. {
  10629. std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const & samplerYcbcrConversionInfo ) const VULKAN_HPP_NOEXCEPT
  10630. {
  10631. std::size_t seed = 0;
  10632. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionInfo.sType );
  10633. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionInfo.pNext );
  10634. VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionInfo.conversion );
  10635. return seed;
  10636. }
  10637. };
  10638. # if defined( VK_USE_PLATFORM_SCREEN_QNX )
  10639. template <>
  10640. struct hash<VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX>
  10641. {
  10642. std::size_t operator()( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const & screenSurfaceCreateInfoQNX ) const VULKAN_HPP_NOEXCEPT
  10643. {
  10644. std::size_t seed = 0;
  10645. VULKAN_HPP_HASH_COMBINE( seed, screenSurfaceCreateInfoQNX.sType );
  10646. VULKAN_HPP_HASH_COMBINE( seed, screenSurfaceCreateInfoQNX.pNext );
  10647. VULKAN_HPP_HASH_COMBINE( seed, screenSurfaceCreateInfoQNX.flags );
  10648. VULKAN_HPP_HASH_COMBINE( seed, screenSurfaceCreateInfoQNX.context );
  10649. VULKAN_HPP_HASH_COMBINE( seed, screenSurfaceCreateInfoQNX.window );
  10650. return seed;
  10651. }
  10652. };
  10653. # endif /*VK_USE_PLATFORM_SCREEN_QNX*/
  10654. template <>
  10655. struct hash<VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo>
  10656. {
  10657. std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const & semaphoreCreateInfo ) const VULKAN_HPP_NOEXCEPT
  10658. {
  10659. std::size_t seed = 0;
  10660. VULKAN_HPP_HASH_COMBINE( seed, semaphoreCreateInfo.sType );
  10661. VULKAN_HPP_HASH_COMBINE( seed, semaphoreCreateInfo.pNext );
  10662. VULKAN_HPP_HASH_COMBINE( seed, semaphoreCreateInfo.flags );
  10663. return seed;
  10664. }
  10665. };
  10666. template <>
  10667. struct hash<VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR>
  10668. {
  10669. std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const & semaphoreGetFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
  10670. {
  10671. std::size_t seed = 0;
  10672. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetFdInfoKHR.sType );
  10673. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetFdInfoKHR.pNext );
  10674. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetFdInfoKHR.semaphore );
  10675. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetFdInfoKHR.handleType );
  10676. return seed;
  10677. }
  10678. };
  10679. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  10680. template <>
  10681. struct hash<VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR>
  10682. {
  10683. std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const & semaphoreGetWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
  10684. {
  10685. std::size_t seed = 0;
  10686. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetWin32HandleInfoKHR.sType );
  10687. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetWin32HandleInfoKHR.pNext );
  10688. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetWin32HandleInfoKHR.semaphore );
  10689. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetWin32HandleInfoKHR.handleType );
  10690. return seed;
  10691. }
  10692. };
  10693. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  10694. # if defined( VK_USE_PLATFORM_FUCHSIA )
  10695. template <>
  10696. struct hash<VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA>
  10697. {
  10698. std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA const & semaphoreGetZirconHandleInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
  10699. {
  10700. std::size_t seed = 0;
  10701. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetZirconHandleInfoFUCHSIA.sType );
  10702. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetZirconHandleInfoFUCHSIA.pNext );
  10703. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetZirconHandleInfoFUCHSIA.semaphore );
  10704. VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetZirconHandleInfoFUCHSIA.handleType );
  10705. return seed;
  10706. }
  10707. };
  10708. # endif /*VK_USE_PLATFORM_FUCHSIA*/
  10709. template <>
  10710. struct hash<VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo>
  10711. {
  10712. std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const & semaphoreSignalInfo ) const VULKAN_HPP_NOEXCEPT
  10713. {
  10714. std::size_t seed = 0;
  10715. VULKAN_HPP_HASH_COMBINE( seed, semaphoreSignalInfo.sType );
  10716. VULKAN_HPP_HASH_COMBINE( seed, semaphoreSignalInfo.pNext );
  10717. VULKAN_HPP_HASH_COMBINE( seed, semaphoreSignalInfo.semaphore );
  10718. VULKAN_HPP_HASH_COMBINE( seed, semaphoreSignalInfo.value );
  10719. return seed;
  10720. }
  10721. };
  10722. template <>
  10723. struct hash<VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo>
  10724. {
  10725. std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo const & semaphoreSubmitInfo ) const VULKAN_HPP_NOEXCEPT
  10726. {
  10727. std::size_t seed = 0;
  10728. VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.sType );
  10729. VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.pNext );
  10730. VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.semaphore );
  10731. VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.value );
  10732. VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.stageMask );
  10733. VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.deviceIndex );
  10734. return seed;
  10735. }
  10736. };
  10737. template <>
  10738. struct hash<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo>
  10739. {
  10740. std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const & semaphoreTypeCreateInfo ) const VULKAN_HPP_NOEXCEPT
  10741. {
  10742. std::size_t seed = 0;
  10743. VULKAN_HPP_HASH_COMBINE( seed, semaphoreTypeCreateInfo.sType );
  10744. VULKAN_HPP_HASH_COMBINE( seed, semaphoreTypeCreateInfo.pNext );
  10745. VULKAN_HPP_HASH_COMBINE( seed, semaphoreTypeCreateInfo.semaphoreType );
  10746. VULKAN_HPP_HASH_COMBINE( seed, semaphoreTypeCreateInfo.initialValue );
  10747. return seed;
  10748. }
  10749. };
  10750. template <>
  10751. struct hash<VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo>
  10752. {
  10753. std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const & semaphoreWaitInfo ) const VULKAN_HPP_NOEXCEPT
  10754. {
  10755. std::size_t seed = 0;
  10756. VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.sType );
  10757. VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.pNext );
  10758. VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.flags );
  10759. VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.semaphoreCount );
  10760. VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.pSemaphores );
  10761. VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.pValues );
  10762. return seed;
  10763. }
  10764. };
  10765. template <>
  10766. struct hash<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV>
  10767. {
  10768. std::size_t operator()( VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const & setStateFlagsIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
  10769. {
  10770. std::size_t seed = 0;
  10771. VULKAN_HPP_HASH_COMBINE( seed, setStateFlagsIndirectCommandNV.data );
  10772. return seed;
  10773. }
  10774. };
  10775. template <>
  10776. struct hash<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo>
  10777. {
  10778. std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & shaderModuleCreateInfo ) const VULKAN_HPP_NOEXCEPT
  10779. {
  10780. std::size_t seed = 0;
  10781. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleCreateInfo.sType );
  10782. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleCreateInfo.pNext );
  10783. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleCreateInfo.flags );
  10784. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleCreateInfo.codeSize );
  10785. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleCreateInfo.pCode );
  10786. return seed;
  10787. }
  10788. };
  10789. template <>
  10790. struct hash<VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT>
  10791. {
  10792. std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT const & shaderModuleIdentifierEXT ) const VULKAN_HPP_NOEXCEPT
  10793. {
  10794. std::size_t seed = 0;
  10795. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleIdentifierEXT.sType );
  10796. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleIdentifierEXT.pNext );
  10797. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleIdentifierEXT.identifierSize );
  10798. for ( size_t i = 0; i < VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT; ++i )
  10799. {
  10800. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleIdentifierEXT.identifier[i] );
  10801. }
  10802. return seed;
  10803. }
  10804. };
  10805. template <>
  10806. struct hash<VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT>
  10807. {
  10808. std::size_t
  10809. operator()( VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const & shaderModuleValidationCacheCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  10810. {
  10811. std::size_t seed = 0;
  10812. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleValidationCacheCreateInfoEXT.sType );
  10813. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleValidationCacheCreateInfoEXT.pNext );
  10814. VULKAN_HPP_HASH_COMBINE( seed, shaderModuleValidationCacheCreateInfoEXT.validationCache );
  10815. return seed;
  10816. }
  10817. };
  10818. template <>
  10819. struct hash<VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD>
  10820. {
  10821. std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const & shaderResourceUsageAMD ) const VULKAN_HPP_NOEXCEPT
  10822. {
  10823. std::size_t seed = 0;
  10824. VULKAN_HPP_HASH_COMBINE( seed, shaderResourceUsageAMD.numUsedVgprs );
  10825. VULKAN_HPP_HASH_COMBINE( seed, shaderResourceUsageAMD.numUsedSgprs );
  10826. VULKAN_HPP_HASH_COMBINE( seed, shaderResourceUsageAMD.ldsSizePerLocalWorkGroup );
  10827. VULKAN_HPP_HASH_COMBINE( seed, shaderResourceUsageAMD.ldsUsageSizeInBytes );
  10828. VULKAN_HPP_HASH_COMBINE( seed, shaderResourceUsageAMD.scratchMemUsageInBytes );
  10829. return seed;
  10830. }
  10831. };
  10832. template <>
  10833. struct hash<VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD>
  10834. {
  10835. std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD const & shaderStatisticsInfoAMD ) const VULKAN_HPP_NOEXCEPT
  10836. {
  10837. std::size_t seed = 0;
  10838. VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.shaderStageMask );
  10839. VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.resourceUsage );
  10840. VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.numPhysicalVgprs );
  10841. VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.numPhysicalSgprs );
  10842. VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.numAvailableVgprs );
  10843. VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.numAvailableSgprs );
  10844. for ( size_t i = 0; i < 3; ++i )
  10845. {
  10846. VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.computeWorkGroupSize[i] );
  10847. }
  10848. return seed;
  10849. }
  10850. };
  10851. template <>
  10852. struct hash<VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR>
  10853. {
  10854. std::size_t operator()( VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const & sharedPresentSurfaceCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
  10855. {
  10856. std::size_t seed = 0;
  10857. VULKAN_HPP_HASH_COMBINE( seed, sharedPresentSurfaceCapabilitiesKHR.sType );
  10858. VULKAN_HPP_HASH_COMBINE( seed, sharedPresentSurfaceCapabilitiesKHR.pNext );
  10859. VULKAN_HPP_HASH_COMBINE( seed, sharedPresentSurfaceCapabilitiesKHR.sharedPresentSupportedUsageFlags );
  10860. return seed;
  10861. }
  10862. };
  10863. template <>
  10864. struct hash<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties>
  10865. {
  10866. std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const & sparseImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
  10867. {
  10868. std::size_t seed = 0;
  10869. VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties.aspectMask );
  10870. VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties.imageGranularity );
  10871. VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties.flags );
  10872. return seed;
  10873. }
  10874. };
  10875. template <>
  10876. struct hash<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>
  10877. {
  10878. std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const & sparseImageFormatProperties2 ) const VULKAN_HPP_NOEXCEPT
  10879. {
  10880. std::size_t seed = 0;
  10881. VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties2.sType );
  10882. VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties2.pNext );
  10883. VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties2.properties );
  10884. return seed;
  10885. }
  10886. };
  10887. template <>
  10888. struct hash<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements>
  10889. {
  10890. std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const & sparseImageMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
  10891. {
  10892. std::size_t seed = 0;
  10893. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements.formatProperties );
  10894. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements.imageMipTailFirstLod );
  10895. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements.imageMipTailSize );
  10896. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements.imageMipTailOffset );
  10897. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements.imageMipTailStride );
  10898. return seed;
  10899. }
  10900. };
  10901. template <>
  10902. struct hash<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
  10903. {
  10904. std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const & sparseImageMemoryRequirements2 ) const VULKAN_HPP_NOEXCEPT
  10905. {
  10906. std::size_t seed = 0;
  10907. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements2.sType );
  10908. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements2.pNext );
  10909. VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements2.memoryRequirements );
  10910. return seed;
  10911. }
  10912. };
  10913. # if defined( VK_USE_PLATFORM_GGP )
  10914. template <>
  10915. struct hash<VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP>
  10916. {
  10917. std::size_t operator()( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const & streamDescriptorSurfaceCreateInfoGGP ) const VULKAN_HPP_NOEXCEPT
  10918. {
  10919. std::size_t seed = 0;
  10920. VULKAN_HPP_HASH_COMBINE( seed, streamDescriptorSurfaceCreateInfoGGP.sType );
  10921. VULKAN_HPP_HASH_COMBINE( seed, streamDescriptorSurfaceCreateInfoGGP.pNext );
  10922. VULKAN_HPP_HASH_COMBINE( seed, streamDescriptorSurfaceCreateInfoGGP.flags );
  10923. VULKAN_HPP_HASH_COMBINE( seed, streamDescriptorSurfaceCreateInfoGGP.streamDescriptor );
  10924. return seed;
  10925. }
  10926. };
  10927. # endif /*VK_USE_PLATFORM_GGP*/
  10928. template <>
  10929. struct hash<VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR>
  10930. {
  10931. std::size_t operator()( VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR const & stridedDeviceAddressRegionKHR ) const VULKAN_HPP_NOEXCEPT
  10932. {
  10933. std::size_t seed = 0;
  10934. VULKAN_HPP_HASH_COMBINE( seed, stridedDeviceAddressRegionKHR.deviceAddress );
  10935. VULKAN_HPP_HASH_COMBINE( seed, stridedDeviceAddressRegionKHR.stride );
  10936. VULKAN_HPP_HASH_COMBINE( seed, stridedDeviceAddressRegionKHR.size );
  10937. return seed;
  10938. }
  10939. };
  10940. template <>
  10941. struct hash<VULKAN_HPP_NAMESPACE::SubmitInfo>
  10942. {
  10943. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubmitInfo const & submitInfo ) const VULKAN_HPP_NOEXCEPT
  10944. {
  10945. std::size_t seed = 0;
  10946. VULKAN_HPP_HASH_COMBINE( seed, submitInfo.sType );
  10947. VULKAN_HPP_HASH_COMBINE( seed, submitInfo.pNext );
  10948. VULKAN_HPP_HASH_COMBINE( seed, submitInfo.waitSemaphoreCount );
  10949. VULKAN_HPP_HASH_COMBINE( seed, submitInfo.pWaitSemaphores );
  10950. VULKAN_HPP_HASH_COMBINE( seed, submitInfo.pWaitDstStageMask );
  10951. VULKAN_HPP_HASH_COMBINE( seed, submitInfo.commandBufferCount );
  10952. VULKAN_HPP_HASH_COMBINE( seed, submitInfo.pCommandBuffers );
  10953. VULKAN_HPP_HASH_COMBINE( seed, submitInfo.signalSemaphoreCount );
  10954. VULKAN_HPP_HASH_COMBINE( seed, submitInfo.pSignalSemaphores );
  10955. return seed;
  10956. }
  10957. };
  10958. template <>
  10959. struct hash<VULKAN_HPP_NAMESPACE::SubmitInfo2>
  10960. {
  10961. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubmitInfo2 const & submitInfo2 ) const VULKAN_HPP_NOEXCEPT
  10962. {
  10963. std::size_t seed = 0;
  10964. VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.sType );
  10965. VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.pNext );
  10966. VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.flags );
  10967. VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.waitSemaphoreInfoCount );
  10968. VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.pWaitSemaphoreInfos );
  10969. VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.commandBufferInfoCount );
  10970. VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.pCommandBufferInfos );
  10971. VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.signalSemaphoreInfoCount );
  10972. VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.pSignalSemaphoreInfos );
  10973. return seed;
  10974. }
  10975. };
  10976. template <>
  10977. struct hash<VULKAN_HPP_NAMESPACE::SubpassBeginInfo>
  10978. {
  10979. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassBeginInfo const & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
  10980. {
  10981. std::size_t seed = 0;
  10982. VULKAN_HPP_HASH_COMBINE( seed, subpassBeginInfo.sType );
  10983. VULKAN_HPP_HASH_COMBINE( seed, subpassBeginInfo.pNext );
  10984. VULKAN_HPP_HASH_COMBINE( seed, subpassBeginInfo.contents );
  10985. return seed;
  10986. }
  10987. };
  10988. template <>
  10989. struct hash<VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve>
  10990. {
  10991. std::size_t
  10992. operator()( VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const & subpassDescriptionDepthStencilResolve ) const VULKAN_HPP_NOEXCEPT
  10993. {
  10994. std::size_t seed = 0;
  10995. VULKAN_HPP_HASH_COMBINE( seed, subpassDescriptionDepthStencilResolve.sType );
  10996. VULKAN_HPP_HASH_COMBINE( seed, subpassDescriptionDepthStencilResolve.pNext );
  10997. VULKAN_HPP_HASH_COMBINE( seed, subpassDescriptionDepthStencilResolve.depthResolveMode );
  10998. VULKAN_HPP_HASH_COMBINE( seed, subpassDescriptionDepthStencilResolve.stencilResolveMode );
  10999. VULKAN_HPP_HASH_COMBINE( seed, subpassDescriptionDepthStencilResolve.pDepthStencilResolveAttachment );
  11000. return seed;
  11001. }
  11002. };
  11003. template <>
  11004. struct hash<VULKAN_HPP_NAMESPACE::SubpassEndInfo>
  11005. {
  11006. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassEndInfo const & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT
  11007. {
  11008. std::size_t seed = 0;
  11009. VULKAN_HPP_HASH_COMBINE( seed, subpassEndInfo.sType );
  11010. VULKAN_HPP_HASH_COMBINE( seed, subpassEndInfo.pNext );
  11011. return seed;
  11012. }
  11013. };
  11014. template <>
  11015. struct hash<VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM>
  11016. {
  11017. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM const & subpassFragmentDensityMapOffsetEndInfoQCOM ) const
  11018. VULKAN_HPP_NOEXCEPT
  11019. {
  11020. std::size_t seed = 0;
  11021. VULKAN_HPP_HASH_COMBINE( seed, subpassFragmentDensityMapOffsetEndInfoQCOM.sType );
  11022. VULKAN_HPP_HASH_COMBINE( seed, subpassFragmentDensityMapOffsetEndInfoQCOM.pNext );
  11023. VULKAN_HPP_HASH_COMBINE( seed, subpassFragmentDensityMapOffsetEndInfoQCOM.fragmentDensityOffsetCount );
  11024. VULKAN_HPP_HASH_COMBINE( seed, subpassFragmentDensityMapOffsetEndInfoQCOM.pFragmentDensityOffsets );
  11025. return seed;
  11026. }
  11027. };
  11028. template <>
  11029. struct hash<VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT>
  11030. {
  11031. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT const & subpassResolvePerformanceQueryEXT ) const VULKAN_HPP_NOEXCEPT
  11032. {
  11033. std::size_t seed = 0;
  11034. VULKAN_HPP_HASH_COMBINE( seed, subpassResolvePerformanceQueryEXT.sType );
  11035. VULKAN_HPP_HASH_COMBINE( seed, subpassResolvePerformanceQueryEXT.pNext );
  11036. VULKAN_HPP_HASH_COMBINE( seed, subpassResolvePerformanceQueryEXT.optimal );
  11037. return seed;
  11038. }
  11039. };
  11040. template <>
  11041. struct hash<VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI>
  11042. {
  11043. std::size_t
  11044. operator()( VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI const & subpassShadingPipelineCreateInfoHUAWEI ) const VULKAN_HPP_NOEXCEPT
  11045. {
  11046. std::size_t seed = 0;
  11047. VULKAN_HPP_HASH_COMBINE( seed, subpassShadingPipelineCreateInfoHUAWEI.sType );
  11048. VULKAN_HPP_HASH_COMBINE( seed, subpassShadingPipelineCreateInfoHUAWEI.pNext );
  11049. VULKAN_HPP_HASH_COMBINE( seed, subpassShadingPipelineCreateInfoHUAWEI.renderPass );
  11050. VULKAN_HPP_HASH_COMBINE( seed, subpassShadingPipelineCreateInfoHUAWEI.subpass );
  11051. return seed;
  11052. }
  11053. };
  11054. template <>
  11055. struct hash<VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT>
  11056. {
  11057. std::size_t operator()( VULKAN_HPP_NAMESPACE::SubresourceLayout2EXT const & subresourceLayout2EXT ) const VULKAN_HPP_NOEXCEPT
  11058. {
  11059. std::size_t seed = 0;
  11060. VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2EXT.sType );
  11061. VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2EXT.pNext );
  11062. VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2EXT.subresourceLayout );
  11063. return seed;
  11064. }
  11065. };
  11066. template <>
  11067. struct hash<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT>
  11068. {
  11069. std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const & surfaceCapabilities2EXT ) const VULKAN_HPP_NOEXCEPT
  11070. {
  11071. std::size_t seed = 0;
  11072. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.sType );
  11073. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.pNext );
  11074. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.minImageCount );
  11075. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.maxImageCount );
  11076. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.currentExtent );
  11077. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.minImageExtent );
  11078. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.maxImageExtent );
  11079. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.maxImageArrayLayers );
  11080. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.supportedTransforms );
  11081. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.currentTransform );
  11082. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.supportedCompositeAlpha );
  11083. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.supportedUsageFlags );
  11084. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.supportedSurfaceCounters );
  11085. return seed;
  11086. }
  11087. };
  11088. template <>
  11089. struct hash<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR>
  11090. {
  11091. std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const & surfaceCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
  11092. {
  11093. std::size_t seed = 0;
  11094. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.minImageCount );
  11095. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.maxImageCount );
  11096. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.currentExtent );
  11097. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.minImageExtent );
  11098. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.maxImageExtent );
  11099. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.maxImageArrayLayers );
  11100. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.supportedTransforms );
  11101. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.currentTransform );
  11102. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.supportedCompositeAlpha );
  11103. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.supportedUsageFlags );
  11104. return seed;
  11105. }
  11106. };
  11107. template <>
  11108. struct hash<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>
  11109. {
  11110. std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const & surfaceCapabilities2KHR ) const VULKAN_HPP_NOEXCEPT
  11111. {
  11112. std::size_t seed = 0;
  11113. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2KHR.sType );
  11114. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2KHR.pNext );
  11115. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2KHR.surfaceCapabilities );
  11116. return seed;
  11117. }
  11118. };
  11119. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  11120. template <>
  11121. struct hash<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT>
  11122. {
  11123. std::size_t
  11124. operator()( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const & surfaceCapabilitiesFullScreenExclusiveEXT ) const VULKAN_HPP_NOEXCEPT
  11125. {
  11126. std::size_t seed = 0;
  11127. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesFullScreenExclusiveEXT.sType );
  11128. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesFullScreenExclusiveEXT.pNext );
  11129. VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesFullScreenExclusiveEXT.fullScreenExclusiveSupported );
  11130. return seed;
  11131. }
  11132. };
  11133. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  11134. template <>
  11135. struct hash<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR>
  11136. {
  11137. std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const & surfaceFormatKHR ) const VULKAN_HPP_NOEXCEPT
  11138. {
  11139. std::size_t seed = 0;
  11140. VULKAN_HPP_HASH_COMBINE( seed, surfaceFormatKHR.format );
  11141. VULKAN_HPP_HASH_COMBINE( seed, surfaceFormatKHR.colorSpace );
  11142. return seed;
  11143. }
  11144. };
  11145. template <>
  11146. struct hash<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>
  11147. {
  11148. std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const & surfaceFormat2KHR ) const VULKAN_HPP_NOEXCEPT
  11149. {
  11150. std::size_t seed = 0;
  11151. VULKAN_HPP_HASH_COMBINE( seed, surfaceFormat2KHR.sType );
  11152. VULKAN_HPP_HASH_COMBINE( seed, surfaceFormat2KHR.pNext );
  11153. VULKAN_HPP_HASH_COMBINE( seed, surfaceFormat2KHR.surfaceFormat );
  11154. return seed;
  11155. }
  11156. };
  11157. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  11158. template <>
  11159. struct hash<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT>
  11160. {
  11161. std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const & surfaceFullScreenExclusiveInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11162. {
  11163. std::size_t seed = 0;
  11164. VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveInfoEXT.sType );
  11165. VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveInfoEXT.pNext );
  11166. VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveInfoEXT.fullScreenExclusive );
  11167. return seed;
  11168. }
  11169. };
  11170. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  11171. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  11172. template <>
  11173. struct hash<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT>
  11174. {
  11175. std::size_t
  11176. operator()( VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const & surfaceFullScreenExclusiveWin32InfoEXT ) const VULKAN_HPP_NOEXCEPT
  11177. {
  11178. std::size_t seed = 0;
  11179. VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveWin32InfoEXT.sType );
  11180. VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveWin32InfoEXT.pNext );
  11181. VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveWin32InfoEXT.hmonitor );
  11182. return seed;
  11183. }
  11184. };
  11185. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  11186. template <>
  11187. struct hash<VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR>
  11188. {
  11189. std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const & surfaceProtectedCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
  11190. {
  11191. std::size_t seed = 0;
  11192. VULKAN_HPP_HASH_COMBINE( seed, surfaceProtectedCapabilitiesKHR.sType );
  11193. VULKAN_HPP_HASH_COMBINE( seed, surfaceProtectedCapabilitiesKHR.pNext );
  11194. VULKAN_HPP_HASH_COMBINE( seed, surfaceProtectedCapabilitiesKHR.supportsProtected );
  11195. return seed;
  11196. }
  11197. };
  11198. template <>
  11199. struct hash<VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT>
  11200. {
  11201. std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const & swapchainCounterCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11202. {
  11203. std::size_t seed = 0;
  11204. VULKAN_HPP_HASH_COMBINE( seed, swapchainCounterCreateInfoEXT.sType );
  11205. VULKAN_HPP_HASH_COMBINE( seed, swapchainCounterCreateInfoEXT.pNext );
  11206. VULKAN_HPP_HASH_COMBINE( seed, swapchainCounterCreateInfoEXT.surfaceCounters );
  11207. return seed;
  11208. }
  11209. };
  11210. template <>
  11211. struct hash<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR>
  11212. {
  11213. std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & swapchainCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  11214. {
  11215. std::size_t seed = 0;
  11216. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.sType );
  11217. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.pNext );
  11218. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.flags );
  11219. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.surface );
  11220. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.minImageCount );
  11221. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageFormat );
  11222. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageColorSpace );
  11223. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageExtent );
  11224. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageArrayLayers );
  11225. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageUsage );
  11226. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageSharingMode );
  11227. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.queueFamilyIndexCount );
  11228. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.pQueueFamilyIndices );
  11229. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.preTransform );
  11230. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.compositeAlpha );
  11231. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.presentMode );
  11232. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.clipped );
  11233. VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.oldSwapchain );
  11234. return seed;
  11235. }
  11236. };
  11237. template <>
  11238. struct hash<VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD>
  11239. {
  11240. std::size_t
  11241. operator()( VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const & swapchainDisplayNativeHdrCreateInfoAMD ) const VULKAN_HPP_NOEXCEPT
  11242. {
  11243. std::size_t seed = 0;
  11244. VULKAN_HPP_HASH_COMBINE( seed, swapchainDisplayNativeHdrCreateInfoAMD.sType );
  11245. VULKAN_HPP_HASH_COMBINE( seed, swapchainDisplayNativeHdrCreateInfoAMD.pNext );
  11246. VULKAN_HPP_HASH_COMBINE( seed, swapchainDisplayNativeHdrCreateInfoAMD.localDimmingEnable );
  11247. return seed;
  11248. }
  11249. };
  11250. template <>
  11251. struct hash<VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD>
  11252. {
  11253. std::size_t operator()( VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const & textureLODGatherFormatPropertiesAMD ) const VULKAN_HPP_NOEXCEPT
  11254. {
  11255. std::size_t seed = 0;
  11256. VULKAN_HPP_HASH_COMBINE( seed, textureLODGatherFormatPropertiesAMD.sType );
  11257. VULKAN_HPP_HASH_COMBINE( seed, textureLODGatherFormatPropertiesAMD.pNext );
  11258. VULKAN_HPP_HASH_COMBINE( seed, textureLODGatherFormatPropertiesAMD.supportsTextureGatherLODBiasAMD );
  11259. return seed;
  11260. }
  11261. };
  11262. template <>
  11263. struct hash<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM>
  11264. {
  11265. std::size_t operator()( VULKAN_HPP_NAMESPACE::TilePropertiesQCOM const & tilePropertiesQCOM ) const VULKAN_HPP_NOEXCEPT
  11266. {
  11267. std::size_t seed = 0;
  11268. VULKAN_HPP_HASH_COMBINE( seed, tilePropertiesQCOM.sType );
  11269. VULKAN_HPP_HASH_COMBINE( seed, tilePropertiesQCOM.pNext );
  11270. VULKAN_HPP_HASH_COMBINE( seed, tilePropertiesQCOM.tileSize );
  11271. VULKAN_HPP_HASH_COMBINE( seed, tilePropertiesQCOM.apronSize );
  11272. VULKAN_HPP_HASH_COMBINE( seed, tilePropertiesQCOM.origin );
  11273. return seed;
  11274. }
  11275. };
  11276. template <>
  11277. struct hash<VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo>
  11278. {
  11279. std::size_t operator()( VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const & timelineSemaphoreSubmitInfo ) const VULKAN_HPP_NOEXCEPT
  11280. {
  11281. std::size_t seed = 0;
  11282. VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.sType );
  11283. VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.pNext );
  11284. VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.waitSemaphoreValueCount );
  11285. VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.pWaitSemaphoreValues );
  11286. VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.signalSemaphoreValueCount );
  11287. VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.pSignalSemaphoreValues );
  11288. return seed;
  11289. }
  11290. };
  11291. template <>
  11292. struct hash<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR>
  11293. {
  11294. std::size_t operator()( VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR const & traceRaysIndirectCommand2KHR ) const VULKAN_HPP_NOEXCEPT
  11295. {
  11296. std::size_t seed = 0;
  11297. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.raygenShaderRecordAddress );
  11298. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.raygenShaderRecordSize );
  11299. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.missShaderBindingTableAddress );
  11300. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.missShaderBindingTableSize );
  11301. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.missShaderBindingTableStride );
  11302. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.hitShaderBindingTableAddress );
  11303. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.hitShaderBindingTableSize );
  11304. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.hitShaderBindingTableStride );
  11305. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.callableShaderBindingTableAddress );
  11306. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.callableShaderBindingTableSize );
  11307. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.callableShaderBindingTableStride );
  11308. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.width );
  11309. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.height );
  11310. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.depth );
  11311. return seed;
  11312. }
  11313. };
  11314. template <>
  11315. struct hash<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR>
  11316. {
  11317. std::size_t operator()( VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR const & traceRaysIndirectCommandKHR ) const VULKAN_HPP_NOEXCEPT
  11318. {
  11319. std::size_t seed = 0;
  11320. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommandKHR.width );
  11321. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommandKHR.height );
  11322. VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommandKHR.depth );
  11323. return seed;
  11324. }
  11325. };
  11326. template <>
  11327. struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT>
  11328. {
  11329. std::size_t operator()( VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const & validationCacheCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11330. {
  11331. std::size_t seed = 0;
  11332. VULKAN_HPP_HASH_COMBINE( seed, validationCacheCreateInfoEXT.sType );
  11333. VULKAN_HPP_HASH_COMBINE( seed, validationCacheCreateInfoEXT.pNext );
  11334. VULKAN_HPP_HASH_COMBINE( seed, validationCacheCreateInfoEXT.flags );
  11335. VULKAN_HPP_HASH_COMBINE( seed, validationCacheCreateInfoEXT.initialDataSize );
  11336. VULKAN_HPP_HASH_COMBINE( seed, validationCacheCreateInfoEXT.pInitialData );
  11337. return seed;
  11338. }
  11339. };
  11340. template <>
  11341. struct hash<VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT>
  11342. {
  11343. std::size_t operator()( VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const & validationFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
  11344. {
  11345. std::size_t seed = 0;
  11346. VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.sType );
  11347. VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.pNext );
  11348. VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.enabledValidationFeatureCount );
  11349. VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.pEnabledValidationFeatures );
  11350. VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.disabledValidationFeatureCount );
  11351. VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.pDisabledValidationFeatures );
  11352. return seed;
  11353. }
  11354. };
  11355. template <>
  11356. struct hash<VULKAN_HPP_NAMESPACE::ValidationFlagsEXT>
  11357. {
  11358. std::size_t operator()( VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const & validationFlagsEXT ) const VULKAN_HPP_NOEXCEPT
  11359. {
  11360. std::size_t seed = 0;
  11361. VULKAN_HPP_HASH_COMBINE( seed, validationFlagsEXT.sType );
  11362. VULKAN_HPP_HASH_COMBINE( seed, validationFlagsEXT.pNext );
  11363. VULKAN_HPP_HASH_COMBINE( seed, validationFlagsEXT.disabledValidationCheckCount );
  11364. VULKAN_HPP_HASH_COMBINE( seed, validationFlagsEXT.pDisabledValidationChecks );
  11365. return seed;
  11366. }
  11367. };
  11368. template <>
  11369. struct hash<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT>
  11370. {
  11371. std::size_t operator()( VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT const & vertexInputAttributeDescription2EXT ) const VULKAN_HPP_NOEXCEPT
  11372. {
  11373. std::size_t seed = 0;
  11374. VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.sType );
  11375. VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.pNext );
  11376. VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.location );
  11377. VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.binding );
  11378. VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.format );
  11379. VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.offset );
  11380. return seed;
  11381. }
  11382. };
  11383. template <>
  11384. struct hash<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT>
  11385. {
  11386. std::size_t operator()( VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT const & vertexInputBindingDescription2EXT ) const VULKAN_HPP_NOEXCEPT
  11387. {
  11388. std::size_t seed = 0;
  11389. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.sType );
  11390. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.pNext );
  11391. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.binding );
  11392. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.stride );
  11393. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.inputRate );
  11394. VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.divisor );
  11395. return seed;
  11396. }
  11397. };
  11398. # if defined( VK_USE_PLATFORM_VI_NN )
  11399. template <>
  11400. struct hash<VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN>
  11401. {
  11402. std::size_t operator()( VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const & viSurfaceCreateInfoNN ) const VULKAN_HPP_NOEXCEPT
  11403. {
  11404. std::size_t seed = 0;
  11405. VULKAN_HPP_HASH_COMBINE( seed, viSurfaceCreateInfoNN.sType );
  11406. VULKAN_HPP_HASH_COMBINE( seed, viSurfaceCreateInfoNN.pNext );
  11407. VULKAN_HPP_HASH_COMBINE( seed, viSurfaceCreateInfoNN.flags );
  11408. VULKAN_HPP_HASH_COMBINE( seed, viSurfaceCreateInfoNN.window );
  11409. return seed;
  11410. }
  11411. };
  11412. # endif /*VK_USE_PLATFORM_VI_NN*/
  11413. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11414. template <>
  11415. struct hash<VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR>
  11416. {
  11417. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & videoPictureResourceInfoKHR ) const VULKAN_HPP_NOEXCEPT
  11418. {
  11419. std::size_t seed = 0;
  11420. VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.sType );
  11421. VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.pNext );
  11422. VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.codedOffset );
  11423. VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.codedExtent );
  11424. VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.baseArrayLayer );
  11425. VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.imageViewBinding );
  11426. return seed;
  11427. }
  11428. };
  11429. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11430. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11431. template <>
  11432. struct hash<VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR>
  11433. {
  11434. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR const & videoReferenceSlotInfoKHR ) const VULKAN_HPP_NOEXCEPT
  11435. {
  11436. std::size_t seed = 0;
  11437. VULKAN_HPP_HASH_COMBINE( seed, videoReferenceSlotInfoKHR.sType );
  11438. VULKAN_HPP_HASH_COMBINE( seed, videoReferenceSlotInfoKHR.pNext );
  11439. VULKAN_HPP_HASH_COMBINE( seed, videoReferenceSlotInfoKHR.slotIndex );
  11440. VULKAN_HPP_HASH_COMBINE( seed, videoReferenceSlotInfoKHR.pPictureResource );
  11441. return seed;
  11442. }
  11443. };
  11444. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11445. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11446. template <>
  11447. struct hash<VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR>
  11448. {
  11449. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR const & videoBeginCodingInfoKHR ) const VULKAN_HPP_NOEXCEPT
  11450. {
  11451. std::size_t seed = 0;
  11452. VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.sType );
  11453. VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.pNext );
  11454. VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.flags );
  11455. VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.videoSession );
  11456. VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.videoSessionParameters );
  11457. VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.referenceSlotCount );
  11458. VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.pReferenceSlots );
  11459. return seed;
  11460. }
  11461. };
  11462. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11463. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11464. template <>
  11465. struct hash<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>
  11466. {
  11467. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR const & videoCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
  11468. {
  11469. std::size_t seed = 0;
  11470. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.sType );
  11471. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.pNext );
  11472. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.capabilityFlags );
  11473. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.minBitstreamBufferOffsetAlignment );
  11474. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.minBitstreamBufferSizeAlignment );
  11475. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.videoPictureExtentGranularity );
  11476. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.minExtent );
  11477. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.maxExtent );
  11478. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.maxReferencePicturesSlotsCount );
  11479. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.maxReferencePicturesActiveCount );
  11480. VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.stdHeaderVersion );
  11481. return seed;
  11482. }
  11483. };
  11484. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11485. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11486. template <>
  11487. struct hash<VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR>
  11488. {
  11489. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR const & videoCodingControlInfoKHR ) const VULKAN_HPP_NOEXCEPT
  11490. {
  11491. std::size_t seed = 0;
  11492. VULKAN_HPP_HASH_COMBINE( seed, videoCodingControlInfoKHR.sType );
  11493. VULKAN_HPP_HASH_COMBINE( seed, videoCodingControlInfoKHR.pNext );
  11494. VULKAN_HPP_HASH_COMBINE( seed, videoCodingControlInfoKHR.flags );
  11495. return seed;
  11496. }
  11497. };
  11498. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11499. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11500. template <>
  11501. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR>
  11502. {
  11503. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR const & videoDecodeCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
  11504. {
  11505. std::size_t seed = 0;
  11506. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeCapabilitiesKHR.sType );
  11507. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeCapabilitiesKHR.pNext );
  11508. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeCapabilitiesKHR.flags );
  11509. return seed;
  11510. }
  11511. };
  11512. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11513. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11514. template <>
  11515. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesEXT>
  11516. {
  11517. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesEXT const & videoDecodeH264CapabilitiesEXT ) const VULKAN_HPP_NOEXCEPT
  11518. {
  11519. std::size_t seed = 0;
  11520. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesEXT.sType );
  11521. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesEXT.pNext );
  11522. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesEXT.maxLevel );
  11523. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesEXT.fieldOffsetGranularity );
  11524. return seed;
  11525. }
  11526. };
  11527. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11528. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11529. template <>
  11530. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoEXT>
  11531. {
  11532. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoEXT const & videoDecodeH264DpbSlotInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11533. {
  11534. std::size_t seed = 0;
  11535. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoEXT.sType );
  11536. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoEXT.pNext );
  11537. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoEXT.pStdReferenceInfo );
  11538. return seed;
  11539. }
  11540. };
  11541. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11542. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11543. template <>
  11544. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264MvcInfoEXT>
  11545. {
  11546. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264MvcInfoEXT const & videoDecodeH264MvcInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11547. {
  11548. std::size_t seed = 0;
  11549. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264MvcInfoEXT.sType );
  11550. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264MvcInfoEXT.pNext );
  11551. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264MvcInfoEXT.pStdMvc );
  11552. return seed;
  11553. }
  11554. };
  11555. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11556. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11557. template <>
  11558. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoEXT>
  11559. {
  11560. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoEXT const & videoDecodeH264PictureInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11561. {
  11562. std::size_t seed = 0;
  11563. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoEXT.sType );
  11564. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoEXT.pNext );
  11565. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoEXT.pStdPictureInfo );
  11566. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoEXT.slicesCount );
  11567. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoEXT.pSlicesDataOffsets );
  11568. return seed;
  11569. }
  11570. };
  11571. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11572. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11573. template <>
  11574. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoEXT>
  11575. {
  11576. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoEXT const & videoDecodeH264ProfileInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11577. {
  11578. std::size_t seed = 0;
  11579. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoEXT.sType );
  11580. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoEXT.pNext );
  11581. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoEXT.stdProfileIdc );
  11582. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoEXT.pictureLayout );
  11583. return seed;
  11584. }
  11585. };
  11586. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11587. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11588. template <>
  11589. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT>
  11590. {
  11591. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoEXT const & videoDecodeH264SessionParametersAddInfoEXT ) const
  11592. VULKAN_HPP_NOEXCEPT
  11593. {
  11594. std::size_t seed = 0;
  11595. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.sType );
  11596. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.pNext );
  11597. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.spsStdCount );
  11598. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.pSpsStd );
  11599. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.ppsStdCount );
  11600. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoEXT.pPpsStd );
  11601. return seed;
  11602. }
  11603. };
  11604. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11605. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11606. template <>
  11607. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoEXT>
  11608. {
  11609. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoEXT const & videoDecodeH264SessionParametersCreateInfoEXT ) const
  11610. VULKAN_HPP_NOEXCEPT
  11611. {
  11612. std::size_t seed = 0;
  11613. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoEXT.sType );
  11614. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoEXT.pNext );
  11615. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoEXT.maxSpsStdCount );
  11616. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoEXT.maxPpsStdCount );
  11617. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoEXT.pParametersAddInfo );
  11618. return seed;
  11619. }
  11620. };
  11621. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11622. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11623. template <>
  11624. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesEXT>
  11625. {
  11626. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesEXT const & videoDecodeH265CapabilitiesEXT ) const VULKAN_HPP_NOEXCEPT
  11627. {
  11628. std::size_t seed = 0;
  11629. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesEXT.sType );
  11630. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesEXT.pNext );
  11631. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesEXT.maxLevel );
  11632. return seed;
  11633. }
  11634. };
  11635. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11636. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11637. template <>
  11638. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoEXT>
  11639. {
  11640. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoEXT const & videoDecodeH265DpbSlotInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11641. {
  11642. std::size_t seed = 0;
  11643. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoEXT.sType );
  11644. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoEXT.pNext );
  11645. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoEXT.pStdReferenceInfo );
  11646. return seed;
  11647. }
  11648. };
  11649. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11650. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11651. template <>
  11652. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoEXT>
  11653. {
  11654. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoEXT const & videoDecodeH265PictureInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11655. {
  11656. std::size_t seed = 0;
  11657. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoEXT.sType );
  11658. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoEXT.pNext );
  11659. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoEXT.pStdPictureInfo );
  11660. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoEXT.slicesCount );
  11661. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoEXT.pSlicesDataOffsets );
  11662. return seed;
  11663. }
  11664. };
  11665. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11666. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11667. template <>
  11668. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoEXT>
  11669. {
  11670. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoEXT const & videoDecodeH265ProfileInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11671. {
  11672. std::size_t seed = 0;
  11673. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoEXT.sType );
  11674. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoEXT.pNext );
  11675. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoEXT.stdProfileIdc );
  11676. return seed;
  11677. }
  11678. };
  11679. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11680. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11681. template <>
  11682. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT>
  11683. {
  11684. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoEXT const & videoDecodeH265SessionParametersAddInfoEXT ) const
  11685. VULKAN_HPP_NOEXCEPT
  11686. {
  11687. std::size_t seed = 0;
  11688. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.sType );
  11689. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.pNext );
  11690. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.vpsStdCount );
  11691. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.pVpsStd );
  11692. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.spsStdCount );
  11693. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.pSpsStd );
  11694. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.ppsStdCount );
  11695. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoEXT.pPpsStd );
  11696. return seed;
  11697. }
  11698. };
  11699. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11700. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11701. template <>
  11702. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoEXT>
  11703. {
  11704. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoEXT const & videoDecodeH265SessionParametersCreateInfoEXT ) const
  11705. VULKAN_HPP_NOEXCEPT
  11706. {
  11707. std::size_t seed = 0;
  11708. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.sType );
  11709. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.pNext );
  11710. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.maxVpsStdCount );
  11711. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.maxSpsStdCount );
  11712. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.maxPpsStdCount );
  11713. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoEXT.pParametersAddInfo );
  11714. return seed;
  11715. }
  11716. };
  11717. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11718. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11719. template <>
  11720. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR>
  11721. {
  11722. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR const & videoDecodeInfoKHR ) const VULKAN_HPP_NOEXCEPT
  11723. {
  11724. std::size_t seed = 0;
  11725. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.sType );
  11726. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.pNext );
  11727. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.flags );
  11728. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.srcBuffer );
  11729. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.srcBufferOffset );
  11730. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.srcBufferRange );
  11731. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.dstPictureResource );
  11732. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.pSetupReferenceSlot );
  11733. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.referenceSlotCount );
  11734. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.pReferenceSlots );
  11735. return seed;
  11736. }
  11737. };
  11738. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11739. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11740. template <>
  11741. struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR>
  11742. {
  11743. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR const & videoDecodeUsageInfoKHR ) const VULKAN_HPP_NOEXCEPT
  11744. {
  11745. std::size_t seed = 0;
  11746. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeUsageInfoKHR.sType );
  11747. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeUsageInfoKHR.pNext );
  11748. VULKAN_HPP_HASH_COMBINE( seed, videoDecodeUsageInfoKHR.videoUsageHints );
  11749. return seed;
  11750. }
  11751. };
  11752. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11753. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11754. template <>
  11755. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR>
  11756. {
  11757. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR const & videoEncodeCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
  11758. {
  11759. std::size_t seed = 0;
  11760. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.sType );
  11761. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.pNext );
  11762. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.flags );
  11763. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.rateControlModes );
  11764. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.rateControlLayerCount );
  11765. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.qualityLevelCount );
  11766. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.inputImageDataFillAlignment );
  11767. return seed;
  11768. }
  11769. };
  11770. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11771. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11772. template <>
  11773. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT>
  11774. {
  11775. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesEXT const & videoEncodeH264CapabilitiesEXT ) const VULKAN_HPP_NOEXCEPT
  11776. {
  11777. std::size_t seed = 0;
  11778. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.sType );
  11779. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.pNext );
  11780. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.flags );
  11781. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.inputModeFlags );
  11782. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.outputModeFlags );
  11783. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.maxPPictureL0ReferenceCount );
  11784. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.maxBPictureL0ReferenceCount );
  11785. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.maxL1ReferenceCount );
  11786. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.motionVectorsOverPicBoundariesFlag );
  11787. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.maxBytesPerPicDenom );
  11788. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.maxBitsPerMbDenom );
  11789. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.log2MaxMvLengthHorizontal );
  11790. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesEXT.log2MaxMvLengthVertical );
  11791. return seed;
  11792. }
  11793. };
  11794. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11795. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11796. template <>
  11797. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT>
  11798. {
  11799. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoEXT const & videoEncodeH264DpbSlotInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11800. {
  11801. std::size_t seed = 0;
  11802. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoEXT.sType );
  11803. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoEXT.pNext );
  11804. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoEXT.slotIndex );
  11805. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoEXT.pStdReferenceInfo );
  11806. return seed;
  11807. }
  11808. };
  11809. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11810. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11811. template <>
  11812. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264EmitPictureParametersInfoEXT>
  11813. {
  11814. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264EmitPictureParametersInfoEXT const & videoEncodeH264EmitPictureParametersInfoEXT ) const
  11815. VULKAN_HPP_NOEXCEPT
  11816. {
  11817. std::size_t seed = 0;
  11818. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.sType );
  11819. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.pNext );
  11820. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.spsId );
  11821. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.emitSpsEnable );
  11822. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.ppsIdEntryCount );
  11823. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264EmitPictureParametersInfoEXT.ppsIdEntries );
  11824. return seed;
  11825. }
  11826. };
  11827. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11828. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11829. template <>
  11830. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT>
  11831. {
  11832. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeEXT const & videoEncodeH264FrameSizeEXT ) const VULKAN_HPP_NOEXCEPT
  11833. {
  11834. std::size_t seed = 0;
  11835. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeEXT.frameISize );
  11836. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeEXT.framePSize );
  11837. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeEXT.frameBSize );
  11838. return seed;
  11839. }
  11840. };
  11841. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11842. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11843. template <>
  11844. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT>
  11845. {
  11846. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264ReferenceListsInfoEXT const & videoEncodeH264ReferenceListsInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11847. {
  11848. std::size_t seed = 0;
  11849. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.sType );
  11850. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.pNext );
  11851. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.referenceList0EntryCount );
  11852. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.pReferenceList0Entries );
  11853. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.referenceList1EntryCount );
  11854. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.pReferenceList1Entries );
  11855. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ReferenceListsInfoEXT.pMemMgmtCtrlOperations );
  11856. return seed;
  11857. }
  11858. };
  11859. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11860. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11861. template <>
  11862. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT>
  11863. {
  11864. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoEXT const & videoEncodeH264NaluSliceInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11865. {
  11866. std::size_t seed = 0;
  11867. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoEXT.sType );
  11868. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoEXT.pNext );
  11869. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoEXT.mbCount );
  11870. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoEXT.pReferenceFinalLists );
  11871. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoEXT.pSliceHeaderStd );
  11872. return seed;
  11873. }
  11874. };
  11875. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11876. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11877. template <>
  11878. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT>
  11879. {
  11880. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoEXT const & videoEncodeH264ProfileInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11881. {
  11882. std::size_t seed = 0;
  11883. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoEXT.sType );
  11884. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoEXT.pNext );
  11885. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoEXT.stdProfileIdc );
  11886. return seed;
  11887. }
  11888. };
  11889. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11890. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11891. template <>
  11892. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT>
  11893. {
  11894. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpEXT const & videoEncodeH264QpEXT ) const VULKAN_HPP_NOEXCEPT
  11895. {
  11896. std::size_t seed = 0;
  11897. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpEXT.qpI );
  11898. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpEXT.qpP );
  11899. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpEXT.qpB );
  11900. return seed;
  11901. }
  11902. };
  11903. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11904. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11905. template <>
  11906. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT>
  11907. {
  11908. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoEXT const & videoEncodeH264RateControlInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11909. {
  11910. std::size_t seed = 0;
  11911. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.sType );
  11912. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.pNext );
  11913. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.gopFrameCount );
  11914. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.idrPeriod );
  11915. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.consecutiveBFrameCount );
  11916. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.rateControlStructure );
  11917. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoEXT.temporalLayerCount );
  11918. return seed;
  11919. }
  11920. };
  11921. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11922. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11923. template <>
  11924. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT>
  11925. {
  11926. std::size_t
  11927. operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoEXT const & videoEncodeH264RateControlLayerInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11928. {
  11929. std::size_t seed = 0;
  11930. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.sType );
  11931. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.pNext );
  11932. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.temporalLayerId );
  11933. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.useInitialRcQp );
  11934. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.initialRcQp );
  11935. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.useMinQp );
  11936. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.minQp );
  11937. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.useMaxQp );
  11938. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.maxQp );
  11939. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.useMaxFrameSize );
  11940. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoEXT.maxFrameSize );
  11941. return seed;
  11942. }
  11943. };
  11944. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11945. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11946. template <>
  11947. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT>
  11948. {
  11949. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoEXT const & videoEncodeH264SessionParametersAddInfoEXT ) const
  11950. VULKAN_HPP_NOEXCEPT
  11951. {
  11952. std::size_t seed = 0;
  11953. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.sType );
  11954. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.pNext );
  11955. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.spsStdCount );
  11956. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.pSpsStd );
  11957. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.ppsStdCount );
  11958. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoEXT.pPpsStd );
  11959. return seed;
  11960. }
  11961. };
  11962. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11963. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11964. template <>
  11965. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT>
  11966. {
  11967. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoEXT const & videoEncodeH264SessionParametersCreateInfoEXT ) const
  11968. VULKAN_HPP_NOEXCEPT
  11969. {
  11970. std::size_t seed = 0;
  11971. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoEXT.sType );
  11972. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoEXT.pNext );
  11973. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoEXT.maxSpsStdCount );
  11974. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoEXT.maxPpsStdCount );
  11975. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoEXT.pParametersAddInfo );
  11976. return seed;
  11977. }
  11978. };
  11979. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11980. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11981. template <>
  11982. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264VclFrameInfoEXT>
  11983. {
  11984. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264VclFrameInfoEXT const & videoEncodeH264VclFrameInfoEXT ) const VULKAN_HPP_NOEXCEPT
  11985. {
  11986. std::size_t seed = 0;
  11987. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.sType );
  11988. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.pNext );
  11989. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.pReferenceFinalLists );
  11990. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.naluSliceEntryCount );
  11991. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.pNaluSliceEntries );
  11992. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264VclFrameInfoEXT.pCurrentPictureInfo );
  11993. return seed;
  11994. }
  11995. };
  11996. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  11997. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  11998. template <>
  11999. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT>
  12000. {
  12001. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesEXT const & videoEncodeH265CapabilitiesEXT ) const VULKAN_HPP_NOEXCEPT
  12002. {
  12003. std::size_t seed = 0;
  12004. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.sType );
  12005. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.pNext );
  12006. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.flags );
  12007. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.inputModeFlags );
  12008. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.outputModeFlags );
  12009. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.ctbSizes );
  12010. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.transformBlockSizes );
  12011. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxPPictureL0ReferenceCount );
  12012. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxBPictureL0ReferenceCount );
  12013. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxL1ReferenceCount );
  12014. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxSubLayersCount );
  12015. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.minLog2MinLumaCodingBlockSizeMinus3 );
  12016. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxLog2MinLumaCodingBlockSizeMinus3 );
  12017. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.minLog2MinLumaTransformBlockSizeMinus2 );
  12018. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxLog2MinLumaTransformBlockSizeMinus2 );
  12019. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.minMaxTransformHierarchyDepthInter );
  12020. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxMaxTransformHierarchyDepthInter );
  12021. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.minMaxTransformHierarchyDepthIntra );
  12022. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxMaxTransformHierarchyDepthIntra );
  12023. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxDiffCuQpDeltaDepth );
  12024. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.minMaxNumMergeCand );
  12025. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesEXT.maxMaxNumMergeCand );
  12026. return seed;
  12027. }
  12028. };
  12029. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12030. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12031. template <>
  12032. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT>
  12033. {
  12034. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoEXT const & videoEncodeH265DpbSlotInfoEXT ) const VULKAN_HPP_NOEXCEPT
  12035. {
  12036. std::size_t seed = 0;
  12037. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoEXT.sType );
  12038. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoEXT.pNext );
  12039. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoEXT.slotIndex );
  12040. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoEXT.pStdReferenceInfo );
  12041. return seed;
  12042. }
  12043. };
  12044. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12045. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12046. template <>
  12047. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersInfoEXT>
  12048. {
  12049. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265EmitPictureParametersInfoEXT const & videoEncodeH265EmitPictureParametersInfoEXT ) const
  12050. VULKAN_HPP_NOEXCEPT
  12051. {
  12052. std::size_t seed = 0;
  12053. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.sType );
  12054. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.pNext );
  12055. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.vpsId );
  12056. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.spsId );
  12057. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.emitVpsEnable );
  12058. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.emitSpsEnable );
  12059. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.ppsIdEntryCount );
  12060. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265EmitPictureParametersInfoEXT.ppsIdEntries );
  12061. return seed;
  12062. }
  12063. };
  12064. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12065. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12066. template <>
  12067. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT>
  12068. {
  12069. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeEXT const & videoEncodeH265FrameSizeEXT ) const VULKAN_HPP_NOEXCEPT
  12070. {
  12071. std::size_t seed = 0;
  12072. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeEXT.frameISize );
  12073. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeEXT.framePSize );
  12074. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeEXT.frameBSize );
  12075. return seed;
  12076. }
  12077. };
  12078. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12079. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12080. template <>
  12081. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT>
  12082. {
  12083. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265ReferenceListsInfoEXT const & videoEncodeH265ReferenceListsInfoEXT ) const VULKAN_HPP_NOEXCEPT
  12084. {
  12085. std::size_t seed = 0;
  12086. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.sType );
  12087. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.pNext );
  12088. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.referenceList0EntryCount );
  12089. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.pReferenceList0Entries );
  12090. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.referenceList1EntryCount );
  12091. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.pReferenceList1Entries );
  12092. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ReferenceListsInfoEXT.pReferenceModifications );
  12093. return seed;
  12094. }
  12095. };
  12096. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12097. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12098. template <>
  12099. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT>
  12100. {
  12101. std::size_t
  12102. operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoEXT const & videoEncodeH265NaluSliceSegmentInfoEXT ) const VULKAN_HPP_NOEXCEPT
  12103. {
  12104. std::size_t seed = 0;
  12105. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoEXT.sType );
  12106. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoEXT.pNext );
  12107. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoEXT.ctbCount );
  12108. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoEXT.pReferenceFinalLists );
  12109. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoEXT.pSliceSegmentHeaderStd );
  12110. return seed;
  12111. }
  12112. };
  12113. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12114. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12115. template <>
  12116. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT>
  12117. {
  12118. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoEXT const & videoEncodeH265ProfileInfoEXT ) const VULKAN_HPP_NOEXCEPT
  12119. {
  12120. std::size_t seed = 0;
  12121. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoEXT.sType );
  12122. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoEXT.pNext );
  12123. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoEXT.stdProfileIdc );
  12124. return seed;
  12125. }
  12126. };
  12127. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12128. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12129. template <>
  12130. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT>
  12131. {
  12132. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpEXT const & videoEncodeH265QpEXT ) const VULKAN_HPP_NOEXCEPT
  12133. {
  12134. std::size_t seed = 0;
  12135. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpEXT.qpI );
  12136. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpEXT.qpP );
  12137. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpEXT.qpB );
  12138. return seed;
  12139. }
  12140. };
  12141. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12142. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12143. template <>
  12144. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT>
  12145. {
  12146. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoEXT const & videoEncodeH265RateControlInfoEXT ) const VULKAN_HPP_NOEXCEPT
  12147. {
  12148. std::size_t seed = 0;
  12149. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.sType );
  12150. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.pNext );
  12151. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.gopFrameCount );
  12152. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.idrPeriod );
  12153. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.consecutiveBFrameCount );
  12154. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.rateControlStructure );
  12155. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoEXT.subLayerCount );
  12156. return seed;
  12157. }
  12158. };
  12159. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12160. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12161. template <>
  12162. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT>
  12163. {
  12164. std::size_t
  12165. operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoEXT const & videoEncodeH265RateControlLayerInfoEXT ) const VULKAN_HPP_NOEXCEPT
  12166. {
  12167. std::size_t seed = 0;
  12168. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.sType );
  12169. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.pNext );
  12170. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.temporalId );
  12171. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.useInitialRcQp );
  12172. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.initialRcQp );
  12173. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.useMinQp );
  12174. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.minQp );
  12175. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.useMaxQp );
  12176. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.maxQp );
  12177. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.useMaxFrameSize );
  12178. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoEXT.maxFrameSize );
  12179. return seed;
  12180. }
  12181. };
  12182. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12183. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12184. template <>
  12185. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT>
  12186. {
  12187. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoEXT const & videoEncodeH265SessionParametersAddInfoEXT ) const
  12188. VULKAN_HPP_NOEXCEPT
  12189. {
  12190. std::size_t seed = 0;
  12191. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.sType );
  12192. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.pNext );
  12193. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.vpsStdCount );
  12194. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.pVpsStd );
  12195. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.spsStdCount );
  12196. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.pSpsStd );
  12197. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.ppsStdCount );
  12198. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoEXT.pPpsStd );
  12199. return seed;
  12200. }
  12201. };
  12202. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12203. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12204. template <>
  12205. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT>
  12206. {
  12207. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoEXT const & videoEncodeH265SessionParametersCreateInfoEXT ) const
  12208. VULKAN_HPP_NOEXCEPT
  12209. {
  12210. std::size_t seed = 0;
  12211. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.sType );
  12212. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.pNext );
  12213. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.maxVpsStdCount );
  12214. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.maxSpsStdCount );
  12215. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.maxPpsStdCount );
  12216. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoEXT.pParametersAddInfo );
  12217. return seed;
  12218. }
  12219. };
  12220. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12221. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12222. template <>
  12223. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265VclFrameInfoEXT>
  12224. {
  12225. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265VclFrameInfoEXT const & videoEncodeH265VclFrameInfoEXT ) const VULKAN_HPP_NOEXCEPT
  12226. {
  12227. std::size_t seed = 0;
  12228. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.sType );
  12229. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.pNext );
  12230. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.pReferenceFinalLists );
  12231. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.naluSliceSegmentEntryCount );
  12232. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.pNaluSliceSegmentEntries );
  12233. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265VclFrameInfoEXT.pCurrentPictureInfo );
  12234. return seed;
  12235. }
  12236. };
  12237. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12238. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12239. template <>
  12240. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR>
  12241. {
  12242. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR const & videoEncodeInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12243. {
  12244. std::size_t seed = 0;
  12245. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.sType );
  12246. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.pNext );
  12247. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.flags );
  12248. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.qualityLevel );
  12249. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBitstreamBuffer );
  12250. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBitstreamBufferOffset );
  12251. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBitstreamBufferMaxRange );
  12252. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.srcPictureResource );
  12253. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.pSetupReferenceSlot );
  12254. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.referenceSlotCount );
  12255. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.pReferenceSlots );
  12256. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.precedingExternallyEncodedBytes );
  12257. return seed;
  12258. }
  12259. };
  12260. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12261. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12262. template <>
  12263. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR>
  12264. {
  12265. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR const & videoEncodeRateControlLayerInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12266. {
  12267. std::size_t seed = 0;
  12268. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.sType );
  12269. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.pNext );
  12270. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.averageBitrate );
  12271. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.maxBitrate );
  12272. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.frameRateNumerator );
  12273. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.frameRateDenominator );
  12274. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.virtualBufferSizeInMs );
  12275. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.initialVirtualBufferSizeInMs );
  12276. return seed;
  12277. }
  12278. };
  12279. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12280. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12281. template <>
  12282. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR>
  12283. {
  12284. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR const & videoEncodeRateControlInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12285. {
  12286. std::size_t seed = 0;
  12287. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.sType );
  12288. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.pNext );
  12289. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.flags );
  12290. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.rateControlMode );
  12291. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.layerCount );
  12292. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.pLayerConfigs );
  12293. return seed;
  12294. }
  12295. };
  12296. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12297. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12298. template <>
  12299. struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR>
  12300. {
  12301. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR const & videoEncodeUsageInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12302. {
  12303. std::size_t seed = 0;
  12304. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeUsageInfoKHR.sType );
  12305. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeUsageInfoKHR.pNext );
  12306. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeUsageInfoKHR.videoUsageHints );
  12307. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeUsageInfoKHR.videoContentHints );
  12308. VULKAN_HPP_HASH_COMBINE( seed, videoEncodeUsageInfoKHR.tuningMode );
  12309. return seed;
  12310. }
  12311. };
  12312. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12313. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12314. template <>
  12315. struct hash<VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR>
  12316. {
  12317. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR const & videoEndCodingInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12318. {
  12319. std::size_t seed = 0;
  12320. VULKAN_HPP_HASH_COMBINE( seed, videoEndCodingInfoKHR.sType );
  12321. VULKAN_HPP_HASH_COMBINE( seed, videoEndCodingInfoKHR.pNext );
  12322. VULKAN_HPP_HASH_COMBINE( seed, videoEndCodingInfoKHR.flags );
  12323. return seed;
  12324. }
  12325. };
  12326. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12327. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12328. template <>
  12329. struct hash<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>
  12330. {
  12331. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR const & videoFormatPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
  12332. {
  12333. std::size_t seed = 0;
  12334. VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.sType );
  12335. VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.pNext );
  12336. VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.format );
  12337. VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.componentMapping );
  12338. VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.imageCreateFlags );
  12339. VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.imageType );
  12340. VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.imageTiling );
  12341. VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.imageUsageFlags );
  12342. return seed;
  12343. }
  12344. };
  12345. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12346. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12347. template <>
  12348. struct hash<VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR>
  12349. {
  12350. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR const & videoProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12351. {
  12352. std::size_t seed = 0;
  12353. VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.sType );
  12354. VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.pNext );
  12355. VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.videoCodecOperation );
  12356. VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.chromaSubsampling );
  12357. VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.lumaBitDepth );
  12358. VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.chromaBitDepth );
  12359. return seed;
  12360. }
  12361. };
  12362. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12363. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12364. template <>
  12365. struct hash<VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR>
  12366. {
  12367. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR const & videoProfileListInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12368. {
  12369. std::size_t seed = 0;
  12370. VULKAN_HPP_HASH_COMBINE( seed, videoProfileListInfoKHR.sType );
  12371. VULKAN_HPP_HASH_COMBINE( seed, videoProfileListInfoKHR.pNext );
  12372. VULKAN_HPP_HASH_COMBINE( seed, videoProfileListInfoKHR.profileCount );
  12373. VULKAN_HPP_HASH_COMBINE( seed, videoProfileListInfoKHR.pProfiles );
  12374. return seed;
  12375. }
  12376. };
  12377. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12378. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12379. template <>
  12380. struct hash<VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR>
  12381. {
  12382. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const & videoSessionCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12383. {
  12384. std::size_t seed = 0;
  12385. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.sType );
  12386. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.pNext );
  12387. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.queueFamilyIndex );
  12388. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.flags );
  12389. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.pVideoProfile );
  12390. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.pictureFormat );
  12391. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.maxCodedExtent );
  12392. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.referencePicturesFormat );
  12393. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.maxReferencePicturesSlotsCount );
  12394. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.maxReferencePicturesActiveCount );
  12395. VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.pStdHeaderVersion );
  12396. return seed;
  12397. }
  12398. };
  12399. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12400. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12401. template <>
  12402. struct hash<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR>
  12403. {
  12404. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR const & videoSessionMemoryRequirementsKHR ) const VULKAN_HPP_NOEXCEPT
  12405. {
  12406. std::size_t seed = 0;
  12407. VULKAN_HPP_HASH_COMBINE( seed, videoSessionMemoryRequirementsKHR.sType );
  12408. VULKAN_HPP_HASH_COMBINE( seed, videoSessionMemoryRequirementsKHR.pNext );
  12409. VULKAN_HPP_HASH_COMBINE( seed, videoSessionMemoryRequirementsKHR.memoryBindIndex );
  12410. VULKAN_HPP_HASH_COMBINE( seed, videoSessionMemoryRequirementsKHR.memoryRequirements );
  12411. return seed;
  12412. }
  12413. };
  12414. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12415. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12416. template <>
  12417. struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR>
  12418. {
  12419. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const & videoSessionParametersCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12420. {
  12421. std::size_t seed = 0;
  12422. VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersCreateInfoKHR.sType );
  12423. VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersCreateInfoKHR.pNext );
  12424. VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersCreateInfoKHR.flags );
  12425. VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersCreateInfoKHR.videoSessionParametersTemplate );
  12426. VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersCreateInfoKHR.videoSession );
  12427. return seed;
  12428. }
  12429. };
  12430. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12431. # if defined( VK_ENABLE_BETA_EXTENSIONS )
  12432. template <>
  12433. struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR>
  12434. {
  12435. std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR const & videoSessionParametersUpdateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12436. {
  12437. std::size_t seed = 0;
  12438. VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersUpdateInfoKHR.sType );
  12439. VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersUpdateInfoKHR.pNext );
  12440. VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersUpdateInfoKHR.updateSequenceCount );
  12441. return seed;
  12442. }
  12443. };
  12444. # endif /*VK_ENABLE_BETA_EXTENSIONS*/
  12445. # if defined( VK_USE_PLATFORM_WAYLAND_KHR )
  12446. template <>
  12447. struct hash<VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR>
  12448. {
  12449. std::size_t operator()( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const & waylandSurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12450. {
  12451. std::size_t seed = 0;
  12452. VULKAN_HPP_HASH_COMBINE( seed, waylandSurfaceCreateInfoKHR.sType );
  12453. VULKAN_HPP_HASH_COMBINE( seed, waylandSurfaceCreateInfoKHR.pNext );
  12454. VULKAN_HPP_HASH_COMBINE( seed, waylandSurfaceCreateInfoKHR.flags );
  12455. VULKAN_HPP_HASH_COMBINE( seed, waylandSurfaceCreateInfoKHR.display );
  12456. VULKAN_HPP_HASH_COMBINE( seed, waylandSurfaceCreateInfoKHR.surface );
  12457. return seed;
  12458. }
  12459. };
  12460. # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
  12461. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  12462. template <>
  12463. struct hash<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR>
  12464. {
  12465. std::size_t operator()( VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const & win32KeyedMutexAcquireReleaseInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12466. {
  12467. std::size_t seed = 0;
  12468. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.sType );
  12469. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pNext );
  12470. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.acquireCount );
  12471. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pAcquireSyncs );
  12472. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pAcquireKeys );
  12473. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pAcquireTimeouts );
  12474. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.releaseCount );
  12475. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pReleaseSyncs );
  12476. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pReleaseKeys );
  12477. return seed;
  12478. }
  12479. };
  12480. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  12481. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  12482. template <>
  12483. struct hash<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV>
  12484. {
  12485. std::size_t operator()( VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const & win32KeyedMutexAcquireReleaseInfoNV ) const VULKAN_HPP_NOEXCEPT
  12486. {
  12487. std::size_t seed = 0;
  12488. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.sType );
  12489. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pNext );
  12490. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.acquireCount );
  12491. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pAcquireSyncs );
  12492. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pAcquireKeys );
  12493. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pAcquireTimeoutMilliseconds );
  12494. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.releaseCount );
  12495. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pReleaseSyncs );
  12496. VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pReleaseKeys );
  12497. return seed;
  12498. }
  12499. };
  12500. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  12501. # if defined( VK_USE_PLATFORM_WIN32_KHR )
  12502. template <>
  12503. struct hash<VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR>
  12504. {
  12505. std::size_t operator()( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const & win32SurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12506. {
  12507. std::size_t seed = 0;
  12508. VULKAN_HPP_HASH_COMBINE( seed, win32SurfaceCreateInfoKHR.sType );
  12509. VULKAN_HPP_HASH_COMBINE( seed, win32SurfaceCreateInfoKHR.pNext );
  12510. VULKAN_HPP_HASH_COMBINE( seed, win32SurfaceCreateInfoKHR.flags );
  12511. VULKAN_HPP_HASH_COMBINE( seed, win32SurfaceCreateInfoKHR.hinstance );
  12512. VULKAN_HPP_HASH_COMBINE( seed, win32SurfaceCreateInfoKHR.hwnd );
  12513. return seed;
  12514. }
  12515. };
  12516. # endif /*VK_USE_PLATFORM_WIN32_KHR*/
  12517. template <>
  12518. struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSet>
  12519. {
  12520. std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSet const & writeDescriptorSet ) const VULKAN_HPP_NOEXCEPT
  12521. {
  12522. std::size_t seed = 0;
  12523. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.sType );
  12524. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pNext );
  12525. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstSet );
  12526. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstBinding );
  12527. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstArrayElement );
  12528. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.descriptorCount );
  12529. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.descriptorType );
  12530. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pImageInfo );
  12531. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pBufferInfo );
  12532. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pTexelBufferView );
  12533. return seed;
  12534. }
  12535. };
  12536. template <>
  12537. struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR>
  12538. {
  12539. std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const & writeDescriptorSetAccelerationStructureKHR ) const
  12540. VULKAN_HPP_NOEXCEPT
  12541. {
  12542. std::size_t seed = 0;
  12543. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureKHR.sType );
  12544. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureKHR.pNext );
  12545. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureKHR.accelerationStructureCount );
  12546. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureKHR.pAccelerationStructures );
  12547. return seed;
  12548. }
  12549. };
  12550. template <>
  12551. struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV>
  12552. {
  12553. std::size_t
  12554. operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV const & writeDescriptorSetAccelerationStructureNV ) const VULKAN_HPP_NOEXCEPT
  12555. {
  12556. std::size_t seed = 0;
  12557. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureNV.sType );
  12558. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureNV.pNext );
  12559. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureNV.accelerationStructureCount );
  12560. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureNV.pAccelerationStructures );
  12561. return seed;
  12562. }
  12563. };
  12564. template <>
  12565. struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock>
  12566. {
  12567. std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock const & writeDescriptorSetInlineUniformBlock ) const VULKAN_HPP_NOEXCEPT
  12568. {
  12569. std::size_t seed = 0;
  12570. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetInlineUniformBlock.sType );
  12571. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetInlineUniformBlock.pNext );
  12572. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetInlineUniformBlock.dataSize );
  12573. VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetInlineUniformBlock.pData );
  12574. return seed;
  12575. }
  12576. };
  12577. # if defined( VK_USE_PLATFORM_XCB_KHR )
  12578. template <>
  12579. struct hash<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR>
  12580. {
  12581. std::size_t operator()( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const & xcbSurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12582. {
  12583. std::size_t seed = 0;
  12584. VULKAN_HPP_HASH_COMBINE( seed, xcbSurfaceCreateInfoKHR.sType );
  12585. VULKAN_HPP_HASH_COMBINE( seed, xcbSurfaceCreateInfoKHR.pNext );
  12586. VULKAN_HPP_HASH_COMBINE( seed, xcbSurfaceCreateInfoKHR.flags );
  12587. VULKAN_HPP_HASH_COMBINE( seed, xcbSurfaceCreateInfoKHR.connection );
  12588. VULKAN_HPP_HASH_COMBINE( seed, xcbSurfaceCreateInfoKHR.window );
  12589. return seed;
  12590. }
  12591. };
  12592. # endif /*VK_USE_PLATFORM_XCB_KHR*/
  12593. # if defined( VK_USE_PLATFORM_XLIB_KHR )
  12594. template <>
  12595. struct hash<VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR>
  12596. {
  12597. std::size_t operator()( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const & xlibSurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
  12598. {
  12599. std::size_t seed = 0;
  12600. VULKAN_HPP_HASH_COMBINE( seed, xlibSurfaceCreateInfoKHR.sType );
  12601. VULKAN_HPP_HASH_COMBINE( seed, xlibSurfaceCreateInfoKHR.pNext );
  12602. VULKAN_HPP_HASH_COMBINE( seed, xlibSurfaceCreateInfoKHR.flags );
  12603. VULKAN_HPP_HASH_COMBINE( seed, xlibSurfaceCreateInfoKHR.dpy );
  12604. VULKAN_HPP_HASH_COMBINE( seed, xlibSurfaceCreateInfoKHR.window );
  12605. return seed;
  12606. }
  12607. };
  12608. # endif /*VK_USE_PLATFORM_XLIB_KHR*/
  12609. #endif // 14 <= VULKAN_HPP_CPP_VERSION
  12610. } // namespace std
  12611. #endif